Está en la página 1de 5

Lista de ejercicios de Programación

MSc. José Colbes

Lista de ejercicios sobre estructuras de decisión

Fecha: 13 de agosto de 2012

1)

Indicar con un mensaje si un ángulo ingresado en grados es o no recto.

2)

Escribir un programa que permita ingresar un carácter e indique si es una letra o no.

3)

Escribir un programa que permita recibir un carácter y que devuelva su mayúscula en caso de tratarse

4)

de un carácter alfabético, o que devuelva el mismo carácter en caso contrario. Dados los valores a, b y c; indicar si pueden ser los lados de un triángulo.

5)

Dados cinco números, calcular su promedio.

6)

Dados dos valores a y b, indicar a través de un mensaje cuál de los 2 es el mayor (Ej: “El mayor es a”).

7)

En caso de que sean iguales, indicarlo a través de un mensaje. Dados tres números, indicar cuál es el central.

8)

Calcular la raíz cuadrada de un número y escribir su resultado.

9)

Determinar el precio de un billete de ida y vuelta en tren, conociendo la distancia a recorrer y sabiendo

que si el número de días de estancia es superior a 7 y la distancia superior a 800 kilómetros, el billete tiene una reducción del 30%. El precio por kilómetro es de 250 guaraníes. 10) Escribir un programa que, dados dos números a y b, indique si uno es divisor del otro. 11) Escribir un programa que, dado un ángulo en grados, indique si es recto, agudo u obtuso. 12) Escribir un programa que acepte dos números reales y un código de selección. Si el código de selección es 1, entonces el programa suma los dos números introducidos previamente y se visualiza el resultado; si el código de selección es 2, los números deben ser multiplicados y visualizado el resultado; y si el código seleccionado es 3, el primer número se debe dividir por el segundo número y visualizarse el resultado. 13) Si los días LUN-DOM se ingresan de forma numérica (del 1 al 7), devolver el nombre del día correspondiente. Si el número es inválido, indicarlo con un mensaje. 14) Diseñar un programa que acepte las coordenadas x,y de un punto. Indicar con un mensaje si está

(Obs: un punto en el borde se considera como interior).

. 15) Los empleados de una fábrica trabajan en dos turnos: diurno y nocturno. Se desea calcular el jornal diario de acuerdo a los siguientes puntos:

dentro o no de la circunferencia

También se debe indicar si está por encima, por debajo, o es un punto de la recta

La tarifa de las horas diurnas es de 10.000 Gs

La tarifa de las horas nocturnas es de 20.000 Gs

Si es un domingo, el jornal aumenta en un 25%.

Para un trabajador considerado, se ingresan como entradas el día de la semana en la que trabajó (del 1 al 7, donde 7 es domingo), la cantidad de horas trabajadas en el turno diurno, y la cantidad de horas trabajadas en el turno nocturno. Se debe retornar el jornal que le corresponde.

16)

imaginarias. 17) Diseñar un algoritmo que resuelva el sistema de ecuaciones de la forma:

Indicar si existe una solución única, no tiene solución o tiene infinitas soluciones 18) Escribir un programa que indique si el año introducido es bisiesto o no. 19) Diseñar un programa en el que se ingresan tres variables: DIA, MES y AÑO (en forma númerica); y devuelva la fecha del día siguiente (en formato DIA/MES/AÑO). Se deben considerar los años bisiestos, cantidad de días de cada mes, etc. En caso de insertar números reales o fechas inválidas, indicar con un mensaje.

Escribir un programa que calcule las raíces de la ecuación

, sean éstas reales o

calcule las raíces de la ecuación , sean éstas reales o Lista de ejercicios sobre estructuras

Lista de ejercicios sobre estructuras de repetición

1)

Dado un número natural , desarrolle un algoritmo que calcule la sumatoria y el promedio de los

2)

números menores a n y que sean múltiplos de 3. Realizar la división entre 2 números naturales ( y ) por restas sucesivas, y mostrar el cociente y el

3)

resto de la división. Desarrolle un algoritmo que permita determinar a partir de un número de días (ingresado por teclado),

4)

los años, meses, semanas y días que constituyen el número de días proporcionado. Se supone que un año siempre tiene 360 días, y que un mes tiene 30 días. Asegurándose de que el número ingresado sea un número natural, calcular el factorial de dicho número.

5) Extraído de http://en.wikipedia.org/wiki/Bizz_buzz: Imprimir en pantalla los números comprendidos

entre 1 y 100. Pero para los múltiplos de 3, imprimir “Fizz” en lugar del número, mientras que para los múltiplos de 5 se imprime “Buzz” en lugar del número. Si el número es múltiplo de 3 y de 5, mostrar “Fizzbuzz” en lugar del número. Calcular el producto de todos los números primos comprendidos entre 2 y .

6)

7)

Una empresa consta de empleados. A fin de mes, se debe hacer una liquidación de los sueldos de los mismos. Para ello, se debe diseñar un algoritmo que (en cada paso) lea los sueldos brutos de los empleados, y devuelva el sueldo neto aplicando un descuento de 9% para IPS y 16% para jubilación. Por disposición de la gerencia, también se desea conocer la diferencia entre el mayor y el menor sueldo neto. Calcule e imprima:

8)

9)

Calcular el máximo común divisor (MCD) de dos números A y B (usando el algoritmo de Euclides).

10) Diseñe un programa que acepte un número

y muestre los primeros

elementos de la sucesión:

11) Dado un número , imprimir en pantalla sus divisores. 12) Realice un programa para encontrar los 100 primeros números perfectos. Un número es perfecto cuando la suma de sus divisores (sin contar el mismo número) es igual al mismo número. Por ejemplo:

6 = 1+2+3. 13) Dado un número , imprimir una tabla de multiplicar de la siguiente manera:

*

1

2

 

1

1

2

*1

2

2

4

*2

 

1*

2*

*

Obs: Recordar que las tabulaciones se realizan con “\t” y los saltos de línea con “\n”.

14) Escribir un programa que, al ingresar un número entero (sea positivo o negativo), devuelva el número en orden inverso. Ej: -375 -573 15) Dado un número entero con un número par de dígitos, escribir un programa que muestre el número

con cada par de dígitos intercambiado. Por ejemplo: si

=654321 se debe mostrar 563412.

16) Dado un número , imprimir en pantalla sus factores primos de la siguiente manera (ejemplo, 150):

17) Calcular el enésimo término de la serie de Fibonacci (

) definida por:

18) Dado un valor

como entrada, calcular el menor valor de

tal que se cumpla:

19) Leer un número

y diseñar un programa que calcule:

20) Una maestra desea obtener las estadísticas acerca del rendimiento de sus alumnos en la materia. Para ello, se debe diseñar un algoritmo que lea las notas (números entre 1 y 100) y calcule:

La mejor nota

La peor nota

La media de las notas.

La cantidad de alumnos que aprueban y reprueban, considerando que se aprueba la materia con una calificación de 60 o más. El algoritmo finaliza cuando una nota ingresada sale fuera del rango. 21) Escribir un algoritmo que permita saber la cantidad de días entre 2 fechas cualesquiera.

22) Un comercio dispone de dos tipos de artículos en fichas correspondientes a diversas sucursales con los siguientes campos:

Código del artículo (A o B)

Precio unitario del artículo

Número de artículos

La última ficha del archivo de artículos tiene un código de artículo, una letra X. Se pide:

El número de artículos existentes en cada categoría.

El importe total de los artículos de cada categoría.

23) Una estación climática proporciona un par de temperaturas diarias (máxima, mínima). Ninguna de las temperaturas debería ser igual a 9 grados. El algoritmo finaliza cuando se ingrese 0,0. Se pide determinar el número de días cuyas temperaturas se han proporcionado; las medias máxima y mínima, el número de errores (temperaturas de 9 grados) y el porcentaje que representan en relación al total de valores de temperaturas consideradas. 24) Se desea conocer una serie de datos de una empresa con 50 empleados, conociendo su edad y salario:

¿Cuántos ganan más de 5.000.000 Gs?

¿Cuántos ganan entre 2.500.000 y 5.000.000 Gs?

¿Cuántos ganan menos que 2.500.000?

¿Cuántos empleados mayores a 50 años están en la empresa y cuál es la media de sus salarios?

25) Existe un juego llamado “Adivina mi número”, el cual consiste en que un niño trata de adivinar el

número (entero, y entre 1 y 100) pensado por el otro niño. Las reglas del juego son las siguientes:

El niño pregunta al otro si un número que dice es el pensado por el segundo.

Si el número es correcto, el primer niño gana el juego. Si no lo acierta, el segundo niño debe indicarle si el número es mayor o menor del que pensó. El primer niño tiene 10 oportunidades para adivinar el número, y si no lo hace, el juego es ganado por el segundo.

El algoritmo debe indicar el ganador del juego.

Obs: en este problema, el segundo niño es la computadora (el número puede ser generado aleatoriamente o predeterminado por el programador); mientras que el usuario es el primer niño.

Algunos ejercicios de la primera parte.

Problema 3

#include<stdio.h> char mayusculas(char c);

int main(){ char c; printf("Ingrese el caracter: \n"); scanf("%c",&c); c=mayusculas(c); printf("El nuevo caracter es: %c",c); return 0;

}

char mayusculas(char c){ if((c>='a')&&(c<='z')) return (c+('A'-'a')); else return c;

}

Problema 12

#include<stdio.h>

int main(){ int sel; double a,b,c=0.0; printf("Ingrese el nro a: "); scanf("%lf",&a); printf("\nIngrese el nro b: "); scanf("%lf",&b); printf("\nIngrese el codigo de seleccion: "); scanf("%d",&sel); if(sel==1) c=a+b; else if(sel==2) c=a*b; else if(sel==3) c=a/b; else printf("\nNo existe operacion asignada a ese codigo."); printf("\n\nEl resultado es: %lf",c); return 0;

}

Algunos ejercicios de la segunda parte.

Problema 1

#include<stdio.h>

int main(){ int i,n,sum=0,con=0; float prom; printf("Ingrese el valor de n: "); scanf("%d",&n);

for(i=1;i<=n;i++){

if((i%3)==0){

}

sum+=i;

con++;

}

if(con) prom=1.0*sum/con;

else prom=-1; //esto indica que no se puede hallar el promedio printf("\nLa suma es: %d",sum); printf("\nEl promedio es: %.2f\n",prom); return 0;

}

Problema 2

#include<stdio.h>

int main(){ int a,b,c=0; printf("Ingrese el valor de a: "); scanf("%d",&a); printf("\nIngrese el valor de b: "); scanf("%d",&b); while(a>b){ c++; a-=b;

}

printf("\nEl cociente es: %d",c); printf("\nEl resto es: %d",a);

return 0;

}

Problema 4

#include<stdio.h> long long factorial(int n);

int main(){ double n; long long m; int c; printf("\nIngrese el numero: "); scanf("%lf",&n); while(n!=((int) n)){ printf("\nIngrese un numero natural: "); scanf("%lf",&n);

}

m=factorial(n); printf("\nEl resultado es: %lld",m); return 0;

}

long long factorial(int n){ int i; long long prod=1;

for(i=2;i<=n;i++){

prod*=i;

}

return prod;

}

Problema 5

#include<stdio.h>

int main(){ int i;

for(i=1;i<101;i++){

if((i%15)==0) printf("FizzBuzz\n"); else if((i%5)==0) printf("Buzz\n"); else if((i%3)==0) printf("Fizz\n"); else printf("%d\n",i);

}

return 0;

}

Problema 6

#include<stdio.h> int es_primo(int x);

int main(){ int n,i; long long prod=1; printf("Ingrese el numero: "); scanf("%d",&n);

prod=1;

for(i=2;i<=n;i++){

if(es_primo(i)) prod*=i;

}

printf("\nEl producto de los numeros primos es: %lld",prod); return 0;

}

int es_primo(int x){ int i; int band=1;

for(i=2;i<x;i++){

if((x%i)==0) band=0;

}

return band;

}