Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TRABAJO PRACTICO N 3
TEMA: ESTRUCTURAS BASICAS DE CONTROL
A continuacin se desarrollan los siguientes apartados:
A. Conceptos tericos necesarios para la resolucin.
B. Problemas de ejemplo y su correspondientes solucin.
C. Enunciado de los problemas a resolver por los alumnos y presentar en la
Carpeta de Trabajos Prcticos.
D. Problemas Adicionales Optativos.
A. CONCEPTOS TEORICOS NECESARIOS PARA LA RESOLUCION
La tcnica de la programacin estructurada se desarrollar durante el presente
perodo lectivo; pero el correr de los tiempos nos exige que avancemos rpidamente
es as que en dcada de los 90 se habla de la programacin orientada a objetos en la
cual trataremos de realizar una introduccin.
El teorema fundamental de la programacin estructurada enuncia:
Un programa propio es aquel que cumple con las siguientes caractersticas:
- Posee un solo punto de entrada y uno de salida para controlar el programa
- Existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan
por todas las parte s del programa.
- Todas las instrucciones son ejecutables y no existen lazos o bucles infinitos
Para todo algoritmo o programa propio existe un algoritmo o programa equivalente
construido exclusivamente con las tres estructuras de control bsicas fundamenta les:
SECUENCIAL, SELECTIVA Y REPETITIVA.
Trabajo2
Trabajo3
Gua de Prcticos realizada por la Ing. Sandra Valla Ao 2002 - Pgina 1
Fundamentos de Informtica
Gua de Trabajos Prcticos
-
Verdadero
Falso
CL
Trabajo
Verdadero
CL
Trabajo2
Trabajo1
Esta
estructura
presenta trabajo por
ambas ramas
Verdadero
CL1
Falso
CL2
Verdadero
Trabajo1
Trabajo2
Fundamentos de Informtica
Gua de Trabajos Prcticos
- Estructura de repeticin o iteracin: El manejo de la vida diaria nos hace repetir
determinadas operaciones, como por ejemplo para encontr ar el resultado de la
multiplicacin de 2x3 se debe sumar 2 veces el nmero 3 3 veces el nmero 2. Es en
estos casos en los cuales tienen su aplicacin estas estructuras, que son las que
trataremos en el presente trabajo prctico.
Las estructuras de iteracin y las reglas de funcionamiento de cada una de ellas
son:
Estructura While:
- La expresin lgica se evala antes de la ejecucin del bucle. Si la condicin
es verdadera se ejecuta las acciones incluidas en el bucle, caso contrario el
control pasa a la sentencia siguiente al lazo.
- Si la expresin lgica no se cumple cuando se ejecuta el bucle por primera vez,
el conjunto de acciones del lazo no se ejecuta nunca.
- Mientras la expresin lgica se cumpla el bucle se ejecuta.
NO
CL
SI
Trabajo
CL
SI
NO
Estructura For:
- Las variables de control, valor inicial y valor final deben ser todas del mismo
tipo, pero el tipo real no est permitido.
- Antes de la primera ejecucin del bucle, se asigna el valor inicial a la variable
de control.
Gua de Prcticos realizada por la Ing. Sandra Valla Ao 2002 - Pgina 3
Fundamentos de Informtica
Gua de Trabajos Prcticos
- La ltima ejecucin del bucle ocurre cuando la variable de control es igual al
valor final.
- Cuando se utiliza la palabra reservada to la variable de control se incrementa en
cada iteracin, si se utiliza down to, esta variable se decrementa.
FOR VI : = valor TO VF
Trabajo
Fundamentos de Informtica
Gua de Trabajos Prcticos
B. PROBLEMAS DE EJEMPLO Y SU CORRESPONDIENTES SOLUCIN.
C:=1
NO
C<=N
SI
X
C:=C+1
FIN
PROGRAM Prob11;
USES
CRT;
VAR
N, X, C: integer;
BEGIN
Readln (N);
C :=1;
While C<=N do
Begin
Readln (X);
C := C+1;
End;
End.
Fundamentos de Informtica
Gua de Trabajos Prcticos
S:=0
C:=1
C<=N
SI
S
X
S:=S+X
C:=C+1
FIN
PROGRAM Prob12;
USES
CRT;
VAR
N, X, C, S: integer;
BEGIN
S := 0;
Readln (N);
C := 1;
While C<=N do
Begin
Readln (X);
S:=S+X;
C:=C+1;
End;
Writeln(El valor de la suma es:,S:4);
Repeat Until Keypressed;
End.
Fundamentos de Informtica
Gua de Trabajos Prcticos
En la codificacin de este problema se ingresa formato de salida para la
variable S: Writeln (El valor de la suma es:,S:4); .
La instruccin Repeat Until Keypressed especifica un bucle condicional que se
repite hasta que la condicin (Keypressed) sea verdadera. Es decir, la ejecucin
del programa continuar con al siguiente instruccin slo cuando se presione una
tecla, permitiendo de esta forma que la informacin mostrada en pantalla
permanezca el tiempo que determine el usuario.
3. Introduzca N nmeros enteros y muestre el promedio de los mismos.
Datos
N : identificador que indica la cantidad de nmeros a ingresar.
X : identificador que indica a cada uno de los nmeros.
Resultado
P : identificador que indica el promedio de los valores introducidos.
Condiciones Vinculantes
Las condiciones vinculantes son aquellas acciones necesarias de realizar
con los datos que brinda el problema para conseguir los resultados esperados.
Algunas de estas operaciones pueden ser evaluaciones o decisiones.
En nuestro caso particular, las condiciones vinculantes son dos:
1) realizar la suma de los nmeros ingresados y luego
2) realizar el cociente entre la suma y N para obtener el promedio aritmtico,
previa verificacin que N sea distinto de 0 (cero), ya que en este caso se
producira un error de tipo lgico.
Fundamentos de Informtica
Gua de Trabajos Prcticos
S:=0
C:=1
NO
C<=N
SI
X
S:=S+X
C:=C+1
NO
SI
N<>0
P:=S/N
No se puede
realizar la
divisin por
cero
PROGRAM Prob13;
USES
CRT;
VAR
N, X, C, S: integer;
P: real;
BEGIN
S := 0;
Readln (N);
C := 1;
While C<=N do
Begin
Readln (X);
S := S+X;
C := C+1;
End;
If N<>0 then
Begin
P := S/N;
Writeln(Promedio:,P:6:2);
End
Else
Writeln(No se puede
realizar la divisin por
cero);
Repeat Until Keypressed;
End.
FIN
Fundamentos de Informtica
Gua de Trabajos Prcticos
Resultado
CP : identificador que indica la cantidad de nmeros positivos introducidos.
En este caso se solicita determinar la cantidad de nmeros positivos, por lo tanto
es necesario introducir una variable contador para este propsito. Esta variable se
incrementar en una unidad cada vez que se ingrese un nmero positivo.
Condiciones Vinculantes
C:=1
CP:=0
NO
C<=N
SI
CP
X
FIN
NO
N>0
X >0
SI
CP:=CP+1
C:=C+1
PROGRAM Prob14;
USES
CRT;
VAR
N,X,C,CP: integer;
BEGIN
Readln(N);
C:=1;
CP:=0;
While C<=N do
Begin
Readln(X);
IF X > 0 THEN
CP:=CP+1;
C:=C+1;
End;
Writeln(La cantidad de
nmeros mayores a 0
son:,CP:4);
Repeat Until Keypressed;
End.
Fundamentos de Informtica
Gua de Trabajos Prcticos
P : identificador que indica el porcentaje de nmeros positivos introducidos.
Condiciones Vinculantes
Para calcular porcentajes siempre este debe ser con respecto a algo, en este caso
nos piden sobre los nmeros positivos, para la cual se debe acumular por un lado
estos nmeros y contar la cantidad de ellos; para tal fin se deben introducir dos
variables una acumulador y otra contador.
La frmula del porcentaje se consigue con una regla de tres simple en donde se
considera que la Cantidad Total de Valores N es el 100%, mientras que el
porcentaje solicitado se calcula con respecto al valor de la variable contador.
Codificacin en Lenguaje Pascal
N
C:=1
CP:=0
NO
C<=N
SI
X
SI
NO
X >0
CP:=CP+1
C:=C+1
NO
N>0
SI
P:=CP*100/N
P
PROGRAM Prob15;
USES
CRT;
VAR
N,X,C,CP,S: integer;
P:real;
BEGIN
Readln(N);
C:=1;
CP:=0;
While C<=N do
Begin
Readln(X);
IF X > 0 THEN
CP:=CP+1;
C:=C+1;
End;
If N > 0 then
Begin
P:=CP*100/N;
Writeln(Porcentaje de
nmeros positivos
ingresados :,P:6:2);
End;
Repeat Until Keypressed;
End.
FIN
Fundamentos de Informtica
Gua de Trabajos Prcticos
C:=1
CP:=0
NO
C<=N
SI
CP
X
FIN
NO
X mod 2 = 0
SI
CP:=CP+1
C:=C+1
PROGRAM Prob16;
USES
CRT;
VAR
N,X,C,CP: integer;
BEGIN
Readln(N);
C:=1;
CP:=0;
While C<=N do
Begin
Readln(X);
IF X mod 2 = 0 THEN
CP:=CP+1;
C:=C+1;
End;
Writeln(La cantidad de
nmeros pares es:,CP:6);
Repeat Until Keypressed;
End.
Fundamentos de Informtica
Gua de Trabajos Prcticos
C:=1
CG:=0
NO
C<=N
SI
CG
X
FIN
NO
X >0
NO
SI
(X mod 2=0)
and
(X mod 3=0)
SI
CG:=CG+1
C:=C+1
PROGRAM Prob17;
USES
CRT;
VAR
N,X,C,CG: integer;
BEGIN
Readln(N);
C:=1;
CG:=0;
While C<=N do
Begin
Readln(X);
IF X > 0 THEN
IF (X mod 2 = 0) and
(X mod 3 = 0) then
CG:=CG+1;
C:=C+1;
End;
Writeln(La cantidad de
nmeros mltiplos de 2 y 3
es:,CG:6:2);
Repeat Until Keypressed;
End.
Fundamentos de Informtica
Gua de Trabajos Prcticos
C:=1
may:=0
C<=N
SI
X
NO
X>may
C:=C+1
PROGRAM Prob18;
USES
CRT;
VAR
N,X,C,may: integer;
BEGIN
NO
Readln(N);
C:=1;
may
may:=0;
While C<=N do
Begin
FIN
Readln(X);
SI
IF X > may THEN
may:=X;
may:=X
C:=C+1;
End;
Writeln(El mayor de los valores
ingresados es:,may:6);
Repeat Until Keypressed;
Gua de Prcticos realizada por End.
la Ing. Sandra Valla Ao 2002 - Pgina 13
Fundamentos de Informtica
Gua de Trabajos Prcticos
N
C:=1
NO
C<=N
NO
SI
N<>0
NO
NO
X>may
C=1
SI
SI
may
SI
may:=X
FIN
May:=X
C:=C+1
Fundamentos de Informtica
Gua de Trabajos Prcticos
Fundamentos de Informtica
Gua de Trabajos Prcticos
Comparaciones del valor may con cada uno de los nmeros ingresados,
conservando el mayor valor y la posicin en que ingresa.
C := 1
N
NO
C<=N
NO
SI
N<>0
NO
SI
may
SI
C=1
NO
X>may
SI
FIN
May:=X
Pos:=C;
may:=X
Pos:=C;
C:=C+1
Fundamentos de Informtica
Gua de Trabajos Prcticos
IF may > X THEN
Begin
may:=X;
pos:=C;
End;
C:=C+1;
End;
IF N <> 0 THEN
Begin
Writeln(El mayor de los valores ingresados es:,may:6);
Writeln(La posicin en que ingres el mayor es:,Pos:6);
End;
Repeat Until Keypressed;
End.
11. Introduzca una cantidad no determinada de valores, cuyo final est determinado por
el valor cero, y determine la suma de ellos.
En este caso los valores se introducen pero al no conocerse la cantidad de valores
que se deben Ingrese no se puede poner un contador para que gobierne el corte
de control del ciclo de iteracin ya que no tenemos N (que era la cantidad de
valores) con quien comparar; por lo cual este corte de control es gobernado por
una condicin de negacin a la dada en el ciclo mientras se utiliza una estructura
While. En este ejemplo la condicin de corte ser: X<>0.
Dato
X : identificador que indica a cada uno de los nmeros.
Resultado
S: Suma de los valores ingresados
Condiciones Vinculantes
Frmula del acumulador, para incrementar el valor ingresado.
Codificacin en Lenguaje Pascal
S := 1
X
NO
X<>0
SI
S:=S+X
PROGRAM Prob111;
USES
CRT;
VAR
X,S: integer;
BEGIN
S
Readln(X);
S:=0;
While X<>0 do
Begin
FIN
S:=S+X;
Readln(X);
Gua de Prcticos realizada por
la Ing. Sandra Valla Ao 2002 - Pgina 17
End;
Writeln(El valor de la suma es:,S:6);
Repeat Until Keypressed;
End.
Fundamentos de Informtica
Gua de Trabajos Prcticos
12. Genere los nmeros impares menores a 100 y d a conocer la suma de ellos.
En este caso los valores no se introducen se generan de acuerdo a una
determinada frmula que se da en el enunciado del problema o que es ya
conocida, como en este caso donde se sabe que se comienza con el nmero 1 y
los dems se generan sumndole el valor 2 (dos) al nmero anterior. Adems se
conoce la cantidad de valores que se deben generar por lo que se puede poner un
contador para que gobierne el corte de control del ciclo de iteracin. En este
ejemplo la condicin de corte ser: C<=100.
Dato
No se poseen datos pues no se ingresa ninguna variable, todos los valores deben
ser generados.
Resultado
S: Suma de los valores generados.
Condiciones Vinculantes
Se comienza con el contador C=1 y se lo incrementa de a dos.
C:=1
S:=0
C<=100
S
S:=S+C
C:=C+2
FIN
PROGRAM Prob112;
USES
CRT;
VAR
C,S: integer;
BEGIN
C:=1;
S:=0;
While C<=100 do
Begin
S:=S+C;
C:=C+2;
End;
Writeln(El valor de la suma es:,S:6);
Repeat Until Keypressed;
End.
Fundamentos de Informtica
Gua de Trabajos Prcticos
Fundamentos de Informtica
Gua de Trabajos Prcticos
C. ENUNCIADO DE LOS PROBLEMAS A RESOLVER POR LOS ALUMNOS Y
PRESENTAR EN LA CARPETA DE TRABAJOS PRCTICOS
1. Lea N pares de nmeros enteros. Sume el mayor nmero de cada par y muestre
por pantalla la suma de los nmeros.
Ejemplo: La cantidad de pares, o sea N, es 4. Los pares de nmeros son :
(8 3), ( 4 9) , (6 0), (0 1)
La suma de los nmeros mayores de cada par es: 8+9+6+1=24
2. Dado un nmero entero y positivo de cuatro dgitos, genere a partir de l dos
nmeros A y B.
El nmero A es la suma de los dgitos pares y B la suma de los dgitos impares.
Muestre por pantalla ambos nmeros generados.
Ejemplo 1:
El nmero ingresado es: 5687
El nmero A generado es: 6+8=14
El nmero B generado es: 5+7=12
Ejemplo 2:
El nmero ingresado es: 5137
El nmero A generado es: 0
El nmero B generado es: 5+1+3+7=16
3. Se realiza el censo de una poblacin de N habitantes. Se ingresa por cada
habitante 3 datos: S, P y E. Con la variable S se representa el sexo, con P si es o
no profesional, y con E la edad del censado.
Se desea conocer:
a) La cantidad de personas de sexo masculino entre 30 y 60 aos que sean
profesionales.
b) La cantidad de personas de sexo femenino entre 30 y 60 aos que sean
profesionales.
c) Porcentaje de profesionales en relacin al total de la poblacin.
4. Dado un conjunto de N pares de nmeros X y Z enteros y positivos. Muestre la
sumatoria de los factoriales de aquellos valores de Z para los cuales el valor de X
es mltiplo de 3.
Ejemplo:
Cantidad de pares, o sea N: 3
(X= 9 , Z= 2) 9 es mltiplo de 3, por lo tanto 2!=2
(X=13 , Z=10) 13 no es mltiplo de 3, por lo tanto no se calcula el fact. de 10
Gua de Prcticos realizada por la Ing. Sandra Valla Ao 2002 - Pgina 20
Fundamentos de Informtica
Gua de Trabajos Prcticos
(X=15 , Z= 5) 15 s es mltiplo de 3, por lo tanto 5!=120
Sumatoria de los factoriales: 2+120=122
5. En un comercio que posee N vendedores, se ingresan al final del da el cdigo del
vendedor y las ventas realizadas por cada uno de ellos.
Se desea determinar cul es el monto total vendido por cada empleado y la venta
total del comercio.
Dado que no se conoce la cantidad total de ventas que realiz cada vendedor, se
establece que el ingreso de un valor negativo implica que ya se ingresaron todas
las ventas del vend edor en cuestin
Ejemplo:
Cantidad de vendedores, o sea N: 3
Cdigo de vendedor: 101
Ventas realizadas: $650.00
$420.00 $330.00 -15
Total de venta del vendedor 101: $1400
Cdigo de vendedor: 126
Ventas realizadas: $120.00 $200.00 -20
Total de venta del vendedor 126: $320.00
Cdigo de vendedor: 305
Ventas realizadas: $500.00 $700.00 $400.00 $125.00 -5
Total de venta del vendedor 305: $1725.00
Total de venta del comercio: $3445.00
Fundamentos de Informtica
Gua de Trabajos Prcticos
D. PROBLEMAS ADICIONALES OPTATIVOS
Fundamentos de Informtica
Gua de Trabajos Prcticos
12. Ingrese un nmero natural N. Sin dividir ni multiplicar determine si ese valor era o no
par.
13. Utilizando solamente la operacin de suma, calcule el producto de los nmeros A y
B.
14. Sin hacer uso de las operaciones de producto y cociente calcular A/B, donde tanto
A como B son nmeros enteros, dando su cociente exacto y su resto.
15. Se ingresa un nmero de cuatro dgitos. Liste todos sus divisores.
16. Se ingresa un valor numrico entero. Se desea conocer la suma de los dgitos que
conforman el nmero. Presente por pantalla el nmero introducido y la suma de los
dgitos.
Ejemplo: Nmero introducido: 1989. Suman = 27
17. Ingrese una secuencia de nmeros negativos hasta que la suma de ellos sea menor
o igual que -250. Finalmente imprimir la suma y la cantidad de nmeros ingresados.
18. Ingrese una secuencia de valores hasta que su suma sea mayor o igual a 328.
Imprima la suma y la cantidad de nmeros ingresados.
19. Ingrese una secuencia de nmeros, hasta que se ingrese el valor -99. Muestre el
promedio de los nmeros ingresados.
20. Ingrese una secuencia de nmeros, hasta que se ingrese el valor 100. Muestre el
porcentaje de los nmeros pares ingresados.
21. Ingrese N valores numricos e imprima slo aquellos que sean mltiplos de 3.
22. Se ingresa una serie de nmeros el final de la serie viene dado por un cero. Cuente
cuntos nmeros ingresan. Cuntos eran mltiplos de 3 y cuntos de 7. Presente
los resultados obtenidos.
23. Se ingresan N valores numricos X, tales que debe cumplirse que 1 <= X <= 15.
Cualquier nmero ingresado fuera del rango establecido no se debe tener en
cuenta. Acumule los valores ingresados en las siguientes variables:
En A si > 1 <= X <= 5
En B si > 6 <= X <= 10
En C si > 11 <= X <= 15
Debe finalmente presentar los resultados por pantalla.
Fundamentos de Informtica
Gua de Trabajos Prcticos
24. Dados 2 valores A, B correspondientes a los extremos de un intervalo [A,B]. Ingrese
N valores numricos e indique cuntos de los N valores ingresados pertenecen al
intervalo.
25. Ingrese el radio de un crculo y las coordenadas de N puntos en el plano. Teniendo
en cuenta que el crculo tiene su centro en el origen de coordenadas, debe contar:
a) Cuntos puntos estn fuera del crculo.
b) Cuntos puntos estn sobre el permetro del crculo.
c) Cuntos puntos estn dentro del crculo.
Finalmente presentar por pantalla las cuentas logradas.
26. Se ingresan las coordenadas de N puntos en el plano. Se desea saber cuntos
puntos correspondan a cada cuadrante. No se tendrn en cuenta para el conteo los
puntos que caen sobre los ejes de coordenadas.
27. Considerando la ecuacin de la recta y=3x+5,ingrese las coordenadas de N puntos
en el plano. Determine:
a) Cuntos puntos estaban arriba de la recta.
b) Cuntos puntos estaban sobre la recta.
c) Cuntos puntos estaban abajo de la recta.
28. En una empresa se necesita saber cunto se debe pagar de sueldo a sus
empleados, teniendo en cuenta que se debe pagar un adicional por:
a) Antigedad: de 1 a 5 aos: 10% del Sueldo Bsico (SB)
de 5 a 10 aos: 17% del SB.
de 10 ms aos: 25% del SB.
b) Familia numerosa: 15% (cuando posee tres o mas hijos) del SB
Y se efectan descuentos por:
a) Obra social: 3% del Sueldo bsico
b) Seguro Obligatorio: 11% del Sueldo bsico
Considerando N empleados se desea saber el sueldo neto de cada uno de ellos y
el monto total que debe pagar la empresa.
29. En una competencia donde participan cazadores se desea conocer el promedio de
distancia de los disparos que realiza cada competidor y su nmero de
participacin. Se sabe que cada competidor puede realizar N disparos, pero el
nmero total de cazadores no se conoce.
30. Una empresa fabrica productos que se codifican con nmeros de dos dgitos. Con
fines estadsticos, al finalizar el ao se ingresan por cada uno de los productos 12
conjuntos de datos, uno para cada mes del ao. Cada conjunto contiene 3 valores:
1) La cantidad vendida.
2) El precio de venta
3) El precio de costo.
Determine:
Gua de Prcticos realizada por la Ing. Sandra Valla Ao 2002 - Pgina 24
Fundamentos de Informtica
Gua de Trabajos Prcticos
a) La utilidad anual de cada producto.
b) La utilidad total anual de la empresa.
c.- el cdigo del producto ms vendido en el ao.
d.- el mnimo valor de costo indicando a qu mes pertenece y a qu artculo.
31. Escriba un programa que genere las siguientes series de valores numricos:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25