Sie sind auf Seite 1von 57

1 INTRODUCCION A LA COMPUTACION

La computadora no solamente es una maquina que puede realizar procesos para


darnos resultados, sin que tengamos la noción exacta de las operaciones que realiza para
llegar a esos resultados. Con la computadora además de lo anterior también podemos
diseñar soluciones a la medida, de problemas específicos que se nos presenten. Más aun,
si estos involucran operaciones matemáticas y/o repetitivas, o requieren del manejo de un
volumen muy grande de datos.

El diseño de soluciones a la medidas de nuestros problemas, requiere como en


otras disciplinas de una metodología que nos enseñe de forma gradual, la forma de llegar
a estas soluciones.

A las soluciones creadas por la computadora se le conoce como programas y no


son más que una serie de operaciones que realiza la computadora para llegar a un
resultado, con un grupo de datos específicos.

Para poder realizar programas además de conocer la metodología mencionada,


también debemos tratar, de manera concreta las funciones que pueda ejecutar la
computadora y las formas en que se puedan manejar los elementos que hay en la misma.

Computadora: Es un dispositivo electrónico utilizado para procesar información y


obtener resultados. Los datos se pueden introducir como entradas ( Input ) los cuales se
procesan para producir una salida ( Output ).

Componentes Básicos del computador:

Hardware: Es la parte física circuital y mecánica que compone un sistema computador.


Es decir, se refiere a equipos a lo tangible ( se puede ver y tocar )

Software: Esta constituido por el conjunto de programas o secuencias de instrucciones


que el sistema computador puede realizar o ejecutar. Es decir, viene hacer el
componente intangible ( no se puede ver ni tocar ).

Proceso de Información en la Computadora

Datos de Salida de
Entradas Proceso información

Organización Física de una Computadora

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.

Teclado: Es un dispositivo de entrada mediante el cual el operador o transcriptor


introduce datos a la computadora, también permite dar al computador los programas
hechos por el usuario y los datos necesarios para la corrida.

La Unidad Central de Procesamiento ( CPU ): Básicamente es el procesador del


equipo, pero en las computadoras personales o microcomputadoras se le llama CPU a la
caja principal donde está el procesador, la memoria, las unidades de discos y otros
dispositivos, no debe confundirnos simplemente se popularizo de esta manera. Se divide
en:

Unidad de Control: Es la parte del procesador que coordina las actividades de la


computadora y alimenta a la unidad aritmética / lógica de instrucciones decodificadas y
de los datos necesarios para transferir los resultados a la salida; es decir, controla todo el
proceso de la computadora.

Unidad Aritmético / Lógica: Es el elemento del procesador que contiene la lógica


electrónica para ejecutar cálculos tales como suma, resta, multiplicación, división y
comparaciones.

Memoria: Es la parte de la computadora que es capaz de almacenar información


directamente accesible por el procesador; es decir, que el procesador utiliza la memoria
de la computadora para guardar información mientras trabaja teniendo acceso en forma
directa Se dividen en:

Memoria RAM ( Randon Access Memory ): Recibe el nombre de memoria principal o


memoria del usuario, en ella se almacena información solo mientras la computadora esta
encendida. Cuando se apaga o arranca nuevamente la computadora, la información se
pierde por lo que se dice que es una memoria volátil.

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.

Dispositivo de Salida: Regresan los datos procesados que sirven de información al


usuario. Ejemplo monitor, impresora.

Impresoras: Es un dispositivo de salida de información que permite la copia, en papel de


la información.
El Monitor: Es un medio de despliegue o salida visual de símbolos, tales como
caracteres, gráficos, y en general imágenes digitales.

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 Direcciones: Se emplea para transmitir la información acerca de la dirección de


memoria de la celda que desea acceder.

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 Operativo: Es un conjunto de programas que tienen como función controlar la


operación de la computadora como un todo y permitir la ejecución de los programas de
aplicación. Como parte de las actividades del sistema operativo está la administración y
control de los recursos y elementos de la computadora tales como: CPU, Memoria y
dispositivos de entrada y salida.

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 ).

Sistema Binario: Sistema de numeración basados en dos dígitos ( 0 y 1 ).

Sistema Octal: Sistema de numeración basados en ocho dígitos.

Sistema Hexadecimal: Sistema de numeración basados en dieciséis dígitos ( 0 al F ).

BIT: Es la mínima cantidad de información que es posible manejar acerca de cualquier


evento, ente o ser. La computadora almacena la información por medio de hileras de BIT.

BYTE: Es una hilera de ocho Bits, que permiten representar hasta 256 diferentes valores
de una entidad dada.

Carácter: Es el símbolo básico usado en la computadora, tales como: letras, dígitos,


signos de puntuación y caracteres especiales.

Palabra: Se refiere al conjunto de bits que puede ser manejado de manera simultánea
por el procesador.

Programa: Es el conjunto de instrucciones escritas en algún lenguaje de programación y


que ejecutadas secuencialmente resuelvan un problema en específico.
INTRODUCCION A LA LOGICA DE PROGRAMACION
( ALGORITMOS Y DIAGRAMAS DE FLUJOS )

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.

TECNICAS DEL DISEÑO:

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.

Ejemplo: Calcular la superficie del rectángulo:

Problema
Superficie del Rectángulo

Entrada de Datos Cálculos Superficie Salida

Altura Base Superficie = altura * base Superficie

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.

Análisis del Problema: Es el primer paso para encontrar la solución de un problema, en


esta fase es importante identificar que tipo de información se necesita producir, los datos
de entradas y finalmente los procedimientos a seguir para la solución de un problema.

Una recomendación muy practica es el que nos pongamos en el lugar de la computadora


y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para
producir los resultados esperados.
Lenguajes Algorítmicos: Es una serie de símbolos y reglas que se utilizan para describir
de manera explicitas.

Tipos de Lenguajes Algorítmicos:

1.- Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo


( diagrama de flujo ).

2.- No gráficos: Representa en forma descriptiva las operaciones que debe realizar un
algoritmo y/o Pseudocódigo .

Algoritmos: Es una serie de pasos organizados y de forma ordenada que describe el


proceso que se debe seguir, para dar solución a un problema específico. Un algoritmo
debe indicar la forma y secuencia de pasos para la resolución de un determinado
problema y cumplir con ciertos requerimientos:

Finitud: Debe tener un número finito de pasos, duración finita.


Efectividad: Los pasos a seguir deben poderse realizar.
Precisión: Los pasos no deben presentar ambigüedad en su descripción.
Entradas: Todo algoritmo debe tener una o más entrada.
Salida: Debe haber al menos una salida y esta debe ser tangible.

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.

Pseudocódigo: Es lo más parecidos a como se escribe un lenguaje de programación, es


decir es una mezcla de programación y español que se emplea dentro de la programación
estructurada, para realizar el diseño de un programa.

Ejemplo tradicional de algoritmo cualitativo es el cambio del neumático:

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.

Cuando se va a desarrollar un algoritmo cuantitativo, específicamente en el área del


procedimiento principal, se debe tomar en cuenta lo siguiente:

Entrada: Todo lo Concerniente a la lectura o inicialización de variables.


Proceso: Todo lo concerniente a cálculos matemáticos o asignación de valores.
Salida: Todo lo concerniente a la salida final.

Diagrama de Flujo: Es la representación gráfica de un algoritmo. También se puede


decir que es la representación detallada en forma gráfica de cómo deben realizarse los
pasos en la computadora para producir resultados

SIMBOLOS DESCRIPCION

Inicio / Fin del diagrama

Entrada y salida de datos

Proceso y / o asignación de un
valor en memoria (declaración)

Si
Decisión

No

Conector en la misma pagina.

Conector entre paginas.

Salida por Impresora

Salida por pantalla


Dirección del flujo.

Recomendaciones para el diseño de diagramas de flujos

 Se deben usar solamente líneas horizontales y / o verticales.


 Se debe evitar el cruce de líneas utilizando los conectores.
 Se deben usar conectores solo cuando sea necesario.
 No deben quedar líneas de flujos sin conectar.
 Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y
de izquierda a derecha.
 Todo texto escrito dentro de un símbolo deberá ser escrito de forma clara,
evitando el uso de muchas palabras.

Ventajas de utilizar un Pseudocódigo a un Diagrama de Flujo:

 Ocupa menos espacios en papel,


 Permite representar en forma fácil operaciones repetitivas complejas.
 Es muy fácil pasar de Pseudocódigo a un programa en algún lenguaje de
programación.

Estructuras Algorítmicas: Las estructuras de operación de programas son un grupo de


formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos
procesos específicos que nos lleven a la solución de problemas. Estas estructuras se
clasifican de acuerdo con su complejidad en:

Secuénciales: Condicionales: Cíclicas:


 Asignación.  Simples  Para
 Entrada.  Dobles  Mientras.
 Salida.  Múltiples  Repetir.
Identificador: Es el nombre que se le da a una variable y / o constantes, es decir,
representan los datos de un programa y es una secuencia de caracteres que sirven para
identificar una posición en la memoria de la computadora y que nos permite acceder su
contenido.
Ejemplo:
Nombre
Numhoras
Calif1
Limitaciones de un Identificador:
 No debe comenzar por un número o carácter especial.
 No debe contener espacios en blanco.
 El único carácter especial permitido es el subrayado ( _ ).

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: Es un espacio en memoria que almacena un dato numérico o


alfanumérico que no cambia durante la ejecución del programa y son introducidos al
momento de utilizarse.

Forma para declarar constantes:

CONSTANTE

Nombre_del_identificador = Valor; {nombre del identificador seguido signo de


igualdad y el valor que almacena}

Ejemplo: Pi = 3.1416; IVA = 0.16; { en los decimales pascal no acepta la coma}

VARIABLE: Es un espacio en memoria de la computadora que permite almacenar


temporalmente un dato durante la ejecución de un proceso, su contenido puede cambiar
durante la realización del programa. Para poder reconocer una variable en memoria de la
computadora, es necesario darle un nombre con el cual podamos identificarlas dentro de
un algoritmo.

Tipos de datos: Cuando se realiza un programa hay que cargar en memoria cual es el
dato que va a manejar la variable.

 Enteros: permite almacenar solo valores numéricos enteros


Ejemplos: edad, numero_de _alumnos, Cantidad_de_num_posi.
 Real: permite almacenar valores numéricos enteros y decimales
Ejemplos: Ventas, peso, longitud, monto, sueldo.
 Carácter: como su nombre lo indica almacena un solo carácter ( símbolos,
números, dentro de los caracteres )
Ejemplos: Sexo, E_C, Nacionalidad cuando se valida esta variable el
dato debe ir entre apostrofe Sexo = ‘ F ’,
 Cadena: Como su nombre lo indica almacena un conjunto de caracteres al
validarlo debe ir entre apostrofe
Ejemplos: Nombre, Materia, Dirección, Ciudad, Teléfono.
Nombre = ‘ Luis ‘, Materia = ‘ Informática ‘.

Forma para declarar una Variable:

VARIABLE

Nombre_del_identificador : tipo dato; {nombre del identificador seguido de dos puntos y


el tipo de dato que almacena}
Ejemplo:
Sueldo : real;
Edad: enteros;
Nombre: Cadena;
Sexo : Carácter;

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

Sueldo, Venta, Monto, Pago : real;

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.

Ejemplo: Se desea obtener el monto de la retención de un empleado que tiene un sueldo


básico asignado y una tasa de retención del 7%.

Variable de entrada es el Sal_basi


Variables de Cálculos Monto_reten = Sal_basi * 0.07;
Variable de Salida Monto_reten,

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 .

Nota: el símbolo utilizado para indicar la asignación es :=

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 ).

Composiciones posibles de un enunciado de asignación


COMPOSICION EJEMPLO
Variable : = Variable A: = B
Variable : = Expresión A:=B+C/ 2
Variable : = Constante X:=5

Debe tenerse en cuenta que en la parte izquierda de un enunciado de asignación siempre


va y debe ir una variable la cual recibe el valor.

REGLAS PRACTICAS A TENER EN CUENTA PARA LA CONSTRUCCION DE


ENUNCIADOS DE ASIGNACION

1.- Toda Variable que aparezca al lado derecho de un enunciado de asignación debe estar
definido.

Las siguientes variables están definidas así:

B: = 6; C: = 4; Cant_dias := 25;

Enunciado1: A : = B + C como las variables B y C están definidas se le puede asignar


el resultado de 10 a la variable A, A : = 6 + 4. A : = 10;

Enunciado 2: Pago : = Sueldo _ hora * Cant_dias; Como la variable Sueldo _ hora, se


encuentra a la derecha del enunciado y no tiene ningún valor asignado no se puede
ejecutar ya que la variable que está a la derecha siempre debe estar definida.

2.- En un enunciado de asignación la variable de la izquierda es la única que cambia de


valor cuando con anterioridad tiene un valor asignado.

Las siguientes variables están definidas así:

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.

3.- Si la variable de la parte izquierda del enunciado se encuentra también al lado


derecho, la variable del lado izquierdo cambia su valor y el de la derecha se mantiene
igual.

A : = 10; B: = 9; C: = 10;

Enunciado: A: = A + B + C , tenemos que A : = 10 + 9 + 10 en donde A := 29 por estar


del lado izquierdo del enunciado.

Salida de Dato: para mostrar un mensaje o el contenido de una variable al exterior


( pantalla, impresora, etc ), se debe utilizar la siguiente instrucción para enviar salida
hacia el dispositivo:

Escribir ( ‘ Mensaje ‘ );
Escribir ( ‘ Mensaje ‘, Variable );
Imprimir ( ‘ Mensaje ‘ );
Imprimir ( ‘ Mensaje ‘, Variable );

Ejemplo: Escribir ( ‘ Déme su Nombre ‘ ); {solicitud de datos }


Escribir ( ‘ Su Indice Académico es ‘, I ); { mostrar resultados }

Déme nombre
Luis

Su Indice académico es
15

Entrada de Datos: para la lectura de valores se va a utilizar la siguiente instrucción,


almacena el valor en la variable

Leer ( nombre_variable );
Almacenar ( nombre_variable );

Las variables cuando se almacenan no van entre apostrofe.


Si se van almacenar más de una variable a la vez se separa por una coma

Leer ( variable1, variable2 );

En el ejemplo anterior de

Escribir ( ‘ Déme su Nombre ‘ ); { luego se manda almacenar en la variable nombre:}


Leer ( Nombre );

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.

La variable de salida no va entre apostrofe, si la variable de salida es de tipo real se debe


indicar en la salida la cantidad de enteros y decimales a mostrar
Ejemplo:
Escribir ( ‘ el promedio es = ‘ , prom : 0 : 2 );
Estructuras Secuénciales: Es aquella en la que una acción ( instrucción ) sigue a otra en
secuencia. Las tareas suceden de tal modo que la salida de una es la entrada de la
siguiente y así sucesivamente hasta el fin del proceso.

Operadores Aritméticos: Es un conjunto de variables y / o constantes unidas o


relacionadas por operadores aritméticos los cuales nos permiten la realización de
operaciones matemáticas.

OPERADORES FUNCION EJEMPLO


+ SUMAR A: = B + C
- RESTAR A: = B – C
* MULTIPLICAR A: = B * C
/ DIVIDIR A: = B / C
SQR( ) ELEVAR AL CUADRADO A:= SQR(B); A:=B
SQRT( ) RAIZ CUADRADA A:= SQRT(B); A:= B
^,** ELEVAR CUALQUIER POTENCIA A:= B^3; A:= B
MOD REGRESA RESTO DE DIVISION A:= 5 MOD 2 ; A:= 1
DIV PARTE ENTERA DE COCIENTE A:= 5 DIV 2: A:= 2

Prioridades de los Operadores Aritméticos:


1.- Las operaciones que están encerradas entre paréntesis se evalúan primero, si existe
anidamiento de paréntesis se evaluaran las expresiones más internas primero.
2.- Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente orden
2.1.- Exponencial ( sqr, sqrt, ^, ** ).
2.2 .- *, /, mod, div.
2.3 .- +, -
3.- En caso de coincidir varios operadores de igual prioridad en una expresión se evalúan
de izquierda a derecha.

Ejemplos:

A ) 4 + 2 * 5 primero se realiza la multiplicación y luego la suma


4 + 10 = 14

B) 23 * 2 /5 como tienen la misma prioridad se realiza de izquierda a derecha lo primero


que hace es multiplicar y luego dividir.
46 / 5 = 9.5

C) 3 + 5 * ( 10 – ( 2 + 4 ) ) Primero se efectúan los cálculos de los paréntesis internos


luego los externos, sigue la multiplicación y por último la suma
3 + 5 * ( 10 – 6 )
3+5*4
3 + 20 = 23

D) 3.5 + 5.09 – 140 / 40 Primero se realiza la división y luego se resuelve de izquierda a


derecha por tener la misma prioridad
3.5 + 5.09 – 3.5
8.59 – 3.5 = 5.09
E) 2.1 * ( 1.5 + 3 * 4.1 ) Primero se resuelven los datos dentro del paréntesis se comienza
por la multiplicación
2.1 * ( 1.5 + 12.3 )
2.1 * 13.8 = 28.98

F) 7*10 – 15 mod 3 * 4 + 9 Primero se resuelve la multiplicación luego la función mod y


por último la suma y resta
70- 15 mod 12 + 9
70 – 3 +9 = 67 + 9 = 76

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.

Entrada Proceso Salida


Capital Ganancia : = Capital * interes; Ganancia
Interes = 0.02;

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: real;


Interes = 0.02;

Capital

Ganancia:= capital * interes

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, total _ cobrar: real;


PC= 0.10;

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.

Entrada Proceso Salida


Num1 Suma: = num1 + num2 Suma
Num2
Pseudocódigo
Algoritmo Operacion; { encabezado }
Inicio Variables { Sección de declaraciones }
variable Num1, num2, suma : enteros;
num1,num2,suma: enteros; Inicio { cuerpo principal }
Leer num1,num2; { entrada } Escribir ( ‘ deme el numero 1‘ ); {entrada }
suma : = num1 + num2; Leer ( num1);
imprimir suma; Escribir ( ‘ deme el numero 2‘ ); {entrada }
Fin. Leer ( num2);
Suma: = num1 + num2; { proceso}
Escribir ( ‘ la suma es =’ , suma );{ salida}
Fin.

Diagrama de flujo

INICIO
Suma, num1, num2 : enteros;

Num1, num2

Suma : = 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.

Entrada Proceso Salida


Nombre SB:= SH*HT; nombre
SH Descu:= SB*Pd; descu
HT SN := SB – Desc; Sn
Pd = 0.10;
Pseudocódigo
Algoritmo Nomina;
Inicio Constantes pd = 0.10;
variable Variables
nombre: cadena; Nombre: cadena;
ht,sh,sb,descu,sn : real; Ht, sh, sb, ht, descu, sn : real;
constantes Inicio
Pd = 0.10; Escribir ( ‘ déme el nombre‘ ); Leer ( nombre);
Leer nombre,sh,ht; Escribir ( ‘ déme el salario por hora‘ ); Leer ( sh );
Sb:= sh*ht; Escribir ( ‘ déme horas trabajadas‘ ); Leer ( ht );
descu := sb*pd; Sb := sh*ht;
Sn := sb – descu; Descu := sb*pd;
imprimir nombre, sb, descu, sn; Sn := sb – descu;
Fin. Escribir ( ‘ el nombre del trabajador es ’ , nombre);
Escribir ( ‘ el salario básico es ’ , Sb :0:2);
Escribir ( ‘ el descuento es ‘ , descu :0:2);
Escribir ( ‘ el salario neto es ‘, sn :0 : 2);
Fin.
Diagrama de flujo

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

5.- Realizar un algoritmo y diagrama de flujo para el siguiente caso:


una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea
saber cual es el total a pagar por su compra.
Respuesta:
Hacemos un análisis del algoritmo.

Entrada Proceso Salida


Total _ compra Desc := total_compra*pd;
Pd = 0.15; total _ pagar : = total _ compra – Desc; Total _ pagar;

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

7.- Determinar la hipotenusa de un triangulo rectángulo conocida las longitudes de los


catetos
Hipotenusa = raíz cuadrada ( cateto_b )^2 + ( cateto_c )^2
Entrada Proceso Salida
Cateto_b Hipotenusa:=sqrt( sqr(cateto_b)+sqr( cateto_c) ) Hipotenusa
Cateto_c

Algoritmo 7.A.- Realizar un algoritmo que pida dos


números A y B luego invierta su valor.
Inicio Es decir que B guarde el valor de A y A
Cateto_b, cateto_c :entero; guarde el valor de B.
Hipotenusa : real;
Leer cateto_b, cateto_c; Pseudocódigo
Hipotenusa:=sqrt( sqr(cateto_b)+sqr( cateto_c) )
Imprimir hipotenusa; Intercambio;
Fin. Variables
A, B, AUX : enteros;
Pseudocódigo Inicio
Operaciones; Escribir ( ‘ déme valor de A y B ‘);
variables Leer ( A,B);
Cateto_b, cateto_c :entero; Escribir(‘antes intercambio’);
Hipotenusa : real; Escribir( ‘A=’, A, ‘ B =’, B);
Inicio AUX : = A;
Escribir ( ‘indique cateto b’); Leer (cateto_b); A : = B;
Escribir ( ‘indique cateto c’); Leer (cateto_c); B : = AUX;
Hipotenusa:=sqrt( sqr(cateto_b)+sqr( cateto_c) ); Escribir(‘Despues intercambio’);
Escribir ( ‘la hipotenusa Escribir( ‘A=’, A, ‘ B =’, B);
8.- Determinar el área y es =’, hipotenusa:0:2);
volumen Cilindro;
de un cilindro cuyas dimensiones radio y altura se leen
Fin. desde el teclado. V = pi * r2 * h y AConstantes Fin.
= 2 * pi * r * h
Pi = 3.1416; Pseudocódigo
Algoritmo variables
V, A, R, H : real;
Inicio Inicio
V, A, R, H : real; Escribir(‘ déme radio’); Leer ( R );
Escribir(‘ déme altura’);leer ( H );
V = pi * sqr(r) * h;
A = 2 * pi * r * h;
Escribir(‘ el volumen =’,V:0:2);
Escribir(‘ el área =’, A:0:2);
Fin.
Pi = 3.1416;
Leer R, H;
V = pi * sqr(r) * h;
A = 2 * pi * r * h;
Imprimir V, A;
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.

10.- Calcular el área de un triangulo en función de las longitudes de sus lados

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

3.- Realice un algoritmo que calcule la edad de una persona.

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.

5.- La presión, el volumen y la temperatura de una masa de aire se relaciona por la


formula : Masa = ( presion*volumen ) / ( 0.37*( temperatura + 460 ))

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.

7.- Realizar un algoritmo y DF que permita calcular el nuevo salario de un trabajador si


obtuvo un incremento del 25% de su salario anterior.

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.

11.- En un hospital existen tres áreas: Ginecología, Pediatría, Traumatología. El


presupuesto anual del hospital se reparte conforme a la siguiente tabla
AREA PORCENTAJE DE PRESUPUESTO
GINECOLOGIA 40%
TRAUMATOLOGIA 30%
PEDIATRIA 30%

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.

La calificación de matemáticas se obtiene de la siguiente manera:


Examen 90%
Promedio de tareas 10%
En esta materia se pidió un total de tres tareas.
La calificación de física se obtiene de la siguiente manera:
Examen 80%
Promedio de tareas 20%
En esta materia se pidió un total de dos tareas.

La calificación de Química se obtiene de la siguiente manera:


Examen 85%
Promedio de tareas 15%
En esta materia se pidió un total de tres tareas.

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

17.- Escribir un algoritmo y Df que calcule el área de un triángulo:

Area = (base * altura)/2.

18.- Escribir un algoritmo y DF que calcule la velocidad de un proyectil que recorre 2


Km en 5 minutos. Expresar el resultado en metros/segundo.

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

Estructuras Condicionales: Se utilizan para tomar decisiones lógicas. Una condición


puede definirse como un planteamiento lógico en donde se comparan por lo menos dos
argumentos ( Variables, datos , expresiones ) y en donde la misma puede ser en un
momento dado verdadero, como falsa. Nunca una condición planteada puede ser
verdadera y falsa a la misma vez. Se clasifican en :
1.- Alternativa Simple: Es planteada cuando al validar la condición solo se ejecutaran
instrucciones si la misma es verdadera. Existen dos casos

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.

Si ( condición ) entonces Si ......Indica el comando de comparación


Inicio Condición .... indica condición a evaluar
Instrucción1; Entonces...precede a las acciones a realizar cuando
. se cumple la condición.
. Instrucciones... son las acciones a realizar cuando
instrucción N; se cumple la condición
Fin;

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;

2.- Alternativa Doble: Es planteada cuando al validar la condición se ejecutaran una o


más instrucciones cuando sea verdadera e igualmente se ejecutaran una o mas
instrucciones cuando sea falsa la condición.

Si ( condición ) entonces Si ......Indica el comando de comparación


Inicio Condición .... indica condición a evaluar
Instrucción1; Entonces...precede a las acciones a realizar cuando
. se cumple la condición.
. Instrucciones... son las acciones a realizar cuando
instrucción N; se cumple la condición
Fin De lo contrario.. precede a las acciones a realizar cuando
De lo contrario no se cumple la condición
Inicio
Instrucción1;
.
instrucción N;
Fin;

Nota: cuando este presente la cláusula “de lo contrario”, la instrucción anterior no


termina en punto y coma.
Alternativa Múltiple: Son tomas de decisión especializadas que permiten comparar una
variable contra distintos posibles resultados, ejecutando para cada caso una serie de
instrucciones específicas. La forma común es la siguiente.

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 );

Otra forma de expresarlo es con el procedimiento en CASO DE


Sintaxis:
Si complejo: es cuando se tiene un Si
CASO ( Variable o Expresión ) De dentro otro Si ( anidado ). ejemplo
Valor1 : instrucciones;
Valor2 : instrucciones; Si ( condición ) entonces
Valor3 : inicio Instrucción ( es );
Instrucción1; Si ( condición ) entonces
Instrucción N; Instrucción ( es );
Fin; Otro caso es
De lo contrario Si (condición) entonces
Instrucción; Si ( condición ) entonces
Fin del caso; Instrucción ( es);
Ahora para poder establecer una condición es necesario primero dominar ciertos
operadores que de una u otra manera permiten construir la estructura de una condición.

Operadores: son elementos que relacionan de formas diferentes, los valores de una o
más variables y / o constantes. Es decir, permiten manipular valores.

Operadores Relaciónales: Son elementos de transición que permiten construir una


condición estableciendo una relación entre dos valores para producir un resultado de
certeza o falsedad ( verdadero falso ).

> mayor, < menor, > = mayor o igual, < = menor o igual, = igual, < > diferente.

Ejemplos: A = 10 B = 20 C = 30

A + B > C FALSO Otro ejemplo


A – B < C VERDADERO Si ( A = 10 ) entonces
A – B = C FALSO inicio
A * B < > C VERDADERO instrucción1;
InstrucciónN;
Fin;

Ejemplos:
Determinar si Interes es mayor o igual que
Determinar si descu es mayor que pago prima + 500

Si ( descu > pago ) entonces Si ( Interes > = prima + 500) entonces

Averiguar si sala_neto es diferente a sal_bas


Si ( sala_neto < > sal_bas ) entonces

Determinar si pago es igual a 20000

Si ( Pago = 20000 ) entonces

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.

Como se haría la pregunta

Si ( Sueldo > 1000000 ) entonces


Retencion : = sueldo * 0.20
De lo contrario
Retencion : = sueldo * 0.10;

Si una persona cualquiera gana mas de 2000000 se le retiene el 20% de su sueldo y se le


asigna el 10% del sueldo pero si gana 2000000 o menos se le retiene el 10% de su sueldo
y se le asigna un 25% de su sueldo.

Como se haría la pregunta

Si ( Sueldo > 2000000 ) entonces Como tiene mas de una


inicio instrucción a ejecutar por
Retencion : = sueldo * 0.20; sentencia se debe abrir un
Asigna : = sueldo * 0.1; inicio y fin
fin
De lo contrario
inicio
Retencion : = sueldo * 0.10;
Asigna : = sueldo * 0.25;
Fin;

Operadores lógicos: Permiten establecer lo que se denomina una condición compuesta,


es decir, que ya no es la evaluación de si una condición es verdadera o falsa sino que hay
más de una condición que evaluar y según sea el resultado de evaluar todas las
condiciones juntas se obtendrá un resultado de verdadero o falso.

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

Ejemplo A = 5 B = 1 { si A es mayor o igual a B y B es mayor que cero 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}
SI ( A>= B ) AND ( B>0) entonces
Inicio
C : = A + B;
D : = A * B;
Fin
De lo contrario { Según este planteamiento la condición es verdadera por lo tanto
Inicio se realiza la suma y multiplicación de A y B }
C : = A – B;
D : = A / D;
Fin;

 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

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}
SI ( A< B ) OR ( B<>4) entonces
Inicio
C : = A + B;
D : = A * B;
Fin
De lo contrario { Según este planteamiento las condiciones son falsa por lo tanto
Inicio se realiza la resta y la división de A y B }
C : = A – B;
D : = A / D;
Fin;
 NOT ( NO ): Este operador lo que hace es negar el resultado de una expresión
condicional. Es decir, invierte el resultado de la evaluación.

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}

SI NOT ( ( A< B ) OR ( B<>4) ) entonces

Inicio
C : = A + B;
D : = A * B;
Fin

De lo contrario { Según este planteamiento las condiciones son falsa pero como se

Inicio está negando la condición entonces se realiza la suma y


C : = A – B; multiplicación de A y B }
D : = A / D;
Fin;

Ejercicios:

1.- un cliente compra una cantidad de artículos de un mismo tipo a un precio


determinado, de esta forma se calcula el monto de la compra, al cliente se le otorga un
descuento del 20% sobre el monto de la compra, si esta excede los 200000 Bs, se pide
mostrar por pantalla el monto a pagar por el cliente.

Respuestas:

Entrada Proceso Salida

Cant_arti; MC : = Cant_arti * Precio_uni;


Precio_uni; Si ( MC >200000) entonces mp
Pd = 0.20; descuento : = MC * pd;
MP : = MC – descuento;

Algoritmos Pseudocódigo

INICIO Cliente; { Encabezado}


1.- Cant_arti : entero; Constantes
Precio_uni, descuento, mp, mc : real; pd = 0.2;
Pd = 0.20; { declaración de variables y Variables { Sección de Declaraciones}
constantes} cant_arti : enteros;
2.- Leer precio_uni, cant_arti; { entrada } mp, mc, descuento, precio_uni : real;
3.- MC : = precio_uni * cant_arti; INICIO { Cuerpo principal }
4.- Si ( MC >200000) entonces Escribir( ‘indique cantidad de articulo’);
descuento : = MC * pd; { procesos } Leer ( cant_arti ); { Entradas}
fin_si; Escribir(‘ indique precio unitario’);
5.- Mp : = mc – descuento; Leer ( precio_uni);
6.- Imprimir MP; { salida } MC : = Cant_arti * Precio_uni;
FIN. Si ( MC >200000) entonces
descuento : = MC * pd; { procesos }
MP : = MC – descuento;
Escribir( ‘El monto es ‘ ,mp:0:2);{salida
FIN. { Cuerpo principal }

Diagrama de flujo

INICIO

mp, mc, descuento, precio_uni : real;


cant_arti : enteros; pd = 0.2;

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, prom: real;

Nota1, nota2,
nota3

Prom : =( nota1 +nota2 +nota3) / 3;

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 : cadena; Cdor = 1.08; Csent = 1.66;


Tiempo, cal_dormido, cal_sentado : real;

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

Escribir ( ‘ déme el nombre’);


Leer (nombre);
Escribir ( ‘ indique sexo M / F ‘);
Leer ( sexo);
Escribir ( ‘ déme la edad ‘);
Leer ( edad);
Escribir ( ‘ indique estado civil C, S, V, D);
Leer ( EC );

Si ( edad >40) and ( sexo = ‘M’ ) and (ec = ‘C’ ) entonces


Imprimir ( ‘ el nombre es ‘ , nombre );

Si ( edad >50) and ( sexo = ‘F’ ) and (ec = ‘S’ ) entonces


Imprimir ( ‘ el nombre es ‘ , nombre );

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.

Antigüedad porcentaje de utilidad


0 a 1 año 5%
2 a 4 años 7%
5 a 7 años 10%
8 a 10 años 15%
11 a 30 años 20%

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.

Utilizando alternativas múltiples ( CASO DE )

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.

11.- Realizar un algoritmo que permita simular el funcionamiento de una calculadora


básica, donde se puedan hacer las operaciones aritméticas de suma, resta, multiplicación
y división. Para realizar la operación se deberán leer 2 operandos y un operador, donde el
operador dirá que tipo de operación se deberá realizar con los operandos.

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.

2.- Realizar un algoritmo y diagrama de flujo para el siguiente caso:

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:

Toda llamada tiene un costo básico de 1000 Bs.


Si la llamada es Nacional el costo del minuto es de 50 Bs. Ahora si es Internacional el
costo del minuto será de 80 Bs.
Si la llamada es el turno de la mañana ( Diurno ) tendrá un recargo adicional de 20 Bs.
Por minuto en cambio si la llamada es el turno de la noche ( Nocturno ), tendrá un
recargo de 10 Bs. Por minuto.
Si el país destino de la llamada es Japón o Canadá, entonces el costo de la llamada se
incrementará en otros 1000 Bs.
Por ultimo a toda llamada se le aplica el 15.5 % de IVA.
6.- En una tienda de descuento se efectúa una promoción en la cual se hace un descuento
sobre el valor de la compra total según el color de la bolita que el cliente saque al pagar
en la caja. Si la bolita es de color blanco no se le hará descuento alguno, si es verde se le
hará un 10% de descuento, si es amarilla un 25%, si es azul un 50% y si es roja un 100%.
Determinar la cantidad final que el cliente deberá cancelar por su compra, se sabe que
hay bolitas de los colores mencionados.

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.

8.- Realizar un algoritmo y diagrama de flujo para el siguiente caso:

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.

11.- Realizar un algoritmo y Df para el siguiente caso: En un supermercado se hace una


promoción, mediante el cual el cliente obtiene un descuento dependiendo de un número
que se escoge al azar. Si el número es menor que 74 el descuento es del 15% sobre el
total de la compra, si es mayor o igual a 74 el descuento es del 20%. Obtener cuanto
dinero se le descuenta.

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.

16.- desarrolle un algoritmo para leer de un mismo registro el nombre de un empleado, su


salario básico por hora y el número de horas trabajadas en el mes. Calcular su salario
mensual y obtener tanto el nombre como su salario mensual. Si tiene el salario mayor
250000 Bs.

17.- Hacer un algoritmo que identifique e imprima el número medio de un conjunto de


tres números únicos. El número medio es aquel que no es ni el mayor ni el menor.

18.- Desarrolle un algoritmo para leer de un registro el nombre de un empleado, su


salario por hora y el número de horas trabajadas, calcular el salario básico, la retención y
el salario neto, teniendo en cuenta para el calculo de la retención lo siguiente:
Para un salario básico hasta 200000 no hay retención. Para un salario básico mayor de
200000 y menor o igual a 400000, el porcentaje de retención es de 5% del salario básico.
Para un salario básico mayor de 400000 el porcentaje de retención es del 8%. Imprimir el
nombre del empleado, el salario bruto, el monto de retención y el salario neto.

19.- Desarrolle un algoritmo para leer de un registro el nombre de un empleado, su


salario por hora y el número de horas trabajadas durante una semana. Calcular el salario
neto, teniendo en cuenta que si el número de horas trabajadas durante la semana es mayor
de 48, esas horas demás se consideran extras y tiene un recargo del 35% sobre el precio
de la hora. Imprima el nombre del empleado y el salario neto.

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.

22.- Escribir un algoritmo que muestre un mensaje afirmativo si el numero introducido es


múltiplo de 5.

23.- Escribir un algoritmo que lea desde teclado el importe bruto de una factura y
determine el importe neto según los siguientes criterios.

· Importe bruto menor de 20.000 -> sin descuento


· Importe bruto mayor de 20.000 -> 15% de descuento

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.

Si actualmente su capital se encuentra con saldo negativo, pedirá un préstamo


bancario para que su nuevo saldo sea de 1000000 Bs. Si su capital tiene actualmente un
saldo positivo pedirá un préstamo bancario para tener un nuevo saldo de 2000000 Bs.,
pero si su capital tiene actualmente un saldo superior a 2000000 Bs., no pedirá ningún
préstamo. Posteriormente repartirá su presupuesto de la de la siguiente manera:

500000 Bs. para equipo de computo.


200000 Bs. para mobiliario.
Y el resto. la mitad será para compra de insumos y la otra para otorgar incentivos al
personal.

Se pide desplegar que cantidades se destinarán para la compra de insumos e incentivos al


personal y, en caso de que fuera necesario, a cuanto ascendería la cantidad que se pedirá
al banco.

30.- Una frutería ofrece las manzanas con descuento según la siguiente tabla:

NUM. KILOS COMPRADOS % DE DESCUENTO SOBRE MONTO


0–2 0%
MAS DE 2 A 5 10%
MAS DE 5 A 10 15%
MAS DE 10 20%

Se sabe que el precio por kilo entra por teclado, se desea saber cuanto pagara un cliente.

ESTRUCTURAS REPETITIVAS ( CICLOS )

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:

Un algoritmo de estructuras repetitivas o cíclicas, es aquel que permite definir la


ejecución de un grupo de instrucciones tantas veces como lo establece una condición de
permanencia. Dicha condición dependiendo del tipo de estructura escogida ( Para,
Mientras y Repetir ) puede ser la simple evaluación de una variable de control como la
evaluación de un valor constantes.

Un ejemplo puede ser si queremos calcular el promedio de notas de cinco alumnos


de un colegio se hace imperativo el uso de procesos repetitivos ya que nos permiten pedir
las notas y acumularlas en una variable de tipo acumulador para luego sacar el promedio
y poder así minimizar el número de instrucciones que se harían en forma lineal (sin ciclo)

Solución sin Ciclo: Algoritmo


Pseudocódigo
Inicio
Curso;
Nota1, nota2, nota3, nota4, nota5, prom,
Variables
suma : real;
Nota1, nota2, nota3, nota4, nota5, prom, suma : real;
Leer Nota1, nota2, nota3, nota4, nota5;
Inicio
Suma: = nota1+ nota2+ nota3 + nota4+
Escribir (‘ indique nota del alumno 1’);
nota5;
Leer ( nota1);
Prom: = suma / 5 ;
Escribir (‘ indique nota del alumno 2’);
Escribir ( ‘ el promedio es =’ , prom :
Leer ( nota2);
0:2);
Escribir (‘ indique nota del alumno 3);
FIN.
Leer ( nota3);
Escribir (‘ indique nota del alumno 4);
Leer ( nota4);
Escribir (‘ indique nota del alumno 5);
Leer ( nota5);
Suma: = nota1+ nota2+ nota3 + nota4+ nota5;
Prom: = suma / 5 ;
Escribir ( ‘ el promedio es =’ , prom :0:2);
FIN.

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:

 Contador: Es una variable que permite como su nombre lo indica ir controlando


el número de veces que se repite un evento dado. Se caracteriza porque una
variable contador se incrementa o decrementa por un valor constante. El contador
se declara de tipo entero.

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 }

Si el evento ocurre A incrementa en 1

 Acumulador: Es una variable que permite como su nombre lo indica ir


acumulando un valor que puede ir variando de un evento a otro. Se caracteriza
por que una variable se incrementa o decrementa por una variable.
Ejemplo

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;

Estructura Repetitiva PARA :

Es muy usada cuando el número de interacciones es conocido, es decir, la


permanencia dentro del ciclo depende de un valor constante. Y permite ejecutar el grupo
de instrucciones que se encuentran entre la instrucción PARA y el Fin del ciclo, se
pueden plantear ciclos anidados (PARA) lo cual veremos en pascal. Por ejemplo si en un
momento dado se plantease el caso de tener que leer diez ( 10 ) nombres entonces el ciclo
se plantearía de la siguiente manera:

Forma para trabajar con el ciclo PARA : ( FINITO)

PARA Valor inicial a valor final Hacer


Inicio
La variable inicial debe ser una variable
Instrucción 1;
declarada de tipo entera, carácter,
.
boolean nunca debe ser declarada real.
.
En el caso de que el valor final también
Instrucción N;
sea una variable de lectura esta debe ser
Fin; { fin del ciclo para }
declarada de tipo entero jamás real.
PARA I : = 1 A 10 Hacer
Inicio
Escribir ( ‘introduzca el nombre ‘);
Leer ( Nombre );
Fin;

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.

Forma para trabajar con el ciclo PARA : ( CONTROLADO POR EL USUARIO)

Escribir ( ‘ indique el valor de N ‘);


leer ( N);
PARA Valor inicial a N Hacer
Inicio NOTA: El ciclo para se
Instrucción 1; comporta como un contador
. automático , por lo tanto no
. necesita de una instrucción que
Instrucción N; se haga falsa para salir del ciclo
Fin; { fin del ciclo para }

Escribir ( ‘ indique cantidad de alumnos ‘);


leer ( N);
PARA I : = 1 A N Hacer
Inicio
Escribir ( ‘introduzca el nombre ‘);
Leer ( Nombre );
Fin;

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

1.- Realizar un algoritmo que pida el nombre de un alumno y le permita determinar el


promedio de las N notas de las materias que el curso en el semestre.

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 }

Escribir(‘el atleta ganador..’, ganador);


Escribir(‘cantidad de record..’, R300);
Escribir(‘ cantidad de atletas ‘, T320y350);
Escribir(‘ El peor record..’, Peor);

FIN.

Estructura repetitiva MIENTRAS:

Sintaxis:

Mientras ( condición ) Hacer


Inicio
Instrucción 1;
.
.
Instrucción N;
Fin;
Es decir, mientras la condición que se encuentra encerrada entre los paréntesis es
verdadera entonces se ejecutarán el grupo de instrucciones que se hallan dentro del ciclo.
Es importante tomar en cuenta que cuando se plantea una estructura cíclica, por lo menos
una de las instrucciones que se van a ejecutar dentro del ciclo va a permitir que en algún
momento la condición de permanencia se haga falsa para que de esta manera el algoritmo
pueda continuar libremente hasta el final de su ejecución y no se convierta como es error
frecuente en un ciclo infinito.

Existen varias formas de plantearnos las condiciones del ciclo.

1.- Cuando el valor final de la condición es una constante ( finito):


Ejemplo : promedio de 5 notas

I : = 1; Snota:=0; 3.- Cuando nos dicen en el algoritmo mientras


MIENTRAS ( I< = 5 ) HACER existan datos ( también por el usuario), se
Inicio hace de la siguiente forma
Escribir(‘indique nota’); Ejemplo:
Leer ( nota); Un profesor desea saber el promedio de notas de
Snota := snota + nota; un curso, este se ejecutará mientras existen
I : = I +1; { para salir del ciclo} datos.
FIN; { del ciclo mientras}
Prom : = snota / 5 ; Snota : =0; Ce := 0;
2.- Cuando el valor final no se conoce es N resp:= ‘S’; valor inicial para entrar al ciclo.
( por el usuario ) Mientras(resp=’S’) or ( resp = ‘s’) hacer
Inicio
Ejemplo : promedio de N notas Escribir(‘indique nota’);
I : = 1; Snota:=0; Leer ( nota);
Escribir(‘veces a procesar’); leer (N); Snota := snota + nota;
MIENTRAS ( I< = N) HACER Ce : = Ce +1;
Inicio Escribir ( ‘ existen mas notas S/N’);
Escribir(‘indique nota’); Leer (resp);
Leer ( nota); Fin; { ciclo mientras }
Snota := snota + nota; Prom : = snota / ce ;
PSEUDOCODIGO
I : = I +1; { para salir del ciclo} Escribir (‘el promedio=’,prom:0:2);
Empresa;
FIN; { del ciclo mientras Fin.
Variables
Prom : = snota / n ;
Nombre: cadena; Nht, I : enteros;
Sbh, Pr, Reten, sn, sb : real;
Ejemplo ilustrativo conociendo el número de registro que se tienen para la lectura
INICIO
1.- Elaborar un algoritmo que obtenga el salario neto de cada uno de los 20 trabajadores
Clrscr; I: =1;
de la empresa XYZ. Se debe leer de cada registro, el nombre, su salario básico por hora,
Mientras ( I < = 20 ) Hacer
el número de horas trabajadas y el porcentaje de retención. Se debe imprimir por cada
Inicio
trabajador su nombre, su retención, su salario básico y salario neto.
Escribir(‘ deme el nombre’);Leer(nombre);
Algoritmo Escribir (‘ deme salario por hora’); leer(sbh);
Escribir (‘ deme número de horas’);leer( nht);
INICIO Escribir (‘ deme porcentaje’);leer( pr);
Nombre: cadena; Sb : = sbh * nht; Reten : = sb* pr/100;
Nht, I : enteros; Sn : = sb – reten; I : = I + 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);
Fin; {ciclo mientras }
FIN..
Sbh, Pr, Reten, sn, sb : real;
I: =1;
Mientras ( I < = 20 ) Hacer
Inicio
Leer nombre, sbh, pr, nht;
Sb : = sbh * nht;
Reten : = sb* pr/100;
Sn : = sb – reten;
I: = I + 1; { para salir del ciclo}
Imprimir nombre, reten, sb,sn;
Fin; {ciclo mientras }
FIN.

Ejemplo ilustrativo cuando el número de registro no se conoce , es decir, se debe leer


primero esa variable antes del ciclo, el mismo ejercicio anterior para N trabajadores.
PSEUDOCODIGO
Algoritmo
Empresa;
INICIO
Variables
Nombre: cadena;
Nombre: cadena; Nht, I : enteros;
Nht, I, N : enteros;
Sbh, Pr, Reten, sn, sb : real;
Sbh, Pr, Reten, sn, sb : real;
INICIO
I: =1;
I: =1;
Leer ( N );
Escribir(‘ indique veces a procesar’);leer(N);
Mientras ( I < = N ) Hacer
Mientras ( I < = N ) Hacer
Inicio
Inicio
Leer nombre, sbh, pr, nht;
Escribir(‘ deme el nombre’);Leer(nombre);
Sb : = sbh * nht;
Escribir (‘ deme salario por hora’); leer(sbh);
Reten : = sb* pr/100;
Escribir (‘ deme número de horas’);leer( nht);
Sn : = sb – reten;
Escribir (‘ deme porcentaje’);leer( pr);
I: = I + 1; { para salir del ciclo}
Sb : = sbh * nht; Reten : = sb* pr/100;
Imprimir nombre, reten, sb,sn;
Sn : = sb – reten; I : = I + 1; { salir ciclo}
Fin; {ciclo mientras }
Escribir(‘ el nombre es..’, nombre);
FIN.
Escribir(‘ su retención es..’, reten:0:2);
3.- Realizar un algoritmo que determine e imprima las raíces reales de la ecuación de segundo
2 Escribir(‘Sb=’,sb:0:2, ‘ Sn=’, sn:0:2);
Fin;imaginarias
grado Ax +Bx + C=0, en caso de que las raíces sean { ciclo mientras
y no se}puedan calcular debe
imprimirse un mensaje de error. FIN..
Nota: este algoritmo se ejecutará mientras existan datos.
Raíces_de _segundo_grado;
Variables
X1, X2: real;
A, B, C , determinante : enteros;
Continuar : carácter;
INICIO
Continuar : = ‘ S ‘;
Mientras ( continuar = ‘S’) Or ( continuar = ‘ s ’) Hacer
Inicio
Escribir (‘ indique el valor de A ‘); leer ( A );
Escribir (‘ indique el valor de B ‘); leer ( B );
Escribir (‘ indique el valor de C ‘); leer ( C );
Determinante : = sqr( B) – 4*A*C;
Si ( A<>0) and ( determinante >= 0) entonces
Inicio
X1 : = (- B + sqrt ( determinate ) ) / ( 2 * A);
X2 : = (- B - sqrt ( determinate ) ) / ( 2 * A);
Escribir( ‘ X1 = ‘, X1:0:2);
Escribir( ‘ X2 = ‘, X2:0:2);
Fin
De lo contrario
Escribir ( ‘ Error en la operación ‘);
Escribir ( ‘ deseas continuar con otra operación S / N ‘);
Leer ( continuar );
Fin; { del ciclo mientras }
FIN.

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.

Ejemplo ilustrativo utilizando registro centinela.


4.- Escriba un algoritmo que lea todas las calificaciones de un examen y que calcule e
imprima la mayor de estas calificaciones, así como también el número de calificaciones
procesados. Nota: para terminar la repetición del ciclo, utilizaremos un valor centinela de
–1, el cual no esta dentro del rango posible de calificaciones.
Calificaciones;
constantes
centinela = -1;
variables
nota, mayor, cuenta : enteros;
INICIO
mayor:=0;cuenta:=0;
Escribir('indique nota'); leer(nota);
Mientras (nota<>centinela) Hacer
Inicio
Cuenta := cuenta +1;
Si(nota >mayor)entonces
mayor:= nota;
Escribir('indique una nota, o para salir coloque -1'); Leer(nota);
Fin;
Escribir('cantidad de notas procesadas ', cuenta);
Escribir('la nota mayor es..', mayor);
FIN.
5.- Elaborar un algoritmo que obtenga el salario neto de cada uno de los trabajadores de
la empresa XYZ. Se debe leer de cada registro, el nombre, su salario básico por hora, el
número de horas trabajadas y el porcentaje de retención. La empresa desea saber el
promedio de los salarios netos de los trabajadores que ganan más de 200000 y saber
cuantos trabajadores ganan 200000 o menos se debe imprimir por cada trabajador su
nombre, su retención, su salario básico y salario neto.

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.

2.- Dadas N observaciones X1, X2,.....Xn, determinar su media aritmética y su


desviación estándar .

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.

Das könnte Ihnen auch gefallen