Laboratorio8 :Estructuras Logicas Condicionales - HernanSan/FundComputaciones-OF20 GitHub Wiki

3.10 Ejercicios propuestos

3.10.1 Condicionales

Por: Hernán Alejandro Sánchez Matamoros

1. Escriba instrucciones Si-Sino apropiadas para cada una de las siguientes condiciones:

a) Si un angulo es igual a 90 grados, imprima el mensaje “Elangulo es un angulo recto”; de lo contrario imprima el mensaje “El ´angulo no es un angulo recto”.

Inicio

//Declaracion de variables

angulo,i[o-n]

//Inicializacion de variables

angul<- 0

//Entrada de datos

<<"Ingrese el valor del angulo"

angulo

Si angulo==90 entonces

<<"EL angulo es un angulo recto

Sino

<<"El angulo no es un angulo recto

Fin_Si

FIn

b) Si la temperatura esta por encima de 100 grados, despliegue el mensaje

“arriba del punto de ebullicion del agua”; de lo contrario despliegue el

mensaje “abajo del punto de ebullicion del agua”.

Inicio

//Declaracion de variables

temp,d[0-n]

//Inicializacion de variables

temp<-0

//Entrada de datos

<<"Ingrese el valor de la temperatura"

temp

//Proceso

si temp>100 entonces

<<"Arriba del pounto de ebullicion"

Sino

<<"Abajo del punto de ebullicion"

Fin_SI

Fin

c) Si el numero es positivo, sume al numero sumpos, sino sume el numero

a sumneg.

Inicio

//Declaracion de variables

n,d[0-n]

//Inicializacion de variable

n<-0

//Ingreso de datos

<<"Ingrese el numero"

n

//Proceso

//Tomamos A como sumatoria de los nuemor positivos y B como sumatoria de los numeros negativos

Si n>0 entonces

 <<"A+n"

Sino

   <<"B+n"

Fin_Si

Fin

d) Si la pendiente es menor que 0.5, fije la variable flag en 0; de lo contrario fijar flag en 1.

Inicio

//Declaracion de variables

pen,d[0-n]

//Inicializacion de variables

pen<-0

//Ingreso de datos

<<"Ingrese el valor de la pendiente"

pen

//Proceso

Si pen<0.5 entonces

 flag<-0

Sino

 flag<-1

Fin_Si

Fin

e) Si la edad es mayor que 18, muestre el mensaje “La persona es mayor de

edad”; en caso contrario, muestre “La persona es menor de edad”.

Inicio

//declaracion de variables

edad,i[0-n]

//Inicializacion de variables

edad<-0

//Ingreso de datos

<<"Ingrese la edad"

edad

//Proceso

Si edad>=18 entonces

   <<"La persona es mayor de edad"

Sino

    <<"La persona es menor de edad"

f ) Si el ingreso es ‘F’, muestre el mensaje “Es una mujer”; en caso contrario,

“Es un hombre”.

Inicio

//Declaracion de variables

ing,X[A-Z]

//Inicualizacion de variable

ing<-0

//Ingreso de datos

<<"Ingrese la letra"

ing

Si ing==F entonces

 <<"Es una mujer"

Sino

 <<"Es un hombre"

Fin_Si

Fin

g) Si la diferencia entre voltios1 y voltios2 es menor que 0.001, la variable

aprox en 0, de lo contrario calcule aprox como la cantidad (voltios1-voltios2)/2.0.

Inicio

//Declaracion de variable

Volt1,volt2,aprox,d[0-n]

//Inicializacion de variable

Volt1<-0

volt2<-0

aprox<-0

//Ingreso de datos

<<"Ingrese el valor de voltio1"

volt1

<<"Ingrese el valor del voltio2"

volt2

//Proceso

Si (volt1-volt2)>0.001 entonces

   aprox<-0

Sino

   (voltios1-voltios2)/2.0

Fin_Si

Fin

h) Si la frecuencia es superior a 60, despliegue el mensaje “La frecuencia es

demasiado alta”.

Inicio

//Declaracion de variable

fre,d[0-n]

//Inicializacion de variable

fre<-0

//Entrada de datos

<<"Ingrese el valor de la frecuencia"

fre

Si fre>60 entonces

    <<"La frecuencia es demaciada altas"

Sino

     <<"La frecuencia es baja"

Fin_Si

Fin

i) Si la diferencia entre temp1 y temp2 excede 2.4, calcule error como

(temp1 - temp2)*0.01.

Inicio

//Declaracion de variables

temp1,temp2,d[0-n]

//Inicializacion de variable

temp1<-0

temp2<-0

//Entrada de datos

<<"Ingrese el valor de la temperatura 1"

temp1

<<"Ingrese el valor de la temperatura 2"

temp2

//Proceso

Si (temp1-temp2)>2.4 entonces

error<-(temp1-temp2)*0.01

j ) Si la diferencia entre teorico y experimental excede en 5, calcule error

como (teorico - experimental)*100/teorico.

Inicio

//Declaración de variables

teorico,experimental,d[0-n]

//Inicialización de variables

teorico<-0

experimental<-0

//Entrada de datos

<<"Ingre el valor de teorico"

teorico

<<"Ingrese el valor de experimental"

experimental

//Proceso

Si (teorico-experomental)>5 entonces

    error<- (teorico-experimental)*100/teorico

Fin_Si

Fin

k)Si x es mayor que y y z es menor que 20, lea un valor para p.

Inicio

//Declaracion de variables

x,y,z,p,i[0-n]

//Declaracion de inicializacion

x<-0

y<-0

z<-0

p<-0

//Entrada de datos

<<"Ingrese el valor de x: "

x

<<"Ingrese el valor de y: "

y

<<"Ingrese el valor de z: "

z

//Proceso

Si (x>y)&z<20 entonces

   <<"Ingrese un valor para P"

     >>P

l ) Si la distancia es mayor que 20 y es menor que 35, lea un valor para tiempo.

Inicializacion

//Declaracion de variables

distancia,tiempo,d[0-n]

//Inicializacion de variables

distancia<-0

tiempo<-0

//Entrada de datos

<<"Ingrese el valor de distancia"

distancia

//Proceso

Si 20<distancia<35 entonces

    >>Ingrese el valor de tiempo: "

    <<tiempo

Fin_Si

Fin

2. Haga un algoritmo que dada una fecha entre 01/01/1990 al 31/12/2010, de-termine si es correcta o incorrecta. Tenga en cuenta los a˜nos bisiestos.

Entrada: El día, mes y año de una fecha.

Salida: Deber´a decir si la fecha ingresada es valida o no.

Inicio

//Declaracin de variables

dia,mes,año,i[0-n]

//Inicializacion de variables

dia<-0

mes<-0

año<-0

//Entrada de datos

<<"Ingrese el dia2

dia

<<"Ingrese el mes"

mes

<<"Ingrese el año"

año

//Proceso

Si mes==1 o mes=3 o mes=5 o mes=7 o mes= 9 o mes=11 entonces

   dia<-[1-31]

Sino

    si mes=4 o mes=6 o mes=8 o mes= 10 o mes=12 entonces

           dia<-[1-30]

Sino

    Si mes=12 entonces 

           dia<-[1-28]

Fin_Si

Si año<1990&año>2010 entonces

    <<"Ingrese un año dentro del rango"

              Si ((año=1992 o año=1994 o año=1996 o año=2000 o año=2004 o año=2008)&mes2) entonces

                           mes<-[1-12]

fin_Si

Si (((mes=1 o mes=2 o mes=3 o mes=5 o mes=7 o mes=9 o mes=11 dia<-[1-31]) o (mes=4 o mes=6 o mes=8 o mes=10 o mes=12 & dia<-[1-31]) o (mes=2 & dia<-[1-28] entonces

<<"Es una fecha valida

<<"Es una fecha invalida"

3. Haga un algoritmo que dado dos numeros determine si uno es divisor del otro.

Entrada: Dos numeros enteros.

Salida: Si el numero menor es o no divisor del otro.

Inicio

//Declaracion de variables

n1,n2,n3,i[1-n]

//Declaracion de variables

n1<-0

n2<-0

n3<-0

//Entrada de texto

<<"Ingrese el valor del primer numero"

n1

<<"Ingrese el valor del segundo numero"

n2

<<"Ingrese el valor del segundo numero"

n3

//Proceso

Si(n1<n2) entonces

  n3<-n2modn1

"El numero" +n1+ "es menor que +n2+"

Sino

  Sin1>n2 entonces

   n3<-nimodn2

<<"El numero" +n2+ "es menor que" +n1+

Fin_Si

Si n3==0 entonces

<<"El numero menor es divisor del otro"

Sino

<<"El numero menor no es divisor del otro"

Fin_Si

4. Escriba un algoritmo para calcular el valor de la presión en libras por pulgada

cuadrada (psi) de una onda descrita como sigue:

Para tiempo, t, igual a o menor que 35 segundos, la presion es 0.46t psi, y para tiempo mayor que 35 segundos la presion es 0.19t +9.45 psi. El programa deber´a pedir el tiempo como entrada y debera desplegar la presi´on como salida.

Entrada: El tiempo

Salida: Presion en psi.

Inicio

//Declaracion de variables

t,i[0-n]

psi,d[0-n]

//Inicializacion de variables

t<-0

psi<-0

//Entrada de datos

<<"Ingrese el valor de tiempo: "

t

//Proceso

Si t<=35 entonces

  psi<-0.46t

Sino

     Si t>35 entonces

     psi<- 0.19*t+9.45

Fin_Si

<<"la presion es" +psi+ "psi"

5. Construya un algoritmo que reciba como datos de entrada tres números enteros,

y regrese como dato de salida un mensaje que diga si esos tres números

enteros pueden ser las medidas de los lados de un triangulo rectángulo.

Entrada: Tres números enteros.

Ej: 4, 4, 4.

Salida: No pueden ser los lados de un triangulos rectangulo.

Inicio

//Declaracion de variables

n1,n2,n2,n3,i[0-n]

n4,d[0-n]

//Inicializacion de variables

n1<-0

n2<-0

n3<-0

n4-0

//Entrada de datos

<<"Ingrese el valor del primer numero"

n1

<<"Ingrese el valor del segundo numero"

n2

<<"Ingrese el valor del tercer numero"

n3

//Proceso

Si(((n3>n1&n3>n2)&(n3=n4)) o ((n2>n1&n2>n3)&(n2=n4)) o ((n1>n2&n1>n3)&(n1=n4))) entonces

    Si (n3>n1&n3>n2) entonces 

           n4<-((n1*n1)+(n2*n2)^(1/2)

     Fin_Si

                 Si(n3==n4) entonces

                      <<"Todos los numeros pueden ser lados de un triangulo rectangulo"

                Fin-Si

Fin_Si

Si (n2>n1&>n3) entonces

   n4<-((n1*n1)+(n3*n3)^(1/2)

Fin_Si

Si(n2==n4) entonces

    <<"Todos los numeros pueden ser lados de un triangulo rectangulo"


           Si (n1>n2&>n3) entonces 

                n4<-((n2*n2)+(n3*n3)^(1/2)

Fin_Si

Si(n1==n4) entonces

     <<"Todos los numeros pueden ser lados de un triangulo rectangulo"

Fin_Si

Fin_Si

<<"No pueden ser lados de un triangulo rectangulo"

Fin_Si

Fin_Si

Fin

7. Escriba un algoritmo que le pida al usuario que introduzca dos números. Si el

primer numero introducido es mayor que el segundo, el programa deberá imprimir

el mensaje “El primer numero es mayor”; de lo contrario deberá imprimir

el mensaje “El primer numero es menor”. Pruebe su algoritmo introduciendo

los números 5 y 8 y luego usando los números 11 y 2. ¿Que piensa que desplegara

su algoritmo si los dos números introducidos son iguales? Pruebe este

caso.

Inicio

//Declaracion de variables

n1,n2,i[0-n]

//Inicializacion de variables

n1<-0

n2<-0

//Entrada de datos

<<"Ingrese el prmer numero"

n1

<<"Ingrese el segundo numero"

n2

//Proceso

Si n1>n2 entonces

  <<"El primer numero es mayor"

Sino

  <<"El primer numero es menor"

Fin_Si

Fin

8. La tolerancia de componentes críticos en un sistema se determina por la aplicacion

de acuerdo con la siguiente tabla:

Estado de la especi?cacion Tolerancia Exploracion espacial Menor que 0.1 % Grado militar Mayor que o igual a 0.1 % y menor que 1 % Grado comercial Mayor que o igual a 1 % y menor que 10 % **Grado de juguete Mayor que o igual a 10 % **

Usando esta informacion escriba un algoritmo que acepte la lectura de tolerancia de un componente y determine la especi?cacion que debera asignarse al componente.

Entrada: 0.02

Salida: Exploracion espacial

Inico

//Declaracion de variables

tolerancia,d[o-n]

//Inicializacion de variables

tolerancia<-0

//Entrada de datos

<<"Ingrese e valor de tolerancia

tolerancia

//Proceso

Si tolerancia <0.1 entonces

<<"Exploracion espacial2

Si tolerancia =>0.1 & <1 entonces

 >>Grado militar

        Si tolerancia =>1 & <10 entonces 

              <<"Grado comercial"

         Sino

              <<"Grado de juguete"

        Fin_Si

Fin_Si

Fin

10. Escriba un programa que lea tres enteros y emita un mensaje que indique si

estan o no en orden numérico.

Entrada: 3

Entrada: 2

Entrada: 5

Salida: Los numeros no están orden.

Entrada: 3

Entrada: 4

Entrada: 5

Salida: Los números si están orden.

Inicio

//Declaracion de vaiables

n1,n2,n3.i[0-n]

//Inicializacion de variables

n1<-0

n2<-0

n3<-0

//Entrada de datos

<<"Ingrese el primer numero

n1

<<"Ingrese el segundo numero

n2

<<"Ingrese el tercer numero

n3

//Proceso

Si n1<n2<n3 entonces

  <<"Los numeros siestan en orden"

Sino

  <<" los numeros no estan en orden"

Fin_Si

Fin

11. Escriba una sentencia Si-Sino que clasifque un entero en una de las siguientes

categorías y escriba un mensaje adecuado:

x<00= x = 100 x>100

Inicio

//Declaracion de variables

(num1, i[0-n])

//Inicializacion de variables

num1 <- 0

//Entrada de datos

<<"Ingrese un número entero"

num1

Si (num1<0) entonces

  <<"El número es menor que cero"

Sino

  SI (num1>=0 && num1<=100)

         <<“El número es menor o igual que 100 y mayor o igual que 0”

  Sino

          Si (num1>100)

<<“El número es mayor que 100”

Fin_si

Fin

14. Escriba un algoritmo que clasifique un entero leído del teclado de acuerdo a los siguientes puntos:

a) Si es 30 o mayor, o negativo, visualice un mensaje en ese sentido;

b) si es un numero primo, potencia de 2 o un numero compuesto, visualice el mensaje correspondiente;

c) si es 0 o 1, muestre “cero” o “unidad”, según corresponda.

Entrada: 12

Salida: El número corresponde a la categoría B.

Inicio

//Declaracion de variables

n,i[0-n]

//Inicializacion de variables

n<-0

//Entrada de datos

<<"Ingrse elnumero a verificar"

n

//Proceso

Si n>=30 entonces Si n<0 entonces

<<"El numero es mayor o igual a 30 o negativo"

Si n/n=1 entonces

Si n/1=n entonces

<<"El numero es primo potencia de dos o compuesto"

Si n==0 entonces

n<-0

<<n

Si n==1 entonces

n<-1

<<n

Fin

Fin_Si

17. El costo de inscripción en un concurso de Algoritmia es de 100 000 pesos por

inscripción de la universidad más 5 000 pesos por cada alumno participante.

Si la universidad se inscribe con al menos 250 participantes, no se cobran los

100 000 pesos de inscripcón del colegio. Haga un algoritmo que reciba como

entrada el número de estudiantes que un colegio va a inscribir en un evento de

olimpiadas y que calcule el monto del pago por la inscripción.

Entrada: 50

Salida: 350000

Entrada: 252

Salida: 1260000

Inicio

//Declaracion de variables

n,i[0-n]

monto,d[0-n]

//Inicializacion de variables

n<-0

monto<-0

//Entrada de datos

<<"Ingrese el numero de estudiante que se van a inscribir"

n

//Proceso

si n>=250 entonces

  monto<-n*5000

<<"El monto a pagara va ser: " +monto+

    Si (n*5000)+100000 entonces

           monto<-(n*5000)+100000

<<"El monto a pagar va ser: "+monto+

Fin_Si

Fin

18) Haga un programa que reciba como entrada tres números y diga si hay alguno que sea múltiplo de los otros dos; en caso afirmativo debe decir cuál es.

Entrada: 5, 3, 2

Salida: No

Entrada: 5, 20, 4

Salida: Si, 20

Inicio

num1, num2, num3, num4,i[0-n]

num5,

num1 <- 0

num2 <- 0

num3 <- 0

num4 <- 0

num5 <- 0

<< “Ingrese el primer número”

num1

<< “Ingrese el segundo número”

num2

<< “Ingrese el tercer número”

num3

Si ((num1>num2 && num1>num3) o (num2>num1 && num2>num3) o (num3>num1 && num3>num2)) entonces

   Si (num1>num2 && num1>num3) entonces


        num4 <- num1 mod num2

        num5 <- num1 mod num3

Si (num4==0 && num5==0) entonces

    << “Si,”, +num1

Fin_si

Fin_si

Si (num2>num1 && num2>num3) entonces

     num4 <- num2 mod num1

     num5 <- num2 mod num3

Si (num4==0 && num5==0) entonces

     << “Si,”, +num2

Fin_si

Fin_si

Si (num3>num1 && num3>num2) entonces

num4 <- num3 mod num1

num5 <- num3 mod num2

Si (num4==0 && num5==0) entonces

 << “Si,”, +num3

Fin_si

Fin_si

Sino

<< “No”

Fin_si

Pruebas de Escritorio

//las imágenes están en el repositorio

⚠️ **GitHub.com Fallback** ⚠️