Vous êtes sur la page 1sur 35

ESCUELA DE EDUCACIN TCNICA N 16

1 DE MAYO
INFORMTICA III

INTRODUCCIN A LA PROGRAMACIN
Contenido
I. Introduccin a la programacin
1.1 Definicin de algoritmo
1.2 Lenguajes de programacin (Lenguaje mquina, ensamblador y de alto nivel)
1.3 Traductores de lenguaje
1.4 Definicin de programa
1.5 Diagrama de flujo (Representacin grfica)
1.6 Pseudocdigo
1.7 Lenguaje algortmico
1.8 Metodologa de solucin
1.9 Prueba de un algoritmo (Ejemplos)
I. Introduccin a la programacin
1.1 Definicin de algoritmo
Un algoritmo es una secuencia de pasos lgicos necesarios para llevar a cabo una
tarea especfica, como la solucin de un problema. Los algoritmos son independientes
tanto del lenguaje de programacin en que se expresan como de la computadora que
los ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente
de programacin y ejecutarse en una computadora distinta; sin embargo el algoritmo
ser siempre el mismo.
Por ejemplo en una analoga con la vida diaria, una receta de un plato de cocina se
puede expresar en espaol, ingles o francs, pero cualquiera que sea el lenguaje, los
pasos para la elaboracin del plato se realizaran sin importar el cocinero.
Los pasos a seguir en la solucin de una ecuacin de segundo grado.
Los pasos matemticos para la solucin de un nmero factorial.
Las instrucciones para la liquidacin de una nomina.
Las acciones que se deben seguir para la obtencin de una estadstica.
Para llegar a la realizacin de un programa es necesario el diseo previo de un
algoritmo, de modo que sin algoritmo no puede existir un programa.
Caractersticas de los algoritmos
Las caractersticas fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener
el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algn
momento; o sea debe de tener un nmero finito de pasos.
La definicin de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.
En el algoritmo citado anteriormente se tendr:
Entrada ingredientes y utensilios empleados
Proceso elaboracin de la receta de cocina
Salida terminacin del plato (por ejemplo, cordero)
Un algoritmo exige que se tengan varias propiedades importantes:
Los pasos de un algoritmo deben ser simples y exentos de ambigedades (diferentes
significados), deben seguir un orden cuidadosamente prescrito, deben ser efectivos y
deben de resolver el problema en un nmero finito de pasos.
El siguiente ejemplo muestra un algoritmo para cambiar un foco quemado.
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
Cambiar un foco quemado podra resumirse en dos pasos:
Quitar el foco quemado
Colocar un foco nuevo
Pero, si tuviera que entrenar un robot domestico para que efecte esta tarea, tendr
que ser mas especifico y claro en los pasos a seguir, dar mas detalles (suponga que el
foco se encuentra en el techo de una habitacin):
Situar escalera bajo el foco quemado.
Elegir un foco de reemplazo (de la misma potencia que el anterior).
Subir por la escalera hasta alcanzar el foco.
Girar el foco contra las manecillas del reloj hasta que est suelto.
Ubicar el foco nuevo en el mismo lugar que el anterior.
Enroscar en el sentido de las manecillas del reloj hasta que quede apretado.
Bajar de la escalera.
1.2 Lenguajes de programacin (Lenguaje mquina, ensamblador y de alto nivel)
Al igual que los idiomas sirven de vehculo de comunicacin entre seres humanos,
existen lenguajes que realizan la comunicacin entre ellos y las computadoras. Estos
lenguajes permiten expresar las instrucciones que el programador desea que la
computadora ejecute.
Los principales tipos de lenguajes utilizados en la actualidad son tres:
Lenguaje maquina
Lenguaje de bajo nivel (ensamblador)
Lenguajes de alto nivel
Lenguajes mquina
Se llama lenguaje mquina a las instrucciones que se dan directamente a la
computadora, utilizando una serie de dgitos binarios o bits, representados por los
nmeros 0 y 1 que especifican una operacin. Aunque este lenguaje es el que entiende
la computadora, es muy difcil de manejar en la comunicacin humana. Las
instrucciones en lenguaje maquina dependen del hardware de la computadora y, por lo
tanto, diferirn de una computadora a otra.
Lenguajes de bajo nivel (ensamblador)
Los lenguajes de bajo nivel son ms fciles de utilizar que los lenguajes mquina, pero,
al igual que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel por
excelencia es el ensamblador (assembler lenguaje). Las instrucciones en lenguaje
ensamblador son conocidas como mnemotcnicos.
Por ejemplo, mnemotcnicos tpicos de operaciones aritmticas son:
*en ingles, ADD, SUB, DIV, etc.
*en espaol, SUM, RES, DIV, etc.
Una instruccin tpica de suma seria:
ADD M, N, P
Esta instruccin podra significar "sumar el nmero contenido en la posicin de
memoria M al nmero almacenado en la posicin de memoria N y situar el resultado en
la posicin de memoria P". Evidentemente es mucho ms sencillo recordar la
instruccin anterior con un mnemotcnico que su equivalente en cdigo mquina.
0110 1001 1010 1011
Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente
por la computadora (en esto se diferencia esencialmente del lenguaje mquina) sino
que requiere una fase de traduccin al lenguaje mquina.
El programa original escrito en lenguaje ensamblador se denomina programa fuente y
el programa traducido en lenguaje maquina se conoce como programa objeto, ya
directamente entendible por la computadora.
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
El traductor de programas fuente a objeto es un programa llamado ensamblador
(assembler), existente en casi todas las computadoras.
NOTA: No se debe confundir el programa ensamblador, encargado de efectuar la
traduccin del programa fuente escrito a lenguaje maquina, con el lenguaje
ensamblador (assembly language), lenguaje de programacin con una estructura y
gramtica definidas.
Los lenguajes ensambladores presentan la ventaja frente a los lenguajes maquina de
su mayor facilidad de codificacin y, en general, su velocidad de clculo.
Los inconvenientes ms notables de los lenguajes ensambladores son:
Dependencia total de la maquina lo que impide la transportabilidad de los programas
(posibilidad de ejecutar un programa en diferentes maquinas).
La formacin de los programadores es ms compleja que la correspondiente a los
programadores de alto nivel, ya que exige no slo las tcnicas de programacin, sino
tambin el conocimiento del interior de la mquina.
Hoy da los lenguajes ensambladores tienen sus aplicaciones muy reducidas en la
programacin de aplicaciones y se centran en aplicaciones de tiempo real, control de
procesos y de dispositivos electrnicos, etc.
Lenguajes de alto nivel
Los lenguajes de alto nivel son los ms utilizados por los programadores. Estn
diseados para que las personas escriban y entiendan los programas de un modo
mucho ms fcil que los lenguajes mquina y ensambladores. Otra razn es que un
programa escrito en un lenguaje de alto nivel es independiente de la mquina; esto es,
las instrucciones del programa de la computadora no dependen del diseo del
hardware o de una computadora en particular. En consecuencia, los programas escritos
en lenguajes de alto nivel son portables o transportables, lo que significa la posibilidad
de poder ser ejecutados con poca o ninguna modificacin en diferentes tipos de
computadoras; al contrario que los programas en lenguaje mquina o ensamblador que
slo se pueden ejecutar en un determinado tipo de computadora.
Los lenguajes de alto nivel presentan las siguientes ventajas:
El tiempo de formacin de los programadores es relativamente corto comparado con
otros lenguajes.
La escritura de programas se basa en reglas sintcticas similares a los lenguajes
humanos. Nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc.
Las modificaciones y puestas a punto de los programas son ms fciles.
Reduccin del coste de los programas.
Transportabilidad.
Los inconvenientes se concretan en:
Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del
programa fuente para conseguir el programa definitivo.
No se aprovechan los recursos internos de la mquina que se explotan mucho mejor en
lenguajes mquina y ensambladores.
Aumento de la ocupacin de memoria.
El tiempo de ejecucin de los programas es mucho mayor.
Al igual que pasa con los lenguajes ensambladores, los programas fuente tienen que
ser traducidos por programas traductores, llamados compiladores e interpretes.
Los lenguajes de programacin de alto nivel existentes en la actualidad son muy
numerosos, aunque la prctica demuestra que su uso mayoritario se reduce a BASIC,
COBOL, PASCAL, C, C++,... y en el campo de la primera enseanza a LOGO, PILOT...

Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
1.3 Traductores de lenguaje
Los traductores de lenguajes son programas que traducen a su vez los programas
fuente escritos en lenguajes de alto nivel a cdigo mquina.
Los traductores se dividen en:
Compiladores
Interpretes
Interpretes
Un interprete es un traductor que toma un programa fuente, lo traduce y a continuacin
lo ejecuta (dicho programa por medio de la computadora desarrolla una tarea
especifica).
Un lenguaje que soporte un traductor de tipo intrprete se denomina lenguaje
interpretado. BASIC es el modelo por excelencia interpretado.
Los programas fuente en BASIC se escriben con ayuda de un programa denominado
editor que suele venir incorporado al programa intrprete.

Compiladores
Un compilador es un programa que traduce los programas fuente escritos en lenguajes
de alto nivel a lenguaje mquina.
Los programas escritos en lenguajes de alto nivel (en el editor del lenguaje) se llaman
programas fuente y el programa traducido programa objeto o cdigo objeto. El
compilador traduce (sentencia a sentencia) el programa fuente.
Lenguajes compiladores tpicos son: PASCAL, COBOL, C..
Fases de la compilacin
La compilacin es el proceso de la traduccin de programas fuente a programas objeto.
El programa objeto obtenido de la compilacin no ha sido traducido normalmente a
cdigo mquina sino a ensamblador. Para conseguir el programa mquina real se debe
utilizar un programa llamado montador o enlazador (linker). El proceso de montaje
conduce a un programa en lenguaje mquina directamente ejecutable:

Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III

Por ejemplo:
El proceso de ejecucin de un Programa en C++ tiene los siguientes pasos:
Escritura del programa fuente con un editor (programa que permite a una computadora
actuar de modo similar a una mquina de escribir electrnica) y guardarlo en un
dispositivo de almacenamiento (un disco).
Introducir el programa fuente en memoria.
Compilar el programa con el compilador C++.
Verificar y corregir errores de compilacin (listado de errores).
Obtencin del programa objeto.
El montador obtiene el programa ejecutable.
Se ejecuta el programa y si no existen errores, se tendr la salida del mismo.

Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III

1.4 Definicin de programa


Un programa de computadora es un conjunto de instrucciones (ordenes dadas a la
mquina) que producirn la ejecucin de una determinada tarea. En esencia, un
programa es un medio para conseguir un fin. El fin ser normalmente definido como la
informacin necesaria para solucionar un problema.
El proceso de programacin es, por consiguiente, un proceso de solucin de problemas
(como ya se vio anteriormente) y el desarrollo de un programa requiere las siguientes
fases:
Definicin y anlisis del problema.
Diseo de algoritmos.
- diagrama de flujo;
- pseudocdigo.
Codificacin del programa.
Depuracin y verificacin del programa.
Documentacin.
Mantenimiento.
En este curso el objetivo fundamental son las fases 1 y 2.
1.5 Diagrama de flujo (Representacin grfica)
Un diagrama de flujo (flowchart) es una de las tcnicas de representacin de algoritmos
ms antigua y a la vez ms utilizada, aunque su empleo ha disminuido
considerablemente, sobre todo desde la aparicin de lenguajes de programacin
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
estructurados. Un diagrama de flujo es un diagrama que utiliza los smbolos (cajas) y
que tiene los pasos del algoritmo escritos en esas cajas unidas por flechas,
denominadas lneas de flujo, que indican la secuencia en que se deben ejecutar.
Los smbolos estndar normalizados por ANSI (abreviatura de American National
Standards Institute) son muy variados, aqu se presentan algunos:

Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
Ejemplo bsico de un diagrama de flujo:

El diagrama citado representa la resolucin de un programa que deduce el salario neto


de un trabajador a partir de la lectura del nombre, horas trabajadas, precio de la hora, y
sabiendo que los impuestos aplicados son el 10 % sobre el salario bruto.
1.6 Pseudocdigo
El pseudocdigo es un lenguaje de especificacin de algoritmos.
En s es una mezcla de lenguaje de programacin y de lenguaje natural. La idea del
pseudocdigo consiste en aprovechar la flexibilidad y poder expresivo del lenguaje
natural por un lado, y las reglas de composicin de los lenguajes de programacin de
alto nivel por el otro.
El pseudocdigo utiliza para representar las acciones sucesivas palabras reservadas
en ingls - similares a sus homnimas en los lenguajes de programacin -, tales como
start, end, stop, if-then-else, while etc. La escritura del pseudocdigo exige
normalmente la indentacin (sangra en el margen izquierdo) de diferentes lneas. La
representacin en pseudocdigo del diagrama de flujo del ejemplo anterior sera:
Start
{clculo de impuesto y salario}
read nombre, hora, precio_hora
salario_bruto horas * precio_hora
tasa 0.1 *salario_bruto
salario_neto salario_bruto - tasa
write nombre, salario_bruto, tasa, salario_neto
end
El algoritmo comienza con la palabra start y finaliza con la palabra end, en ingls (en
espaol, inicio y fin). Entre estas palabras, slo se escribe una instruccin o accin por
lnea.
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
La lnea encerrada entre llaves { ... } se denomina comentario. Es una informacin al
lector del programa y no realiza ninguna instruccin ejecutable; slo tiene efecto de
documentacin interna del programa. Algunos autores suelen utilizar corchetes en lugar
de llaves [ ... .
1.7 Lenguaje algortmico
El lenguaje algortmico extrae las mejores caractersticas de los dos enfoques
anteriores y los combina en un lenguaje especial para expresar algoritmos. Del
pseudocdigo se tom la facilidad de descripcin de la prosa, al que se agrego lo
conciso del diagrama de flujo.
La traduccin del lenguaje algortmico a un lenguaje de programacin debe resultar
sencilla, sin importar cual se utilice. La decisin final sobre el lenguaje de programacin
a emplear depende de muchos factores, como la naturaleza de la aplicacin particular y
las caractersticas del lenguaje.
1.8 Metodologa de solucin
La principal razn para que las personas aprendan a programar en general y los
lenguajes de programacin en particular es utilizar la computadora como una
herramienta para la resolucin de problemas ayudado por una computadora. La
resolucin de un problema consta de ocho etapas:
Definicin y delimitacin del problema a solucionar (enunciado del problema)
Pseudocdigo o diagrama de flujo (algoritmo)
Prueba de escritorio
Codificacin
Digitacin
Compilacin o interpretacin del programa
Ejecucin del Programa
Evaluacin de los resultados
1. - Definicin y delimitacin del problema a solucionar
El problema debe estar bien definido si se desea llegar a una solucin satisfactoria para
poder definir con precisin el problema se requiere que las especificaciones de entrada
y salida sean descritas con detalle. Una buena definicin del problema, junto con una
descripcin detallada de las especificaciones de entrada y salida, son los requisitos
ms importantes para llegar a una solucin eficaz.

El anlisis del problema exige una lectura previa del problema a fin de obtener una idea
general de lo que se solicita. La segunda lectura deber servir para responder a las
preguntas:
Qu informacin debe proporcionar la resolucin del problema?
Qu datos se necesitan para resolver el problema?
La respuesta a la primera pregunta indicar los resultados deseados o las salidas del
problema. La respuesta a la segunda indicar qu datos se proporcionan o las
entradas del problema.
2. - Pseudocdigo o diagrama de flujo (algoritmo)
Una computadora no tiene la capacidad para solucionar problemas ms que cuando se
le proporcionan los sucesivos pasos a realizar. Estos pasos sucesivos que indican las
instrucciones a ejecutar por la mquina constituyen, como ya conocemos, el algoritmo.
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
En esta etapa es donde se determinan los pasos o instrucciones que deben llevarse a
cabo y el orden lgico de su ejecucin para dar una eficiente solucin al problema.
La informacin proporcionada al algoritmo constituye su entrada y la informacin
producida por el algoritmo constituye su salida.
3. - Prueba de escritorio (prueba de un algoritmo)
Para comprobar que un algoritmo realiza la tarea para la cual fue diseado, debe
ejecutarse a mano. Para esto deben utilizarse datos representativos y anotarse los
valores que toman las variables en cada paso. Esto se conoce como corrida de
escritorio.
4. - Codificacin
El programa que implementa el algoritmo debe ser escrito en un lenguaje de
programacin y siguiendo las reglas gramaticales o sintaxis del mismo. La fase de
conversin del algoritmo en un lenguaje de programacin se denomina codificacin, ya
que el algoritmo escrito en un lenguaje especfico de programacin (lenguaje de alto
nivel) se denomina cdigo.
5. - Digitacin
Tras la codificacin del programa las instrucciones se convierten a un medio legible
para la computadora; a igual procedimiento se someten los datos (en disquetes,
cassettes, cintas, etc.), utilizando dispositivos como digitadoras o consolas.
6. - Compilacin o interpretacin del programa
En esta etapa la computadora chequea si todas las instrucciones estn escritas
correctamente desde el punto de vista de la sintaxis y gramtica de cada lenguaje y las
transcribe, dentro de la memoria, del lenguaje de alto nivel al lenguaje mquina para
obtener el llamado programa objeto.
7. - Ejecucin del Programa
El programa objeto es ejecutado por la computadora para llegar a los resultados
esperados, utilizando los dispositivos, unidades y memoria necesaria, segn cada caso
o programa.
8. - Evaluacin de los resultados
Obtenidos los resultados se les evala para verificar que sean correctos. En caso
contrario, se revisa en las etapas anteriores para detectar la falla o error, entrar a
corregirla y reiniciar desde este punto los pasos para resolver de nuevo y en forma
correcta el problema.
1.9 Prueba de un algoritmo (Ejemplos)
Ejemplo No. 1
Disee un algoritmo que dadas 4 calificaciones (Cal1, Cal2, Cal3, Cal4), calcule la
calificacin promedio y escriba el resultado final junto con un mensaje explicativo.
Anlisis del problema
Entrada: Leer las calificaciones individuales
Proceso: Calcular la calificacin promedio
Salida: Escribir resultado con mensaje explicativo
Diagrama de flujo

Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III

Pseudocdigo
Inicio
{Calculo del promedio de calificaciones}
Leer Cal1, Cal2, Cal3, Cal4
Prom (Cal1+Cal2+Cal3+Cal4)/4
Escribir ("Resultado final es", Prom)
Fin
Ejemplo No. 2
En cierto curso de computacin, la calificacin final del estudiante se determina a partir
de su rendimiento en tres aspectos del trabajo anual. Existe una calificacin de la mitad
del curso, que cuenta un 30% del total; el trabajo de laboratorio que lleva una
calificacin, cuenta un 20% del total; y el examen final, cuenta el 50% restante.
Disee un algoritmo que, dadas las calificaciones individuales, calcule la calificacin
final, escriba la salida final proporcionando el nombre del estudiante, sus calificaciones
individuales y la calificacin final. La variable se llama Final.
Anlisis del problema
Calcular la calificacin final a partir de las calificaciones parciales
Entrada: Lectura del nombre del estudiante, calificacin del laboratorio, calificacin de
mitad del curso, calificacin del examen final.
Salida: Nombre del estudiante, las tres calificaciones obtenidas y el promedio final, con
comentarios correspondientes.
Solucin del problema
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
Lectura del nombre del alumno y de sus calificaciones en cada una de las partes
Calculo e impresin de la calificacin final junto con el nombre del alumno
Variables:
Nombre (para nombre del alumno)
Cal_Lab (para la calificacin del laboratorio)
Cal_mitcurso (para la calificacin de mitad del curso)
Cal_ExaFin (para la calificacin del examen final)
Final (para la calificacin final)
1. - Obtener los datos de entrada
Leer (Cal_Lab, Cal_mitcurso, Cal_ExaFin)
2. - Calcular la calificacin final
Final 0.20*Cal_Lab+0.30*Cal_mitcurso+0.50*Cal_ExaFin
3. - Imprimir los resultados
4. - Termino
Algoritmo
Inicio
Leer (Cal_Lab, Cal_mitcurso, Cal_ExaFin)
Final 0.20*Cal_Lab+0.30*Cal_mitcurso+0.50*Cal_ExaFin
Escribir ("Nombre del alumno", Nombre)
Escribir ("Calificacin de laboratorio", Cal_Lab)
Escribir ("Calificacin de mitad del curso", Cal_mitcurso)
Escribir ("Calificacin del examen final", Cal_ExaFin)
Escribir ("Calificacin final", Final)
Fin
Del ejemplo anterior suponga que se dan los siguientes valores:
Alberto Rodrguez, 72, 68, 65
Solucin
0.20*72 = 14.4
0.30*68 = 20.4
0.50*65 = 32.5
suma = 67.3
Resultado
Nombre del alumno Alberto Rodrguez
Calificacin de laboratorio 72
Calificacin de mitad del curso 68
Calificacin del examen final 65
Calificacin final 67.3
Andrs Miramontes, 75, 75, 75
Solucin
0.20*75 = 15.0
0.30*75 = 22.5
0.50*75 = 37.5
suma = 75.0
Resultado
Nombre del alumno Andrs Miramontes
Calificacin de laboratorio 75
Calificacin de mitad del curso 75
Calificacin del examen final 75
Calificacin final 75.0

Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
Ejemplo No. 3
Dados tres nmeros, determine si la suma de cualquier pareja de ellos es igual al tercer
nmero. Si se cumple esta condicin escribir "Iguales", y en caso contrario, escribir
"Distintas". (Diagrama de flujo y pseudocdigo)
Solucin
Suponga que los nmeros son:
396
la respuesta es "Iguales", ya que 3+6=9.
Pero si los nmeros fueran:
234
El resultado ser "Distintas".
Algoritmo de resolucin:
1. - Leer los tres valores, A, B y C.
2. - Si A+B=C escribir "Iguales" y parar.
3. - Si A+C=B escribir "Iguales" y parar.
4. - Si B+C=A escribir "Iguales" y parar.
5. - Escribir "Distintas" y parar.
Diagrama de flujo:

Ejemplo No. 4
Escribir un algoritmo para calcular el rea de un tringulo dada la base y la altura.
Solucin:
Anlisis
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
La frmula geomtrica del rea o superficie de un tringulo es:
A = (1/2)B*H B = base H = altura
variables: Base, Altura
Suponga que B = 4.5 H = 7.2
A = (1/2) 4.5 * 7.2 = 16.2
Diagrama de flujo

Fundamentos
Contenido
II. - Fundamentos
2.1. - Tipos de datos
2.2 Constantes y Variables
2.3 Asignacin
2.4 Conversin de tipos
2.5 Expresiones
2.6 Modificacin de un valor almacenado
2.7 Precedencia de los operadores
2.8 Evaluacin de las expresiones
2.9 Funciones internas
2.10 Entradas y salidas
2.11 Estructuras fundamentales de control

Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
II. - Fundamentos
2.1. - Tipos de datos

El primer objetivo de toda computadora es el manejo de informacin o datos. Estos


datos pueden ser las cifras de ventas de un supermercado o las calificaciones de una
clase. Un dato es la expresin general que describe los objetos con los cuales opera
una computadora.
Existen dos tipos de datos: simples (sin estructura) y compuestos (estructurados, los
cuales se vern en programacin).
Los tipos de datos simples son los siguientes:
numricos (integer, real)
lgicos (boolean)
caracter (char, string)
Datos numricos:
El tipo numrico es el conjunto de los valores numricos. Estos pueden representarse
en dos formas distintas:
- Tipo numrico entero (integer)
- Tipo numrico real (real)
Enteros:
El tipo entero es un subconjunto finito de los nmeros enteros. Los
enteros son nmeros completos, no tienen componentes fraccionarios o decimales y
pueden ser negativos o positivos. En ocasiones se denominan nmeros de punto fijo.
Ejemplo de nmeros enteros son:
5
6
-15
4
20
17
1,340
26
Reales:
El tipo real consiste en un subconjunto de los nmeros reales. Los
nmeros reales siempre tienen un punto decimal y pueden ser positivos o negativos.
Un nmero real consta de un entero y una parte decimal.
Los siguientes ejemplos son nmeros reales:
0.08
3739.41
3.7452
-52.321
-8.12
3.0
12.45678
-0.12334
En aplicaciones cientficas se requiere una representacin especial para manejar
nmeros muy grandes como la masa de la Tierra o muy pequeos como la masa de un
electrn. Una computadora slo puede representar un nmero fijo de dgitos. Este
nmero puede variar de una mquina a otra, siendo ocho dgitos un nmero tpico.
Este lmite provocar problemas para representar y almacenar nmeros muy grandes o
muy pequeos como son los ya citados o los siguientes:
4867213432
0.00000000387
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
Existe un tipo de representacin denominado notacin exponencial o cientfica y que se
utiliza para nmeros muy grandes o muy pequeos. As,
367520100000000000000
se representa en notacin cientfica, descomponindolo en grupos de tres dgitos.
367 520 100 000 000 000 000
y posteriormente en forma de potencias de 10
3.675201 x 1019
y de modo similar
.0000000000302579
se representa como
3.02579 x 10-11
La representacin en coma o punto flotante es una generalizacin de notacin
cientfica.
Obsrvese que las siguientes expresiones son equivalentes:
3.675201x1019 = .3675201x1020 = .03675201x1021 = ,..., = 36.75201x1018 = ...
En estas expresiones se considera la mantisa (parte decimal) al nmero real y el
exponente (parte potencial) el de la potencia de diez.
36.75201
mantisa
18
exponente
Datos lgicos (booleanos)
El tipo lgico - tambin denominado booleano - es aquel dato que slo puede tomar
uno de dos valores:
verdadero (true) o falso (false)
Este tipo de datos se utiliza para representar las alternativas (s / no) a determinadas
condiciones. Por ejemplo, cuando se pide si un valor entero es par, la respuesta ser
verdadera o falsa, segn sea par o impar.
Datos tipo caracter
El tipo caracter es el conjunto finito y ordenado de caracteres que la computadora
reconoce. Un dato tipo caracter contiene un solo caracter.
Los caracteres que reconocen las diferentes computadoras no son estndar; sin
embargo, la mayora reconoce los siguientes caracteres alfabticos y numricos:
- caracteres alfabticos (A, B, C,..., Z)
- caracteres numricos (1, 2, ..., 9)
- caracteres especiales (+, -, *, /, ^, ... , <, >, $, ...)
Una cadena (string) de caracteres es una sucesin de caracteres que se encuentran
delimitados por una comilla (apstrofo) o dobles comillas, segn el tipo de lenguaje de
programacin. La longitud de una cadena de caracteres es el nmero de ellos
comprendidos entre los separadores o delimitadores. Algunos lenguajes tienen datos
tipo cadena. Ejemplo:
8 de octubre de 1976
2.2 Constantes y Variables
Los programas de computadora contienen ciertos valores que no deben de cambiar
durante la ejecucin del programa. Tales valores se llaman constantes. De igual forma,
existen otros valores que cambiarn durante la ejecucin del programa; a estos valores
se les llama variables.
Constantes
Una constante es una partida de datos que permanecen sin cambios durante todo el
desarrollo del algoritmo o durante la ejecucin del programa.
Una constante tipo caracter o constante de caracteres consiste en un caracter vlido
encerrado dentro de apstrofos; por ejemplo:
B
+
4
;

Una secuencia de caracteres se denomina normalmente una cadena, y una constante
tipo cadena es una cadena encerrada entre apstrofos. Por consiguiente:
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
Jos Luis Garca
es constante de cadena vlida. Si un apstrofe es uno de los caracteres en una
constante de cadena, debe aparecer como un par de apstrofos:
Jonhns
Slo existen dos constantes lgicas o booleanas:
verdadero y
falso
Variables
Una variable es un objeto o partida de datos cuyo valor puede cambiar durante el
desarrollo del algoritmo o ejecucin del programa.
Dependiendo del lenguaje, hay diferentes tipos de variables tales como: enteras,
reales, caracter, lgicas y de cadena.
Una variable que es de un cierto tipo puede tomar nicamente valores de ese tipo.
Una variable de caracter, por ejemplo, puede tomar como valor slo caracteres,
mientras que una variable entera puede tomar slo valores enteros.
Si se intenta asignar un valor de un tipo a una variable de otro tipo se producir un error
de tipo.
Una variable se identifica por los siguientes atributos: nombre que lo asigna y tipo que
describe el uso de la variable.
Los nombres de las variables, a veces conocidos como identificadores, suelen constar
de varios caracteres alfanumricos de los cuales el primero normalmente es una letra.
No se deben utilizar como nombres de identificadores palabras reservadas del lenguaje
de programacin.
Nombres vlidos de variables son:
A510
Nombres
Nombre_Apellidos
Los nombres de las variables elegidas para el algoritmo o el programa deben ser
significativos y tener relacin con el objeto que representan, como pueden ser los
casos siguientes:
Nombre
para representar nombres de personas
Precios
para representar los precios de diferentes artculos
2.3 Asignacin
La operacin de asignacin es el modo de darle valores a una variable. Existen dos
maneras de dar un valor a las variables: una es leer un valor para la variable mediante
una operacin de entrada; la otra manera es asignar un valor a la variable por medio de
una asignacin. Cuando un programa solicita un valor para una variable hablamos de
una entrada. En cambio, en la asignacin simplemente se le confiere un valor a la
variable. Una variable solo puede contener un valor a la vez, por lo que cuando se le
asigna un nuevo valor el anterior se pierde. Por esto se dice que la naturaleza de la
asignacin es destructiva. La operacin de asignacin se representa con el smbolo u
operador. La operacin de asignacin se conoce como instruccin o sentencia de
asignacin cuando se refiere a un lenguaje de programacin.
El formato general de una operacin de asignacin es la siguiente:
Nombre de la variable expresin
En donde expresin es una expresin, variable o constante
La flecha (operador de asignacin) se sustituye en otros lenguajes por = (BASIC,
FORTRAN) o := (PASCAL). Sin embargo, es preferible el uso de la flecha en la
redaccin del algoritmo, para evitar ambigedades dejando el uso del smbolo =
exclusivamente para el operador de igualdad.
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III

A5
La operacin de asignacin:
Significa que a la variable A se le ha asignado el valor 5.
La accin de asignar es destructiva, ya que el valor que tuviera la variable antes de la
asignacin se pierde y se reemplaza por el nuevo valor.
As en la secuencia de operaciones
A 25
A 134
A5
Cuando stas se ejecutan, el valor ltimo que toma A ser 5 (los valores 25 y 134 han
desaparecido).
Las acciones de asignacin se clasifican segn sea el tipo de expresiones en:
aritmticas, lgicas y de caracteres.
Asignacin aritmtica
Las expresiones en las operaciones de asignacin son aritmticas:
AMN 3+14+8
Se evala la expresin 3+14+8 y se asigna a la variable AMN, es decir, 25 ser el valor
que toma AMN
TER1 14.5*8
TER2 0.75*3.4
MEDIA TER1/TER2
Se evalan las expresiones 14.5 +8 y 0.75 * 3.4 y en la tercera accin se dividen los
resultados de cada expresin y se asigna a la variable MEDIA, es decir, las 3
operaciones equivalen a MEDIA
(14.5 + 8) / (0.75 * 3.4)
Otro ejemplo donde se puede comprender las modificaciones de los valores
almacenados en una variable es el siguiente:
A 0 la variable A toma el valor de 0
N 0 la variable N toma el valor de 0
A N+1 la variable A toma el valor de 0+1, es decir 1
El ejemplo anterior se puede modificar para considerar la misma variable en ambos
lados del operador de asignacin:
N2
N N+1
En la primera accin N toma el valor 2 y en la segunda se evala la expresin N + 1,
que tomar el valor 2 + 1 = 3 y se asignar nuevamente a N que tomar el valor 3.
Asignacin lgica
La expresin que se evala en la operacin de asignacin es lgica.
Supngase que M,N y P son variables de tipo lgico.
M8<5
N M o (7<=12)
P7>6
tras ejecutar las operaciones anteriores, las variables M, N y P tomarn los valores
falso, verdadero, verdadero.
Asignacin de caracteres
La expresin que se evala es de tipo caracter.
X ' 12 de octubre de 1972'
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
la accin de asignacin anterior asigna la cadena de caracteres 12 de octubre de 1972
a la variable tipo caracter x.
2.4 Conversin de tipos
As como los datos pueden ser de diferente tipo, tambin las variables pueden ser de
diferente tipo. Una vez que se le asigna un tipo de dato a una variable, slo puede
tomar valores de ese tipo. Se presentar un error si se trata de asignar valores de tipo
caracter a una variable numrica o un valor numrico a una variable de tipo caracter.
Sin embargo en el caso de las variables de tipo entero, pueden tomar valores de tipo
real y viceversa.
Por ejemplo supongamos que las variables VE y VR son enteras y reales,
respectivamente, y que se especifican las siguientes asignaciones:
VR -17
VE 283.682
En el primer caso, la constante entera -17 debe convertirse en real para estar de
acuerdo con el tipo de variable VR. Esto lo hace automticamente la computadora, que
almacena el valor -17.0. En el segundo caso, la constante real 283.682 debe
convertirse a entera para que sea compatible con el tipo de variable VE. Esto se hace
(tambin automticamente) por truncacin, de tal manera que el valor realmente
almacenado es 283. Es importante recordar entonces, que la conversin de nmeros
reales en enteros puede alterar el valor original.
1.
- Cuales son los valores de A, B, C despus de la ejecucin de las siguientes
operaciones?
A3
B4
C A+2*B
C C+B
B C-A
A B*C
En las dos primeras acciones A y B toman los valores 3 y 4
C A + 2 * B la expresin A + 2 * B tomar el valor de 3+2*4=3+8=11
C 11
La siguiente accin C C + 8 producir un valor de 11+4=15
C 15
En la accin B C - A se obtiene para B el valor de 15-3=12 y por ltimo;
A B * C A tomar el valor de B * C, es decir, 12 * 15 = 280, por consiguiente, el ltimo
valor que toma A ser 280.
- Cul es el valor de x despus de las siguientes operaciones?
X2
X sqr(x+x)
X sqrt(x + sqrt(x) + 5)
Los resultados de cada expresin son:
X 2 X toma el valor de 2
X sqr(x+x) X toma el valor de 4 al cuadrado, es decir 16
X sqrt(x + sqrt(x) + 5) en esta expresin se evala primero sqrt(16), que produce 4,
y, por ltimo, sqrt(16+4+5 ) proporciona
sqrt( 25 ), es decir, 5.
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
Los resultados de las expresiones sucesivas anteriores son: 2,16 y 5.
2.5 Expresiones
Una expresin es una forma especial de asignacin.
Las expresiones son combinaciones de constantes, variables, smbolos de operacin,
parntesis y nombres de funciones especiales. Las mismas ideas son utilizadas en
notacin matemtica tradicional; por ejemplo:

Aqu los parntesis indican el orden de clculo y el smbolo representa la funcin raz
cuadrada.
Cada expresin toma un valor que se determina tomando los valores de las variables y
constantes implicadas y la ejecucin de las operaciones indicadas.
Una operacin consta de operandos y operadores. Segn sea el tipo de objetos que
manipulan, se clasifican las expresiones en:
- aritmticas (var y const real o entera)
- relacionales (verdadero y falso)
- lgicas
- caracter
El resultado de la expresin aritmtica es de tipo numrico; el resultado de una
expresin relacional y de una expresin lgica es de tipo lgico; el resultado de una
expresin caracter es de tipo caracter.
- Expresiones aritmticas
Las expresiones aritmticas son anlogas a las formulas matemticas. Las variables y
constantes son numricas (real o entera) y las operaciones son las aritmticas.
+
Suma
-

Resta

Multiplicacin

Divisin

, **, ^

Exponenciacin

Div

Divisin entera

mod

Mdulo (residuo)

Los smbolos +, -, *, ^, ** ... y las palabras clave div y mod se conocen como
operadores aritmticos.
En la expresin 5 + 3
los valores 5 y 3 se denominan operandos. El valor de la
expresin 5 + 3 se conoce como resultado de la expresin.
Los operadores se utilizan de igual forma que en matemticas.
Operadores aritmticos
Operador

Significado

Tipos de operandos

Tipo de resultado

, ^, **

Exponenciacin

Entero o real

Entero o real

Suma

Entero o real

Entero o real

Resta

Entero o real

Entero o real
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
Multiplicacin
Entero o real
Entero o real

Divisin

Real

Real

div

Divisin entera

Entero

Entero

mod

Mdulo (resto)

Entero

Entero

Ejemplo:

Operadores DIV y MOD


El smbolo / se utiliza para la divisin real, y el operador div representa la divisin
entera.
A div B
Slo se puede utilizar si A y B son expresiones enteras y obtiene la parte entera de A/B.
Por consiguiente,
19 div 6
toma el valor 3.
Otro ejemplo puede ser la divisin 15/6.

En forma de operadores resultar la operacin anterior


15 div 6 = 2
15 mod 6 = 3
Otros ejemplos son:
19 div 3
equivale a 6
19 mod 6
equivale a 1
- Expresiones lgicas (booleanas)
Una expresin lgica es una expresin que slo puede tomar dos valores: verdadero y
falso. Se denominan tambin expresiones booleanas en honor del matemtico britnico
George Boole, que desarroll el Algebra lgica o de Boole.
Las expresiones lgicas se forman combinando constantes lgicas, variables lgicas y
otras expresiones lgicas utilizando los operadores lgicos not, and y or, y los
operadores relacionales ( de relacin o comparacin ) = , < , > , < = , > = , < > .
- Operadores de relacin
Los operadores relacionales o de relacin permiten realizar comparaciones de valores
de tipo numrico o caracter. Los operadores de relacin sirven para expresar las
condiciones en los algoritmos.
Operadores de relacin:
Operador

Significado

<

menor que

>

mayor que

Igual que

<=

menor o igual a
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
>=

mayor o igual a

<>

Distinto de

El formato general para las comparaciones es:


Exprein1 operador de relacin expresin2
y el resultado de la expresin ser verdadero o falso. As, por ejemplo, si A = 4 y B = 3,
entonces
A> B
es verdadero
mientras que
( A- 2 ) < ( B - 4 )
es falso
Los operadores de relacin se pueden aplicar a cualquiera de los cuatro tipos de datos
estndar: enteros, real, lgico, caracter.
La aplicacin a valores numricos es evidente. Los ejemplos siguientes son
significativos.
N1

N2

Expresin lgica

Resultado

3<6

verdadero

0>1

falso

4=2

falso

8<=5

falso

9>=9

falso

5<>5

falso

Para realizar comparaciones de datos tipo caracter, se requiere una secuencia de


ordenacin de los caracteres, similar al orden creciente o decreciente. Esta ordenacin
suele ser alfabtica, tanto maysculas como minsculas, considerndolas de modo
independiente, pero si se consideran caracteres mixtos, se debe recurrir a un cdigo
normalizado como es el ASCII. Aunque no todas las computadoras siguen el cdigo
normalizado en su juego completo de caracteres, si son prcticamente estndar los
cdigos de los caracteres alfanumricos ms usuales.
- Operadores lgicos
Los operadores lgicos o booleanos bsicos son not (no) and (y) or (o). La tabla a
continuacin recoge el funcionamiento de dichos operadores:
Operadores lgicos
Operador lgico

Expresin lgica

Significado

no ( not )

no p ( not p )

Negacin de p

y ( and )

p y q ( p and q )

Interseccin de p y q

o(o)

poq(poq)

unin de p y q

Las definiciones de las operaciones no, y, o se resumen en unas tablas conocidas


como tablas de verdad.

Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III

En las expresiones lgicas se pueden mezclar operadores de relacin y lgicos.


As, por ejemplo:
( 1 < 5 ) y ( 5 < 10 ) es verdadera
( 5 > 10 ) o ( A < B ) es verdadera, ya que A < B
La siguiente tabla resume una serie de aplicaciones de expresiones lgicas.
Expresin lgica

Resultado

Observaciones

(1 > 0) y (3 = 3)

Verdadero

no PRUEBA

Falso

* PRUEBA es un valor lgico falso

(0 < 5) o (0 > 5)

Verdadero

* nmero es una variable entera de valor 5

(5 < = 7) y (2 > 4)

Falso

no (5 < > 5)

Verdadero

(nmero = 1) o (7 > = 4)

Verdadero

- Prioridad de los operadores lgicos


Los operadores aritmticos seguan un orden especfico o de prioridad cuando existan
ms de un operador en las expresiones. De modo similar los operadores lgicos y
relacionales tienen un orden de prioridad.

Al igual que en las expresiones aritmticas, los parntesis se pueden utilizar y tendrn
prioridad sobre cualquier operacin.
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
Ejemplo:
no 4 > 6
produce un error, ya que el operador no se aplica a 4
no ( 4 > 14 )
produce un valor verdadero
( 1.0 < x ) y ( x < z + 7.0) si x vale 7 y z vale 4, se obtiene un valor falso

Algoritmos Computacionales
Estructuras de decisin
Contenido
III. - Estructuras de decisin
3.1 Seleccin de alternativas
3.2 La construccin if-then-else
3.3 Ifs anidados
3.4 Condiciones compuestas
III.- Estructuras de decisin
3.1 Seleccin de alternativas
La unidad aritmtica y lgica es uno de los componentes ms importantes de una
computadora tpica. El propsito de la unidad aritmtica es el manejo de las
operaciones aritmticas; la porcin lgica da a la computadora la capacidad de tomar
decisiones. Esto forma la base de la construccin algortmica if-then-else (si-entoncesde lo contrario), la que permitir la seleccin de acciones alternativas.
Una decisin se especifica en una expresin lgica de la misma forma en que una
operacin de clculo se especifica en una expresin numrica.
Por ejemplo:
Suponga que tiene dos variables numricas, denominadas A y B, que tienen valores
diferentes, y suponga que desea imprimir el valor de la ms grande. Si A es mayor que
B, debe imprimir el valor de A; pero, por otro lado, si B es mayor que A, debe imprimirse
el valor de B. La eleccin de que alternativa tomar depende de la decisin de si la
variable A es o no mayor que B. Esta estructura se representa mediante el diagrama
siguiente:

Suponga que A tiene el valor de 5 y B el valor de 3. Como 5 es mayor que 3, la


condicin A>B es verdadera, de lo que resulta que se tomara la accin de la izquierda y
se imprime el valor de A, es decir 5. Ahora supngase que estos valores estn
invertidos, de manera que A tiene el valor 3 y B el valor 5, entonces A>B es falsa ya
que 3 es menor que 5, y se tomara la accin de la derecha y se imprime el valor de B,
es decir, 5. En ambos casos el valor impreso es le mas alto, como se requera.
3.2 La construccin if-then-else (estructuras selectivas)
Las estructuras selectivas se utilizan para tomar decisiones lgicas; de ah que se
suelan denominar tambin estructuras de decisin o alternativas.
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
En las estructuras selectivas se evala una condicin y en funcin del resultado de la
misma se realiza un opcin u otra. Las condiciones se especifican usando expresiones
lgicas. La representacin de una estructura selectiva se hace con palabras en
pseudocdigo (if, then, else o bien en espaol si, entonces, sino), con una figura
geomtrica en forma de rombo o bien con un tringulo en el interior de una caja
rectangular.
Las estructuras selectivas o alternativas pueden ser:
- simples
- dobles
- mltiples
Alternativa simple (if-then/si-entonces)
La estructura alternativa simple si--entonces ejecuta una determinada accin cuando se
cumple una determinada condicin. La seleccin si-entonces evala la condicin y
- si la condicin es verdadera, entonces ejecuta la accin S1
- si la condicin es falsa, entonces no hacer nada
Representacin grfica:

Pseudocdigo en espaol Pseudocdigo en ingls


si <condicin> if <condicin>
entonces <accin S1> then <accin S1>
fin_si endif
Alternativa doble (si-entonces-sino/if-then-else)
La estructura anterior es muy limitada y normalmente se necesitar una estructura que
permita elegir entre dos opciones o alternativas posibles en funcin del cumplimiento o
no de una determinada condicin.
Si la condicin C es verdadera, se ejecuta la accin S1, y si es falsa, se ejecuta la
accin S2.

Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
Pseudocdigo en espaol Pseudocdigo en ingls
si <condicin> if <condicin>
entonces <accin S1> then <accin S1>
sino <accin S2> else <accin S2>
fin_si endif
Del ejemplo anterior (se requiere de operadores relacinales):
if A>B
then Write (A)
else Write (B)
Ejemplo:
Resolucin de una ecuacin de primer grado.
Si la ecuacin es ax+b=0, a y b son los datos, y las posibles soluciones son:
a <> 0 x = -b /a
a = 0 b <> 0 entonces "solucin imposible"
a = 0 b = 0 entonces "solucin indeterminada"
El algoritmo correspondiente ser:
algoritmo RESOL1
inicio
{Solucin de la ecuacin ax+b=0}
leer a,b
si a<>0
entonces x -b/a
escribir x
sino si b<> 0
entonces escribir "solucin imposible"
sino escribir "solucin indeterminada"
fin_si {fin de si para b<> 0}
fin_si { fin de si para a<> 0}
fin
3.3 Ifs anidados
En algunas aplicaciones, una de las alternativas de una estructura if-then-else puede
incluir una decisin adicional. Por ejemplo, despus de que se elija una determinada
accin sobre una determinada calificacin de una prueba, podra quererse evitar la
posibilidad de error en los datos de entrada. Esto requiere una comprobacin adicional
para verificar que los datos de entrada son validos, lo que sugiere el uso de una
estructura if-then-else adicional incluida en cada una de las dos alternativas originales.
Este proceso es un ejemplo de anidamiento.
Ejemplo:
Algoritmo MAX_3
Este algoritmo lee tres nmeros A, B, C, imprimiendo el valor del ms grande. Se
supone que los tres valores son diferentes.
1.- Entrada de valores
Read (A, B, C)
2.- Se determina el valor ms grande mediante comprobacin por pares
if A > B
then if A > C
then MAX A (A > B, A > C)
else MAX C (C > A > B)
else if B > C
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
then MAX B (B > A, b > C)
else MAX C (C > B > A)
3.- Se imprime el valor ms grande
Write `El valor ms grande es`, MAX
4.- Termino
Exit
3.4 Condiciones compuestas
Estas condiciones se obtienen a partir de las expresiones simples, utilizando
operadores lgicos and, or y not.
Los significados de estos operadores se describen adecuadamente por medio de
tablas de verdad.
Las condiciones compuestas pueden utilizarse ya sea en enunciados if o
repeticiones condicionales. Ejemplo:
Algoritmo MAX_3 (2a. versin)
Este algoritmo lee tres nmeros A, B, C, imprime el valor del ms grande de ellos.
supone que los tres valores son distintos.
1. - Entrada de los datos
Read (A, B, C)
2. - Se determina el mayor valor
if A > B and A > C then MAX A
if B > A and B > C then MAX B
if C > A and C > B then MAX C
3. - Se imprime el valor ms grande
Write `El valor ms grande es`, MAX
4. - Termino

los
las
en
Se

IV.- Ciclos, Lazos o Bucles


Las computadoras estn especialmente diseadas para ejecutar tareas repetidamente.
Los clculos simples o la manipulacin de pequeos conjuntos de datos se pueden
realizar fcilmente a mano, pero las tareas grandes o repetitivas son realizadas con
mayor eficiencia por una computadora. Las estructuras de control repetitivas son
aquellas en las que una sentencia o grupos de sentencias se repiten muchas veces.
Este conjunto de sentencias se denomina bucle o lazo, y puede presentarse de varias
formas, una de las formas es el lazo condicionado, en el cual el proceso de repeticin
se controla mediante una condicin previamente establecida.
Los pasos especificados en el enunciado de repeticin se conocen como mbito del
lazo, (es decir, los pasos comprendidos en ste mbito deben repetirse en tanto la
condicin sea verdadera). La condicin debe evaluarse antes de cada pasada por el
lazo (ciclo), si es verdadera el lazo debe ejecutarse una vez ms; si es falsa, se
ejecutar en seguida el paso siguiente al ltimo del intervalo del lazo. Si la condicin es
falsa en la primera entrada del lazo, deber saltarse el lazo completo y dejarse sin
ejecutar todos sus enunciados.
Por ejemplo: Suponga que se desea sumar una lista de nmeros escritos desde el
teclado. El medio conocido hasta ahora es leer los nmeros y aadir sus valores a una
variable SUMA que contenga las sucesivas sumas parciales. La variable SUMA se
hace igual a cero y a continuacin se incrementa el valor del nmero cada vez que uno
de ellos se lea. El algoritmo sera el siguiente:
algoritmo suma algoritmo suma
inicio star
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
SUMA 0 SUMA 0
leer nmero read nmero
SUMA SUMA + nmero SUMA SUMA + nmero
leer nmero read nmero
SUMA SUMA + nmero SUMA SUMA + nmero
leer nmero read nmero
fin end
y as sucesivamente para cada nmero de la lista. En otras palabras, el algoritmo repite
muchas veces las acciones:
leer nmero
SUMA SUMA + nmero
A dichas opciones repetidas se les llama bucles o ciclos, y a la accin (o acciones) que
se repite en un bucle se denomina iteracin. Lo principal a realizar en el diseo de un
bucle es: el contenido de dicho bucle y las veces que debe repetirse.
En el ejemplo anterior necesitamos saber cuantos nmeros se van a sumar, para ello
debemos conocer algn medio para detener el ciclo, daremos a una variable N el
nmero que deseamos. Para contar el nmero de iteraciones usaremos una variable
TOTAL que se inicializa a la cantidad de nmeros que se desea y a continuacin se
decrementa en uno cada vez que el ciclo se repite (este procedimiento aade una
accin mas al cuerpo del bucle: TOTAL TOTAL - 1), o bien inicializar la variable
TOTAL en 0 o en 1, e ir incrementando en uno a cada iteracin hasta llegar al nmero
deseado:
algoritmo suma_nmero
inicio
{leer nmero total en variable N}
TOTAL N {tambin podra "leer N"}
SUMA 0
{inicio del bucle}
hacer lo siguiente mientras que TOTAL sea mayor que cero
leer nmero
SUMA SUMA + nmero
SUMA TOTAL - 1
{fin del bucle}
escribir la suma de los, N, nmeros es. SUMA
fin
Como se ha visto, por medio de un lazo apropiado es posible leer grupos adicionales
de datos y leer un algoritmo. El problema de leer datos adicionales no constituye una
dificultad ya que se conoce el mecanismo de los lazos. La dificultad se presenta en el
momento de la detencin. Existen varias formas de detener la ejecucin de un lazo,
una de ellas es agregar un dato que indica el nmero de veces que debe recorrerse el
lazo por completo. Esto se denomina entrada controlada por contador. Para detener la
ejecucin de los bucles se utiliza una condicin de parada. El pseudocdigo de una
estructura repetitiva tendr siempre este formato:
inicio
{inicializacin de variables}
repetir
acciones S1, S2, ...
acciones Sn, Sn+1...
salir segn condicin
fin_repetir
fin
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
Hay tres estructuras de control para especificar la repeticin: while (mientras), do-while
(hacer_mientras/repetir, repeat) y for (desde).
El algoritmo de suma anterior podra expresarse en pseudocdigo estndar as:
algoritmo SUMA_nmeros
inicio
leer N
SUMA 0
repetir
salir si TOTAL <= 0
leer nmero
SUMA SUMA+1
TOTAL TOTAL-1
fin_repetir
escribir "la suma es", SUMA
fin
Los tres casos generales de estructuras repetitivas dependen de la situacin y modo de
la condicin. La condicin se evala tan pronto se encuentra en el algoritmo y su
resultado producir los tres tipos de estructuras citadas.
4.1 Estructura mientras (while)
La estructura repetitiva mientras (en ingles WHILE) es aquella en que el cuerpo del
bucle se repite mientras se cumple una determinada condicin. La representacin
grfica es:

Pseudocdigo en espaol Pseudocdigo en ingls


mientras condicin hacer while condicin do
accin S1 accin S1
accin S2 accin S2
..
..
accin Sn accin Sn
fin_mientras endwhile
Cuando se ejecuta la instruccin hacer- mientras (while, do-while), se repite mientras el
valor de la expresin de la condicin sea verdadera.
Ejemplo:
algoritmo SUMA_nmeros
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
inicio
{leer nmero total N}
leer N
TOTAL N
SUMA 0
mientras N > 0 hacer
leer nmero
SUMA SUMA+nmero
TOTAL TOTAL+1
fin_mientras
escribir "la suma de los ",N,"nmero es", SUMA
fin
En el caso anterior, como la variable TOTAL se va decrementando y su valor inicial era
N, cuando tome el valor 0, significar que se han realizado N iteraciones, o, lo que es
igual, se han sumado N nmeros y el bucle se debe parar o terminar.
Ejemplo:
Contar los nmeros enteros positivos introducidos por el teclado. Se consideran dos
variables enteras NMERO y CONTADOR (contar el nmero de enteros positivos).
Se supone que se leen nmeros positivos y se detiene el bucle cuando se lee un
nmero negativo o cero.
inicio
contador 0
leer nmeros
mientras nmero > 0 hacer
contador contador + 1
leer nmero
fin_mientras
escribir "el nmero de enteros positivos es ", contador
fin
Diagrama de flujo:

Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
4.2 Bucles infinitos
Algunos bucles no exigen fin y otros no encuentran el fin por error en su diseo.
Un bucle que nunca se termina se denomina bucle infinito o sin fin. Los bucles sin fin
no intencionados son perjudiciales para la programacin y se deben evitar siempre.
Por ejemplo: el siguiente bucle visualiza el inters producido por un capital a las tasa de
inters comprendidos en el rango desde 10 a 20%.
leer capital
tasa 10
mientras tasa <> 20 hacer
inters tasa * 0.01 * capital {tasa*capital/100=tasa*0.01*capital}
escribir "inters producido", inters
tasa tasa + 2
fin_mientras
escribir "continuacin"
Los sucesivos valores de la tasa sern 10, 12, 14, 16, 18, 20, de modo que al tomar
tasa el valor 20 se detendr el bucle y se escribir el mensaje "continuacin".
Supongamos que se cambia la lnea ltima del bucle por
Tasa tasa + 3
El problema es que el valor de la tasa salta ahora de 19 a 22 y nunca ser igual a 20
(10, 13, 16, 19, 22,..). El bucle sera infinito, la expresin booleana para terminar el
bucle ser:
tasa < 20 o bien tasa > 20
Las pruebas o test en las expresiones booleanas es conveniente que sean mayor o
menor que en lugar de pruebas de igualdad o desigualdad.
Existen muchas situaciones en las que se desea que un bucle se ejecute al menos una
vez antes de comprobar la condicin de repeticin. En la estructura mientras si el valor
de la expresin booleana es inicialmente falso, el cuerpo del bucle no se ejecutar; por
ello se necesitan otros tipos de estructuras repetitivas.
La estructura repetir (repeat) se ejecutara hasta que se cumpla una condicin
determinada que se comprueba al final del bucle.
Pseudocdigo
Repetir repeat
<acciones> <acciones>
..
..
hasta_que <condicion> until <condicion>
Diagrama de flujo:

El bucle repetir-hasta_que se repite mientras el valor de la expresin booleana de la


condicin sea falsa, justo la opuesta de la sentencia mientras.
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
inicio
contador 1
repetir
leer nmero
contador contador + 1
hasta_que contador > 30
escribir "nmeros ledos 30"
fin
En el ejemplo anterior el bucle se repite hasta que el valor de variable contador exceda
a 30, lo que suceder despus de 30 ejecuciones del cuerpo del bucle.
Ejemplo:
Desarrolle un algoritmo que calcule el factorial de un nmero N que responda a la
formula:
N! = N * (N-1) * (N-2), . . . , 3 * 2 * 1
Inicio
leer N
Factorial 1
II-1
repetir
Factorial Factorial * I
II-1
Hasta_que I = N - 1
Escribir "el factorial del nmero", N, "es", Factorial
fin
Diferencias de las estructuras mientras y repetir
La estructura mientras termina cuando la condicin es falsa, mientras que repetir
termina cuando la condicin es verdadera.
En la estructura repetir el cuerpo del bucle se ejecuta siempre al menos una vez; por el
contrario, mientras es ms general y permite la posibilidad de que el bucle pueda no
ser ejecutado. Para usar la estructura repetir debe estar seguro de que el cuerpo del
bucle (bajo cualquier circunstancia) se repetir al menos una vez.
Ejemplo: Encontrar el entero positivo ms pequeo (num) para el cual la suma
1+2+3,...,+num es menor que limite.
1.- introducir limite
2.- inicializar num y suma a 0
3.- repetir las acciones siguientes hasta que suma>limite
incrementar num en 1
aadir num a suma
4.- visualizar num y suma
inicio
leer limite
num 0
suma 0
repetir
num num+1
suma suma+num
hasta_que suma > limite
escribir num, suma
Ejemplo:
Escribir los nmeros 1 a 100
Num 1
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
Repetir
escribir num
num num+1
hasta_que num = 101
4.3 Estructura desde/para (for)
En muchas ocasiones se conoce de antemano el nmero de veces que se desean
ejecutar las acciones de un bucle. En estos casos en el que el nmero de iteraciones
es fijo, se debe usar la estructura desde o para (for en ingls).
La estructura desde ejecuta las acciones del cuerpo del bucle un nmero especificado
de veces y de modo automtico controla el nmero de iteraciones o pasos a travs del
cuerpo del bucle.
Pseudocdigo
Desde variable (v) =vi hasta vf hacer para v desde vi hasta vf hacer
<acciones> <acciones>
..
..
..
fin_desde fin_desde
v: variable ndice
vi:, vf: valores inicial y final de la variable.
Diagrama de flujo estructura desde:

Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III

Ejemplo:
Calcular la suma de los N primeros enteros
Inicio
Leer I, S, N
S0
desde I = 1 hasta N hacer
S=S+1
fin_desde
escribir "suma = ", S
fin
Ejemplo:
Calcular el factorial de un nmero N utilizando la estructura desde
El factorial de N responde a la frmula:
N! = N * (N-1) * (N-2) * (N-3), . . . , 3 * 2 * 1
Inicio
leer N
Factorial 1
II-1
Prof. Mnica Barrientos

ESCUELA DE EDUCACIN TCNICA N 16


1 DE MAYO
INFORMTICA III
Desde J = 1 hasta N hacer
Factorial Factorial * J
fin_desde
Escribir "el factorial de ", N, "es", Factorial
fin
4.4 Lazos anidados
De la misma manera en que es posible incluir dentro de una estructura if-then-else,
tambin es posible incluir un segundo lazo en el interior del intervalo de un lazo
cualquiera. Las reglas de anidamiento son similares en los dos casos. La estructura
interna debe estar por completo dentro de la estructura externa y no deben existir
traslapes.
Bibliografa
Introduccin a la ciencia de las computadoras, enfoque algortmico
Tremblay, Jean-Paul; B. Richard
Ed. McGraw-Hill
Introduccin a la computacin para ingenieros
C. Chapra, Steven; P. Raymond
Ed. McGraw-Hill
Introduccin a la computacin y a la programacin estructurada
Levin Gutirrez, Guillermo
Ed. McGraw-Hill
Fundamentos de programacin
Joyanes Aguilar, Luis
Ed. MgrawHill

Prof. Mnica Barrientos

Vous aimerez peut-être aussi