Está en la página 1de 9

Página 1 de 9

Fundamentos de Programación 2007

UNIDAD 3
ESTRUCTURAS DE CONTROL
Prof. Gerardo Sas.

Respuestas a los ejercicios de la Guía Nº 3

Ejercicio 3.1.
Realice un seguimiento (prueba de escritorio) del algoritmo siguiente para cada uno de los juegos de datos
propuestos:

Proceso Ejer1
Leer a, b, c;
Si c = 0 entonces Escribir 'División por cero'
sino r ← a / c;
t ← b * c;
v ← r - t;
Escribir 'v=', v;
FinSi
FinProceso

a) Datos: 120, 80, 2


b) Datos: 0, 4, 1
c) Datos: 45, 92, 0

A B C R T V
120 80 2 60 160 -100
0 4 1 0 4 -4
45 92 0

Ejercicio 3.2.
 x 2 si x < 1
Dada la función arbitraria siguiente, escribir un algoritmo que calcule e = informe el
 x + 3 si x >= 1
resultado de la función para un valor de x de la variable independiente que debe
ingresarse como dato.

Proceso E3.2;
Escribir “Ingrese X: ” ;
Leer X; //X servirá para evaluar el
valor de Y
Si X < 1 entonces //Estructura
condicional
Y<- X ^ 2
Sino
Y<- X+3;
Finsi;
Escribir Y;
FinProceso.
Página 2 de 9

Ejercicio 3.3.
Se ingresa un número entero como dato. Determine si es
par o impar e informe un mensaje alusivo.

Proceso E33
Escribir “Ingrese X: ” ;
Leer X;
Si (X/2) = Trunc(X/2) entonces
Escribir “Es par”
Sino
Escribir “Es Impar”
Finsi
FinProceso

Ejercicio 3.4.
Ingresar 3 valores numéricos y determinar e
informar el mayor.

Proceso E34
Escribir "Ingrese 3 valores
numericos ";
Leer A, B, C;
Si A < B entonces
Aux <- A;
A <- B;
B <- Aux;
Finsi
Si A < C entonces
Escribir "El mayor es ",C
Sino
Escribir "El mayor es ",A;
Finsi
FinProceso
Prueba de escritorio para (1,2,3), (2,1,3), (1,3,1).
A B C Aux Salida
1 2 3 1
2 1 3
2 1 3 3
2 3 1 2
3 2 3
Página 3 de 9

Ejercicio 3.5.
Ingresar como datos los tres lados de un triángulo rectángulo. Estos datos se leen sin ningún orden.
Determinar si los datos corresponden a ese tipo de triángulo. En caso de que no tratarse de un triángulo
rectángulo indicar un mensaje alusivo; si lo es calcular e informar su área.

Proceso E35
Escribir "Ingrese 3 valores numericos (1,2,3 / 3,4,5) ";
Leer A, B, C;
Si A < B entonces
Aux <- A;
A <- B;
B <- Aux;
Finsi
Si A < C entonces
Hip <- C;
Cat1 <- B;
Cat2 <- A;
Sino
Hip <- A;
Cat1 <- B;
Cat2 <- C;
Finsi
Si (Hip^2) = (Cat1^2 + Cat2^2) entonces
Escribir "Los datos pertenecen a un Triangulo Rectangulo";
Escribir "Sup= ",(cat1*cat2/2)
Sino
Escribir "Los datos NO pertenecen a un Triangulo Rectangulo"
Finsi
FinProceso
Ejercicio 3.6.
Resuelva el siguiente problema empleando la estructura iterativa Mientras-Hacer. Emplee pseudocódigo y
diagrama de flujo.
Problema: En un curso de cierta universidad se desea determinar cuantos estudiantes varones superan la
altura 1.90 m y cuantas mujeres superan 1.75m. Se leen como datos el sexo y la altura de los 112
integrantes del curso.

Proceso E36
Cv<- 0; Cm<- 0; Ca<- 0;
Mientras (Ca<5) hacer //Tendria que ser 112
Escribir "Ingrese Sexo y Altura: ";
Leer S,A;
Si ((S = "M") & (A>1.90)) entonces //M Masculino (El & es el Y logico /\)
Cv <- Cv +1
Sino
Página 4 de 9

Si ((S='F') & (A>1.75)) entonces //F Femenino


Cm <- Cm +1;
Finsi
Finsi
Ca<- Ca+1;
Finmientras
Escribir "Varones con mas de 1.90 ", Cv;
Escribir "Mujeres con mas de 1.75 ", Cm;
Finproceso

Ejercicio 3.7.
Resuelva el problema anterior considerando que la cantidad de estudiantes es desconocida. La entrada de
datos termina con la altura cero.

Proceso E37
Cv<-0; cm<-0;
Escribir "Ingrese Altura: ";
Leer A;
Mientras (A < > 0) hacer
Escribir "Ingrese Sexo: ";
Leer S;
Si ((S="M") /\ (A>1.90)) entonces
CV <- CV +1
Sino
Si ((S="F") /\ (A>1.75)) entonces
Cm <- Cm +1
Finsi
Finsi
Escribir "Ingrese Altura: ";
Leer A;
Finmientras
Escribir "Varones con mas de 1.90 ", cv;
Escribir "Mujeres con mas de 1.75 ", cm;
Finproceso

Ejercicio 3.9.
Resuelva el siguiente problema empleando pseudocódigo.
Problema: En cierta carrera universitaria la asignatura Algebra está organizada en 5 comisiones de 24
alumnos cada una. Se ingresa por cada alumno la calificación obtenida en una evaluación parcial y el número
de comisión al que pertenece. Estos pares de datos llegan sin orden alguno. Informe el promedio de cada
comisión.

Proceso E39
C1<-0; C2<-0;
Página 5 de 9

C3<-0; C4<-0;
C5<-0; Ca<-0;
Mientras (Ca < 5) hacer //Tendria que ser 120
Escribir "Ingrese Nota y Comision: ";
Leer N, C;
Ca <- Ca+1;
Segun (C) hacer
1: C1<- C1+N;
2: C2<- C2+N;
3: C3<- C3+N;
4: C4<- C4+N;
5: C5<- C5+N;
Finsegun
Finmientras
Escribir "Promedio de la comision N 1: ", c1/24;
Escribir "Promedio de la comision N 2: ", c2/24;
Escribir "Promedio de la comision N 3: ", c3/24;
Escribir "Promedio de la comision N 4: ", c4/24;
Escribir "Promedio de la comision N 5: ", c5/24;
FinProceso
Ejercicio 3.10.
Resuelva el siguiente problema empleando diagrama de flujo.
Problema: considere el enunciado del ejercicio anterior. Se desea lograr la misma salida (promedio de cada
comisión) para la materia Inglés. Esta tiene 4 grupos o comisiones, pero se desconoce el número de
alumnos por comisión. Los datos terminan con la calificación cero y el número de comisión cero.

Proceso E310
C1<-0; Ca1<-0;
C2<-0; Ca2<-0;
C3<-0; Ca3<-0;
C4<-0; Ca4<-0;
Escribir "Ingrese Nota y Comision: ";
Leer N, C;
Mientras ((N<>0) & (C<>0)) hacer
Segun (C) hacer
1: C1<- C1+N;
Ca1<- Ca1+1;
2: C2<- C2+N;
Ca2<- Ca2+1;
3: C3<- C3+N;
Ca3<- Ca3+1;
4: C4<- C4+N;
Ca4<- Ca4+1;
Página 6 de 9

Finsegun
Escribir "Ingrese Nota y Comision: ";
Leer N, C;
FinMientras
Escribir "Promedio de la comision N 1: ", c1/ca1;
Escribir "Promedio de la comision N 2: ", c2/ca2;
Escribir "Promedio de la comision N 3: ", c3/ca3;
Escribir "Promedio de la comision N 4: ", c4/ca4;
FinProceso
Ejercicio 3.11.
En el recuadro de la derecha se plantea un algoritmo mediante un diagrama de flujo.
a) Escriba el mismo algoritmo empleando pseudocódigo.
b) Realice un seguimiento del algoritmo con los datos: 12, 28, 67, 10, 31, 29, 62
c) Modifique el algoritmo sustituyendo la estructura de control repetitiva por otra similar de modo de obtener
la misma información de salida; y realice el un seguimiento con el mismo juego de datos del ejercicio (b)
para verificar su diseño.
d) Proponga un enunciado que tenga por solución el algoritmo planteado.
a) Pseudocódigo.
Proceso E311a
C <- 0; Suma <- 0;
Repetir
Escribir "Ingrese x: ";
Leer X;
C <- C+1;
Si ((X/2) = Trunc(X/2)) entonces
Suma <- Suma + X
Finsi
Hasta que (C = 7)
Escribir "Suma = ", Suma;
Finproceso

b) Prueba de Escritorio para los datos 12, 28, 67, 10, 31, 29, 62.

X C SUMA SALIDA
12 1 12
28 2 40
67 3
10 4 50
31 5
29 6
62 7 112 Suma = 112

c) otra estructura repetitiva. Mientras Hacer:


Proceso E311b
Página 7 de 9

C <- 0; Suma <- 0;


Mientras C < 7 hacer
Escribir "Ingrese X: ";
Leer X;
C <- C+1;
Si ((X/2) = Trunc(X/2)) entonces
Suma <- Suma + X
Finsi
FinMientras
Escribir "Suma = ", Suma;
Finproceso

d) Enunciado: Ingrese 7 números y sume los pares.

Ejercicio 3.12.
Resolver el problema siguiente empleando la estructura Repetir-Hasta Que.
Problema: Ingresar como dato inicial la cantidad C de estudiantes que aprobaron un examen de Física. Si
no hubiera aprobados (C=0), emitir el mensaje “Nadie aprobó” ; en otro caso determinar el % de esos
estudiantes que obtuvieron 9 o más de calificación.

Proceso E312
Contador <- 0;
CA<- 0;
Escribir "Ingrese C: " ;
Leer C;
Si (C=0) Entonces
Escribir "Nadie Aprobo"
Sino
Repetir
Escribir "Ingrese Nota: " ;
Leer N;
Si N >= 9 entonces
Contador <- Contador +1
Finsi
CA <- CA+1;
Hasta Que (CA = C)
Si (Contador = 0) entonces
Escribir "Ningun Alumno Obtuvo 9 o mas"
Sino
Escribir " Porcentaje de alumnos que aprobaron con 9 o mas:",
Contador*100/C;
Finsi
Finsi
FinProceso
Página 8 de 9

Ejercicio 3.13.
Resolver el problema que sigue mediante un diagrama de flujo.Problema: Ingresar como datos N valores
numéricos. Determinar e informar el mayor.
Proceso E313
C <- 0;
Escribir "Ingrese N: " ;
Leer N;
Escribir "Ingrese Dato: " ;
Leer Ma;
//Leo el primer dato y lo tomo como Mayor
Mientras (C < (N-1)) hacer
Escribir "Ingrese Dato: " ;
Leer X;
Si (X > Ma) entonces
Ma <- X;
Finsi
C <- C+1;
FinMientras
Escribir "Mayor:", ma;
FinProceso.
Ejercicio 3.14.
Problema: Ingresar un número natural N como dato.
Determinar e informar el factorial del número.

Proceso E314
C <- 0; F <- 1;
Escribir "Ingrese N: " ;
Leer N;
Mientras (C < N) hacer
C <- C+1;
F <- F*C;
FinMientras
Escribir "Factorial ", F ;
FinProceso
Ejercicio 3.15.
Problema: Ingresar una lista de alumnos (apellido y nombres) con sus correspondientes edades.
Determinra e informar las edades y nombres de los 2 mayores.

Proceso E315
C <- 1;
E2 <- 0;
Escribir "Ingrese N: " ;
Leer N;
Escribir "Ingrese Nombre y Edad: " ;
Página 9 de 9

Leer N1,E1;
Mientras (C <(N-1)) Hacer
Escribir "Ingrese Nombre y Edad: " ;
Leer N, E;
Si (E > E1) entonces
E2 <- E1;
N2 <- N1;
E1 <- E;
N1 <- N;
Sino
Si (E > E2) entonces
E2 <- E;
N2 <- N;
Finsi
Finsi
C <- C+1;
FinMientras
Escribir "Mayor 1: ", E1," Nombre: ",N1;
Escribir "Mayor 2: ", E2," Nombre: ",N2;
FinProceso

Fundamentos de Programación 2007


JTP Prof. Gerardo Sas
Email gsas@fich.unl.edu.ar

También podría gustarte