Вы находитесь на странице: 1из 24

Universidad Nacional Jorge Basadre Grohmann de Tacna

Facultad de Ingeniería Civil, Arquitectura y Geotecnia


Escuela profesional de Ingeniería Geológica-Geotecnia

INFORME N°1: ALGORITMOS Y PSEUDOCÓDIGO

Asignatura: Fundamentos de programación


Docente: Prof. Rolando Álvarez Cusi
Apellidos: Chávez López
Nombre: Ricardo Farid
Código: 2019-130011
Sección: A
Turno de laboratorio: 12:30 p.m. – 14:10 p.m.
Fecha de entrega: 09/05/2019
PRÁCTICA 01: ALGORITMOS Y PSEUDOCÓDIGO

I. OBJETIVOS
a) Conocer el programa PseInt.
b) Aprender el uso del programa PseInt.
c) Identificar las aplicaciones del pseudocódigo.
d) Relacionarse con la estructura de los diagramas de flujo.

II. PLANTEAMIENTO
a) Desarrollados en clase
1. Escribir un programa que pida un número y lo escriba en la pantalla.
2. Escribir un programa que suma dos cantidades y la muestre en la
pantalla.

b) Práctica

3. Calcule y escriba el cuadrado de un número


4. Convertir una temperatura dada en grados Celsius a grados Fahrenheit:
F=(9/5)C+32
5. Determinar la hipotenusa de un triángulo rectángulo conocidas las
longitudes de los catetos.
6. Calcular el área de un triángulo en función de las longitudes de sus
lados. Área=raízcuadrada(p(p-a)(p-b)(p-c)), donde p=(a+b+c)/2
7. Calcular el área de un triángulo en función de la base y la altura.
8. Calcular el salario de un trabajador conociendo la cantidad de días
trabajados y el monto por día.
9. Escribir un programa que a partir de un número ingresado diga si es
mayor, menor o igual a 9.
10. Crear un programa que a partir de un número ingresado diga si el
mismo es par o impar.
11. Determinar si un alumno aprueba o reprueba un curso, sabiendo que
aprobará si su promedio de tres calificaciones es mayor o igual a 4.0;
reprueba en caso contrario. Deberá permitir ingresar las tres
calificaciones y luego calcular su promedio.
12. Escribir un programa que sume todos los números pares entre 2 y 100.

III. DESARROLLO

3.1. Desarrollados en clase

1. Escribir un programa que pida un número y lo escriba en la


pantalla.
Para este programa se hizo uso de la instrucción “Leer” y la
instrucción “Escribir”.
Se dividió el problema en dos partes:
1. Que el usuario ingrese el número: Para la solución de esta parte
se usó la instrucción “Leer”, bajo la cual se usó la letra “N” como
variable para el número pedido
2. Que el programa escriba el número: Para la solución de esta
parte se usó la instrucción “Escribir”, en la cual se usó la letra N
como variable de la anterior instrucción.
Esto dejo el siguiente código:
Proceso escribeNúmero
Leer N
Escribir N
FinProceso

A este código se origina el siguiente diagrama de flujo:

2. Escribir un programa que suma dos números enteros y la


muestre en la pantalla.
Para este programa se hizo uso de la instrucción “Leer”, la instrucción
“Escribir” y la instrucción “Definir”. Además de la función suma que ya
se encuentra incluida en el programa.
Se dividió el problema en cuatro partes:
1. Se nombró arbitrariamente a dos variables “x” y “z” y se las
definió como números enteros.
2. Se usó la instrucción leer para que así el programa pida al
usuario los números deseados.
3. Se definió una variable “S” la cual almacenaría la suma de “x” y
“z”.
4. Finalmente, se hizo usó de la instrucción “Escribir” para así
mostrar la suma, almacenada en S, al usuario.
Proceso SUMA
Definir x Como Entero
Definir z Como Entero
Leer x
Leer z
S <- x+z
Escribir 'La suma es ', s

FinProceso

Para este código se origina el siguiente diagrama, en el cual se


observa el proceso del algoritmo.

3.2. Práctica.-

1. Calcule y escriba el cuadrado de un número.- Para este


programa se hizo uso de la instrucción “Leer”, la instrucción
“Escribir” y la instrucción “Definir”. Además de la operación de
potencia que ya se encuentra incluida en el programa.
Se dividió el problema en cuatro partes:
1. Se nombró arbitrariamente a una variable “x” y se la definió
como número real.
2. Se usó la instrucción leer para que así el programa pida al
usuario el número deseado.
3. Se definió una variable “c” la cual almacenaría el cuadrado de
x.
4. Finalmente, se hizo usó de la instrucción “Escribir” para así
mostrar la potencia, almacenada en c, al usuario.
Proceso Cuadrado_de_un_número
Definir x Como Real
Leer x
c <- x^2
Escribir c
FinProceso

El diagrama de flujo resultante es:

2. Convertir una temperatura dada en grados Celsius a grados


Fahrenheit: F=(9/5)C+32.- Para este programa se hizo uso de la
instrucción “Leer”, la instrucción “Escribir” y la instrucción “Definir”.
Además de la operación de división, multiplicación y suma que ya
se encuentran incluidas en el programa.
Se dividió el problema en cuatro partes:
1. Se nombró arbitrariamente a una variable “x” y se la definió
como número real.
2. Se usó la instrucción escribir y leer para que así el programa
pregunte al usuario la temperatura en Celsius, y esta se
almacene en la variable “x”.
3. Se definió una variable “F” la cual almacenaría el resultado de
la ecuación:
9𝑥
+ 32
5
La cual convierte la temperatura de Celsius (x) a Fahrenheit
4. Finalmente, se hizo usó de la instrucción “Escribir” para así
mostrar la temperatura convertida, almacenada en la variable
“F”, al usuario.

Proceso Celsius_a_Farenheit
Definir x Como Real
Escribir 'De la temperatura en
Celsius(°C):'
Leer x
F <- (9/5)*x+32
Escribir x,'°C equivale a: ',F,'°F'
FinProceso

Este proceso se aprecia en el diagrama de flujo:


3. Determinar la hipotenusa de un triángulo rectángulo
conocidas las longitudes de los catetos. Para este programa
se hizo uso de la instrucción “Leer”, la instrucción “Escribir” y la
instrucción “Definir”. Además del ciclo “Mientras…Hacer” y las
operaciones de raíz cuadrada y potencia.
Se dividió el problema en 3 partes principales:
1) Primeramente se definen las variables “c1”, “c2” y “h” como
reales.
2) Forzar al usuario a incluir solo distancias reales positivas
mayores a 0.-
Para esto se realizaron los siguientes pasos
a) Se pide al usuario que ingrese los catetos del
triángulos
b) Se lee y analizan los valores de los catetos para que
sean siempre positivos, esto se logra con un ciclo
mientras de tal forma que se evalúen si los valores son
negativos o 0 se pida al usuario que ingrese
nuevamente los valores. Esto se logra mediante el
siguiente código
Definir c1,c2,h Como Real
Escribir 'Escriba los catetos del
triángulo'
Leer c1,c2
Mientras c1<=0 O c2<=0 Hacer
Escribir 'Se requieren valores
positivos, vuelva a ingresar ambos
valores'
Leer c1,c2
FinMientras

Que obliga al usuario a seguir escribiendo valores si uno, como


mínimo, es 0 o negativo hasta que consiga escribir los 2 valores
positivos.
3) Calcular la hipotenusa.- Este paso es más sencillo, pues solo
se hace uso de las operaciones incluidas en el programa. Esto
crea el siguiente código.
h <- rc((c1)^2+(c2)^2)
Escribir 'La hipotenusa es ',h

Al término del procedimiento, obtenemos el siguiente código final

Proceso Hipotenusa_triangulo_rectangulo
Definir c1,c2,h Como Real
Escribir 'Escriba los catetos del
triángulo'
Leer c1,c2
Mientras c1<=0 O c2<=0 Hacer
Escribir 'Se requieren valores
positivos, vuelva a ingresar ambos
valores'
Leer c1,c2
FinMientras
h <- rc((c1)^2+(c2)^2)
Escribir 'La hipotenusa es ',h
FinProceso
Estos procedimientos se observan de manera más ordenada en el
diagrama de flujo:

4. Calcular el área de un triángulo en función de las longitudes


de sus lados. Área=raízcuadrada(p(p-a)(p-b)(p-c)), donde
p=(a+b+c)/2.- Para este programa se hizo uso de la instrucción
“Leer”, la instrucción “Escribir” y la instrucción “Definir”. Además
del ciclo “Mientras…Hacer” y el ciclo “Si… Entonces”.
Se dividió el problema en 3 partes principales:
1. Primeramente se definen las variables “l1”, “l2”, “l3”, “a” y “p”
como reales.
2. Forzar al usuario a incluir solo distancias reales positivas
mayores a 0:
Para esto se realizaron los siguientes pasos
a) Se pide al usuario que ingrese las longitudes del
triángulos
b) Se lee y analizan los valores de las longitudes para
que sean siempre positivos, esto se logra con un ciclo
mientras de tal forma que se evalúen si los valores
son negativos o 0 se pida al usuario que ingrese
nuevamente los valores. Esto se logra mediante el
siguiente código
Definir l1,l2,l3,a,p Como Real
Escribir 'Escriba las longitudes de los
lados del triángulo'
Leer l1,l2,l3
Mientras l1<=0 O l2<=0 O l3<=0 Hacer
Escribir 'Se requieren valores
positivos, vuelva a ingresar ambos
valores'
Leer l1,l2,l3
FinMientras

Que obliga al usuario a seguir escribiendo valores si uno, como


mínimo, es 0 o negativo hasta que consiga escribir los 3 valores
positivos.
3. Comprobar si el triángulo existe y si existe mostrar la solución.
Para esto se realizaron los siguientes pasos
a) Recordar que para que exista un triángulo se tiene
que cumplir la desigualdad triangular
𝑎+𝑏 >𝑐
𝑎+𝑐 >𝑏
𝑏+𝑐 >𝑎
b) Usar un ciclo “Si… Entonces” para que se cumplan las
condiciones dadas
𝑙1 + 𝑙2 > 𝑙3
𝑙1 + 𝑙3 > 𝑙2
𝑙2 + 𝑙3 > 𝑙1
Y en caso se cumpla las condiciones se calcule el
semiperimetro mediante la fórmula:
𝑙1 + 𝑙2 + 𝑙3
𝑝=
2
Finalmente calcularía el área mediante la fórmula:
𝑎 = √𝑝 ∙ (𝑝 − 𝑙1) ∙ (𝑝 − 𝑙2) ∙ (𝑝 − 𝑙3)
Y luego la escribiría en pantalla.
Si las condiciones no se cumplen mostraría un
mensaje que indique que no es un triángulo y se
finalizaría el ciclo y el programa.
Si l1+l2>l3 Y l1+l3>l2 Y l2+l3<=l1
Entonces
p <- (l1+l2+l3)/2
a <- rc((p)*(p-l1)*(p-l2)*(p-l3))
Escribir 'El área es: ',a
Sino
Escribir 'Los valores dados no
pertenecen a un triángulo'
FinSi

Así queda como resultado el siguiente código final:

Proceso Area_Triangulo_en_funcion_longitudes
Definir l1,l2,l3,a,p Como Real
Escribir 'Escriba las longitudes de los
lados del triángulo'
Leer l1,l2,l3
Mientras l1<=0 O l2<=0 O l3<=0 Hacer
Escribir 'Se requieren valores
positivos, vuelva a ingresar ambos valores'
Leer l1,l2,l3
FinMientras
Si l1+l2>l3 Y l1+l3>l2 Y l2+l3<=l1 Entonces
p <- (l1+l2+l3)/2
a <- rc((p)*(p-l1)*(p-l2)*(p-l3))
Escribir 'El área es: ',a
Sino
Escribir 'Los valores dados no
pertenecen a un triángulo'
FinSi

FinProceso
Esto se explica se mejor manera en el siguiente diagrama de flujo:

5. Calcular el área de un triángulo en función de la base y la


altura.- Para este programa se hizo uso de la instrucción “Leer”, la
instrucción “Escribir” y la instrucción “Definir”. Además del ciclo
“Mientras…Hacer.
Se dividió el problema en 3 partes principales:
1. Primeramente se definen las variables “b” y “h” como reales.
2. Forzar al usuario a incluir solo distancias reales positivas
mayores a 0.-
Para esto se realizaron los siguientes pasos
a) Se pide al usuario que ingrese la base y la altura del
triángulos
b) Se lee y analizan los valores de la base y la altura para
que sean siempre positivos, esto se logra con un ciclo
mientras de tal forma que se evalúen si los valores son
negativos o 0 se pida al usuario que ingrese
nuevamente los valores. Esto se logra mediante el
siguiente código
Definir b,h Como Real
Escribir 'Escriba la altura del
triángulo'
Leer h
Escribir 'Escriba la base del triángulo'
Leer b
Mientras h<=0 O b<=0 Hacer
Escribir 'Se requieren valores
positivos, vuelva a ingresar ambos
valores'
Escribir 'Ingrese la base'
Leer b
Escribir 'Ingrese la altura'
Leer h
FinMientras

c) Finalmente se calcula el área mediante la ecuación:

(𝑏 ∙ ℎ)
𝑎=
2
Finalmente, esto da el código siguiente

Proceso Area_Triangulo_en_funcion_base_altura
Definir b,h Como Real
Escribir 'Escriba la altura del triángulo'
Leer h
Escribir 'Escriba la base del triángulo'
Leer b
Mientras h<=0 O b<=0 Hacer
Escribir 'Se requieren valores positivos, vuelva a
ingresar ambos valores'
Escribir 'Ingrese la base'
Leer b
Escribir 'Ingrese la altura'
Leer h
FinMientras
a <- (b*h)/2
Escribir 'El área es: ' ,a
FinProceso
Esto se observan en el siguiente diagrama de flujo:

6. Calcular el salario de un trabajador conociendo la cantidad de


días trabajados y el monto por día.- Para este programa se hizo
uso de la instrucción “Leer”, la instrucción “Escribir” y la
instrucción “Definir”. Además del ciclo “Si… Entonces”.
Se dividió el problema en 3 partes principales:
1. Primeramente se definen las variables “salario”, “monto_diario”
y “dt” como reales.
Tras ello, se asumió que el monto por día era fijo. Así, se
estableció la variable “monto_diario” como 15.
2. Seguido de ello, se definen las variables “nombre”,”apellido”
como caracteres. Esto solo como un añadido para mayor
personalización por parte del usuario.
3. Se pide al usuario que ingrese los valores necesarios es decir
nombre, apellido y días trabajados.
4. Se evalúa el valor de días trabajado con un ciclo
“Si…Entonces” de tal forma que si este es menor o igual a 0,
el trabajador no tiene sueldo alguno.
Esto produce el siguiente código:

Proceso Salario_con_monto_diario_y_dias_trabajados
Definir salario,monto_diario,dt Como Real
monto_diario <- 15
Definir nombre,apellido Como Caracter
Escribir 'Nombre del trabajador: '
Leer nombre
Escribir 'Apellido del trabajador'
Leer apellido
Escribir 'Días trabajados: '
Leer dt
Si dt<=0 Entonces
Escribir 'La persona no tiene días de trabajo
contados'
Escribir 'Su salario es de 0 soles'
Sino
salario <- dt*monto_diario
Escribir 'El Salario de: ',nombre,' ',apellido,'
es: ',salario, ' soles'
FinSi
FinProceso
Esto resulta en el siguiente diagrama de flujo:

7. Escribir un programa que a partir de un número ingresado


diga si es mayor, menor o igual a 9. Para este programa se hizo
uso de la instrucción “Leer”, la instrucción “Escribir” y la
instrucción “Definir”. Además del ciclo “Si… Entonces”.
Se dividió el problema en 4 partes principales:
1. Se define la variable “n” como real.
2. Tras ello, se pide al usuario que ingrese un número.
3. Seguido de ello, se evalúa el número con un ciclo
“Si…Entonces” con la condición de si n=9 se escribe el
mensaje “El número es igual a 9”.
4. Si la condición es falsa entonces se evalúa en otro ciclo
“Si…Entonces” con la condición de si n<9 en cuyo caso se
escribe el mensaje “El número es menor que 9”. Si esta
condición falla significa que solo queda un escenario posible,
que el número sea mayor que 9 y así el algoritmo muestra un
mensaje “El número es mayor que 9”.
Esto se ve en el código:
Proceso Comparando_con_nueve
Definir n Como Real
Escribir 'Ingrese el número'
Leer n
Si n=9 Entonces
Escribir 'El número es igual a 9'
Sino
Si n<9 Entonces
Escribir 'El número es menor que 9'
Sino
Escribir 'El número es mayor que 9'
FinSi
FinSi
FinProceso

Y en el diagrama de flujo:

8. Crear un programa que a partir de un número ingresado diga


si el mismo es par o impar. Recordar que un número solo puede
ser par o impar si es entero. Para este programa se hizo uso de la
instrucción “Leer”, la instrucción “Escribir” y la instrucción “Definir”.
Además del ciclo “Si… Entonces”.
Se dividió el problema en 3 partes principales:
1. Se define la variable “N” como real.
2. Tras ello, se pide al usuario que ingrese un número.
3. Seguido de ello, se evalúa el número con un ciclo
“Si…Entonces” con la condición de si N módulo 2 es 0 se
escribe el mensaje “El número es par”. De lo contrario es
impar.
Así, se escribe en código:

Proceso Par_o_Impar
Definir N Como Entero
Escribir 'Digite el número'
Leer N
Si (N) MOD 2=0 Entonces
Escribir N, ' es par'
Sino
Escribir N, ' es impar'
FinSi
FinProceso

Lo que origina el siguiente diagrama de flujo


9. Determinar si un alumno aprueba o reprueba un curso,
sabiendo que aprobará si su promedio de tres calificaciones
es mayor o igual a 4.0; reprueba en caso contrario. Deberá
permitir ingresar las tres calificaciones y luego calcular su
promedio. Para este programa se hizo uso de la instrucción
“Leer”, la instrucción “Escribir” y la instrucción “Definir”. Además
del ciclo “Si… Entonces”. También se estableció que una
calificación solo puede ser 0 o positiva y se asumió que el sistema
de evaluación era en base a 10, lo que significa que una nota no
puede ser mayor de 10.
Se dividió el problema en 4 partes principales:
1. Se definen las variables “c1”,”c2”,”c3” y “p” como reales.
2. Tras ello, se pide al usuario que ingrese sus calificaciones.
3. Como se asume que el sistema de notas es en base a 10,
significa que una nota no puede ser mayor de 10. Además,
una nota no puede ser negativa. Así, se evalúan las
calificaciones bajo dichas condiciones mediante un ciclo
Mientras, de tal forma que el alumno escriba correctamente
sus notas. Esto se logró con el siguiente código:
Mientras (c1>10) O (c2>10) O (c3>10) O
(c1<0) O (c2<0) O (c3<0) Hacer
Escribir 'Las calificaciones no
pueden ser negativas o superar la nota
máxima de 10'
Escribir 'Vuelva a ingresar sus
notas'
Leer c1,c2,c3
FinMientras

4. Posteriormente con las notas correctamente asignadas, se


calcula el promedio y se evalúa este resultado para ver si el
alumno ha aprobado o reprobado mediante un ciclos
“Si…Entonces”
Así se obtiene el código siguiente.
Proceso Promedio_aprueba_o_reprueba
Definir c1,c2,c3,p Como Real
Escribir 'Ingrese sus calificaciones:'
Leer c1,c2,c3
Mientras (c1>10 O c2>10 O c3>10) O (c1<0 O c2<0 O c3<0) Hacer
Escribir 'Las calificaciones no pueden ser negativas o
superar la nota máxima de 10'
Escribir 'Vuelva a ingresar sus notas'
Leer c1,c2,c3
FinMientras
p <- (c1+c2+c3)/3
Si p>=4.0 Entonces
Escribir 'Su promedio es: ',p
Escribir 'Ha aprobado el curso'
Sino
Escribir 'Su promedio es: ',p
Escribir 'Ha reprobado el curso'
FinSi
FinProceso
Esto deja el siguiente diagrama de flujo

10. Escribir un programa que sume todos los números pares


entre 2 y 100. Para este programa se hizo uso de la instrucción
“Leer”, la instrucción “Escribir” y la instrucción “Definir”. Además
del ciclo “Para” y el ciclo “Si Entonces”.
Se dividió el problema en 3 partes principales:
1. Se definen la variable “suma” como entero. Y se establece su
valor en 0.
2. Se crea un ciclo Para el cual permite repetir una serie de
acciones hasta que una variable llegue a un determinado
punto. En este caso, la variable será i, la cual iniciará en 1
hasta 100 con Paso 1, esto es que suma 1 a i cada ciclo
itinerante.
3. Dentro del ciclo Para se crea un ciclo “Si…Entonces” en el
cual evaluaremos que para cada i par se sume a la suma de
manera recursiva.
Esto deja el siguiente código.
Proceso Suma_Pares
Definir suma Como Entero
suma<-0
Para i<-1 Hasta 100 Con Paso 1 Hacer
Si (i mod 2 = 0) Entonces
suma <- suma+i
FinSi
Fin Para
Escribir 'La suma es: ' suma
FinProceso

Dejando el siguiente diagrama de flujo:


IV. CONCLUSIONES

1. Se comprendió el uso de los diagramas de flujo.


2. Se conoció las estructuras de pseudocódigo disponibles en PseInt.
3. Se aprendió a resolver diversos problemas simple.

Вам также может понравиться