Ejercicios de Free Basic 38

35
1. Programa que permite ingresar e imprimir cierta cantidad de números y luego realizar la búsqueda de cualquiera de los números ingresados. Imprime el número y la posición en donde se encuentra el número buscado. 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)

Transcript of Ejercicios de Free Basic 38

Page 1: Ejercicios de Free Basic 38

1. Programa que permite ingresar e imprimir cierta cantidad de números y luego realizar la búsqueda de cualquiera de los números ingresados. Imprime el número y la posición en donde se encuentra el número buscado.

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

Page 2: Ejercicios de Free Basic 38

NEXT

2. Programa que permite ingresar 8 números y realizar la búsqueda del mayor y menor imprimiendo también su posición.

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

Page 3: Ejercicios de Free Basic 38

        END IF

NEXT

PRINT "El mayor es: "; may, "Posición ", PosMay

PRINT "El Menor es: "; men, "Posición ", PosMen

3. Programa que soporta ingresar e imprimir cierta cantidad de números mayores de 100 y menores de 500. Permite realizar la búsqueda de un número cualquiera imprimiéndolo junto a su posición.

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

Page 4: Ejercicios de Free Basic 38

        IF busca = Numeros(i) THEN

                PRINT "Posicion ", i, " Número: ", Numeros(i)

                EXIT FOR

        END IF

NEXT

4. Elaborar un algoritmo que permita ingresar 20 números y muestre todos los números ingresados menores e iguales a 25.

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

5. Elaborar un algoritmo, que permita el ingreso de 10 números enteros. El programa debe sumar todos los números que sean múltiplos de 3 e imprimirlo.

CLS

FOR i = 1 TO 10

INPUT "numero: ", Numero

IF Numero MOD 3 = 0 THEN

        Suma = Suma + Numero

Page 5: Ejercicios de Free Basic 38

END IF

NEXT

PRINT "La suma es: ", Suma

6. Diseñar un algoritmo que me permita calcular los 5 primeros números perfecto (un número es perfecto, cuando la suma de sus divisores, sin incluirlo al número es exactamente el mismo número). El 6 es un número perfecto ya que sus divisores son 1,2 y 3 suman 6. La solución hace que el computador tome un buen tiempo para completar los 5 números.

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

Page 6: Ejercicios de Free Basic 38

 

7. Hacer un programa que calcule el factorial de un número 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

Page 7: Ejercicios de Free Basic 38

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 año es bisiesto. Teniendo en cuenta que un año es bisiesto si es múltiplo de 4. Los años múltiplos de 100 no son bisiestos, salvo si ellos son también múltiplos de 400.

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"

Page 8: Ejercicios de Free Basic 38

        END IF

END IF

9. Hacer un programa que sume los números que son múltiplos 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, solución 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

Page 9: Ejercicios de Free Basic 38

    nAnt = nAct

    nAct = nSig

    Con = Con + 1

LOOP

11. Programa que suma los n primeros números naturales.

CLS

INPUT "Cantidad: ", N

FOR i = 0 TO N

        suma = suma + i

NEXT

PRINT suma

12. Dada la duración (en minutos) en una llamada telefónica. 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

Page 10: Ejercicios de Free Basic 38

13. Hacer un programa para convertir un número natural en romano. Solución adquirida de la página de Microsoft, soporta la conversión hasta el año 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) +           MID$(Digits, I, 1) + Temp

            CASE 4

              Temp = MID$(Digits, I, 2) + Temp

            CASE 5

              Temp = MID$(Digits, I + 1, 1) + Temp

            CASE 6

Page 11: Ejercicios de Free Basic 38

              Temp = MID$(Digits, I + 1, 1) + MID$(Digits, I, 1) +                   Temp

            CASE 7

              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

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

Page 12: Ejercicios de Free Basic 38

                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 condición de que: si el recorrido supera los 800 kilómetros o a su vez el número de días de estadía 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

Page 13: Ejercicios de Free Basic 38

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

Page 14: Ejercicios de Free Basic 38

        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 mínimo común múltiplo de 3 números.

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

Page 15: Ejercicios de Free Basic 38

               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 "Mínimo Común Múltiplo: ", acum

19. Hacer un programa que calcule el máximo común divisor de 3 números ingresados por el teclado.

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

Page 16: Ejercicios de Free Basic 38

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

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

Page 17: Ejercicios de Free Basic 38

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

Page 18: Ejercicios de Free Basic 38

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 números primos entre dos números ingresados por el teclado.

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

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$

Page 19: Ejercicios de Free Basic 38

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 número natural menor de 9 a un número 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

Page 20: Ejercicios de Free Basic 38

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 números 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

Page 21: Ejercicios de Free Basic 38

25. Escriba un programa que permita ingresar un número n entero positivo mayor o igual que 10 y menor o igual que 50; luego imprima los múltiplos 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 números ingresados por el teclado.

DIM Vec1(10) AS DOUBLE

CLS

Page 22: Ejercicios de Free Basic 38

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

27. Escribir un programa que ordene descendentemente 10  números ingresados por el teclado.

DIM Vec2(10) AS DOUBLE

CLS

Tam = 10

FOR i = 1 TO 10

Page 23: Ejercicios de Free Basic 38

        INPUT "Ingrese un N£mero: ", 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 "==ORDENACIÓN DESCENDENTE=="

FOR i = 1 TO 10

        PRINT "Numero", Vec2(i)

NEXT

28. Escribir un programa que permita pasar un número natural cualquiera a binario.

DIM Num, Cuo, Res AS INTEGER

DIM NN AS STRING

CLS

INPUT "INGRESE UN NUMERO NATURAL: ", Num

DO

Page 24: Ejercicios de Free Basic 38

    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 número binario cualquiera a un número natural.

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

30. Hacer un programa que invierta un texto ingresado por el teclado.

DIM NB, TextoI AS STRING

CLS

Page 25: Ejercicios de Free Basic 38

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 múltiplos 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

Page 26: Ejercicios de Free Basic 38

        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 números pares entre 1000 y 0. No se escribirá los números que se encuentren en el rango de 200 A 50.

CLS

X = 1000

DO WHILE X > 0

        X = X - 2

Page 27: Ejercicios de Free Basic 38

        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 números pares ente 1000 y 0 pero no escribirá los números 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 números, 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 números son iguales a cero.

CLS

INPUT "CANTIDAD DE NÚMEROS: ", C

X = 0

P = 1

S = 0

Page 28: Ejercicios de Free Basic 38

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 triángulos. Calcular cuántas áreas son pares, cuántas impares, cuántas no se pudieron calcular por no existir el Triángulo.

CLS

X = 0

P = 1

S = 0

DO WHILE X <= 35

X = X + 1

Page 29: Ejercicios de Free Basic 38

        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 triángulo de mayor área.

CLS

X = 0

P = 1

Page 30: Ejercicios de Free Basic 38

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

Page 31: Ejercicios de Free Basic 38

               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 triángulo 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

Page 32: Ejercicios de Free Basic 38

               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