algoritmos repaso

45
1. Construya un seudocódigo que calcule e imprima la suma de los primeros “n” números enteros. suma = 0 n = 0 input “Ingresa un número” n; suma = n*(n+1)/2 print “La suma es: " suma

Upload: nikki-cruz-escobar

Post on 25-Sep-2015

17 views

Category:

Documents


1 download

DESCRIPTION

Algoritmos

TRANSCRIPT

1. Construya un seudocdigo que calcule e imprimala suma de los primeros n nmeros enteros.suma = 0n = 0

input Ingresa un nmero n;suma = n*(n+1)/2print La suma es: " suma

2.Escribir un programa que solicite ingresar 10 notas de alumnos y nos informe cuantos tienen notas mayores o iguales a 7 y cuantos menoresnota = 0mayores = 0menores = 0

For i = 1 to 10Input ingrese nota nota;If nota >=7mayores = mayores + 1elsemenores = menores + 1endifendforprint Las notas mayores son: mayores;print Las notas menores son: menores;

3.Mostrar el mltiplo de 8 hasta el valor de 500.Debe aparecer en pantalla 8 - 16 24

residuo = 0posicion = 0

For i = 1 to 500residuo = i RES 8if residuo = 0gotoxy(1,1+posicion) print i ; gotoxy(1,2+posicion) print - ; posicion = posicion + 2

endifendfor

4.Construya un algoritmo, que dados como dados los suelosde los 10 trabajadores de un empresa,obtenga el total de la nmina de la mismaA = array [1...10]nomina = 0for i = 1 to 10nomina = nomina + a[i]endforprint nomina;

5. Realizar un programa que permita dos listas de 15 valores cada una. Informar con un mensaje cul de las dos listas tiene el valor acumulado mayor (mensajes lista 1 mayor, lista 2 mayor, listas iguales).A = array [1...15]B = array [1...15]list1 = 0, list2 = 0for i = 1 to 15list1 = list1 + a[i]list2 = list2 + b[i]endforif list1 > list2print "Lista 1 mayor";elseif list1 < list2print "Lista 2 mayor";elseprint "Listas iguales";endifendif

6.Calcular la suma de los siguientes: 100+98+96+..+0 en ese orden suma = 0for i = 1 to 50 skip -1suma = suma + i*2endforprint suma

7.Si tienen las siguientes calificaciones los siguientes grupos de alumnos que representa un examen.El profesor desea obtener el promedio de estas.A = array [1...n]suma = 0promedio = 0for i = 1 to nsuma = suma + a[i]promedio = suma/nendforprint promedio;

8.Escriba el algoritmo que dados como datos 270 nmeros enteros obtenga la suma de los nmeros paresy el promedio de los nmeros impares.A = array [1...270]pares = 0impares = 0count = 0for i = 1 to 270division = i res 2if division = 0pares = pares + ielseimpares = impares + icount = count + 1endifendforprint "La suma de numeros pares es: " pares;print "El primedio de numeros impares es: impares/count;

9.Hacer un algoritmo para obtener la tabla de multiplicar de un numero entero K, comenzando desde 1

numero = 0input "Ingrese un numero" numeros;for i = 1 to 10gotoxy(i,1) print i;gotoxy(i,2) print "x";gotoxy(i,3) print numero;gotoxy(i,4) print "=";gotoxy(i,5) print (i)x(numero);endfor

10.Escriba un algoritmo que dado un grupo de nmeros naturales positivoscalcule e imprima el cubo de estos nmerosA = array[1...n]for i = 1 to nprint a[i]^3endfor

11.Haga un algoritmo para obtener la suma de los primeros 20 nmeros enteros positivos

suma = 0for i = 1 to 20 suma = suma + iendforprint suma;

12.Escriba un algoritmo que nos permita hallar el factorial de un numero

fact = 1n = 0input "Ingrese un numero" n;for i = 1 to nfact = fact*iendforprint fact;

13.Se pide ingresar un nmero del 1 al 7;si el nmero es 1 debe mostrar lunes; si es 2 martes , etc;tomar en cuenta la evaluacin de ingreso de datosdia = 0input "Ingrese un numero" dia;Do case diacase = 1print "Lunes";case = 2print "Martes";case = 3print "Miercoles";case = 4print "Jueves";case = 5print "Viernes";case = 6print "Sabado";case = 7print "Domingo";endcase

14.Se pide hallar el algoritmo que ingrese un numero de dos dgitos que est en base 10 y se le pide:convertir en base binarianumero = 0input "Ingrese un numero" numero;while numero < 10 or numero > 99input "Ingrese un numero de dos digitos" numero;endwhilewhile numero> 1 and numero 999input "Ingrese un numero de tres digitos" numero;endwhileif numero res 2 = 0print "Es multiplo de 2";endifif numero res 3 = 0print "Es multiplo de 3";endifif numero res 5 = 0print "Es multiplo de 5";endifif numero res 7 = 0print "Es multiplo de 7";endifif numero res 11 = 0print "Es multiplo de 11";endif

16.Hallar el producto de varios nmeros positivos introducidos por el teclado,de manera que el proceso termina cuando se introduce un nmero negativonumero = 0producto = 1input "Ingrese un numero" numero;while numero > 0producto = producto*numeroinput "Ingrese un numero" numero;endwhileprint "El producto de los numero es: " producto;

17.Se ingresa un conjunto de n alturas de personas por teclado.Mostrar las alturas promedios de las personasA = array[1...n]suma = 0promedio = 0for i = 1 to ninput "Ingrese la altura" a[i]suma = suma + a[i]promedio = suma/nendforprint "El promedio de las alturas es: " promedio;

18.En una empresa trabajan n empleados cuyos sueldos oscilan entre $100 y $500,realizar un programa que lea los sueldos que cobra cada empleados e informecuantos empleados cobran entre %100 y 300 y cuantos cobran ms d %300.Adems el programa deber informar el importe que gasta la empresa en el sueldo del personalB = array[1...n]sueldo1 = 0sueldo2 = 0sueldoT = 0for i = 1 to nif b[i] > 100 and b[i] < 500sueldo1 = sueldo1 + 1elsesueldo2 = sueldo2 + 1 endifsueldoT = sueldoT + b[i]endforprint sueldo1;print sueldo2;print sueldoT;

19.Realizar un programa un programa que imprima 25 trminos de la serie 11 22 33 44 , etc.(no se ingresan valores por teclado)for i = 1 to 25for j = 1 to 25if i = jprint ijendifendforendfor

20.Desarrollar un programa que permita cargar n nmeros enteros y luego nos informe cuantos valoresfueron pares y cuantos imparesA = array[1...n]pares = 0impares = 0for i = 1 to nresiduo = i res 2if residuo = 0pares = pares + 1elseimpares = impares + 1endifendforprint pares;print impares;

21.Desarrollar un programa que permita la carga de 10 valores por teclado y nos muestreposteriormente la suma de los valores ingresados y su promedioA = array[1...10]suma = 0promedio = 0for i = 1 to 10input a[i];suma = suma + a[i]promedio = suma/iendforprint suma;print promedio;

22.Una planta que fabrica perfiles de hierro posee un lote de n piezas. Confeccionar un programa quepida ingresar por teclado la cantidad de piezas a procesar y luego ingrese la longitud de cada perfil;sabiendo que la pieza cuya longitud este comprendida en el rango de 1,20 y 1,30 son aptas.Imprimir por pantalla la cantidad de piezas aptas que hay en el lote.A = array[1...n]pz = 0cantidad = 0input "Ingrese la cantidad de piezas" pz;for i = 1 to pzinput "Ingrese la longitud de la pieza" a[i];if a[i] > 1,20 and a[i] < 1,30cantidad = cantidad + 1endifendforprint "Cantidad de piezas aptas: " cantidad;

23.Un supermercado ha puesto en oferta la venta al por mayor de cierto producto, ofreciendo un descuento de 15% por la compra de ms de 3 docenas y 10% en caso contrario. Adems por la compra de ms de 3 docenas se obsequia una unidad del producto por cada docena en exceso sobre 3. Disee un algoritmo que determine el monto de la compra, el monto de descuento, el monto a pagar y el nmero de unidades de obsequio por la compra de cierta cantidad de docenas del producto

cantidad = 0, monto = 0, montod = 0, montop = 0, precio = 0, regalo = 0input "Ingrese la cantidad" cantidad;if cantidad > 36monto = precio*cantidadmontod = monto*0.15montop = monto*0.85elsemonto = precio*cantidadmontod = monto*0.10montop = monto*0.90endifregalo = cantidad div 36print "Monto de la compra: " monto;print "Monto de descuento: " montod;print "Monto a pagar: " montop;print "Unidades de obsequio: " regalo;

24.Disee un algoritmo que lea un nmero de tres cifras y determine si es igual al revs del nmero

A = array[1...3]B = array[1...3]input "Ingrese un numero" numero;while numero < 100 or numero > 999input "Ingrese un numero de tres digitos" numero;endwhile

while numero > 0cont = cont + 1numero = numero div 10endwhilefor i = 1 to contpot = 10^(cont - i)digito = numero div potnumero = numero - digito*potj = cont+1-ia[i] = digitob[j] = digito

endforfor i = 1 to contif a[i] = b[i]acum = acum + 1endifendforif cont = acumprint "El numero es igual al reves";elseprint "El numero no es igual al reves";endif

25.Disee un algoritmo que lea tres longitudes y determine si forman o no un tringulo. Si es un tringulo determine de qu tipo de triangulo se trata entre: equiltero (si tiene tres lados iguales), issceles (si tiene dos lados iguales) o escaleno (si tiene tres lados desiguales). Considere que para formar un tringulo se requiere que: el lado mayor sea menor que la suma de los otros dos lados.lado1 = 0, lado2 = 0, lado3 = 0, cat1 = 0, cat2 = 0, ladomayor = 0input "Ingrese lado 1" lado1;input "Ingrese lado 2" lado2;input "Ingrese lado 3" lado3;// encontrar el mayor ladoif lado1 > lado2cat1 = lado2if lado1 > lado3 ladomayor = lado1cat2 = lado3elseladommayor = lado3cat2 = lado1endifelsecat1 = lado1if lado2 > lado3 ladomayor = lado2cat2 = lado3elseladommayor = lado3cat2 = lado2endifendif// ver si cumple reglaif ladomayor < cat1 + cat2// ver tipo de trianguloif lm = cat1 Y ladomayor = cat2print "Es un triagulo equiltero";endifif cat1 = cat2print "Es un triagulo isceles";endifif ladomayor cat1 and ladomayor cat2 and cat1 cat2print "Es un triagulo escaleno";endifelseprint "No es un triangulo."Endif

26.El promedio de prcticas de un curso se calcula en base a cuatro prcticas calificadas de las cuales se elimina la nota menor y se promedian las tres notas ms altas. Disee un algoritmo que determine la nota eliminada y el promedio de prcticas de un estudiante

A =array[1...4]menor = 1000000, suma = 0, prom = 0for i = 1 to 4if menor > a[i]menor = a[i]endifendforfor i = 1 to 4if menor a[i]suma = suma + a[i]prom = suma/3endifendforprint "Nota menor" menor;print "Promedio de practicas: " prom;

27.Calcular el acumulado de las edades de un grupo de n personas siempre y cuando dichas edades sean mayores a 18 y no pases de 45; y termine cuando ingresa valor cero

edad = 0, suma = 0for i = 1 to ninput "Ingrese edad" edad;if edad > 18 and edad < 45suma = suma + edadendifif edad = 0exitendifendfor

28.Programa que calcula el promedio de las edades menores a 20 y mayores a 55 de un grupo de n personasedad = 0, suma = 0for i = 1 to ninput "Ingrese edad" edad;if edad < 20 or edad > 55suma = suma + edadendifendfor

29.Hacer en programa que muestre los nmeros pares entre 1000 y 0. No se escribir los nmeros que se encuentre en el rango de 200 a 50numero = 0

for i = 0 to 1000 skip -1if i > 200 or i < 50numero = i res 2if numero = 0print iendifendifendfor

30.Dados n nmeros, hacer un programa que determine la suma de los que sean mayores a cero, el producto de los menores que cero y se cuenten cuantos nmeros son iguales a cero

A = array[1...n]numero = 0, suma = 0, prod = 1, cero = 0for i = 1 to n

input "Ingrese un numero" numero;numero = a[i]if a[i] > 0suma = suma + a[i]elseif a[i] < 0prod = prod*a[i]elsecero = cero + 1endifendif

endforprint suma;print prod;print cero;

31.Crear un algoritmo para hallar el nmero de veces que se ha calculado en el rea del rectngulo con longitudes iniciales de 100 y 90 cm, mientras aumenta en 0.5 y 1 cm respectivamente. Hasta que su rea sea mayor que 20000

cont = 0lado1 = 100lado2 = 90area = lado1*lado2while area < 20000

lado1 = lado1 + 0.5lado2 = lado2 + 1area = lado1*lado2cont = cont + 1endwhileprint "Se calculo el rea" cont " veces";

32.Desarrolle un algoritmo que permita calcular el promedio de notas; finaliza cuando n=0

nota = 0, suma = 0, cont = 0, prom = 0for i = 1 to ninput "Ingrese la nota" nota;if nota = 0exit;endifcont = cont + 1suma = suma + notaprom = suma/contendforprint prom;

33.Desarrolle un algoritmo para que la empresa constructora Casas S.A., que le permita calcular e imprimir la nmina para su cancelacin a un total de 50 obreros calificados a quienes debe cancelar por horas trabajadas. La hora trabajada se pauto en 30.0 nuevos soles

nomina = 0, horas = 0for i = 1 to 50input "Ingrese horas trabajadas" horas;nomina = nomina + horas*30endforprint nomina;

35.Se pide elaborar un algoritmo que ingrese 10 nmeros e indique cuantos nmeros son pares, impares, su media y su desviacin estndar

for i = 1 to 10input "Ingrese numero" numero;residuo = numero res 2if residuo = 0par = par + 1elseimpar = impar + 1endifcont = cont + 1suma = suma + numeromedia = suma/contdesv = endforprint par;print impar;print media;print desv;

37.Se pide elaborar el algoritmo que ingrese un nmero entero, halle la suma de sus cifras elevados al cuadrado

numero = 0, cont = 0, digito = 0, pot = 0, pot2 = 0, suma = 0input "Ingrese un numero" numero;while numero > 0cont = cont + 1numero = numero div 10endwhilefor i = 1 to contpot = 10^(cont - i)digito = numero div potnumero = numero - digito*potpot2 = digito^2suma = suma + pot2endforprint suma;

38.Disear un algoritmo que lea la temperatura promedio de un da e imprima el tipo de clima correspondiente de acuerdo a la siguiente tabla:temp = 0input "Ingrese la temperatura" temp;if temp 10 and temp 20 and temp