Beruflich Dokumente
Kultur Dokumente
Datos de Salida de
Entradas Proceso información
CPU
Teclado, Unidad de Unidad Impresora
Mouse Control Arit. / Lógica Monitor
Dispositivo de Entrada: Sirven para introducir datos en la computadora para su proceso.
Ejemplos: Teclado, Scanner, Mouse, y otros.
Memoria ROM ( Read Only Memory ): Es una memoria estática que no puede
cambiar, la computadora puede leer los datos almacenados en la memoria ROM, pero no
se pueden introducir datos en ella, o cambiar los datos que ahí se encuentran, por lo que
se dice que es una memoria solo de lectura. Los datos son grabados por el fabricante.
Memoria Auxiliar Externa: Es donde se almacenan todos los programas o datos que el
usuario desee. Los dispositivos de almacenamiento o memorias auxiliares ( externas o
secundarias ) más utilizadas son cintas magnéticas, y discos magnéticos.
Buses: Se llama Bus a la conexión ( eléctrica ), entre elementos del procesador, o entre el
procesador y otros elementos periféricos ( Entrada / Salida ), con el fin de transmitir datos
o información de control entre ellos.
Bus de Datos: Por este bus circulan los datos con lo que va a trabajar la computadora.
Debe estar conectado a la memoria puesto que en ella se graban y leen los datos.
Bus de Control: Se usa para transmitir información de control entre los elementos, como
por ejemplo si la operación de impresión fue realizada correctamente.
Sistema de Numeración:
El sistema Decimal: también llamado de base 10, debido a que se utilizan diez dígitos
diferentes ( 0 al 9 ).
BYTE: Es una hilera de ocho Bits, que permiten representar hasta 256 diferentes valores
de una entidad dada.
Palabra: Se refiere al conjunto de bits que puede ser manejado de manera simultánea
por el procesador.
Todo evento, problema o caso aplicado a la vida diaria de una u otra forma es
analizada inconscientemente a partir de una lógica natural, la cual es lograda de vivencias
o conocimientos que fortalecen nuestro aprendizaje de tal manera que podamos
enfrentarnos a escenarios similares o vagamente diferentes, y atacarlos de diferentes
perspectivas lo cual hace que un individuo tenga más o menos capacidad de entender o
desarrollar un ejercicio desde el punto de vista de la lógica de programación.
Top Down: También conocida como de arriba-abajo y consiste en establecer una serie de
niveles de mayor a menor complejidad que den solución al problema. Consiste en
efectuar una relación entre las etapas de estructuración de forma que una etapa jerárquica
y su inmediato inferior se relacionan mediante Entrada y Salidas de información.
Problema
Superficie del Rectángulo
Definición del Problema: Esta fase está dada por el enunciado del problema, el cual
requiere de una definición clara y precisa. Es importante que se conozca lo que se desea
que realice la computadora.
2.- No gráficos: Representa en forma descriptiva las operaciones que debe realizar un
algoritmo y/o Pseudocódigo .
Tipos de Algoritmos:
1.- Cualitativos: Son aquellos en lo que se describen los pasos utilizando palabras.
2.- Cuantitativos: Son aquellos pasos o instrucciones que involucran cálculos numéricos
para llegar a un resultado satisfactorio.
INICIO
1.- Detener el vehículo.
2.- Verificar cual neumático se pincho.
3.- Abrir la maleta.
4.- Sacar triangulo de seguridad, caucho de repuesto, llave de cruz y gato hidráulico.
5.- Colocar triangulo.
6.- Aflojar tuercas.
7.- Levantar auto.
8.- Terminar de aflojar tuercas.
9.- Sacar Caucho.
10.-Colocar caucho de repuesto.
11.-Ajustar tuercas
12.-Bajar el vehículo.
13.-Apretar tuercas.
14.-Guardar gato, llave, caucho y triangulo.
15.-Cerrar maleta.
16.-Encender auto.
17.Continuar viaje.
FIN.
SIMBOLOS DESCRIPCION
Proceso y / o asignación de un
valor en memoria (declaración)
Si
Decisión
No
Permitidos No permitidos
Nombre 2Nombre { comienza por numero}
Sueldo_básico Sueldo básico {espacio en blanco}
Sueldoneto %Sueldo { comienza por carácter especial}
Num1 Sueldo-neto { tiene un guión }
A
NOTA:
Los nombres de los identificadores deben ser nemotécnicos, es decir, que con solo leer el
nombre se pueda entender o determinar con facilidad lo que ella significa o contiene, por
ejemplo si nos piden calcular el descuento lo lógico es llamar al identificador como
descu ya que significa a simple vista descuento, si le hubiésemos dado el nombre de X ó
A, estos nombres pueden significar muchas cosas o no significar nada.
CONSTANTE
Tipos de datos: Cuando se realiza un programa hay que cargar en memoria cual es el
dato que va a manejar la variable.
VARIABLE
Nota: cuando existen varias variables que almacenan el mismo tipo de datos se pueden
separar por una coma y al final se le asigna el tipo de dato
Ejemplo:
VARIABLE
Es importante recalcar que existen dos grupos de variables según la función que estas
desempeñan dentro del algoritmo.
Variable de lectura o entrada : son aquellas que son usadas en los algoritmos
para alimentarlo de información y de esta manera poder procesar y emitir un
resultado.
Variables de Cálculos: son aquellas usadas para procesar las variables de entrada
y que por lo general están asociadas a un calculo matemático o asignación.
La tasa de retención se comporta como una constante ya que es un valor que no cambia
durante la ejecución del proceso
ASIGNACIÓN: Consiste en el paso de valores o resultados de una expresión a una zona
de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el
valor por medio de una lectura de datos o asignación .
La asignación se clasifica en :
Simples: Consiste en pasar un valor constante a una variable ( A : = 5 ) .
Contador: Consiste en usarla como un verificador del número de veces que se
realiza un proceso ( A : = A + 1 ).
Acumulador:Consiste en usarla como un sumador de un proceso(SE:=SE+edad )
De trabajo: Donde puede recibir el resultado de una operación matemática que
involucre muchas variables ( A : = C + B*2 / 4 ).
1.- Toda Variable que aparezca al lado derecho de un enunciado de asignación debe estar
definido.
B: = 6; C: = 4; Cant_dias := 25;
A : = 10; B: = 9; C: = 10;
Enunciado1: A : = B + C , el valor inicial asignado a la variable A es de 10 antes de
ejecutarse el enunciado de asignación, el cual cambiará por 19 porque esta variable se
encuentra del lado izquierdo y las variables del lado derecho del enunciado de asignación
mantienen su valor después de ejecutarse B : = 9, C : = 10.
A : = 10; B: = 9; C: = 10;
Escribir ( ‘ Mensaje ‘ );
Escribir ( ‘ Mensaje ‘, Variable );
Imprimir ( ‘ Mensaje ‘ );
Imprimir ( ‘ Mensaje ‘, Variable );
Déme nombre
Luis
Su Indice académico es
15
Leer ( nombre_variable );
Almacenar ( nombre_variable );
En el ejemplo anterior de
Nota: las instrucciones Escribir o imprimir y Leer o almacenar van dentro del cuerpo
principal del programa
Todas las instrucciones que se escriban dentro del algoritmo o Pseudocódigo deben
terminar en punto y coma ; lo que esta entre llaves representa un comentario
ESTRUCTURA DE UN PSEUDOCODIGO:
Nombre_del_Algoritmo; { encabezado }
{ Sección de Declaraciones }
Constante
Nombre_Identificador = Valor ;
Variable
Nombre_Identificador : Tipo dato ;
{ Cuerpo Principal }
INICIO
Las Instrucciones: son las acciones a
{ instrucciones }
seguir dentro del algoritmo y estas deben
terminar en punto y coma ;
Escribir ( ‘ mensaje’ );
Lo que esta entre llaves { } se considera
Leer ( Variable ) ;
comentario
{ proceso }
a: = a + b;
{ Salida }
Escribir ( ‘ mensaje ‘, variable );
FIN.
Ejemplos:
Ahora vamos a realizar una serie de ejercicios en donde aplicaremos los conceptos
emitidos hasta el momento ( algoritmos, Pseudocódigo y diagramas de flujos ).
En cada ejemplo se harán dos tipos de algoritmos diferenciado uno como algoritmo y el
otro como Pseudocódigo en donde el segundo se escribe de forma tal que sea lo mas
parecido a escribir un programa, en este caso al programa PASCAL el cual puede ser
utilizado por los estudiantes que cursan programación.
Problemas Secuénciales
1.- Suponga que un individuo desea invertir su capital en un banco y desea saber cuanto
dinero ganará después de un mes si el banco pagará a razón de 2% mensual.
Respuesta:
Hacemos un análisis del algoritmo.
Pseudocódigo
Algoritmo Banco; { encabezado }
Inicio Constantes
variable Interes = 0.02; { sección de declaraciones }
capital : real; Variables
constante Capital, ganancia : real;
interes = 0.02; Inicio { cuerpo principal }
Leer capital; { entrada } Escribir ( ‘ deme el capital ‘ ); {entrada }
ganancia:= capital * interes; Leer ( capital );
imprimir capital; Ganancia : = capital * interes; { proceso}
Fin. Escribir ( ‘ la ganancia es =’ , ganancia :0:2 );{ salida}
Fin.
Diagrama de flujo
INICIO
Capital
ganancia
FIN
2.- Un vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas, el
vendedor desea saber cuanto dinero obtendrá por concepto de comisiones por las tres
ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo
base y comisión.
Respuesta:
Hacemos un análisis del algoritmo.
Entrada Proceso Salida
Sb
Venta1 Com := (venta1+venta2+venta3)*PC; Com
Venta2 Total_cobrar := Sb + com; Total_cobrar
Venta3
PC = 0.10; Pseudocódigo
Algoritmo Vendedor; { encabezado }
Inicio Constantes
variable PC = 0.02; { sección de declaraciones }
sb, venta1,venta2,venta3, com, Variables
total _ cobrar : real; Sb,venta1,venta2,venta3,com,total_cobrar: real;
constante Inicio { cuerpo principal }
PC = 0.02; Escribir ( ‘ déme salario básico ‘ ); Leer ( sb );
Leer sb,venta1,venta2,venta3; Escribir ( ‘ déme venta1 ‘ ); Leer ( venta1 );
com:=(venta1+venta2+venta3)*PC; Escribir ( ‘ déme venta2 ‘ ); Leer ( venta2 );
Total_cobrar:= Sb + com; Escribir ( ‘ déme venta3 ‘ ); Leer ( venta3 );
imprimir com, Total_cobrar; Com := (venta1+venta2+venta3)*PC;
Fin. Total_cobrar:= Sb + com;
Escribir ( ‘ la comisión es ‘, com:0:2 );
Escribir ( ‘ el total a cobrar es ‘, Total_cobrar::0:2 );
Fin.
Diagrama de flujo
INICIO
Sb,venta1,venta2,
venta3
Com: = (venta1+venta2+venta3)* PC
Total_cobrar:= SB + Com ;
Com,
total_cobrar
FIN
3.- Realizar un algoritmo y diagrama de flujo que pida dos números enteros y muestre por
pantalla la suma de esos números.
Respuesta:
Hacemos un análisis del algoritmo.
Diagrama de flujo
INICIO
Suma, num1, num2 : enteros;
Num1, num2
suma
FIN
4.- Realizar un algoritmo y DF que permita leer el nombre, sueldo por horas y horas
trabajadas de un empleado, se sabe que el porcentaje de deducción es del 5% del salario
básico, se pide mostrar el nombre del cliente, el monto de deducción, el salario básico y
el salario neto.
Respuesta:
Hacemos un análisis del algoritmo.
INICIO
Nombre: cadena;
Ht, sh, sb, ht, descu, sn : real; pd = 0.10;
Nombre, sh, ht
Sb := sh*ht;
Descu := sb*pd;
Sn := sb – descu;
Nombre,
sb,desc,sn
FIN
Pseudocódigo
Algoritmo Tienda; { encabezado }
Inicio Constantes
variable Pd = 0.15; { sección de declaraciones}
Total _ compra,Desc,Total _ pagar :real; Variables
constante Total _ compra,Desc,Total _ pagar :real;
pd = 0.15; Inicio { cuerpo principal }
Leer Total _ compra; { entrada } Escribir ( ‘ indique total compra ‘ );
Desc := total_compra*pd; Leer ( Total _ compra );
total _ pagar : = total _ compra – Desc; Desc := total_compra*pd;
imprimir total _ pagar ; total _ pagar : = total _ compra – Desc;
Fin. Escribir ( ‘va a pagar’, total_pagar : 0 :2 );
Fin.
6.- Realizar un algoritmo que permita convertir temperaturas dadas en grados Celsius a
temperaturas en grados Fahrenheit.
Fahrenheit = 9 / 5 ( C + 32 )
Entrada Proceso Salida
C Fahrenheit = 9 / 5 ( C + 32 ) Fahrenheit
Algoritmo Pseudocódigo
Inicio Grados;
Fahrenheit, C : real; Variables
Leer C; Fahrenheit, C : real;
Fahrenheit = 9 / 5 ( C + 32 ); Inicio
Imprimir Fahrenheit; Escribir ( ‘ indique grados C’);
Fin Leer( C );
Fahrenheit = 9 / 5 ( C + 32 );
Escribir(‘ Fahrenheit =’, Fahrenheit:0:2);
Fin
9.- Calcular el perímetro y la superficie de un rectángulo dadas la base y altura del mismo
S = B *A y P= 2 * ( B +A)
Algoritmo Pseudocódigo
Inicio Rectángulo;
S, B, A, P : real; variables
Leer B, A; S, B, A, P : real;
S : = B * A; Inicio
P: = 2 * ( B + A ); Escribir ( ‘ déme base ‘); Leer ( B );
Imprimir S, P; Escribir ( ‘ déme altura ‘); Leer ( A );
Fin. S : = B * A;
P: = 2 * ( B + A );
Escribir( ‘ superficie =’, S :0:2);
Escribir(‘ perímetro =’, P:0:2);
Fin.
Area = p ( p –a ) ( p –b ) ( p – c )
Pseudocódigo
P=(a+b+c)/2 ( semiperimetro = p )
Algoritmo Triangulo;
variables
Inicio A, B, C, P, Area : real;
A, B, C, P, Area : real; Inicio
Leer A, B, C Escribir ( ‘ déme A, B, C’);
P=(a+b+c)/2; Leer ( A, B, C );
Area = sqrt ( p* ( p –a ) * ( p –b ) *( p – c ) ); P=(a+b+c)/2;
Imprimir Area; Area = sqrt ( p* (p –a )*(p –b )*(p – c ) );
Fin. Escribir ( ‘ Area =’, area :0:2);
EJERCICIOS PROPUESTOSFin.
1.- Un alumno desea saber cual será su calificación final en la materia de informática I.
Dicha calificación se compone de los siguientes porcentajes:
A.- 55% del promedio de sus tres calificaciones parciales.
B.- 30% de la calificación de un examen final.
C.- 15% de la calificación de un trabajo final. Realizar algoritmo y diagrama de flujo
2.- Un maestro desea saber que porcentaje de hombres y que porcentajes de mujeres hay
en un grupo de estudiantes. Realizar algoritmo y diagrama de flujo
4.- Dada una cantidad en dólares obtener la equivalencia en bolívares, asumiendo que la
unidad cambiaria es un dato que se lee por teclado. Realice algoritmo y diagrama de
flujo.
6.- Calcular el numero de pulsaciones que una personas debe tener por cada 10 segundos
de ejercicios, si la formula es : num.pulsaciones = ( 220 – edad ) / 10.
8.- El dueño de una tienda compra un articulo a un precio determinado. Obtener el precio
en que lo debe vender para obtener una ganancia del 30%.
9.- Todos los lunes, miércoles y viernes, una persona corre la misma ruta y cronometra
los tiempos obtenidos. Determinar el tiempo promedio que una persona tarda en recorrer
la ruta en una semana cualquiera.
10.- Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas
invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto
a la cantidad total invertida.
Obtener la cantidad de dinero que recibirá cada área, para cualquier monto
presupuestado.
12.- Un alumno desea saber cual será su promedio general en las tres materias más
difíciles que cursa y cual será el promedio que obtendrá en cada una de ellas. Estas
materias se evalúan como se muestra a continuación.
13.- Realizar un algoritmo y DF que lea un numero entero y posteriormente muestre por
pantalla el cuadrado del número y la raíz cuadrada de ese número.
14.- Realizar un algoritmo y DF que lea dos números enteros y muestre por pantalla la
suma, la resta, la multiplicación y división de los números leídos.
15.- Realizar un algoritmo que permita leer tres valores reales y posteriormente muestre
por pantalla el promedio de los mismos.
16.- Realizar un algoritmo y DF que calcule las raíces de una ecuación de segundo grado
según:
X= -B+ B–4*A*C
-------------------------
2*A
Velocidad = espacio/tiempo
19.- Escribir un programa que lea dos números enteros A y B, y obtenga los valores A div
B, A mod B.
20.- Escribir un programa en Pascal que calcule el capital producido por un capital de
1.000.000 de pesetas, al cabo de un año depositado a un interés del 2%.
ALGORITMOS CON ESTRUCTURAS DE BIFURCACION
Caso 1.1 : Cuando en una condición hay que ejecutar más de una instrucción se debe
abrir un bloque inicio y fin para indicarle al algoritmo que dichas instrucciones
pertenecen a la expresión lógica inicial.
Caso 1.2 : Cuando existe una sola instrucción que ejecutar no es necesario el inicio y fin.
Si ( condición ) entonces
Instrucción_unica;
Si ( condición ) entonces
Instrucción ( es );
De lo contrario
Si ( condición ) entonces
Instrucción ( es );
De lo contrario
Si ( condición ) entonces
Instrucción ( es );
Operadores: son elementos que relacionan de formas diferentes, los valores de una o
más variables y / o constantes. Es decir, permiten manipular valores.
> mayor, < menor, > = mayor o igual, < = menor o igual, = igual, < > diferente.
Ejemplos: A = 10 B = 20 C = 30
Ejemplos:
Determinar si Interes es mayor o igual que
Determinar si descu es mayor que pago prima + 500
Si una persona cualquiera gana mas de 1000000 se le retiene el 20% de su sueldo pero si
gana 1000000 o menos se le retiene el 10% de su sueldo.
Tipos de operadores
And ( y ) : para que una condición compuesta sea verdadera, todas las
condiciones simples deben ser verdadera, es decir basta con que una condición
sea falsa para que toda la expresión sea falsa.
CONDICION 1 CONDICION 2 RESULTADO
VERDADERO VERDADERO VERDADERO
VERDADERO FALSO FALSO
FALSO VERDADERO FALSO
FALSO FALSO FALSO
OR ( O ): Para que una condición compuesta sea verdadera basta con que una
sola condición simple sea verdadera .
CONDICION 1 CONDICION 2 RESULTADO
VERDADERO VERDADERO VERDADERO
VERDADERO FALSO VERDADERO
FALSO VERDADERO VERDADERO
FALSO FALSO FALSO
CONDICION RESULTADO
VERDADERO FALSO
FALSO VERDADERO
Ejemplo A = 10 B = 4 { si A es menor a B o B es diferente a 4 guarda en la variable C
la suma de A y B , y en una variable D guarda la multiplicación de a y b, si no se cumple
una de las condiciones en la variable C se guarda la resta de A y B , y en la variable D se
guarda la división de A y B}
Inicio
C : = A + B;
D : = A * B;
Fin
De lo contrario { Según este planteamiento las condiciones son falsa pero como se
Ejercicios:
Respuestas:
Algoritmos Pseudocódigo
Diagrama de flujo
INICIO
precio_uni,
cant_arti;
MC : = Cant_arti * Precio_uni;
si
MC >200000 Descuento:= mc*pd
no
A
Mp : = MC - descuento A
MP
FIN
2.- Realizar un algoritmo y DF para determinar si un alumno aprueba o reprueba un
curso, sabiendo que aprobará si su promedio de tres calificaciones es mayor o igual a 14;
en caso contrario reprueba.
Entrada Proceso Salida
Nota1 Prom : =( nota1 +nota2 +nota3) / 3 Aprobado
Nota2 Si ( prom > = 14 ) entonces Reprobado
Nota3 escribir ( ‘ aprobado ‘)
De lo contrario
Escribir (‘ reprobado ‘);
Algoritmos Pseudocódigo
Promedio; { Encabezado}
INICIO
Variables { Sección de Declaraciones}
1.- nota1,nota2,nota3, prom: real;
nota1,nota2,nota3, prom: real;
2.- Leer nota1, nota2, nota3;
3.- Prom : =( nota1 +nota2 +nota3) / 3;
INICIO { Cuerpo principal }
Si ( prom > = 14 ) entonces
Escribir( ‘teclee nota 1’);
escribir ( ‘ aprobado ‘)
Leer ( nota1); { Entradas}
De lo contrario
Escribir(‘ teclee nota2’);
Escribir (‘ reprobado ‘);
Leer ( nota2);
Fin_si;
Escribir(‘ teclee nota3’);
FIN.
Leer ( nota3);
Prom : =( nota1 +nota2 +nota3) / 3;
Si ( prom > = 14 ) entonces
escribir ( ‘ aprobado ‘)
De lo contrario
Escribir (‘ reprobado ‘);
FIN. { Cuerpo principal }
Diagrama de flujo
INICIO
Nota1, nota2,
nota3
NO SI
‘REPROBADD ‘ APROBADO’
Prom >= 14
O’
3.- Una persona enferma que pesa 70 FIN Kg se encuentra en reposo y desea saber cuantas
calorías consume su cuerpo durante todo el tiempo que realice una actividad. Las
actividades que tiene permitidas realizar son únicamente dormir o estar sentado en
reposo. Los datos que tiene son que estando dormido consume 1.08 calorías por minutos
y estando sentado en reposo consume 1.66 calorías por minutos.
Respuesta
Entrada Proceso Salida
Tiempo; Si ( actividad = ‘ dormido ‘ ) entonces Cal_dormido
Actividad; Cal_dormido: = cdor * tiempo Cal_sentado
Cdor = 1.08; de lo contrario
Csent = 1.66; Cal_sentado : = Csent * tiempo;
Algoritmo Pseudocódigo
INICIO Reposo; { encabezado}
Actividad : cadena; Constantes
Tiempo, cal_dormido, cal_sentado : real; Cdor = 1.08; { sección de declaraciones}
Cdor = 1.08; Csent = 1.66;
Csent = 1.66; Variables
Leer Actividad, tiempo; Actividad : cadena;
Si ( actividad = ‘ dormido ‘ ) entonces Tiempo, cal_dormido, cal_sentado : real;
Cal_dormido: = cdor * tiempo INICIO { cuerpo principal }
de lo contrario Escribir( ‘ déme el tiempo’); Leer ( tiempo );
Cal_sentado : = Csent * tiempo; Escribir ( ‘ actividad dormido o sentado ‘);
Fin _ sí; Leer ( actividad );
Imprimir Cal_dormido, Cal_sentado; Si ( actividad = ‘ dormido ‘ ) entonces
FIN. Cal_dormido: = cdor * tiempo
de lo contrario
Cal_sentado : = Csent * tiempo;
Escribir ( ‘ las calorías dormido‘,cal_dormido:0:2);
Escribir ( ‘ las calorías sentado‘,cal_sentado:0:2);
FIN. { cuerpo principal }
Diagrama de flujo
INICIO
Actividad,
tiempo
NO SI
Cal_sentado: =
Csent * tiempo; Cal_dormido:= cdor * tiempo
Actividad =
“dormido”
Cal,sentado, cal_dormido
4.- Realizar un algoritmo que lea dos números y los imprima en forma ascendente.
Respuesta
Entrada Fin
Proceso Salida
Numero1 Si (numero1 < numero2) entonces numero1, numero2
Numero2 imprimir ( numero1, numero2) numero2,numero1
De lo contrario
Imprimir ( numero2, Ascendentes;
numero1 ); { encabezado}
Variables { sección de declaraciones}
Pseudocódigo
Algoritmo Numero1, numero2 : real;
Pseudocódigo
INICIO Inicio { cuerpo principal }
Numero1, numero2 : real; Escribir( ‘ indique número 1’ );
Leer numero1, numero2; Leer ( numero1); { entradas }
Si (numero1 < numero2) entonces Escribir( ‘ indique número 2’ );
Leer ( numero2);
Si (numero1 < numero2) entonces {procesos}
imprimir ( numero1, numero2)
De lo contrario
Imprimir ( numero2, numero1 ); { salidas}
FIN.
imprimir ( numero1, numero2)
De lo contrario
Imprimir ( numero2, numero1 );
Fin_sí;
FIN.
5.- Hacer un algoritmo que calcule el total a pagar por la compra de camisas de una
misma marca. Si se compran tres camisas o más se aplica un descuento del 20% sobre el
monto de la compra y si son menos de tres un descuento del 10%.
Respuesta
Entrada Proceso Salida
Cant_camisas MC : = Cant_camisas * precio
Precio Si ( cant_camisas >= 3 ) entonces MP
Pd1 = 0.20; MP := MC – MC * pd1
Pd2 = 0.10; de lo contrario
MP : = MC - MC * pd2; Pseudocódigo
Agoritmo
INICIO Macuto;
Cant_camisas: enteros; Constantes
Precio, mc, mp : real; Pd1 = 0.20; Pd2 = 0.10;
Pd1 = 0.20; Variables
Pd2 = 0.10; Cant_camisas: enteros; Precio, mc, mp : real;
Leer Cant_camisas, precio; Inicio
MC : = Cant_camisas * precio; Escribir( ‘ déme cantidad ‘); leer ( cant_camisas);
Si ( Cant_camisas >= 3 ) entonces Escribir( ‘ déme precio‘); leer ( precio);
MP := MC – MC * pd1 MC : = Cant_camisas * precio;
de lo contrario Si ( Cant_camisas >= 3 ) entonces
MP : = MC - MC * pd2; MP := MC – MC * pd1
Fin_sí; de lo contrario
Imprimir ( ‘ monto a pagar ‘ , mp:0:2); MP : = MC - MC * pd2;
FIN. Imprimir ( ‘ monto a pagar ‘ , mp:0:2);
FIN.
Existen otras formas de resolver el mismo problema.
Pseudocódigo
Agoritmo
INICIO Macuto;
Cant_camisas: enteros; Constantes
Desc, Precio, mc, mp : real; Pd1 = 0.20; Pd2 = 0.10;
Pd1 = 0.20; Variables
Pd2 = 0.10; Cant_camisas: enteros; desc, Precio, mc, mp : real;
Leer Cant_camisas, precio; Inicio
MC : = Cant_camisas * precio; Escribir( ‘ déme cantidad ‘); leer ( cant_camisas);
Si ( Cant_camisas >= 3 ) entonces Escribir( ‘ déme precio‘); leer ( precio);
Desc : = MC * pd1 MC : = Cant_camisas * precio;
de lo contrario Si ( Cant_camisas >= 3 ) entonces
Desc : = MC * pd1
de lo contrario
desc : = MC * pd2;
MP : = MC – desc;
Imprimir ( ‘ monto a pagar ‘ , mp:0:2);
FIN.
Desc : =MC * pd2;
Fin_sí;
MP : = MC – Desc;
Imprimir ( ‘ monto a pagar ‘ , mp:0:2);
FIN.
Pseudocódigo
Agoritmo
INICIO Macuto;
Cant_camisas: enteros; Constantes
Desc, Precio, mc, mp : real; Pd1 = 0.20; Pd2 = 0.10;
Pd1 = 0.20; Variables
Pd2 = 0.10; Cant_camisas: enteros; desc, Precio, mc, mp : real;
Leer Cant_camisas, precio; Inicio
MC : = Cant_camisas * precio; Escribir( ‘ déme cantidad ‘); leer ( cant_camisas);
Si ( Cant_camisas >= 3 ) entonces Escribir( ‘ déme precio‘); leer ( precio);
inicio MC : = Cant_camisas * precio;
Desc : = MC * pd1; Si ( Cant_camisas >= 3 ) entonces
MP : = MC – Desc; inicio
fin Desc : = MC * pd1;
de lo contrario MP : = MC – desc;
inicio fin
Desc : =MC * pd2; de lo contrario
MP : = MC – Desc; inicio
Fin; desc : = MC * pd2;
Imprimir ( ‘ monto a pagar ‘ , mp:0:2); MP : = MC – desc;
FIN. Fin;
Imprimir ( ‘ monto a pagar ‘ , mp:0:2);
FIN.
Mayor _ número;
Variable
6.- Realizar un algoritmo que permita leern1,n2,n3, tres valores
mayor :numéricos
enteros; enteros y
posteriormente muestre por pantalla cual es el mayor.
Inicio
Respuesta Escribir ( ‘ déme numero 1’); leer ( n1);
Entrada Proceso Escribir ( ‘ déme numeroSalida
2’); leer ( n2);
N1 Escribir ( ‘ déme numero 3’); leer ( n3);
N2 el proceso lo veremos en el SI (n1=n2)and(n2=n3)and(n1=n3)entonces
Mayor
N3 algoritmo Imprimir ( ‘ son iguales ‘ )
De lo contrario
Algoritmo inicio Pseudocódigo
Si (N1>=N2)AND(N1>=N3)entonces
INICIO
MAYOR:=N1;
n1,n2,n3, mayor : enteros;
Si (N2>=N1)AND(N2>=N3)entonces
leer n1, n2,n3;
MAYOR:=N2;
Si (N3>=N2)AND(N3>=N1)entonces
MAYOR:=N3;
Escribir ('EL MAYOR ES..' ,MAYOR);
Fin;
FIN.
SI (n1=n2)and(n2=n3)and(n1=n3)entonces
Imprimir ( ‘ son iguales ‘ )
De lo contrario
inicio
Si (N1>=N2)AND(N1>=N3)entonces
MAYOR: =N1;
Si (N2>=N1)AND(N2>=N3)entonces
MAYOR: =N2;
Si (N3>=N2)AND(N3>=N1)entonces
MAYOR: =N3;
Imprimir ('EL MAYOR ES..' ,MAYOR);
Fin;
FIN.
OTRA FORMA
Mayor _ número;
Variable
n1,n2,n3, mayor : enteros; DIAGRAMA DE FLUJO
Inicio
Escribir ( ‘ déme numero 1’); leer ( n1);
Escribir ( ‘ déme numero 2’); leer ( n2);
Escribir ( ‘ déme numero 3’); leer ( n3);
SI (n1=n2)and(n2=n3)and(n1=n3)entonces
Imprimir ( ‘ son iguales ‘ )
De lo contrario
inicio
Si (N1>=N2) entonces
MAYOR: = N1
De lo contrario
MAYOR: = N2;
IF (N3>=mayor)THEN
MAYOR: = N3;
Mayor _ número;
Escribir ('EL MAYOR ES..',MAYOR:0:2);
Variable
Fin;
n1,n2,n3, mayor : enteros;
FIN.
INICIO
OTRA FORMA ES UTILIZANDO UN SI COMPLEJO
Escribir ( ‘ déme numero 1’); leer ( n1);
Escribir ( ‘ déme numero 2’); leer ( n2);
Escribir ( ‘ déme numero 3’); leer ( n3);
SI (n1=n2)and(n2=n3)and(n1=n3)entonces
Imprimir ( ‘ son iguales ‘ )
De lo contrario
inicio
SI (n1 >= n2)ENTONCES
SI(n1 >= n3)ENTONCES
mayor:=n1;
SI(n2 >= n1)ENTONCES
SI(n2 >= n3)ENTONCES
mayor:=n2;
SI(n3> = n1)ENTONCES
SI(n3>=n2)ENTONCES
mayor:=n3;
ESCRIBIR( ' el mayor ',mayor );
Fin;
FIN.
DIAGRAMA DE FLUJO
7.- Realizar un Algoritmo que permita leer el peso de una persona y escribir el mensaje
que le corresponde según la siguiente tabla.
Peso MENSAJE
0 – 40 PesoFLACO
_ persona;
41- 60 DELGADO
Variable
61 – 80 RELLENO
Peso : real;
Mas de 80 GORDO
INICIO
Algoritmo Pseudocódigo
imprimir ( ‘ déme peso ‘);
INICIO Leer ( Peso );
Peso : real; Si ( peso >=0) and (peso < = 40) entonces
Leer Peso; Imprimir ( ‘ flaco’);
Si ( peso >=0) and (peso < = 40) entonces Si ( peso > 40) and (peso < = 60) entonces
Imprimir ( ‘ flaco’); Imprimir ( ‘ delgado’);
Si ( peso >60) and (peso < = 80) entonces
Imprimir ( ‘ relleno’);
Si ( peso > 80 ) entonces
Imprimir ( ‘ gordo’);
FIN.
Fin_si;
Si ( peso > 40) and (peso < = 60) entonces
Imprimir ( ‘ delgado’);
Fin_si;
Si ( peso >60) and (peso < = 80) entonces
Imprimir ( ‘ relleno’);
Fin_si;
Si ( peso > 80 ) entonces
Imprimir ( ‘ gordo’);
Fin_si;
FIN.
8.- Realizar un algoritmo que lea de un registro el nombre, la edad, el sexo, el estado civil
de cualquier persona e imprima el nombre el nombre de la persona. Si corresponde a un
hombre casado mayor de 40 años o una mujer soltera de 50 años.
Algoritmo
INICIO
Nombre :cadena;
Sexo, EC : Carácter;
Edad : enteros;
Leer nombre, sexo, ec, edad;
Si ( edad >40) and(sexo = ‘M’)and(ec = ‘C’) entonces
Imprimir ( ‘ el nombre es ‘ , nombre );
Fin_si;
Si ( edad >50) and(sexo = ‘F’)and(ec = ‘S’) entonces
Imprimir ( ‘ el nombre es ‘ , nombre );
Fin_si;
FIN.
PSEUDOCODIGO
Persona;
Variables
Nombre :cadena;
Sexo, EC : Carácter;
Edad : enteros;
INICIO
FIN.
DIAGRAMA DE FLUJO
Nomina;
Variables
Ht, pph, nhe, pe, phed, phet, tp: real;
INICIO
Escribir( ‘ deme precio por hora’); l eer( pph );
9.- Realizar un algoritmo para determinar la cantidad de dinero que recibirá un trabajador
Escribir (‘ indique horas trabajadas’); Leer(ht);
por concepto de las horas trabajadas en una empresa, sabiendo que cuando las horas de
Si ( ht <= 40) entonces
trabajo exceden de 40, el resto se considera horas extras y que estas se pagan al doble del
Tp : = ht*pph
precio de una hora normal cuando estas horas extras no excedan de 8 y si las horas
De lo contrario
exceden de 8 se paga al triple del precio de la hora norma.
inicio
Nhe := ht – 40;
Algoritmo Pseudocódigo
Si (nhe <= 8 ) entonces
Pe:= nhe*pph*2
INICIO
De lo contrario
Ht, pph, nhe, pe, phed, phet, tp: real;
Inicio
Leer pph, ht;
Phed : = 8*pph*2;
Si ( ht <= 40) entonces
Phet : = ( nhe – 8) * pph*3;
Tp : = ht*pph
Pe : = phed + phet;
Fin;
Tp : = 40* pph + pe;
Fin;
Imprimir ( ‘ el pago total ‘, tp:0:2);
FIN.
De lo contrario
Nhe := ht –40;
Fin_si;
Si (nhe <= 8 ) entonces
Pe:= nhe*pph*2
De lo contrario
Inicio
Phed : = 8*pph*2;
Phet : = ( nhe – 8) * pph*3;
Pe : = phed + phet;
Fin;
Tp : = 40* pph + pe;
Imprimir ( ‘ el pago total ‘, tp:0:2);
FIN.
10.- calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si este
se le asigna como un porcentaje de su salario mensual que depende de su antigüedad en
la empresa con la siguiente tabla.
Algoritmo
Inicio
Utilidad, sm : real;
Antigüedad: enteros;
Leer antigüedad, sm;
Si ( antigüedad >=0) and (antigüedad<=1) entonces
Utilidad : = sm* 0.05
De lo contrario
Si ( antigüedad >=2) and (antigüedad<=4) entonces
Utilidad : = sm* 0.07
De lo contrario
Si ( antigüedad >=5) and (antigüedad<=7) entonces
Utilidad : = sm* 0.10
De lo contrario
Si ( antigüedad >=8) and (antigüedad<=10) entonces
Utilidad : = sm* 0.15
De lo contrario
Si ( antigüedad >=11) and (antigüedad<=30) entonces
Utilidad : = sm* 0.20;
Fin_si;
Fin_si;
Fin_si;
Fin_si
Fin_si;
Imprimir ( ‘ la utilidad ‘, utilidad : 0:2);
FIN.
Pseudocódigo
Empresa;
variables
Utilidad, sm : real;
Antigüedad: enteros;
INICIO
Imprimir ( ‘ indique antigüedad ‘);
Leer (antigüedad);
Imprimir ( ‘ indique salario mensual);
Leer (sm);
Si ( antigüedad >=0) and (antigüedad<=1) entonces
Utilidad : = sm* 0.05
De lo contrario
Si ( antigüedad >=2) and (antigüedad<=4) entonces
Utilidad : = sm* 0.07
De lo contrario
Si ( antigüedad >=5) and (antigüedad<=7) entonces
Utilidad : = sm* 0.10
De lo contrario
Si ( antigüedad >=8) and (antigüedad<=10) entonces
Utilidad : = sm* 0.15
De lo contrario
Si ( antigüedad >=11) and (antigüedad<=30) entonces
Utilidad : = sm* 0.20;
Imprimir ( ‘ la utilidad ‘, utilidad : 0:2);
FIN.
Empresa ;
variables
utilidad, Sm:real;
antiguedad:integer;
INICIO
Escribir ( ' indique antiguedad '); leer (antiguedad);
Escribir ('salario mensual '); leer (sm);
Caso (antiguedad) de
0..1 : utilidad := sm*0.05;
2..4 : utilidad := sm*0.07;
5..7 : utilidad := sm*0.10;
8..10 : utilidad:= sm*0.15;
11..30 : utilidad := sm*0.2;
fin; {fin del caso}
Escribir('utilidad ', utilidad:0:2);
FIN.
Calculadora_basica; { encabezado}
{ Sección de declaraciones }
Variables
Operando1, operando2, resultado : real;
Operador : carácter;
{ Cuerpo principal}
INICIO
Escribir ( ‘ introduzca primer operando ‘);
Leer ( operando1);
Escribir ( ‘ introduzca segundo operando ‘);
Leer ( operando2);
Escribir ( ‘ introduzca operador ‘);
Leer ( operador);
CASO ( operador ) DE
‘ + ‘ : resultado : = operando1 + operando2;
‘ - ‘ : resultado : = operando1 - operando2;
‘ * ‘ : resultado : = operando1 * operando2;
‘ / ‘ : resultado : = operando1 / operando2;
fin; { fin del caso}
FIN.
12.- Realizar un algoritmo que lea dos números, sin son iguales que los multiplique, si el
primero es mayor que el segundo que lo reste, y si no que lo sume.
Algoritmo Pseudocódigo
Numeros;
Inicio variables
N1, N2, resultado: enteros; N1, N2, resultado: enteros;
Leer n1, n2; INICIO
Si ( n1 = n2 ) entonces Escribir( ‘ indique numero 1 ‘);
Resultado : = n1*n2 Leer ( n1 ) ;
De lo contrario Escribir ( ‘ indique numero 2 );
Si ( n1 >n2 ) entonces Leer ( n2 ) ;
Resultado : = n1- n2 Si ( n1 = n2 ) entonces
De lo contrario Resultado : = n1*n2
Resultado : = n1 + n2; De lo contrario
Fin_si; Si ( n1 >n2 ) entonces
Fin_si; Resultado : = n1- n2
Imprimir ( ‘ el resultado’, resultado); De lo contrario
FIN. Resultado : = n1 + n2;
Escribir ( ‘ el resultado es’, resultado);
EJERCICIOS PROPUESTOS
FIN.
1.- Realizar un algoritmo que determine e imprima las raíces reales de la ecuación de segundo
2
Grado Ax +Bx + C=0, en caso de que las raíces sean imaginarias y no se puedan calcular debe
imprimirse un mensaje de error.
El IVSS requiere clasificar a las personas que se jubilaran en el año 2000, existen tres
tipos de jubilaciones: por edad, por antigüedad joven y por antigüedad adulta. Las cuales
son:
a) Las personas adscritas a la jubilación por edad deben tener 60 años o más y una
antigüedad en su empleo de menos de 25 años.
b) Las personas adscritas a la jubilación por antigüedad joven deben tener menos de
60 años y una antigüedad en su empleo de 25 años o más.
c) Las personas adscritas a la jubilación por antigüedad adulta deben tener 60 años o
más y una antigüedad en su empleo de 25 años o más.
d) Las personas que tienen menos de 60 años y una antigüedad en su empleo menor
de 25 años no tienen porque jubilarse.
3.- realizar un algoritmo que permita para una compañía de alquiler de vehículos calcular
el total a pagar por cliente, se sabe que existen tres tipos de vehículos: sedan, coupe y
rustico. El sedan cuesta 20000bs diario, el coupe 15000 diario y el rustico 30000 diario.
En caso de alquilarse más de 7 dias recibe un 10% de descuento. Imprimir el monto total
a pagar.
4.- Calcular la nota final de un estudiante tomando encuenta lo siguiente nota de trabajo,
nota interrogatorios, y nota examen final, se conocen los siguientes porcentajes 20% nota
trabajo 30% nota interrogatorio y 50% nota del examen, dependiendo de la calificación
final se asigna una calificación alfabética (a, b, c, d y e) de manera que será: "a" si la
nota es mayor o igual de 19, "b" si la nota es mayor o igual 17 y menor que 18, "c" si la
nota es mayor o igual 15 y menor de 17, "d" si la nota es mayor o igual a 10 y menor que
15. y "e" si la nota es mayor o igual que 1 y menor que 10.
5.- Una compañía de teléfono, tiene un servicio con operador para realizar llamadas
Nacionales e Internacionales. Realizar un algoritmo y diagrama de flujo que permita
calcular y mostrar el Monto a pagar por un cliente sabiendo que:
7.- El hospital Central ha pedido computarizar el sistema de atención a sus clientes con el
fin de obtener un método automático de administración de medicinas y de cobro de los
servicios prestado a un determinado paciente el sistema que se requiere computarizar esta
basado en tres tipos de medicamentos diferentes (I, J, K). La cantidad de unidades de
medicina que este consuma en total indica el estado de su enfermedad según los
siguientes parámetros A) más de 100unidades situación critica, B) entre 8 y 100 unidades
situación normal, C) menos de 8unidades puede ser dado de alta.
La información de cada paciente viene dada en el siguiente orden: A) Nombre del
paciente, B) numero de unidades administradas de los medicamentos de tipo I, J, K
(respectivamente ) C) los precios por unidad de cada medicamento. Se pide diseñar un
programa que permita: A) imprimir el nombre y calcular numero de unidades
administrada a un paciente. B) calcular precio total que debe pagar el paciente por
unidades administradas, c) imprimir un mensaje diciendo si el paciente esta dado de alta,
normal o empeorando.
Una empresa quiere hacer una compra de varias piezas de la misma clase y el mismo
precio unitario a una empresa de reparaciones, forma en la cual obtiene el monto de la
compra. La empresa dependiendo del monto de la compra, decidirá que hacer para pagar
al fabricante.
Si el monto total de la compra excede de 5000000Bs la empresa tendrá la capacidad de
invertir de su propio dinero un 55% del monto de la compra, pedir prestado al banco un
30% del monto de la compra y el resto lo pagará solicitando un crédito al fabricante.
Si el monto total de la compra no excede de 5000000Bs la empresa tendrá la capacidad
de invertir de su propio dinero un 70% del monto de la compra, el restante 30% del
monto de la compra lo pagará solicitando un crédito al fabricante.
El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se pague a
crédito.
9.- Hacer un algoritmo que imprima el nombre de un articulo, clave, precio original y su
precio con descuento. El descuento lo hace en base a la clave, si la clave es de 01 el
descuento es del 10% sobre el precio original y si la clave es 02 el descuento es del 20%
sobre el precio original ( solo existen dos claves ).
10.- Realizar un algoritmo y Df que permita calcular el total que una persona debe pagar
en una cauchera, sabiendo que cada caucho cuesta 180000 si se compran menos de cinco,
en caso contrario se pagan 160000 por caucho si la cantidad es mayor de cinco.
12.- Realizar un algoritmo y Df para el siguiente caso: una compañía de seguros esta
abriendo un depto. De finanzas y estableció un programa para captar clientes, que
consiste en lo siguiente: si el monto por el que se efectúa la fianza es menor o igual a
5000000 la cuota a pagar será del 3% del monto, y si el monto es mayor de 5000000 la
cuota a pagar será del 2% del monto. La afianzadora desea saber cual será la cuota que
debe pagar un cliente.
13.- Estacionamiento el Resguardo C.A, es una empresa que se encarga de prestar un
servicio de estacionamiento para todo tipo de vehículo en el área norte de valencia. Cada
vez que llega un cliente se registra su hora de entrada la cual viene dada en formato
militar ( 1:00 – 24:00 ). Realizar un algoritmo que permita calcular y mostrar cual es la
tarifa a cancelar por un cliente sabiendo que:
Existe una hora de entrada y una de salida la cual vienen dadas en formato
militar.
El costo de la primera hora es de 200 Bs. La hora adicional tiene un costo de 150
Bs.
Si el tipo de vehículo es una auto o una moto se incrementará en 300 Bs. La
tarifa
Si el vehículo duro más de 6 horas estacionado entonces tendrá una deducción
de 150 Bs.
Si el tipo de vehículo es un autobús y de color azul se incrementará en 300 Bs.
Por hora la tarifa
14.- Realizar un algoritmo que permita leer un valor numérico entero positivo y
posteriormente muestre si es par o impar.
15.- Realizar un algoritmo y DF que permita leer el nombre, sueldo diario y días
trabajados de un empleado. Posteriormente deberá calcular y mostrar el sueldo básico y el
sueldo neto conociendo que el porcentaje de deducción y asignación aplicado por la
empresa será según la siguiente tabla.
SUELDO BASICO ASIGNACION DEDUCCION
MENOS DE 80000 5% 2%
ENTRE 80000 Y 150000 8% 2.5%
MAS DE 150000 10% 3%
Si el empleado tiene una asistencia perfecta, es decir, no falta ningún día del mes la
empresa le otorga un premio de 10000 Bs.
20.- lea dos números de un mismo registro y calcule el cociente de dividir los números.
imprima el cociente, si el segundo número es cero no ejecute el calculo e imprima un
mensaje que diga la división por cero no es permitida.
21.- El CNE desea efectuar un análisis rápido de las personas que llegan a inscribirse, de
manera que se les indique a los votantes un mensaje que refleje por cual fila deberán
pasar a inscribirse: las mujeres mayor de edad pasan por la fila A. Los hombres mayores
de edad por la fila B y el resto es decir, personal que no puede votar sea registrado por la
fila C ( mujeres ) y fila D (hombres) para que en un futuro se tengan sus datos.
23.- Escribir un algoritmo que lea desde teclado el importe bruto de una factura y
determine el importe neto según los siguientes criterios.
24.- Una tienda para realizar una venta a un cliente en especifico debe pedir por teclado
la cantidad de artículos comprados y su precio unitario de esta manera se consigue cual es
el monto de la compra, posteriormente se le aplica un descuento según las siguientes
políticas:
Para cantidad de artículos de más de 500 unidades y monto de la compra menor o
igual a 50000 tendrá un descuento del 5% sobre el monto de la compra.
Para cantidad de artículos de más de 500 unidades y monto de la compra mayor
que 50000 y menor o igual a 100000 tendrá un descuento del 8% sobre el monto
de la compra.
Para cantidad de artículos de más de 500 unidades y monto de la compra mayor a
100000 tendrá un descuento del 12% sobre el monto de la compra.
Si la venta no satisface ninguno de estos requerimientos el descuento será solo del
2%.
Realizar un algoritmo que permita mostrar el nombre del cliente y el monto total a pagar
por el cliente.
26.- En una fabrica de computadoras se planea ofrecer a los clientes un descuento que
dependerá del número de computadoras que compre. Si las computadoras son menos de
cinco se les dará el 10% de descuento sobre el total de la compra; si el número de
computadoras es mayor o igual a 5 pero menos de diez se le otorga un 20% de descuento;
y si son 10 o más se les da un descuento del 40%. El precio de la computadora es de
1000000 Bs.
27.- Un proveedor de estéreo ofrece un descuento del 10% sobre el precio sin IVA, de
algún aparato si este cuesta 300000 Bs. o más. Además, independientemente de esto,
ofrece un descuento del 5% si la marca es “ NOSY”. Determinar cuanto pagará con IVA
incluido, un cliente cualquiera por la compra de su aparato.
28.- Escribir un algoritmo que dada una calificación en valor alfabético (A, B, C , D ó E)
indique su equivalente en valor numérico (20, 18 ,15 ,10, 8).
29.- El dueño de una empresa desea planificar las decisiones financieras que tomará en el
siguiente año la manera de planificarlas depende de lo siguiente.
30.- Una frutería ofrece las manzanas con descuento según la siguiente tabla:
Se sabe que el precio por kilo entra por teclado, se desea saber cuanto pagara un cliente.
Hasta ahora solo se ha visto una programación en línea recta, es decir los algoritmos
son leídos de principio a fin en forma descendentes y las instrucciones son ejecutadas
solo una vez.
Sin embargo en la mayoría de los casos, se necesita repetir ciertos procesos muchas
veces para que el programa procese un dato de lotes e instrucciones necesarias para que
pueda generar la información esperada. Por lo tanto:
Si nos damos cuenta de esta forma tenemos que declarar cinco variables para almacenar
las notas y por lo menos repetir los mensajes de salida y entrada de datos 10 veces,
imaginemos si el caso fuera para 1000 estudiantes cual sería el tamaño del algoritmo y el
tiempo que se tendría que emplear para escribirlo. Ahora con la utilización de estructuras
repetitivas y la utilización de dos conceptos más podemos minimizar la tarea.
Contadores y Acumuladores:
Ejemplo:
Siendo A una variable declarada como entera entonces tenemos que el valor inicial
de A por primera vez es cero, la cual incrementa su valor cuando ocurra el evento.
A : = 0;
A : = A + 1; { contador }
Siendo Total una variable declarada como real y ventas otra variable declarada como
real que va almacenar las ventas de un día tenemos entonces que:
Suponiendo que el primer dia se vendieron 1000 Bs. entonces
El valor inicial de Total es cero el cual se incrementa cada vez que ocurra el evento.
Total : = 0;
Venta : = 1000;
Total : = total + venta;
Total : = 0 + 1000;
Total : = 1000;
Luego se venden 500 Bs. más
Venta : = 500;
Total : = Total + Venta;
Total : = 1000 + 500;
Total : = 1500;
Es importante tomar en cuenta que hay casos en que el valor final del ciclo es otra
variable de lectura, la cual debe ser leída antes del comienzo del ciclo, este caso se
considera controlado por el usuario por ejemplo: leer los N nombre de los alumnos de
una sección.
Solución del ejercicio del promedio de notas de cinco estudiantes usando el ciclo PARA,
nos daremos cuenta que se declara una sola variable para almacenar la nota, ya que
utilizaremos un acumulador el cual va a permitir almacenar el acumulado de cada nota y
poder así utilizar la variable nota para guardar otro dato, y los mensajes de solicitud y
entrada de datos se reduce a una sola. Ver a continuación la solución del ejercicio.
Pseudocódigo Algoritmo
Curso; INICIO
Variables Nota, prom, suma : real;
Nota, prom, suma : real; I : enteros;
I : enteros; Suma : = 0;
INICIO Para I : = 1 A 5 Hacer
Suma : = 0; { se inicializa en cero el acumulador } Inicio
Para I : =1 A 5 Hacer Leer nota;
Inicio Suma : = suma + nota;
Escribir (‘ indique nota del alumno ’); Fin ; { fin del para }
Leer ( nota); Prom : = suma / 5 ;
Suma : = suma + nota; Imprimir prom;
FIN.
Fin; { del ciclo para }
Prom : = suma / 5 ;
Escribir ( ‘ el promedio es ‘ , prom :0:2’);
FIN.
EJERCICIOS
Algoritmo
Pseudocódigo
INICIO
Nombre: cadena; Promedio_de_notas ;
S_nota, N, I, Nota : enteros; Variables
Prom : real; Nombre: cadena;
Leer nombre; S_nota, N, I, Nota : enteros;
S_nota : = 0; Prom : real;
Leer N; INICIO
Para I : = 1 a N Hacer S_nota : = 0;
Inicio Escribir ( ‘ déme el nombre ‘ ) ; Leer (nombre);
Leer nota; Escribir ( ‘ indique cantidad de notas a procesar ‘ );
S_nota : = S_nota + nota; Leer ( N ) ;
Fin; { del ciclo para } Para I : = 1 a N Hacer
Prom : = S_nota / N ; Inicio
Imprimir Prom; Escribir ( ‘ déme las notas ); Leer (nota );
FIN. S_nota : = S_nota + nota;
Fin; { del ciclo para }
Prom : = S_nota / N ;
Escribir ( ‘ el promedio es = ‘ , prom : 0 : 2 );
FIN.
2.- Realizar un algoritmo que lea 10 números y se obtenga el cubo y cuarta de ese
número.
Algoritmo Pseudocódigo
INICIO Números ;
Cubo, cuarta, num, I : enteros; Variables
Para I : = 1 A 10 Hacer Cubo, cuarta, num, I : enteros;
Inicio INICIO
Leer num; Para I : = 1 A 10 Hacer
Cubo : = num * num * num ; Inicio
Cuarta : = cubo * num ; Escribir ( ‘ indique el número ‘);Leer(num);
Imprimir cubo, cuarta; Cubo : = num * num * num ;
Fin; { ciclo para } Cuarta : = cubo * num ;
FIN. Escribir ( ‘ el cubo es ‘ , cubo) ;
Escribir ( ‘ la cuarta es ‘ , cuarta );
Fin; { ciclo para }
FIN.
3.- Realizar un algoritmo para el siguiente caso: Suponga que se tiene un conjunto de
calificaciones de N alumnos, se pide calcular la calificación promedio , la calificación
más baja y la calificación mayor.
Algoritmo Pseudocódigo
INICIO
Curso;
Suma, mayor, baja, nota : enteros;
variables
Prom : real;
Suma, mayor, baja, nota : enteros;
Suma: = 0; baja : = 9999; mayor : = 0;
Prom : real;
Leer N;
INICIO
PARA I : = 1 A N HACER
Suma: = 0; baja : = 9999; mayor : = 0;
Inicio
Escribir ( ‘ indique cantidad de alumnos ‘);
Leer nota;
Leer ( N ) ;
Suma : = suma + nota;
PARA I : = 1 A N HACER
Si ( nota > mayor ) entonces
Inicio
Mayor : = nota;
Escribir ( ‘ déme nota ‘); Leer ( nota );
Fin_si;
Suma : = suma + nota;
Si ( nota < baja ) entonces
Si ( nota > mayor ) entonces
baja : = nota;
Mayor : = nota;
Fin_si;
Si ( nota < baja ) entonces
Fin; { ciclo para }
baja : = nota;
Prom : = suma / N ;
Fin; { ciclo para }
Imprimir prom, mayor, baja;
Prom : = suma / N ;
FIN.
Escribir ( ‘ el promedio es ‘, prom : 0 : 2);
Escribir ( ‘ la calificación mayor es ‘, mayor);
Escribir ( ‘ la calificación baja es ‘ , baja);
FIN.
En este ejercicio se crearon unas variables llamadas Mayor y Baja a la cual se les
asignaron un valor de cero y a la otra de 9999 para que en la primera comparación el
primer número que entre al ciclo se haga mayor y menor a la vez, el cual ira cambiando a
medida que entren más notas al ciclo.
4.- Realizar un algoritmo que permita leer 20 números enteros y determinar:
Suma de la serie de los números .......la variable a utilizar es SS
Cantidad de números pares ................CNP
Suma de números pares ......................SNP
Promedio de números impares ............PNI
Cantidad de números positivos ............CP
Suma de números positivos ..................SP
Cantidad de números negativos ............CN
Suma de números negativos ..................SN
Nota: para poder calcular el promedio de los números impares debemos calcular primero
cuantos números impares hay y cual es la suma de los impares las variables utilizadas
serán ( CNI, SNI ). Cuando nos pidan determinar cantidades debemos utilizar los
contadores.
Pseudocódigo
Algoritmo
INICIO Números;
Num, ss, cnp, snp, cp, sp, cni, sni : enteros; Variables
Cn, sn, I : enteros; Num, ss, cnp, snp, cp, sp, cni, sni : enteros;
Ss : =0; cnp : = 0; snp : = 0; cp := 0; sp : = 0; Cn, sn, I : enteros;
Cni : =0; sni : =0; cn:=0; sn : = 0; INICIO
PARA I: = 1 A 20 HACER Ss : =0; cnp : = 0; snp : = 0; cp := 0; sp : = 0;
Inicio Cni : =0; sni : =0; cn:=0; sn : = 0;
Leer Num; PARA I: = 1 A 20 HACER
SS : = ss + num; Inicio
Si ( num MOD 2 = 0 ) entonces Escribir ( ‘ de el número ‘); Leer (Num);
Inicio SS : = ss + num;
Cnp : = cnp +1 ; { contador de pares } Si ( num MOD 2 = 0 ) entonces
Snp : = snp + num ; { acumulador } Inicio
fin Cnp : = cnp +1 ; { contador de pares }
De lo contrario Snp : = snp + num ; { acumulador }
Inicio fin
Cni : = cni +1 ; { contador de impares } De lo contrario
Sni : = sni + num ; { acumulador } Inicio
Fin; Cni : = cni +1 ; { contador de impares }
Si ( num >= 0 ) entonces Sni : = sni + num ; { acumulador }
Inicio Fin;
Cp : = cp +1 ; { contador de positivos } Si ( num >= 0 ) entonces
Sp : = sp + num ; { acumulador } Inicio
fin Cp : = cp +1 ; { contador de positivos }
De lo contrario Sp : = sp + num ; { acumulador }
Inicio fin
Cn : = cn +1 ; { contador de negativos } De lo contrario
Sn : = sn + num ; { acumulador } Inicio
Fin; Cn : = cn +1 ; { contador de negativos }
Fin ; { ciclo para} Sn : = sn + num ; { acumulador }
Pni : = sin / cni; Fin;
Imprimir ss, cnp, snp, pni, cp, sp, cn, sn ; Fin ; { ciclo para}
FIN. Pni : = sin / cni;
5.- En el último mundial de natación, participaronEscribir
100 atletas en diversas
( ss, cnp, competencias.
snp, pni:0:2; cp, sp, cn, sn );
Una vez concluidas las eliminatorias, quedaron clasificados
FIN. para la gran final solo 12
atletas los cuales deberían competir en una última prueba de 2000 mts. Estilo libre.
Realizar un algoritmo que permita leer los tiempos registrado por cada atleta y de está
manera determinar lo siguiente:
Cual es el nombre del atleta que gano la gran final.
Cuantos atletas rompieron la marca de la distancia la cual es de 300 segundos.
Cuantos atletas registraron un tiempo comprendido entre 320 y 350 segundos.
Cual fue el peor tiempo de la carrera.
Algoritmo Pseudocódigo
INICIO
I, R300, T320y350: enteros; Mundial_Natacion;
Tiempo, Mejor, Peor: real; Variables
Ganador, nombre: cadena; I, R300, T320y350: enteros;
R300:=0; T320y350 : = 0; Mejor : = 0; Tiempo, Mejor, Peor: real;
Peor : = 0; Ganador, nombre: cadena;
Para I : = 1 a 12 Hacer INICIO
Inicio R300:=0; T320y350 : = 0; Mejor : = 0;
Leer(nombre); Peor : = 0;
Leer( tiempo); Para I : =1 a 12 Hacer
Si ( tiempo < mejor) entonces Inicio
Mejor:= tiempo; Escribir(‘ indique el nombre ‘);
Ganador : = nombre; Leer( nombre);
Fin_si ; Escribir(‘Indique el tiempo’);
Si ( tiempo < 300) entonces Leer( tiempo );
R300 : = R300 + 1; Si ( tiempo < mejor) entonces
Fin_si; Inicio
Si(tiempo>=320)and(tiempo>=350)entonces Mejor:= tiempo;
T320y350:= T320y350 + 1; Ganador : = nombre;
Fin_si; Fin;
Si ( tiempo>Peor)entonces Si ( tiempo < 300) entonces
Peor:= tiempo; R300 : = R300 + 1;
Fin_si; Si(tiempo>=320)and(tiempo>=350)entonces
Fin; { del ciclo para } T320y350:= T320y350 + 1;
Imprimir ganador, R300, Peor, T320y350; Si ( tiempo>Peor)entonces
FIN. Peor:= tiempo;
Fin; { del ciclo para }
FIN.
Sintaxis:
Uso de valor centinela : es aquella que nos permite indicar al programa que ya se han
leído todos los datos dentro de la memoria del computador y que se han procesado, es
decir, cuando se lee este valor puede ser reconocido por el programa como indicación de
que todos los datos en uso hayan sido procesados.
Pasos
Se debe asignar el valor centinela en la sección constante.
La variable en la cual se almacena el dato actúa como variable de control del ciclo
Se debe dar un valor inicial mediante la lectura.
Este valor se debe actualizar en cada ejecución del cuerpo utilizando una segunda
lectura, este normalmente es el último paso del ciclo.
Empresa;
Constantes
Centinela = 0;
Variables
Nombre: cadena; Nht, tgmas, tgme: enteros; Sbh, Pr, Reten, sn, sb, prom, suma : real;
INICIO
Suma:=0; tgmas:=0; tgme:=0;
Escribir (‘ deme número de horas’);leer( nht);
Mientras ( nht < > centinela ) Hacer
Inicio
Escribir(‘ deme el nombre’);Leer(nombre);
Escribir (‘ deme salario por hora’); leer(sbh);
Escribir (‘ deme el porcentaje’); leer(pr);
Sb : = sbh * nht; Reten : = sb* pr/100;
Sn : = sb – reten;
Si (sn >20000)entonces
Inicio
Suma:= suma + sn; tgmas : = tgmas + 1;
Fin
De lo contrario
Tgme : = tgme +1;
Escribir(‘ el nombre es..’, nombre); Escribir(‘ su retención es..’, reten:0:2);
Escribir(‘ su salario básico..’, sb:0:2); Escribir(‘ su salario neto ..’, sn:0:2);
Escribir (‘ deme número de horas de otro trabajador, con cero sale del sistema’);leer( nht);
Fin; {ciclo mientras } prom:= suma / tgmas;
Escribir(‘
Trabajo: el promedio
( Para el númerode sueldo;,
1 Cicloprom:0:2);
mientras existen clientes)
Escribir (‘ la cantidad de trabajadores que ganan menos de 200000 ‘, tgme);
1.- Chequear y procesar datos suministrados por una agencia de viajes sobre sus clientes:
Número del pasaporte.
Fecha de expedición del pasaporte: DD/MM/AA.
Origen del pasaporte: 1: Venezolano, 2: Extranjero.
Fecha de expedición del certificado de vacuna: DD/MM/AA.
Fecha de expedición de la declaración de impuesto: DD/MM/AA.
Hay que tener encuenta lo siguiente:
Si el pasaporte fue expedido en Venezuela caduca al año.
Si el pasaporte fue expedido en el extranjero caduca a los dos años.
Los certificados de vacuna y la declaración de impuesto son válidos por un
año.
Mostrar lo siguiente:
A. En caso de no tener el cliente los recaudos vigentes, se debe imprimir la
información de este y la frase “ RECAUDOS NO VIGENTES”.
B. Total de clientes que tienen pasaporte venezolano.
C. Total de clientes que tienen pasaporte Extranjeros.
D. Total de clientes que tienen vencido el certificado de vacuna.
E. Total de clientes que tienen vencida la declaración de impuesto.
3.- En un centro climatológico se decide estudiar la temperatura media diaria, para tal
efecto durante el lapso de N días se registran las temperaturas atmosférica cada hora
durante las 24 horas del día. Desarrolle un algoritmo para que determine: Para cada día,
la temperatura media y la mínima temperatura. Al final de los N días, la temperatura
máxima promedio y la hora en que ocurre la mínima temperatura.