You are on page 1of 32

1. Programa que permite ingresar e imprimir cierta cantidad de nmeros y luego realizar la bsqueda de cualquiera de los nmeros ingresados.

Imprime el nmero y la posicin en donde se encuentra el nmero buscado. DIM Numeros(100) AS INTEGER INPUT "cuantos nmeros va ingresar ", n DO INPUT "NMERO: ", num IF num > 100 AND num < 500 THEN i=i+1 Numeros(i) = num END IF LOOP WHILE i <= n 'IMPRIMIENDO LOS NMEROS FOR i = 1 TO n PRINT Numeros(i) NEXT 'Busqueda INPUT "dame un valor a buscar ", busca FOR i = 1 TO n IF busca = Numeros(i) THEN PRINT "Posicion ", i, " Nmero: ", Numeros(i) EXIT FOR END IF

NEXT 2. Programa que permite ingresar 8 nmeros y realizar la bsqueda del mayor y menor imprimiendo tambin su posicin. DIM Numeros(1 TO 8) AS INTEGER FOR i = 1 TO 8 INPUT "NMERO : ", num Numeros(i) = num NEXT 'IMPRIMIENDO LOS NMEROS FOR i = 1 TO 8 PRINT Numeros(i) NEXT 'Busqueda del mayor may = 0 men = 10000 FOR i = 1 TO 8 IF may < Numeros(i) THEN may = Numeros(i) PosMay = i END IF IF men > Numeros(i) THEN men = Numeros(i) PosMen = i

END IF NEXT PRINT "El mayor es: "; may, "Posicin ", PosMay PRINT "El Menor es: "; men, "Posicin ", PosMen 3. Programa que soporta ingresar e imprimir cierta cantidad de nmeros mayores de 100 y menores de 500. Permite realizar la bsqueda de un nmero cualquiera imprimindolo junto a su posicin. DIM Numeros(100) AS INTEGER INPUT "cuantos nmeros va ingresar ", n DO INPUT "NMERO : ", num IF num > 100 AND num < 500 THEN i=i+1 Numeros(i) = num END IF LOOP WHILE i <= n 'IMPRIMIENDO LOS NMEROS FOR i = 1 TO n PRINT Numeros(i) NEXT 'Busqueda INPUT "dame un valor a buscar ", busca FOR i = 1 TO n

IF busca = Numeros(i) THEN PRINT "Posicion ", i, " Nmero: ", Numeros(i) EXIT FOR END IF NEXT 4. Elaborar un algoritmo que permita ingresar 20 nmeros y muestre todos los nmeros ingresados menores e iguales a 25. DIM Numeros AS STRING CLS FOR i = 1 TO 20 INPUT "Nmero: ", Numero IF Numero <= 25 THEN Numeros = Numeros + ", " + STR$(Numero) END IF NEXT PRINT "Nmeros Menores o Iguales que 25: ", Numeros 5. Elaborar un algoritmo, que permita el ingreso de 10 nmeros enteros. El programa debe sumar todos los nmeros que sean mltiplos de 3 e imprimirlo. CLS FOR i = 1 TO 10 INPUT "numero: ", Numero IF Numero MOD 3 = 0 THEN Suma = Suma + Numero

END IF NEXT PRINT "La suma es: ", Suma 6. Disear un algoritmo que me permita calcular los 5 primeros nmeros perfecto (un nmero es perfecto, cuando la suma de sus divisores, sin incluirlo al nmero es exactamente el mismo nmero). El 6 es un nmero perfecto ya que sus divisores son 1,2 y 3 suman 6. La solucin hace que el computador tome un buen tiempo para completar los 5 nmeros. CLS Num = 5 C=0 DO WHILE C < 5 Num = Num + 1 Suma = 0 FOR i = 1 TO INT(Num / 2) IF Num MOD i = 0 THEN Suma = Suma + i END IF NEXT IF Num = Suma THEN C=C+1 PRINT "El Numero", Num END IF LOOP

7. Hacer un programa que calcule el factorial de un nmero ingresado por el teclado. Pudiendo ser solucionado de varias formas.

Primera Forma CLS INPUT "Ingrese un numero: ", Num Factorial = 1 DO i=i+1 Factorial = Factorial * i LOOP WHILE i < Num 'PRINT "Factorial= ", Factorial Segunda Forma CLS INPUT "Ingrese un numero: ", Num Factorial = 1 DO WHILE i < Num i=i+1 Factorial = Factorial * i LOOP PRINT "Factorial= ", Factorial Tercera Forma

CLS INPUT "Ingrese un numero: ", Num Factorial = 1 FOR i = 1 TO Num Factorial = Factorial * i NEXT PRINT "Factorial= ", Factorial 8. Escribir un algoritmo que determine si un ao es bisiesto. Teniendo en cuenta que un ao es bisiesto si es mltiplo de 4. Los aos mltiplos de 100 no son bisiestos, salvo si ellos son tambin mltiplos de 400. CLS INPUT "ingrese un numero: ", N IF N MOD 4 <> 0 THEN PRINT "El Ao", N, "NO es bisiesto" ELSE IF N MOD 4 = 0 AND N MOD 400 <> 0 AND N MOD 100 = 0 THEN PRINT "El Ao", N, "NO es bisiesto" END IF IF N MOD 4 = 0 AND N MOD 400 = 0 AND N MOD 100 = 0 THEN PRINT "El Ao", N, "SI es bisiesto" END IF IF N MOD 4 = 0 AND N MOD 400 <> 0 AND N MOD 100 <> 0 THEN PRINT "El Ao"; N, "SI es bisiesto"

END IF END IF 9. Hacer un programa que sume los nmeros que son mltiplos de 3, 5 y de 7 entre 100 y 300. CLS Num = 100 DO WHILE Num <= 300 Num = Num + 1 IF Num MOD 3 = 0 OR Num MOD 5 = 0 OR Num MOD 7 = 0 THEN Acumulado = Acumulado + Num END IF LOOP PRINT "Acumulado", Acumulado 10. Escribir la serie de fibonacci de n. La serie es: 1, 1, 2, 3, 5, 8, 13, 21, 34 n elementos. Este problema se puede resolver usando procesos recursivos, solucin que se encuentra en Algoritmos y Leguaje C CLS INPUT "Cantidad de Elementos de la Serie Fibonacii: ", CaElementos Con = 0 nAct = 1 nAnt = 1 DO WHILE (Con < CaElementos) PRINT nAnt nSig = nAnt + nAct

nAnt = nAct nAct = nSig Con = Con + 1 LOOP 11. Programa que suma los n primeros nmeros naturales. CLS INPUT "Cantidad: ", N FOR i = 0 TO N suma = suma + i NEXT PRINT suma 12. Dada la duracin (en minutos) en una llamada telefnica. Calcular su costo de la siguiente manera: Hasta 3 minutos el costo es de 0.50 Por encima de 3 minutos al costo hay que sumar 0.10 por cada minuto adicional a los 3 primeros. CLS INPUT "Minutos: ", NM IF NM <= 3 THEN Costo = NM * .5 ELSE Costo = 3 * .5 + (NM - 3) * (.6) END IF PRINT Costo Total por la LLamada, Costo

13. Hacer un programa para convertir un nmero natural en romano. Solucin adquirida de la pgina de Microsoft, soporta la conversin hasta el ao 3999. DIM I AS INTEGER, Digit AS INTEGER, Temp AS STRING CONST Digits = "IVXLCDM" INPUT "Numero Narutal: ", N I=1 Temp = "" DO WHILE N > 0 Digit = N MOD 10 N = N \ 10 SELECT CASE Digit CASE 1 Temp = MID$(Digits, I, 1) + Temp CASE 2 Temp = MID$(Digits, I, 1) + MID$(Digits, I, 1) + Temp CASE 3 Temp = MID$(Digits, I, 1) + MID$(Digits, I, 1) + I, 1) + Temp CASE 4 Temp = MID$(Digits, I, 2) + Temp CASE 5 Temp = MID$(Digits, I + 1, 1) + Temp CASE 6 MID$(Digits,

Temp = MID$(Digits, I + 1, 1) + MID$(Digits, I, 1) + Temp CASE 7 Temp = MID$(Digits, I + 1, 1) + MID$(Digits, I, 1) + I, 1) + Temp CASE 8 Temp = MID$(Digits, I + 1, 1) + MID$(Digits, I, 1) + MID$(Digits, I, 1) + MID$(Digits, I, 1) + Temp CASE 9 Temp = MID$(Digits, I, 1) + MID$(Digits, I + 2, 1) + END SELECT I=I+2 LOOP PRINT "Nmero en Romano", Temp 14. Dada una hora, por ejemplo en horas, minutos, y hacer un programa para calcular la hora en el siguiente segundo. CLS INPUT "Hora: ", Hora INPUT "Minuto: ", Minuto INPUT "Segundo: ", Segundo IF Segundo = 59 THEN Segundo = 0 Minuto = Minuto + 1 IF Minuto = 60 THEN Temp MID$(Digits,

Minuto = 0 Hora = Hora + 1 END IF END IF PRINT Hora, ":", Minuto, ":", Segundo 15. Hacer un programa para calcular el pago por un boleto de viaje con la condicin de que: si el recorrido supera los 800 kilmetros o a su vez el nmero de das de estada es mayor a 7 el descuento es del 3%, si el pago por km recorrido es de 12.5 soles. CLS INPUT "Ingrese el Kilometraje: ", Kil INPUT "Ingrese el Numero de Dias: ", NDE IF Kil > 800 AND NDE > 7 THEN Boleto= Kil * 12.5 - Kil * 12.5 * .03 ELSE Boleto = Kil * 12.5 END IF PRINT Boleto 16. Programa de la tabla de multiplicar descendente. Primera Forma CLS FOR i = 12 TO 0 STEP -1 PRINT "2x", i, "="; 2 * i NEXT

Segunda Forma CLS DO PRINT "2x", i, "="; 2 * i i=i+1 LOOP WHILE i <= 12 Tercera Forma CLS DO WHILE i <= 12 PRINT "2x", i, "="; 2 * i i=i+1 LOOP Cuarta Forma CLS DO UNTIL i >= 13 PRINT "2x", i, "="; 2 * i i=i+1 LOOP 17. Calcular el total de las ventas de cinco clientes en un restaurante. Ante cualquier consumo que supere los 70 soles se har un descuento del 5%. Imprima el monto total consumido. CLS FOR i = 1 TO 5

INPUT "Pague: ", Consumo PRINT "Pago por el Men: ", Consumo Total = Total + Consumo IF Total > 70 THEN Total = Total - Total * .05 END IF NEXT PRINT "Total a Pagar: ", Total 18. Hacer un programa que permita calcular el mnimo comn mltiplo de 3 nmeros. DIM a, b, c, d, acum AS LONG INPUT "Primer Nmero: ", a INPUT "Segundo Nmero: ", b INPUT "Tercer Nmero: ", c d=2 acum = 1 WHILE ((a <> 1) OR (b <> 1) OR (c <> 1)) WHILE ((a MOD d = 0) OR (b MOD d = 0) OR (c MOD d = 0)) IF (a MOD d = 0) THEN a=a/d ELSE a=a END IF

IF (b MOD d = 0) THEN b=b/d ELSE b=b END IF IF (c MOD d = 0) THEN c=c/d ELSE c=c END IF acum = acum * d WEND d=d+1 WEND PRINT "Mnimo Comn Mltiplo: ", acum 19. Hacer un programa que calcule el mximo comn divisor de 3 nmeros ingresados por el teclado. DIM a, b, c, d, mcd AS LONG INPUT "Primer Nmero: ", a INPUT "Segundo Nmero: ", b INPUT "Tercer Nmero: ", c d=2 mcd = 1

r=0 IF ((a <> 1) AND (b <> 1) AND (c <> 1)) THEN WHILE ((a MOD d = 0) AND (b MOD d = 0) AND (c MOD d = 0)) r=r+1 a=a/d b=b/d c=c/d WEND mcd = 2 ^ r END IF PRINT "Mximo Comn Divisor: ", mcd 20. Dado un texto, escribir un programa que imprima la cantidad de cada una de las vocales incluidas en el texto. DIM Tama AS INTEGER DIM Texto AS STRING CLS INPUT "ESCRIBA UN TEXTO: ", Texto$ Texto$ = UCASE$(Texto) Tama = LEN(Texto$) FOR i = 1 TO Tama IF MID$(Texto$, i, 1) = "A" THEN va = va + 1 END IF

NEXT FOR i = 1 TO Tama IF MID$(Texto$, i, 1) = "E" THEN ve = ve + 1 END IF NEXT FOR i = 1 TO Tama IF MID$(Texto$, i, 1) = "I" THEN vi = vi + 1 END IF NEXT FOR i = 1 TO Tama IF MID$(Texto$, i, 1) = "O" THEN vo = vo + 1 END IF NEXT FOR i = 1 TO Tama IF MID$(Texto$, i, 1) = "U" THEN vu = vu + 1 END IF NEXT PRINT "Vocales a: ", va

PRINT "Vocales e: ", ve PRINT "Vocales i: ", vi PRINT "Vocales o: ", vo PRINT "Vocales u: ", vu 21. Hacer un programa que permita calcular todos los nmeros primos entre dos nmeros ingresados por el teclado. DIM i, N1, N2, j AS INTEGER INPUT "NMERO INFERIOR: ", N1 INPUT "NMERO SUPERIOR: ", N2 FOR i = N1 TO N2 j=2 DO WHILE i MOD j <> o j=j+1 IF i = j THEN PRINT " ", i END IF LOOP NEXT 22. Escriba un programa que determine cuantas vocales, consonantes y espacios en blanco existen en un texto. DIM i AS INTEGER DIM Textito, Captura AS STRING INPUT "INGRESE EL TEXTO: ", Textito$

Textito$ = UCASE$(Textito$) FOR i = 1 TO LEN(Textito$) Captura$ = MID$(Textito$, i, 1) SELECT CASE Captura CASE IS = "A": vocal = vocal + 1 CASE IS = "E": vocal = vocal + 1 CASE IS = "I": vocal = vocal + 1 CASE IS = "O": vocal = vocal + 1 CASE IS = "U": vocal = vocal + 1 END SELECT IF MID$(Textito$, i, 1) = " " THEN blanco = blanco + 1 END IF NEXT PRINT "Vocales: "; vocal PRINT "Espacios en blanco: ", blanco PRINT "Consonantes: ", LEN(Textito$) - (vocal + blanco) 23. Hacer un programa que pase un nmero natural menor de 9 a un nmero de otra base. DIM p, A, B, j AS LONG DIM Vec1(9) AS INTEGER INPUT "NUMERO MAYOR DE 2 Y MENOR DE 10: ", A INPUT "NUMERO BASE: ", B

i=0 IF ((A >= 2) AND (A <= 10)) THEN DO WHILE (A > 0) i=i+1 Vec1(i) = A MOD B A=A\B LOOP j=i END IF FOR p = j TO 1 STEP -1 PRINT STR$(Vec1(p)) NEXT 24. Escribir un programa que imprima los nmeros del 1 al 10, cada uno de ellos con su respectiva factorial. FOR i = o TO 10 IF i = 0 OR i = 1 THEN f=1 ELSE f=f*i END IF PRINT "Factorial" + STR$(i) + "==>" + STR$(f) NEXT

25. Escriba un programa que permita ingresar un nmero n entero positivo mayor o igual que 10 y menor o igual que 50; luego imprima los mltiplos menores que 1000 as como sus divisores respectivos. DIM Vec1(1000), Vec2(1000) AS DOUBLE CLS INPUT "INGRESE UN NUMERO MAYOR A 10 Y MENOR A 50: ", Numero IF Numero >= 10 AND Numero <= 50 THEN j=1 a=1 DO a = Numero * j PRINT a j=j+1 LOOP WHILE a < 1000 FOR i = 1 TO Numero 'para hallar los divisores IF Numero MOD i = 0 THEN PRINT "Divisores: ", i END IF NEXT END IF 26. Escribir un programa que ordene ascendentemente 10 nmeros ingresados por el teclado. DIM Vec1(10) AS DOUBLE CLS

TAM = 10 FOR I = 1 TO 10 INPUT "Ingrese Nmero: ", Num Vec1(I) = Num NEXT FOR I = 1 TO TAM - 1 FOR j = 1 TO TAM - 1 IF Vec1(j) > Vec1(j + 1) THEN temp = Vec1(j) Vec1(j) = Vec1(j + 1) Vec1(j + 1) = temp END IF NEXT NEXT FOR I = 1 TO 10 PRINT "Nmero: ", I, Vec1(I) NEXT 27. Escribir un programa que ordene descendentemente 10 nmeros ingresados por el teclado. DIM Vec2(10) AS DOUBLE CLS Tam = 10 FOR i = 1 TO 10

INPUT "Ingrese un Nmero: ", Num Vec2(i) = Num NEXT FOR i = 1 TO Tam - 1 FOR j = 1 TO Tam - 1 IF Vec2(j) < Vec2(j + 1) THEN temp = Vec2(j) Vec2(j) = Vec2(j + 1) Vec2(j + 1) = temp END IF NEXT NEXT PRINT "==ORDENACIN DESCENDENTE==" FOR i = 1 TO 10 PRINT "Numero", Vec2(i) NEXT 28. Escribir un programa que permita pasar un nmero natural cualquiera a binario. DIM Num, Cuo, Res AS INTEGER DIM NN AS STRING CLS INPUT "INGRESE UN NUMERO NATURAL: ", Num DO

Res = Num MOD 2 Cuo = Num \ 2 Num = Cuo NN$ = NN$ + STR$(Res) LOOP WHILE Num > 0 FOR i = LEN(NN$) TO 1 STEP -1 a$ = a$ + MID$(NN$, i, 1) NEXT PRINT "Numero", a$ 29. Escribir un programa que permita pasar un nmero binario cualquiera a un nmero natural. DIM NB AS STRING CLS INPUT "DAME UN NMERO BINARIO; ", NB$ T = LEN(NB$) NUMERO = 0 FOR i = 1 TO T NUMERO = NUMERO + VAL(MID$(NB$, i, 1)) * 2 ^ (T - i) NEXT PRINT NUMERO 30. Hacer un programa que invierta un texto ingresado por el teclado. DIM NB, TextoI AS STRING CLS

INPUT "ESCRIBA UN TEXTO; ", NB$ LT = LEN(NB$) FOR i = LT TO 1 STEP -1 TextoI$ = TextoI$ + MID$(NB$, i, 1) NEXT PRINT TextoI$ 31. Hacer un programa que muestre los mltiplos de 5 comprendidos entre 200 y 300. Iniciar el contador en 200. CLS x = 200 DO WHILE x <= 300 PRINT x x=x+5 LOOP 32. Calcular el acumulado de las edades de un grupo de N personas siempre y cuando dichas edades sean mayores a 18 y no pasen de 45. CLS INPUT "cantidad de personas: ", n x=1 DO WHILE x < n INPUT "EDAD; ", E IF E > 18 AND E <= 45 THEN SUMA = SUMA + E

END IF x=x+1 LOOP PRINT "ACUMULADO ES: ", SUMA 33. Programa que calcula el promedio de las edades menores a 20 y mayores a 55 de un grupo de N personas. CLS INPUT "cantidad de personas: ", N x=0 DO WHILE x < N INPUT "EDAD; ", E IF E < 20 OR E > 55 THEN SUMA = SUMA + E END IF x=x+1 LOOP PRINT "PROMEDIO ES: "; SUMA / N 34. Hacer en programa que muestre los nmeros pares entre 1000 y 0. No se escribir los nmeros que se encuentren en el rango de 200 A 50. CLS X = 1000 DO WHILE X > 0 X=X-2

IF X > 50 AND X > 200 THEN PRINT X END IF LOOP 35. Hacer un programa que en cada vuelta vaya mostrando los acumulados de los nmeros pares ente 1000 y 0 pero no escribir los nmeros cuando el contador se encuentra entre el rango de 200 a 50. CLS X = 1000 DO WHILE X > 0 X=X-2 IF X > 50 AND X > 200 THEN SUMA = SUMA + X PRINT X, SUMA END IF LOOP 36. 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. CLS INPUT "CANTIDAD DE NMEROS: ", C X=0 P=1 S=0

DO WHILE X < C X=X+1 INPUT "NUMERO: ", N IF N = 0 THEN CE = CE + 1 ELSE IF N > 0 THEN S=S+N ELSE P=P*N END IF END IF LOOP PRINT CE, S, P 37. Si ingresamos los valores de los lados (a, b, c) de 35 tringulos. Calcular cuntas reas son pares, cuntas impares, cuntas no se pudieron calcular por no existir el Tringulo. CLS X=0 P=1 S=0 DO WHILE X <= 35 X=X+1

INPUT "LADO A: ", A INPUT "LADO B: ", B INPUT "LADO C: ", C IF A + B > C AND B + C > A AND A + C > B THEN S = (A + B + C) / 2 AREA = S * SQR((S - A) * (S - B) * (S - C)) IF AREA MOD 2 = 0 THEN SAP = SAP + 1 ELSE SAI = SAI + 1 END IF ELSE ANC = ANC + 1 END IF LOOP PRINT "AREAS PARES", SAP PRINT "AREAS IMPARES", SAI PRINT "AREAS NO SE PUEDEN CALCULAR", ANC 38. En el ejercicio anterior se desea conocer cual fue el tringulo de mayor rea. CLS X=0 P=1

S=0 MAYOR = 50000 DO WHILE X <= 35 X=X+1 PRINT "OTRA AREA" PRINT "================================================" INPUT "LADO A: ", A INPUT "LADO B: ", B INPUT "LADO C: ", C IF A + B > C AND B + C > A AND A + C > B THEN S = (A + B + C) / 2 AREA = S * SQR((S - A) * (S - B) * (S - C)) IF AREA MOD 2 = 0 THEN SAP = SAP + 1 ELSE SAI = SAI + 1 END IF IF MAYOR > AREA THEN MAYOR = AREA END IF ELSE ANC = ANC + 1

END IF LOOP PRINT "REAS PARES ", SAP PRINT "REAS IMPARES ", SAI PRINT "REAS NO SE PUEDEN CALCULAR ", ANC PRINT "REA MAYOR ", MAYOR 39. En el ejercicio anterior se desea conocer cual es el tringulo de menor rea. CLS X=0 P=1 S=0 MENOR = 0 DO WHILE X <= 35 X=X+1 PRINT "OTRA AREA" PRINT "================================================" INPUT "LADO A: ", A INPUT "LADO B: ", B INPUT "LADO C: ", C IF A + B > C AND B + C > A AND A + C > B THEN S = (A + B + C) / 2

AREA = S * SQR((S - A) * (S - B) * (S - C)) IF AREA MOD 2 = 0 THEN SAP = SAP + 1 ELSE SAI = SAI + 1 END IF IF MENOR < AREA THEN MENOR = AREA END IF ELSE ANC = ANC + 1 END IF LOOP PRINT "REAS PARES ", SAP PRINT "REAS IMPARES ", SAI PRINT "REAS NO SE PUEDEN CALCULAR ", ANC PRINT "REA MENOR", MENOR

You might also like