M_dulo_Fundamentos_de_Programaci_n_ITSAI

Anuncio
Objetivos:
Definir conceptos concernientes al ambiente de programación y representar las
diferentes operaciones aritméticas mediante procesos en un lenguaje de
programación.
CONCEPTO Y DESCRIPCIÓN DE UN PROCESO
 Una acción es un acontecimiento producido por un actor (ejecutante). Posee la
característica de una duración limitada y produce un resultado definido y previsto.
 Proceso es una acción que se puede descomponer en otras más simple.
 Procesador es el elemento capaz de ejecutar un determinado proceso de trabajo.
 Los procesos pueden ser secuénciales y paralelos. Un proceso es secuencial si una acción del mismo
no puede empezar antes que la acción en curso esté completamente terminada; un proceso es paralelo
si se ejecutan simultáneamente dos o más acciones.
En este curso se tratará sobre los procesos secuénciales.
ALGORITMOS: Conceptos y características
 Un algoritmo es una serie de operaciones detalladas y no ambiguas a ejecutar paso a paso, y que
conducen a la resolución de un problema.
 Conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para
resolver un sistema específico o clase de problemas.
 “Un algoritmo consiste en dos partes esenciales: una descripción de acciones que deben ser
ejecutadas y una descripción de los datos que son manipulados por esas acciones. Las acciones se
describen mediante las llamadas sentencias y los datos mediante declaraciones y definiciones”
Niklaus Wirth.
 Características de los algoritmos:
1. Precisión y orden de ejecución de cada acción
2. Definición (se debe obtener el mismo resultado cada vez que se aplican los mismos datos)
3. Finito
La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.
PROGRAMAS: Concepto y características
 Un programa es la secuencia de instrucciones que indica las acciones que ha de ejecutar sobre los
datos.
 En general al desarrollar un programa se consideran las siguientes fases:
1. Análisis: definición del problema
2. Algoritmo: secuencia de acciones a seguir para la resolución del problema.
3. Prueba del algoritmo: seguir los pasos del algoritmo y verificar si resuelve el problema
4. Codificación: convertir el algoritmo a un programa usando un lenguaje de programación
5. Edición, ejecución y prueba: introducir el programa al computador, ejecutarlo y comprobar sus
resultados, corrigiendo los errores hasta su puesta a punto.
6. Uso y mantenimiento: manejo actualización del programa.
LOS SISTEMAS DE PROCESAMIENTO DE INFORMACION
 En la actualidad datos e información son esencialmente sinónimos, sin embargo debemos definir dato
como representación de algún hecho concepto o entidad real; información es el proceso y
organización de los datos.
 Un sistema se define como conjunto de componentes conectados e interactivos que tienen un
propósito y una unidad total.
 Sistemas de procesamiento de información, es un sistema que transforma datos en información
organizada, significativa y útil.
 Los sistemas de procesamiento de información tienen los siguientes componentes: Entrada, Salida y
Procesador.
LOS LENGUAJES DE PROGRAMACION
 Al igual que los lenguajes humanos tales como el inglés o el español los lenguajes de programación
poseen una estructura (gramática o sintaxis) y un significado (semántica).
 Un lenguaje de programación es un conjunto de reglas, símbolos y palabras especiales que permiten
construir un programa.
 La sintaxis es el conjunto de reglas para la construcción de sentencias válidas en un lenguaje.
 El vocabulario de un lenguaje es un conjunto de símbolos los cuales pueden ser: letras, dígitos,
símbolos especiales, palabras reservadas o claves.

Un algoritmo se debe expresar en un formato que se denomina programa, este programa se escribe
usando un lenguaje de programación.

Los principales tipos de lenguajes son:
1. Lenguaje máquina
2. Lenguaje de bajo nivel
3. Lenguaje de alto nivel
Instrucciones: Los diferentes pasos expresados en un algoritmo deben ser escritos en los programas
como instrucciones, sentencias o proposiciones. Las instrucciones básicas a casi todos los lenguajes de
programación se pueden agrupar en:
1.
2.
3.
4.
Instrucciones de entrada/salida
Instrucciones aritméticas y lógicas
Instrucciones selectivas
Instrucciones repetitivas
Lenguaje de máquina: es un conjunto de instrucciones constituidas como cadenas binarias que
especifican una operación, y las direcciones de memoria implicadas en la operación. Las instrucciones en
lenguaje máquina dependen del hardware de la computadora.
Las ventajas de programar en lenguaje de máquina es poder cargar programas directamente a la memoria
sin necesidad de traducción posterior, lo que supone una velocidad de ejecución superior.
Los inconvenientes son: dificultad y lentitud en la codificación; dificultad para verificar y poner a punto
los programas; los programas son ejecutables solo en el mismo procesador (CPU).
Lenguaje de bajo nivel: el procesador de la computadora no puede ejecutar directamente sentencias
escritas en un lenguaje de alto nivel; el procesador solamente puede ejecutar instrucciones más simples,
llamadas instrucciones de máquina. El lenguaje de bajo nivel es el ensamblador, sus instrucciones son
conocidas como nemotécnicos.
Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora,
requiere una fase de traducción al lenguaje máquina.
Los lenguajes ensambladores presentan la ventaja frente al lenguaje de máquina por su mayor facilidad de
codificación y en general su velocidad de cálculo. Los inconvenientes son: dependencia total de la
máquina y la formación de los programadores resulta más compleja
Lenguajes de alto nivel: son los mas utilizados por los programadores, están diseñados para escribir y
entender los programas de una manera más fácil que los lenguajes de máquina y lenguajes de bajo nivel.
Estos lenguajes son independientes del tipo de procesador, permitiéndoles ser portables. Entre las
ventajas tenemos:
1.
2.
3.
4.
5.
Tiempo de formación de los programadores es relativamente corto
La escritura de programas se basa en reglas sintácticas
Las modificaciones puesta a punto son más fáciles
Reducción del costo de los programas
Transportabilidad
Los inconvenientes son:
1.
2.
3.
4.
Incremento del tiempo de puesta a punto
No aprovechar los recursos internos de la máquina
Aumento de la ocupación de la memoria
El tiempo de ejecución de los programas es mucho mayor
Traductores de lenguaje
 Son programas que traducen los programas escritos en lenguaje de alto nivel a código máquina. Los
programas escritos en lenguaje de alto nivel se conocen como programa fuente.
 Los traductores se dividen en compiladores e interpretes
Compiladores: es un programa que traduce el programa fuente a programa objeto (instrucciones en
lenguaje máquina que la computadora puede interpretar y ejecutar). Un compilador independiente se
requiere para cada lenguaje de programación.
El compilador efectúa solo la traducción, no ejecuta el programa.
Las fases de una compilación comprenden:
1.
2.
3.
4.
5.
Programa fuente
Compilador
Programa objeto
Enlazador
Programa ejecutable en lenguaje máquina
Interpretes: es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta.
DATOS Y TIPOS DE DATOS




El propósito principal de un procesador es el manejo de los datos o información.
Las mayorías de las computadoras pueden trabajar con varios tipos de datos, los algoritmos y
programas operan sobre datos.
Existen dos clases de tipos de datos: simples y compuestos
Los tipos de datos simples son: numéricos, carácter y lógicos.
Datos numéricos
 Representa el conjunto de los valores numéricos
 Se representan en dos formas: enteros y reales
 Enteros: es un subconjunto finito de los números enteros, no tienen componentes fraccionarios o
decimales y pueden ser positivos o negativos.
 Reales: es un subconjunto de los números reales, siempre tienen un punto decimal y pueden ser
positivos o negativos.
Datos tipos carácter




Es un conjunto finito y ordenado de caracteres que la computadora reconoce.
Un dato tipo carácter contiene un solo carácter
Los caracteres pueden ser alfabéticos (A,B,…,Z) (a,b,…,z); caracteres numéricos (1,2,…,9,0 );
caracteres especiales (+, -, *, /, <, >, …)
Una cadena de caracteres es una sucesión de caracteres que se encuentran delimitados por una
comilla o dobles comillas según el tipo de lenguaje de programación.
Datos lógicos
 También denominado boolean, puede tomar uno de dos valores: verdadero o falso
 Los datos lógicos se utilizan para representar las alternativas a determinadas condiciones
VARIABLES, CONSTANTES Y EXPRESIONES



Variable es un objeto cuyo valor puede cambiar durante el desarrollo del algoritmo o programa.
Posee dos atributos: un nombre para identificarla y un tipo que describe el conjunto de valores que
puede tomar.
Constante es un objeto de valor invariable, no cambia durante el desarrollo del algoritmo o
programa. Para expresar una constante se debe indicar el nombre y su valor.
Los lenguajes de programación permiten diferentes tipos de variables y constantes, siendo los más
comunes enteros, decimales, caracteres y lógicos.
Expresiones: son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres
de funciones especiales. Es el equivalente en notaciones matemáticas.
Una expresión consta de operandos (datos) y operadores (símbolos que representan operaciones)
Las expresiones se clasifican en: aritméticas y lógicas.
Expresiones aritméticas: son análogas a las formulas matemáticas. Las variables y constantes son
numéricas y las operaciones son las aritméticas (+ suma, - resta, * multiplicación, / división); los
símbolos se denominan operadores. Los paréntesis se utilizan para agrupar términos y asegurar que las
operaciones se ejecuten en el orden correcto. Cualquier ambigüedad que se presente en la expresión se la
resuelve asociando a cada operador una prioridad o procedencia.
Reglas de prioridades: permiten determinar el orden de evaluación de una operación; las reglas generales
son:
1. Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen diferentes
paréntesis anidados, las expresiones más internas se evalúan primero
2. Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente orden de prioridad:
 Operador exponencial
 Operadores *, /
 Operadores div y módulo
 Operadores +, 3. En caso de coincidir varios operadores de igual prioridad en una expresión, el orden de prioridad es
de izquierda a derecha.
Expresiones lógicas: son expresiones cuyo valor es siempre verdadero o falso. Estas expresiones se
forman combinando constantes lógicas, variables lógicas y otras expresiones lógicas, utilizando los
operadores lógicos and, or, not; y los operadores relacionales.
Operadores de relación: permiten realizar comparaciones de valores de tipo numérico o carácter; el
formato general para las comparaciones es:
Expresión 1
Operador de relación
Expresión 2
Los símbolos utilizados para representar estos operadores son:
<
>
=
<=
>=
<>
menor que
mayor que
igual que
menor o igual que
mayor o igual que
distinto de
Operadores lógicos: al aplicar estos operadores devuelven un valor de verdad o falso
a
no a
verdad
falso
a
verdad
verdad
falso
falso
a
verdad
verdad
falso
falso
falso
verdad
no (6 > 10) es verdad
ya que (6>10) es falso
b
ay b
verdad
falso
verdad
falso
verdad
falso
falso
falso
b
aob
verdad
falso
verdad
falso
verdad
verdad
verdad
falso
a y b es verdad solo
si a y b son verdad
a o b son verdad
cuando a, b o ambas
son verdad
FUNCIONES INTERNAS
Las operaciones que se requieren en los programas exigen en numerosas ocasiones,
además de las operaciones aritméticas básicas, un número determinado de
operaciones especiales que se denominan funciones internas, incorporadas o
estándar.
ASIGNACIONES




La asignación es un mecanismo utilizado para darle valor a una variable
El formato general de una operación de asignación es:
Nombre de la variable
expresión.
La acción de asignar es destructiva
Las acciones de asignación se clasifican según sea el tipo de expresiones
Asignación aritmética: las expresiones en las operaciones de asignación son
aritméticas, ejemplo X
5+7
Asignación lógica: la expresión que se evalúa en la operación de asignación es lógica.
Ejemplo
M
8 < 5 tras evaluar la operación anterior M tomará un valor de verdad o falso.
Asignación de cadenas de caracteres: la expresión que se evalúa es de tipo cadena.
Ejemplo
X
“21 de Marzo del 2.000”
Conversión de tipo: en las asignaciones no se pueden asignar valores a una variable de un tipo diferente
del suyo. Se presentará un error si se trata de asignar valores de tipo carácter una variable numérica o un
valor numérico a una variable de tipo carácter.
ENTRADA, PROCESO Y SALIDA DE DATOS


o
Los cálculos que realizan las computadoras requieren la entrada de los datos necesarios para ejecutar
las operaciones que posteriormente se convertirán en resultados, es decir, salida.
Las operaciones de entrada permiten leer determinados valores y asignarlos a determinadas variables,
esto se conoce como operación de lectura. Los datos de entrada se introducen al procesador mediante
dispositivos de entrada (teclado, unidades de disco, etc.)
La salida puede aparecer en un dispositivo de salida, a esta operación se denomina escritura.
Auto Evaluación
Deducir el valor de las siguientes expresiones:







X
X
X
X
X
X
X







A + B + C 40
A + B * C 255
A + B / C 7.5
A + B div C 7
A + B mod C 10
(A + B) div C 3
A + ( B / C) 7.5
Siendo A = 5, B = 25 y C = 10
Calcular el valor de las siguientes expresiones:





8 + 7 * 3 + 4 * 6 53
-2 * 3
-6
( 33 + 3 * 4) /5
9
2 * 2 * (18 – 4 * 2)
40
16 * 6 – 3 * 2
90
Determinar el valor de la siguiente expresión:

4 / 2 * 3 / 6 + 6 / 2 / 1 / 5 * 2 / 4 * 2 1.6
Escribir las siguientes expresiones algebraicas como expresiones algorítmicas:


b2 – 4ac b
x2 + y2
---------------
z2

3x + 2 y
----------2z

4x2 - 2 x + 7

a
------bc

4 ∏R
---2
Escribir las siguientes expresiones algorítmicas como expresiones algebraicas:




B* 2–4* A* C
3 * X * 4 – 5 * X * 3 + X * 12 – 17
( B + D) / (C + 4)
( X * 2 + Y * 2 ) * ( 1 / 2)
Si el valor de A = 2, B = 5 y C = 1; evaluar las siguientes expresiones



B * A – B * 2 / 4 * C 7.5
(A * B) / 3 * 2 6.66
(((B + C) / 2 * A + 10 ) * 3 * B) – 6 234
Determinar el valor de cada una de las siguientes expresiones:
 7 div 2
 7 mod 2
 12 div 3
 12 mod 3
 0 mod 5
 15 mod 5
 7 * 10 – 50 mod 3 * 4 + 9
 (7 * (10 – 5) mod 3) * 4 + 9
Encontrar el valor de cada una de las siguientes expresiones o decir si la
expresión no es correcta:









9–5–3
2 div 3 + 3 / 5
9 div 2 / 5
7 mod 5 mod 3
7 mod (5 mod 3)
(7 mod 5) mod 3
(7 mod 5 mod 3)
((12 + 3) div 2) / (8 – (5 + 1))
12 / 2 * 3
Ejercicios de aplicación
1. Diseñar un algoritmo para solicitar el número de segundos transcurridos de un
determinado proceso y establecer el número de horas, minutos y segundos
transcurridos.
2. Encontrar el valor de la variable DATO después de la ejecución de las siguientes
operaciones:
a) DATO  4.0 * 5
b) X  3.0
Y  2.0
DATO  X ^ Y – Y
c) DATO  5
X3
DATO  DATO * X.
3. Siendo A = 5
siguientes:
a) A + B + C
d) A + B mod C
4.
B = 25
b) A + B * C
e) (A + B) / C
C = 10; deducir el valor de las expresiones
c) A + B / C
f) A + (B / C)
Escribir las siguientes expresiones en forma de expresiones algorítmicas
a) M
--- + P
N
b)
N
M + ---------P - Q
c).
M+N
-------P -Q
5. Como se intercambian los valores de dos variables A y B, usando asignación y
variable auxiliar.
6. Se tienen tres variables A, B y C. Escribir las instrucciones necesarias para
intercambiar entre sí sus valores del modo siguiente:
a) B toma el valor de A
b) C toma el valor de B
c) A toma el valor de C
Debe utilizar una sola variable auxiliar
7. ¿Qué se obtiene en las variables A, B y C después de ejecutar las instrucciones
siguientes.?
A  3 ; B  20 ; C  A + B ; B  A + B ;
A  B – C23
8. Obtener el valor de las siguientes expresiones aritméticas
a) 7 div 2
b) 7 mod 2
c) 0 mod 5
d) 7 * 10 – 50 mod 3 * 4 + 9
e) (7 * (10 – 5) mod 3) * 4 + 9
f) 8 + 7 * 3 + * 6
g) –2 ^ 3
h) 3 + 2 * ( 18 – 4 ^ 2)
i) 4 / 2 * 3 / 6 + 6 / 2 1 5 ^ 2 / 4 * 2
9.
a)
b)
c)
d)
Escribir las siguientes expresiones algorítmicas como expresiones algebraicas
B^2–4*A*C
3 * X ^ 4 – 5 * X ^ 3 + X * 12 – 17
( B + D ) / (C + 4 )
(X^2+Y^2)^(1/2)
Considere la siguiente prioridad : *, / , div , mod , + , - .
Objetivos:
o
o
Conocer la simbología utilizada en diagrama de flujo para representar las
diversas operaciones y procesos de solución a problemas.
Establecer la estructura para escribir pseudocódigo.
HERRAMIENTAS DE PROGRAMACION
Y LA SOLUCION DE PROBLEMAS
La computadora es utilizada como una herramienta para la resolución de problemas, un problema se
puede dividir en tres fases:
1. Análisis del problema
2. Diseño del algoritmo
3. Resolución del algoritmo en la computadora
Análisis del problema



El propósito es llegar a una comprensión de la naturaleza del problema, esto debe estar bien definido
si se desea obtener una solución satisfactoria.
Para llegar a una solución eficaz se necesita: una buena definición del problema, acompañada de una
descripción detallada de las entradas y salidas.
El análisis exige una lectura previa del problema a fin de obtener una idea general de lo que de
solicita. La segunda lectura deberá servir para responder las preguntas:
1. ¿Que información debe proporcionar la resolución del problema?
2. ¿Que datos se necesitan para resolver el problema?
Análisis
del
problema
Definición
del
problema
Especificaciones
de
entrada
Especificaciones
de
salida
Diseño del algoritmo




Para la solución de problemas complejos estos se subdividen en subproblemas que sean más fáciles
de solucionar que el original (diseño descendente)
Cada subproblema se amplía en una descripción más detallada con pasos más específicos, esto se
denomina refinamiento del algoritmo.
Las ventajas más importantes del diseño descendente son:
1. El problema se comprende más fácilmente al dividirse en partes más simples denominadas
módulos
2. Las modificaciones en los módulos son más fáciles
3. La comprobación del problema se puede realizar fácilmente
Luego de realizar el diseño descendente y refinamiento respectivo se debe representar el algoritmo
mediante una herramienta de programación: diagramas de flujo o pseudocódigo
Diseño
de un
algoritmo
Diseño
descendente
(1)
Refinamiento
por pasos
(2)
Herramientas de
programación
(3)
- diagrama de flujo
- pseudocódigo
- diagrama N-S
Resolución del algoritmo en la computadora


Una vez que el algoritmo está diseñado y representado mediante una herramienta de programación,
se debe pasar a la fase de resolución usando la computadora.
Las fases son:
1. Codificación del algoritmo en un programa
2. Ejecución del programa
3. Comprobación del programa
Resolución
del problema
con computadora
Codificación
del
programa
Ejecución
del
programa
Comprobación
del
programa
Representación gráfica de los algoritmos




Un algoritmo es representado utilizando una herramienta de programación.
Un algoritmo puede ser codificado indistintamente en cualquier lenguaje.
Un algoritmo es representado gráfica y textualmente
Las herramientas de programación usadas para representar algoritmos son:
1. Diagrama de flujo
2. Lenguaje de especificación de algoritmos: pseudocódigos
3. Diagramas N-S (Nassi-Schneiderman)
DIAGRAMAS DE FLUJO
Un diagrama de flujo (flowchart) es una de las técnicas de representación de algoritmos más antigua y a
la vez mas utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparición
de lenguajes de programación estructurados. Un diagrama de flujo es un diagrama que utiliza los
símbolos (cajas) estándar y que tiene los pasos del algoritmo escritos en esas cajas unidas por flechas,
denominadas líneas de flujo, que indican la secuencia en que se deben ejecutar.
Terminal
Entrada/Salida
Proceso
no
si
Decisión
Decisión múltiple
Conector
Indicador de dirección de línea de flujo
Línea conector
Conector
Llamada a subrutina o un proceso predeterminado
Pantalla
Impresora
Teclado
PSEUDOCODIGO
Es un lenguaje de especificación de algoritmos, su uso hace el paso de codificación final relativamente
fácil.
El pseudocódigo nació como un lenguaje similar al inglés y era un medio de representar las estructuras de
control de programación estructurada.
La ventaja del pseudocódigo es que el programador se puede concentrar en la lógica y en las estructuras
de control y no preocuparse de las reglas de un lenguaje específico.
El pseudocódigo original utiliza para representar las acciones palabras reservadas en inglés –
similares a sus homónimas en los lenguajes de programación- . La escritura de pseudocódigo exige
normalmente la tabulación (sangría en el margen izquierdo de diferentes líneas).
Algunas palabras reservadas se presentan a continuación: inicio, fin, leer, escribir, etc.
ESTRUCTURA GENERAL DE UN PROGRAMA
La programación, es el proceso de planificar una secuencia de instrucciones que ha de seguir una
computadora para solucionar un problema. Un programa es la secuencia de instrucciones que indica las
acciones que ha de ejecutar la computadora.
En general, el desarrollo de una programa para la resolución de un problema comprende las fases:
 Análisis
 Algoritmo
 Prueba del algoritmo
 Codificación
 Edición, ejecución y prueba
 Uso y mantenimiento
PARTES CONSTITUTIVAS DE UN PROGRAMA
Después de haber tomado la decisión de desarrollar un programa, se debe establecer el conjunto de
especificaciones que debe contener el programa:
 Entradas
 Salidas
 Algoritmo de resolución
Conceptualmente un programa puede ser considerado como una caja negra.
ENTRADA
Algoritmo
de
resolución
Caja Negra
SALIDA
La caja negra o algoritmo de resolución, es el conjunto de códigos que transforman las entradas de
programas (datos) en salidas de programa (resultados). Al establecer las especificaciones del programa, el
programador debe conocer, en primer lugar, cuales son las entradas del programa y cuales son las salidas
del programa, antes de que pueda especificar el contenido de la caja negra.
Entrada de datos




El programador debe establecer las entradas al programa o conocer de donde provienen, así como el
momento en que se requieran en el programa.
Las entradas pueden proceder del usuario mientras el programa se esta ejecutando, en otros casos
pueden estar contenidos en archivos o base de datos almacenados en disco o memoria principal.
Al proceso de introducir la información de entrada (datos) en la memoria del computador se
denomina entrada de datos.
El programador debe realizar una lista de todas las entradas requeridas por el programa, la fuente de
cada entrada y el formato en que existen actualmente cada una de ellas.
Salida de datos

El programador debe listar todas las salidas previstas del programa, así como el formato requerido
por el usuario.
 Las características que deben reunir las salidas son:
1. Salida en pantalla o en papel impreso
2. Grabación de resultados
3. Diseño o presentación de resultados: listas, tablas, informes, gráficos, etc
4. Frecuencia de salida de resultados
Algoritmo de resolución

Habiendo determinado las entradas y salidas el programador debe decidir como obtener las salidas
deseadas a partir de las entradas dadas.



La caja negra que se denominó algoritmo de resolución constará de dos etapas: diseño del modelo de
resolución del problema y algoritmo de resolución del problema
El diseño del modelo implica tomar en cuenta los datos de entrada y los resultados que se desean
obtener.
El algoritmo de resolución se expresa usando una de las siguientes representaciones: pseudocódigo o
diagrama de flujo.
TIPOS DE INSTRUCCIONES




Las instrucciones disponibles en un lenguaje de programación, dependen de tipo de lenguaje de bajo
o alto nivel.
La diferencia entre ambos lenguajes se manifiesta en el repertorio de instrucciones del lenguaje.
Para los lenguajes de bajo nivel se necesita conocer la estructura del procesador para aplicar en
profundidad las instrucciones en lenguaje ensamblador.
Para los lenguajes de alto nivel no será necesario conocer la estructura interna de la máquina.
Una clasificación de las instrucciones en lenguaje de alto nivel es:
1. Entrada/salida
2. Asignación/movimiento
3. Aritméticas
4. Lógicas
5. Bifurcación o transferencia de control
6. Especiales
Instrucciones de Entrada/Salida


Permiten la transferencia de información desde los periféricos de entrada (teclado, unidad de cinta,
unidad de disco, etc.) a la memoria e la computadora y desde esta a un periférico de salida (pantalla,
impresora, unidad de cinta, unidad de disco, etc.)
El proceso de introducción de datos en la memoria desde un dispositivo periférico de entrada se
denomina lectura o carga de datos, y al proceso de extracción de datos de la memoria y su envío a un
dispositivo periférico de salida se denomina escritura, grabación o conservación.
Instrucciones de Asignación/Movimiento


Las instrucciones de asignación son fundamentales en casi todos los lenguajes de programación.
Permiten asignar valores a variables del programa.
Las instrucciones de movimiento tienen el mismo sentido que las de asignación y permiten transferir
la información o contenido de un campo o posición de memoria a otro, manteniendo siempre intacta
la información en su primera posición (emisor) y variando el contenido de la segunda posición
(receptor).
Instrucciones Matemáticas

Realizan el cálculo de operaciones aritméticas
funciones como seno, coseno, etc.
tales como sumar, restar, multiplicar, dividir o
Instrucciones Lógicas y de Relación



En numerosas ocasiones se necesita comparar dos expresiones aritméticas entre ellas con la finalidad
e tomar una decisión en función del resultado de dicha comparación. Este tipo de operaciones se
realiza con los operadores de relación.
Si en un programa se elige una determinada condición para realizar una tarea concreta, ésta solo se
realizará cuando dicha condición sea verdadera o falsa.
Además de los operadores de relación existen otros tipos de operadores conocidos como lógicos que
permiten realizar las operaciones lógicas o booleanas.
Instrucciones de Bifurcación o Transferencia de Control



Permiten variar la secuencia de ejecución de un programa al saltar (bifurcar) a otra parte del mismo.
Las instrucciones de este tipo se basan en una simple comparación o en los resultados de operaciones
lógicas.
Las bifurcaciones producidas por las instrucciones de control pueden ser con salto adelante en la
secuencia normal del programa o con salto atrás.
Los tipos de bifurcaciones en cuanto a las condiciones a cumplir son: incondicionales y
condicionales; las bifurcaciones incondicionales se realizan siempre que se ejecuta la instrucción,
mientras que las bifurcaciones condicionales solo se realizarán al cumplirse una determinada tarea.
Instrucciones Especiales

Las instrucciones especiales varían de unos lenguajes a otros. El grupo más importante de
instrucciones especiales se clasifican en: edición, impresión, conversión, ordenación, comunicación
de entrada/salida, gráficos, etc.
ELEMENTOS BASICOS DE UN PROGRAMA
Los elementos básicos cuya correcta combinación permite construir un programa son:

Palabras claves e identificadores

Constantes

Variables

Expresiones

Sentencias de asignación

Comentarios

Iteraciones y bucles

Contadores y acumuladores

Decisión o selección

Interruptores y conmutadores
Palabras claves e identificadores: constituyen las instrucciones intrínsecas a lenguaje de programación
y son la parte fundamental de su sintaxis (ordenes, sentencias, funciones y operadores). Los
identificadores tienen un significado predefinido o bien ser elegidos por el programador como son los
casos de los nombres de variables, programas, etc.
Las palabras reservadas no pueden ser elegidas como identificadores o nombres de variables.
Constantes: es una cantidad cuyo valor no cambia durante el proceso, es decir, es un elemento fijo de
datos. La mayoría de los lenguajes permiten diferentes tipos de constantes, siendo las más comunes:
enteros, decimales, caracteres y constantes booleanas o lógicas.
Variables: representan elementos de datos variables, estos pueden cambiar durante la ejecución de un
programa. Las variables se refieren en los programas por nombres simbólicos o identificadores.
Dependiendo del lenguaje, existen diferentes tipos de variables, tales como enteras, reales, caracteres, etc.
Expresiones: son combinaciones de constantes, variables, símbolos de operación (operadores),
paréntesis de apertura y cierre y nombres de funciones especiales.
Las expresiones pueden ser aritméticas, relacionales, lógicas o booleanas
Sentencias de asignación: son parte fundamental de casi todos los lenguajes de programación, permiten
asignar el valor de una expresión a una variable. El lado derecho de la sentencia puede ser cualquier
expresión legal y el lado izquierdo debe ser un nombre de una variable.
Comentarios: permiten documentar las acciones que se realizan dentro de un programa.
Iteraciones y bucles.
Un bucle es un proceso en el que se ejecutan una serie de operaciones un número determinado de veces;
las operaciones serán siempre las mismas, pero con datos y resultados diferentes. En el caso de un
programa el bucle o lazo es un conjunto de instrucciones que deben ser ejecutadas un cierto numero de
veces, en un proceso iterativo o repetitivo; el bucle constará de una entrada y una salida; la entrada se
producirá con una o varias instrucciones y la salida del bucle se producirá cuando se cumple una
condición.
Un bucle se representa gráficamente así:
Acción 1
Acción 2
Si no se pone condición de salida se permanecerá dentro del bucle indefinidamente, y se conoce este tipo
de bucle como bucle infinito o bucle sin fin. La salida del bucle exigirá el cumplimiento de una
condición.
Acción 1
Acción 2
Condición
X=999
no
si
Salida
del bucle
Una iteración es la repetición controlada de la secuencia de acciones internas al bucle. En general un
bucle constará de las siguientes partes:




Preparación o arranque del bucle: una o más instrucciones que pueden ser asignación de valores a
constantes, contadores a cero, dimensión de listas o tablas, etc.
Cuerpo del bucle: grupo de instrucciones que integran realmente el bucle para cumplir el objetivo
especificado y que se repiten mientras no se cumple la condición.
Modificación del bucle: conjunto de instrucciones que modifican el bucle, haciendo progresar su
ejecución hasta su terminación final; se suele realizar con contadores, acumuladores.
Comprobación de la condición: suele constar de una instrucción para averiguar si se ha producido la
condición que determinará la salida del bucle.
Contadores
En los procesos repetitivos se necesita normalmente contar los sucesos o acciones internas del bucle,
como pueden ser registros o elementos de un archivo y número de iteraciones a realizar por el bucle.
Un contador es una variable que está destinada a contener los diferentes valores que se van
incrementando o decrementando en cada iteración. El incremento o decremento es siempre constante,
pudiendo ser positivo o negativo.
Acumuladores
Un acumulador o totalizador es una variable cuya misión es almacenar cantidades variables resultantes de
sumas sucesivas. Realiza la función de un contador con la diferencia que el incremento o decremento de
cada suma es variable en lugar de constante como en el caso del contador.
Decisión o selección
Las instrucciones de un programa se ejecutan de un modo secuencial. Sin embargo, en numerosas
ocasiones es preciso romper el orden secuencial de las instrucciones y bifurcar, saltar o transferir el
control a otras instrucciones del programa que no sean consecutivas a las que en ese momento se
ejecutan.
Los saltos o transferencias de control pueden ser positivas (hacia delante) o negativas (hacia atrás), lo que
puede implicar la no ejecución de instrucciones - saltos positivos - o repetición de instrucciones – saltos
negativos Existen dos tipos de bifurcaciones:


Condicionales, la bifurcación depende del cumplimiento de una determinada condición; cuando se
cumple la condición el control del programa bifurca a la instrucción especificada; si la instrucción es
falsa el programa continúa ejecutándose en la siguiente instrucción en el orden secuencial previsto.
Incondicionales, la bifurcación se realiza siempre que el programa pase por la instrucción sin el
cumplimiento de ninguna condición
Interruptores o conmutadores
Un interruptor o conmutador -a veces se les llama centinelas, banderas- es una variable que toma
diversos valores a lo largo de la ejecución del programa y que permiten comunicar información de una
parte a otra del mismo, es decir variar la secuencia de ejecución de un programa, dependiendo del valor
que tenga en cada momento. Los dos únicos valores que puede tomar un interruptor son 1 y 0 (encendido
y apagado).
TIPOS DE PROGRAMAS
Los programas escritos para computadoras, en general se pueden clasificar en tres tipos o estructuras
fundamentales:
 Lineales
 Cíclicos
 Alternativos (decisiones)
En realidad es difícil que un programa se componga de una sola estructura y normalmente una mezcla de
los tres tipos es lo que suele constituir un programa.
Programas lineales
Son aquellos en los que no existen instrucciones de bifurcación y por consiguiente las instrucciones se
ejecutan en la misma secuencia en que han sido codificados. Estos programas se denominan también
secuenciales; normalmente estos programas constan de las siguientes fases:
 Lectura o entrada de datos
 Proceso
 Impresión o salida de resultados
Programas cíclicos
Son aquellos programas en los que un grupo de instrucciones se ejecutan un número determinado de
veces –de modo cíclico- hasta que se cumple una cierta condición que indica el fin de las ejecuciones de
dichas instrucciones. El conjunto de las instrucciones que se repiten cíclicamente se denomina bucle, lazo
o ciclo.
La estructura de un programa cíclico suele constar de las siguientes fases:




Entrada de datos e instrucciones previas
Lazo o bucle (conjunto de instrucciones que se repiten y ejecutan un numero determinado de veces)
Instrucciones finales o resto del proceso
Salida de resultados
Programas alternativos
Son aquellos que permiten la ejecución de diferentes operaciones, dependiendo de que se cumplan o no
determinadas condiciones que se producen en los datos de entrada o durante el proceso. Según la
condición que se cumple se realiza una serie de instrucciones diferentes.
Auto Evaluación
1.
Calcular el valor de la suma 1 + 2 + 3 + 4 + … + 50
2.
Definir los pasos necesarios para intercambiar los valores de dos variables numéricas
3.
Escribir el algoritmo para calcular el área de un triángulo dada la base y la altura
4.
Diseñar un algoritmo que realice la siguiente conversión: una temperatura dada en grados Celsius a
grados Fahrenheit. Fórmula F = (9/5) C + 32
5.
Se necesita un algoritmo para convertir metros a pies y pulgadas ( 1 metro + 39.37 pulgadas, 1 pie =
12 pulgadas)
6.
Dado dos dígitos diferentes de cero, forme un valor numérico.
Para cada uno de los ejercicios debe escribir el análisis y diagrama de flujo respectivo.
Ejercicios de Aplicación
Ejercicios con Estructuras Secuénciales
1.
2.
Solicite valores numéricos para dos variables: A y B; presente en líneas separadas el valor de cada
variable, el valor de su cuadrado y además la raíz cuadrada.
Solicite el radio de una circunferencia, calcular y presentar el área del circulo.
3.
Dados dos números cualesquiera, calcular y presentar la suma, resta, producto y división del
primero número entre el segundo número.
4.
Dadas tres variables a, b y c desde el teclado, que corresponden a los coeficientes de una
ecuación cuadrática de segundo grado ax2 + bx + c = 0. Calcular y presentar el valor de las raíces
reales de la ecuación (por el momento, asignar valores para a, b y c que den por resultado raíces
reales).
5.
Dado un valor T desde el teclado, y que corresponda a una temperatura en grados Fahrenheit,
hacer el programa que convierta dicho valor a su equivalente en Centígrados. Fórmula F = (9/5) C
+ 32
Dadas dos variables X e Y por teclado, presente el contenido de cada una de estas variables;
luego intercambien los valores de X e Y; vuelva a presentar las variables para observar el cambio de
contenido
6.
Para cada uno de los ejercicios debe escribir el análisis y diagrama de flujo respectivo.
Descargar