CLS INPUT "Ingrese un número: ", Num Factorial = 1 DO i=i+1 Factorial = Factorial * i LOOP WHILE i < Num 'PRINT "Factorial= ", Factorial
Compendio de
ALGORITMOS • • • • •
Estructuras secuenciales Estructuras condicionales Estructuras de selección Estructuras repetitivas o bucles Arreglos
Abraham Sopla Maslucán Escuela Profesional de Ingeniería de Sistemas Universidad Nacional Toribio Rodríguez de Mendoza
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería Ingeniería de Sistemas Sistemas
La presentación y disposición de: COMPENDIO DE ALGORITMOS
Son propiedad del autor: Abraham Sopla Maslucán Ingeniero de Sistemas – Universidad Universidad Nacional de Cajamarca, maestro en Ciencias de la Computación, Instituto Tecnológico de Monterrey, México. Doctorando en Ingeniería de Sistemas e Informática, Universidad Nacional Mayor de San Marcos, Perú. Profesor en la Escuela Profesional de Ingeniería de Sistemas, Universidad Nacional Toribio Rodríguez de Mendoza.
[email protected] Av. Los Rosales Cdra 6, Carretera al anexo de Taquia - Telf. 941986484 Chachapoyas – Perú Perú
Este documento ha sido publicado bajo la licencia Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 Perú. Para ver una copia de dicha licencia, visite: http://creativecommons.org/licenses/by-nc-sa/2.5/pe/
Segunda edición 2017
Abraham Sopla Maslucán
2|Página
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería Ingeniería de Sistemas
A MANERA DE INTRODUCCIÓN El presente compendio comprende la solución de los ejercicios y problemas prácticos en pseudocódigo y lenguaje Basic clásicos a lo largo de los trece años de experiencia como docente universitario, los mismos que en su oportunidad han sido consultados por los estudiantes de la Universidad y algunos centros de estudios superiores al e-mail
[email protected],, otros han sido propuestos
[email protected] como ejercicios en exámenes de graduación en el I. S. T. Perú Japón, entre ellos están los más conocidos como: factorial, serie Fibonacii, cambio de base de números, Mínimo Común Múltiplo y Máximo Común Divisor, ordenación, entre otros. Para cada solución se usa el lenguaje Basic, un lenguaje para aprendices, quedando claro que los mismos se podrán adecuar fácilmente a otros lenguajes de programación. Por otro lado, se agradece seguir proponiendo la solución de otros problemas para lenguajes como: C++, Pascal, Basic, Java, Python, PHP, etc., También puede encontrar otros algoritmos en pseudocódigo y programados en lenguaje C++ en el texto elec trónico “Algoritmos y Lenguaje C”. Para probar los códigos de este compendio, basta copiarlos al block de notas y guardarlos con la extensión .bas y ejecutarlos desde el Basic. Finalmente sólo queda decir: “que este esfuerzo sirva en algo ”.
3|Página
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
DIM Numeros(100) AS INTEGER INPUT "cuantos números va ingresar ", n DO INPUT "NÚMERO: ", num IF num > 100 AND num < 500 THEN i=i+1 Numeros(i) = num END IF LOOP WHILE i <= n 'IMPRIMIENDO LOS NÚMEROS 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, " Número: ", Numeros(i) EXIT FOR END IF NEXT 4|Página
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
DIM Numeros(1 TO 8) AS INTEGER FOR i = 1 TO 8 INPUT "NÚMERO : ", num Numeros(i) = num NEXT 'IMPRIMIENDO LOS NÚMEROS 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, "Posición ", PosMay PRINT "El Menor es: "; men, "Posición ", PosMen
Abraham Sopla Maslucán
5|Página
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
DIM Numeros(100) AS INTEGER INPUT "cuantos números va ingresar ", n DO INPUT "NÚMERO : ", num IF num > 100 AND num < 500 THEN i=i+1 Numeros(i) = num END IF LOOP WHILE i <= n 'IMPRIMIENDO LOS NÚMEROS 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, " Número: ", Numeros(i) EXIT FOR END IF NEXT
Abraham Sopla Maslucán
6|Página
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
DIM Numeros AS STRING CLS FOR i = 1 TO 20 INPUT "Número: ", Numero IF Numero <= 25 THEN Numeros = Numeros + ", " + STR$(Numero) END IF NEXT PRINT "Números Menores o Iguales que 25: ", Numeros
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
Abraham Sopla Maslucán
7|Página
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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
Abraham Sopla Maslucán
8|Página
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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 Abraham Sopla Maslucán
9|Página
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
Factorial = Factorial * i NEXT PRINT "Factorial= ", Factorial
CLS INPUT "ingrese un numero: ", N IF N MOD 4 <> 0 THEN PRINT "El Año", N, "NO es bisiesto" ELSE IF N MOD 4 = 0 AND N MOD 400 <> 0 AND N MOD 100 = 0 THEN PRINT "El Año", N, "NO es bisiesto" END IF IF N MOD 4 = 0 AND N MOD 400 = 0 AND N MOD 100 = 0 THEN PRINT "El Año", N, "SI es bisiesto" END IF IF N MOD 4 = 0 AND N MOD 400 <> 0 AND N MOD 100 <> 0 THEN PRINT "El Año"; N, "SI es bisiesto" END IF END IF
Abraham Sopla Maslucán
10 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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
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 Abraham Sopla Maslucán
11 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
nAct = nSig Con = Con + 1 LOOP
CLS INPUT "Cantidad: ", N FOR i = 0 TO N suma = suma + i NEXT PRINT suma
✓ ✓
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
Abraham Sopla Maslucán
12 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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) + MID$(Digits, I, 1) + Temp CASE 4 Temp = MID$(Digits, I, 2) + Temp CASE 5 Temp = MID$(Digits, I + 1, 1) + Temp CASE 6 Temp = MID$(Digits, I + 1, 1) + MID$(Digits, I, 1) + Temp CASE 7
Abraham Sopla Maslucán
13 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
Temp = MID$(Digits, I + 1, 1) + MID$(Digits, I, 1) + MID$(Digits, 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) + Temp END SELECT I=I+2 LOOP PRINT "Número en Romano", Temp
CLS INPUT "Hora: ", Hora INPUT "Minuto: ", Minuto INPUT "Segundo: ", Segundo IF Segundo = 59 THEN Segundo = 0 Minuto = Minuto + 1 IF Minuto = 60 THEN Minuto = 0 Hora = Hora + 1 END IF END IF Abraham Sopla Maslucán
14 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
PRINT Hora, ":", Minuto, ":", Segundo
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
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 Abraham Sopla Maslucán
15 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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
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 Abraham Sopla Maslucán
16 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
END IF NEXT PRINT "Total a Pagar: ", Total
DIM a, b, c, d, acum AS LONG INPUT "Primer Número: ", a INPUT "Segundo Número: ", b INPUT "Tercer Número: ", 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 Abraham Sopla Maslucán
17 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
END IF acum = acum * d WEND d=d+1 WEND PRINT "Mínimo Común Múltiplo: ", acum
DIM a, b, c, d, mcd AS LONG INPUT "Primer N£mero: ", a INPUT "Segundo N£mero: ", b INPUT "Tercer N£mero: ", 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 "Máximo Común Divisor: ", mcd
Abraham Sopla Maslucán
18 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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 Abraham Sopla Maslucán
19 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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
DIM i, N1, N2, j AS INTEGER INPUT "NÚMERO INFERIOR: ", N1 INPUT "NÚMERO 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
Abraham Sopla Maslucán
20 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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)
DIM p, A, B, j AS LONG DIM Vec1(9) AS INTEGER Abraham Sopla Maslucán
21 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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
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
Abraham Sopla Maslucán
22 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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
DIM Vec1(10) AS DOUBLE Abraham Sopla Maslucán
23 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
CLS TAM = 10 FOR I = 1 TO 10 INPUT "Ingrese Número: ", 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 "Número: ", I, Vec1(I) NEXT
DIM Vec2(10) AS DOUBLE CLS Tam = 10 FOR i = 1 TO 10 INPUT "Ingrese un N£mero: ", Num Vec2(i) = Num NEXT FOR i = 1 TO Tam - 1 Abraham Sopla Maslucán
24 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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 "==ORDENACIÓN DESCENDENTE==" FOR i = 1 TO 10 PRINT "Numero", Vec2(i) NEXT
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$ Abraham Sopla Maslucán
25 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
DIM NB AS STRING CLS INPUT "DAME UN NÚMERO 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
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$
Abraham Sopla Maslucán
26 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
CLS x = 200 DO WHILE x <= 300 PRINT x x=x+5 LOOP
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
CLS INPUT "cantidad de personas: ", N Abraham Sopla Maslucán
27 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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
CLS X = 1000 DO WHILE X > 0 X=X-2 IF X > 50 AND X > 200 THEN PRINT X END IF LOOP
CLS Abraham Sopla Maslucán
28 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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
CLS INPUT "CANTIDAD DE NÚMEROS: ", 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 Abraham Sopla Maslucán
29 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
END IF END IF LOOP PRINT CE, S, P
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
Abraham Sopla Maslucán
30 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
ELSE ANC = ANC + 1 END IF LOOP PRINT "AREAS PARES", SAP PRINT "AREAS IMPARES", SAI PRINT "AREAS NO SE PUEDEN CALCULAR", ANC
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 Abraham Sopla Maslucán
31 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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
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 Abraham Sopla Maslucán
32 | P á g i n a
Facultad de Ingeniería de Sistemas y Mecánica Eléctrica Escuela Profesional de Ingeniería de Sistemas
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
Abraham Sopla Maslucán
33 | P á g i n a