0% encontró este documento útil (0 votos)
39 vistas17 páginas

Tutorial

Este documento introduce conceptos básicos sobre programación e informática como computadoras, algoritmos, lenguajes de programación y compiladores. Explica que una computadora es un dispositivo electrónico que procesa información para obtener resultados mediante programas, y describe la organización física básica de una computadora.

Cargado por

dmsuzze
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
39 vistas17 páginas

Tutorial

Este documento introduce conceptos básicos sobre programación e informática como computadoras, algoritmos, lenguajes de programación y compiladores. Explica que una computadora es un dispositivo electrónico que procesa información para obtener resultados mediante programas, y describe la organización física básica de una computadora.

Cargado por

dmsuzze
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Programación I

i i i l t di l

Introducción a la ciencia de la computación


y a la programación
Problemas, algoritmos y programas

Introducción a la Programación 1 Introducción a la Programación 2

Introducción a la ciencia de la computación y a la programación Introducción a la ciencia de la computación y a la programación

CONTENIDOS INTRODUCCIÓN
1. La computadora como herramienta para resolver problemas.
Vamos a definir qué es una computadora, su organización física: CPU, memoria Las computadoras electrónicas modernas son uno de los productos más importantes
principal, dispositivos de entrada/salida, etc… del siglo XX.
2 Entidades
2. E tid d primitivas
i iti para ell d
desarrollo
ll dde algoritmos.
l it Son una herramienta esencial en muchas áreas: industria, ciencia, educación, etc
Constantes, variables, tipos de datos y expresiones. El papel que juegan los lenguajes de programación y los programas es esencial; sin
una lista de instrucciones a seguir, las computadoras son inútiles.
3. Metodología a seguir para la resolución de problemas con computadoras
Los lenguajes de programación nos permiten escribir esos programas y por
Describir el concepto de algoritmo, diseño de algoritmos como paso previo a la
consiguiente comunicarnos con las computadoras.
creación de un programa y representación de algoritmos: diagramas de flujo.
Las computadoras son una herramienta para resolver problemas. La resolución de un
4. Codificación de algoritmos
problema exige al menos los siguientes pasos:
Tipos de lenguajes, paradigmas de programación, estilos de programación.
1. Definición o análisis del problema
5. Compiladores (compilador de C++)
2. Diseño del algoritmo
Descripción, para qué se usan, fases de la compilación, etc …
3. Transformación del algoritmo en un programa: codificación
4. Ejecución y validación del programa

Introducción a la Programación 3 Introducción a la Programación 4


LA COMPUTADORA LA COMPUTADORA

Una computadora es un dispositivo electrónico utilizado para procesar


información y obtener unos resultados. Los componentes físicos que constituyen la computadora se conocen con el
término HARDWARE.
Computadora Son por ejemplo:
ratón, monitor, teclado, …
Los datos de entrada son
procesados para producir
una salida j t dde iinstrucciones
El conjunto t i que hhacen funcionar
f i l computadora
a la t d se llama
ll
Programa PROGRAMA. Al conjunto de programas se llama SOFTWARE y se
(Texto, imágenes, encuentran almacenados en la memoria de la computadora.
sonido, …)
Datos de
entrada
d Datos de
salida

Introducción a la Programación 5 Introducción a la Programación 6

ORGANIZACIÓN FÍSICA DE UNA COMPUTADORA ORGANIZACIÓN FÍSICA DE UNA COMPUTADORA

Estructura general basada en la arquitectura Von Newman: Memoria Central ó Principal


- Se utiliza para almacenar información (RAM)
- La información almacenada puede ser de 2 tipos:
Unidad central
de
d proceso
Memoria Instrucciones Datos
• CPU Principal de un con los que operan las
• Memoria Unidad
Unidad de
programa instrucciones
• E/S Aritmético
control
lógica P que un programa se pueda
- Para d ejecutar
j t debe
d b ser situado
it d en lal memoria
i
• Periféricos
Programas central (carga del programa)
- En la memoria central hay también un espacio de almacenamiento
temporal que necesita el programa para poder ejecutarse
Datos de Datos de
Componente principal salida - La memoria principal está organizada en millares de celdas de memoria
de un computador entrada
Cada celda consta de 8 bits (1 byte)
Dispositivos Dispositivos
de ENTRADA de SALIDA Un byte tiene capacidad para almacenar un carácter de información

Introducción a la Programación 7 Introducción a la Programación 8


ORGANIZACIÓN FÍSICA DE UNA COMPUTADORA ORGANIZACIÓN FÍSICA DE UNA COMPUTADORA

Memoria Central ó Principal (Continuación) Memoria Central ó Principal (Continuación)


Ejemplo:
La dirección indica la posición en
Si deseamos almacenar la frase: “Hola mundo”
999 memoria.
la computadora utilizará 10 bytes consecutivos de memoria.
998
997 El contenido es la información
- La información numérica se almacena de forma diferente. Veremos que almacenada en dicha posición de
los datos numéricos ocupan 2, 4 y hasta 8 bytes consecutivos Direcciones memoria. Puede cambiar mientras se
dependiendo del tipo de dato. ejecuta el programa
2 ‘b’
Contenido
- Existen 2 conceptos importantes asociados a cada celda ó posición de 1 ‘c’

0 ‘a’
memoria
En la dirección de memoria 2,
Dirección de la celda
Memoria central de una se encuentra almacenado el
Contenido de la celda
computadora carácter ‘b’

Introducción a la Programación 9 Introducción a la Programación 10

ORGANIZACIÓN FÍSICA DE UNA COMPUTADORA

CPU (Unidad Central de Proceso) ó procesador


- Procesa y manipula la información almacenada en memoria
* Recupera la información desde memoria (datos y programas)
* Controla y realiza operaciones con los datos
* Almacena resultados de los procesos en dicha memoria para su
utilización posterior.
2
- Consta de dos componentes:
E tid d primitivas
Entidades i iti para ell
Unidad de control Unidad Aritmético-lógica desarrollo de algoritmos
Coordina las actividades de la Realiza operaciones aritméticas
computadora
y lógicas
Qué operaciones se deben (suma, resta, multiplicación, …)
realizar y en qué orden

Introducción a la Programación 11 Introducción a la Programación 12


PRINCIPALES DEFINICIONES PRINCIPALES DEFINICIONES

CONSTANTES Y VARIABLES IDENTIFICADORES

• Una constante es un dato cuyo valor no cambia durante la ejecución del • Los identificadores representan los datos de un programa.
programa.
• Es una secuencia de caracteres que sirve para identificar una posición en
Ejemplo: pi = 3,1416 la memoria de la computadora, y nos permite acceder al contenido de
• Las variables son palabras que manipulan datos, en forma técnica son dicha posición.
porciones de memoria que almacenan un valor. Dicho valor puede ser
• Reglas para formar un identificador:
modificado en cualquier momento durante la ejecución del programa.
- Debe comenzar con una letra.
• Por lo tanto una variable esta constituida por un nombre y un valor.
- Después de la primera letra pueden aparecer otras letras, dígitos y caracteres.
• El nombre de la variable o constante lo llamaremos identificador.
- No debe contener espacios en blanco.
• El valor de la variable puede ser simple o compuesto. Dependiendo del
Ejemplos:
valor
l dde lla variable,
i bl decimos
d i que dicha
di h variable
i bl es de
d un tipo de dato.
Por ejemplo, si el valor de la variable es un entero, decimos que la SUMA n_primo
variable es de tipo entero. NUMERO1 num_horas

Introducción a la Programación 13 Introducción a la Programación 14

PRINCIPALES DEFINICIONES PRINCIPALES DEFINICIONES

TIPOS DE DATOS SIMPLES TIPOS DE DATOS ESTRUCTURADOS: ARRAYS

• Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un • Son un conjunto finito de valores
simple carácter, tal como ‘b’, un valor entero tal como 35. El tipo de dato • Un Array es una estructura de datos que almacena bajo el mismo nombre
determina la naturaleza del valor que puede tomar una variable.
variable
(variable) a una colección de datos del mismo tipo. Los arrays se
Datos Numéricos: son los números enteros y los reales. Este tipo de datos caracterizan por:
permiten realizar operaciones aritméticas comunes.
− Almacenan los elementos en posiciones contiguas de memoria.
memoria
Datos Lógicos: Son aquellos que sólo pueden tener dos valores (cierto o
− Tienen un mismo nombre de variable que representa a todos los
falso). Son el resultado de una comparación entre otros datos (numéricos elementos.
o alfanuméricos).
Datos Alfanuméricos: Es una secuencia de caracteres, por ejemplo, − Para hacer referencia a esos elementos es necesario utilizar un índice
que especifica el lugar que ocupa cada elemento dentro del array.
nombres de personas, direcciones, etc. Este tipo de datos se representan
encerrados entre comillas. Ejemplos: ”Hola amigos” ó “1997” • Tipo de Arrays : Vectores y Matrices.

Introducción a la Programación 15 Introducción a la Programación 16


PRINCIPALES DEFINICIONES PRINCIPALES DEFINICIONES

VECTORES MATRICES

• Es un array de "N" elementos donde "N" recibe el nombre de longitud o • Es un array de M * N elementos organizados en dos dimensiones donde
tamaño del vector. "M" es el numero de filas y "N" el numero de columnas.
• Para hacer referencia a un elemento del vector se usa el nombre del • Para hacer referencia a un elemento de la matriz, se usa el nombre
mismo, seguido del índice (entre corchetes), el cual indica una posición seguido de dos índices (entre corchetes), que indican la fila y la columna
en particular del vector. donde se encuentra almacenado el dato.
Esto es un vector de 4 elementos Esto es una matriz 3 * 3 elementos
Indices del vector 3 columnas
1 2 3 4 1 2 3
alumnos “ana” “luis” “pepe” “lucia” 1 O X
Juego = 2 X O O El dato almacenado en la fila 3 y
El nombre del vector El contenido de la posición 3 es “pepe” 3 X columna 1 es X
es una variable 3 filas juego[3,1] = X
alumnos[3] = “pepe”

Introducción a la Programación 17 Introducción a la Programación 18

PRINCIPALES DEFINICIONES

EXPRESIONES

• Las expresiones son combinaciones de constantes, variables, símbolos de


operación, paréntesis y nombres de funciones especiales.
Ej
Ejemplos:
l 3
a+(b+3)/c
SUMA > 100 Metodología a seguir para la
• Cada expresión toma un valor que se determina tomando los valores de
las variables y constantes implicadas y la ejecución de las operaciones resolución de problemas con
indicadas.
• Una expresión consta de operadores y operandos.
computadoras
+, /, > a, b, 3, c, SUMA, 100

Introducción a la Programación 19 Introducción a la Programación 20


RESOLUCIÓN DE PROBLEMAS ALGORITMOS

Concepto de ALGORITMO Para llegar a ser un programador eficaz se necesita aprender a resolver
problemas de un modo riguroso y sistemático. Esto significa que sólo se
El objetivo fundamental de éste curso es enseñar a resolver problemas puede llegar a realizar un buen programa con el diseño previo de un
algoritmo.
mediante una computadora. Para ello necesitamos estudiar una
metodología
t d l í que nos ayudará
d á en didicha
h tarea.
t
Resolución de un problema

El eje central de dicha metodología es el concepto de algoritmo.


Diseño
i del
d l Programa de
Problema Algoritmo computadora
Un algoritmo es una serie de pasos ordenados que describen el proceso
que se debe seguir para dar solución a un problema específico.

Un algoritmo es un conjunto finito de instrucciones que especifican la


secuencia de operaciones a realizar en orden para resolver un problema.

Introducción a la Programación 21 Introducción a la Programación 22

ALGORITMOS ALGORITMO

Características de los algoritmos.


Sin algoritmo no puede existir programa.

Los algoritmos son independientes tanto del lenguaje de programación en Las características fundamentales son:
que se expresan como de la computadora donde se ejecutan.

Un lenguaje de programación es un medio para expresar un algoritmo y hDebe ser preciso


una computadora es un procesador para ejecutarlo. Debe especificar las acciones que se van a realizar y el orden de dichas
acciones.
i
La definición de un algoritmo debe describir tres partes: hDebe estar definido
1. Entrada: El algoritmo tiene 0 ó más entradas.
entradas Son datos que se entregan al Si se sigue el algoritmo dos veces, se debe obtener el mismo resultado cada
algoritmo antes de su ejecución. vez.
2. Proceso: Pasos del algoritmo hDebe ser finito
3. Salida: El algoritmo tiene 1 ó más salidas. Es el resultado de aplicar los Debe tener un número finito de pasos.
pasos del algoritmo.

Introducción a la Programación 23 Introducción a la Programación 24


ALGORITMO RESOLUCIÓN DE PROBLEMAS

Ejemplo:
Las fases de resolución de un problema:
Realizar la suma de todos los números pares entre 2 y 100. 11. Definición o análisis del problema
Consiste en entender el problema que se quiere resolver.
El problema consiste en sumar 2+4+6+ …+ 98+100. En ésta fase se determina QUÉ debe hacer el algoritmo.
Utilizamos
ili las
l palabras
l b SUMA y NUMERO para representar las
l sumas
2. Diseño del algoritmo
sucesivas (2+4), (2+4+6), etc.
Pensar e idear un plan para resolver el problema. En ésta fase de
El algoritmo es el siguiente: determina CÓMO se hace la tarea solicitada
solicitada.
SUMA Y NUMERO
1. Inicialmente SUMA vale 0 son variables 3. Transformación del algoritmo en un programa: codificación
2. Inicialmente el valor de NUMERO es 2 Llevar a cabo el plan, es decir, representar el algoritmo en forma de
3. Sumar NUMERO a SUMA programa.
4. Aumentar el valor de NUMERO en dos unidades
4. Ejecución y validación del programa. Corrección.
5.
5 Si ell valor
l ded NUMERO ≤100 entonces ir al paso 3
Evaluar el programa en cuanto a capacidad para resolver el problema
6. En caso contrario, finalizar el proceso.
planteado. Juegos de pruebas.

Introducción a la Programación 25 Introducción a la Programación 26

Definición o análisis del problema Diseño del algoritmo

Para poder definir correctamente un problema, es conveniente responder a Para diseñar un algoritmo, es decir, para especificar el CÓMO se hace una
las siguientes preguntas: determinada tarea, se dispone de dos herramientas:
i¿Qué entradas se requieren? z Diagramas de flujo
i¿Cuál es la salida deseada? z Pseudocódigo
i¿Qué métodod produce
d lla salida
lid ddeseada?
d
Diagramas de flujo
Ejemplo:
Se desea obtener el coste final de un automóvil sabiendo que el importe inicial ⇒ Es la representación gráfica de un algoritmo.
es de 12.000 € y los descuentos a aplicar son del 10% si la venta se produce ⇒ Permite representar la secuencia de operaciones que se deben realizar para
antes de Junio de 2004 y del 20% si se produce con posterioridad. la resolución de un problema, es decir, permite representar el flujo de
información desde su entrada hasta su salida.
⇒ Dispone de un conjunto de símbolos gráficos con significado referente al
Entradas: Coste original y los descuentos según el mes.
tipo de instrucción que se va a realizar.
Salidas: Coste del automóvil hasta Junio, coste del automóvil a partir de Junio.
Proceso: Cálculo del descuento aplicado hasta Junio y a partir de Junio. ⇒ Dichos símbolos van unidos con flechas que indican el orden de secuencia
a seguir.

Introducción a la Programación 27 Introducción a la Programación 28


Diseño del algoritmo Diseño del algoritmo: Diagramas de flujo

Para diseñar un algoritmo, es decir, para especificar el CÓMO se hace una Los símbolos gráficos utilizados han sido normalizados por el instituto
determinada tarea, se dispone de varias herramientas: norteamericano de normalización (ANSI).
z Diagramas de flujo Los más frecuentemente utilizados son:
z Pseudocódigo
Indica el inicio y final del diagrama de flujo
Pseudocódigo
Indica la entrada y salida de datos
⇒ Es
E un llenguaje
j utilizado
ili d para ddefinir
fi i algoritmos
l i con una sintaxis
i i
muy parecida a la de un lenguaje de programación. Símbolo de proceso.
⇒ Las instrucciones se escriben en palabras similares al inglés o al Indica la realización de una operación.
español, facilitando así la comprensión el algoritmo. si no Símbolo de decisión.
? Indica operaciones de comparación entre datos.
⇒ La ventaja es que es muy fácil pasar de pseudocódigo a un En función del resultado se sigue por distintos caminos.
lenguaje de programación.
Llamada a otro proceso complejo. Llamada a subrutina.

Introducción a la Programación 29 Introducción a la Programación 30

Diseño del algoritmo: Diagramas de flujo Diseño del algoritmo: Diagramas de flujo

Ejemplo: Inicio
Otros símbolos:
Realizar la suma de todos los números
pares entre
t 2 y 100
100. SUMA ← 0
Indica la salida de información por impresora. NUMERO ← 2

Descripción del algoritmo


Conector. Representa la continuidad del diagrama. SUMA ← SUMA+ NUMERO
1. Inicialmente SUMA vale 0.

Línea de flujo. 2. Inicialmente el valor de NUMERO es 2. NUMERO ← NUMERO


NUMERO +
+ 22
NUMERO
Indica el sentido de ejecución de las operaciones 3. Sumar NUMERO a SUMA.

4. Aumentar el valor de NUMERO en dos si ?


Recomendaciones para el diseño de Diagramas de Flujo unidades. NUMERO≤100

5. Si el valor de NUMERO≤ 100 entonces ir no


Se deben usar solamente líneas de flujo horizontales y/o verticales. al paso 3.
Visualizar SUMA
6. En caso contrario, devolver el valor de
Se debe evitar cruce de líneas utilizando los conectores.
SUMA y finalizar el proceso.
Fin

Introducción a la Programación 31 Introducción a la Programación 32


Diseño del algoritmo: Diagramas de flujo EJERCICIOS

Ejemplo: Inicio Ejercicio 1:


Realizar la suma de todos los números Realizar la suma de una serie de números positivos, suponiendo que los
pares entre
t 2 y 100
100. SUMA ← 0 datos
d t se lleen desde
d d un didispositivo
iti dde entrada.
t d Si ell número
ú leído
l íd es un cero,
NUMERO ← 2 indicará que se ha alcanzado el final de la serie de números.

Ejercicio 2:
Pseudocódigo SUMA ← SUMA+ NUMERO
Realizar la MEDIA aritmética de una serie de números positivos, suponiendo que los
1. SUMA = 0 datos se leen desde un dispositivo de entrada. Si el número leído es un cero,
2. NUMERO = 2. NUMERO ← NUMERO ++ 22
NUMERO
indicará que se ha alcanzado el final de la serie de números.
3. mientras NUMERO ≤ 100 Ejercicio 3:
si ?
SUMA = SUMA + NUMERO Escribir
E ibi un algoritmo
l i que calcule
l l ell áárea de
d un triángulo
iá l en función
f ió de d la
l base
b y lla
NUMERO≤100
altura.
NUMERO = NUMERO + 2
no
fin mientras
fin_mientras
Visualizar SUMA
4. visualizar SUMA y finalizar el proceso.
Fin

Introducción a la Programación 33 Introducción a la Programación 34

EJERCICIOS EJERCICIOS

Ejercicio 4: Ejercicio 7:
Dados 3 números, determinar si la suma de cualquiera de ellos es igual al tercer Diseñar un algoritmo que lea un número positivo y escriba por pantalla todos los
número. Si se cumple esta condición, escribir “IGUALES” y, en caso contrario, números positivos menores que él en orden descendente.
escribir “DISTINTAS”. (Si se lee el número 6, entonces se escribe 5 4 3 2 1)

Ejercicio 5: Ejercicio 8:
Escribir un algoritmo que lea 3 números y a continuación escriba el mayor de los 3. Escribir un algoritmo que visualice una tabla de ceros de tamaño M*N, donde M y N
son datos leídos por pantalla.
Ejercicio 6:
Por ejemplo si M = 3 y N=4, se visualiza la siguiente tabla:
Diseñar un algoritmo que le un número positivo y escriba por pantalla la palabra
“Hola” las veces que indique dicho número. 0 0 0 0
0 0 0 0
0 0 0 0

Introducción a la Programación 35 Introducción a la Programación 36


EJERCICIOS EJERCICIOS

Ejercicio 10:
Ejercicio 9:
Dada una matriz de enteros de tamaño 5 × 5 , diseñar un algoritmo que calcule la
Diseñar un algoritmo para visualizar el siguiente dibujo: suma de todas las componentes.
componentes
Por ejemplo, si la matriz es:
*
*** 1 2 3 2 1
***** 1 1 1 1 1
******* 2 2 2 2 2
********* 0 0 1 0 1
******* 2 1 3 1 2
***** el algoritmo debe devolver el valor 35.
***
*

Introducción a la Programación 37 Introducción a la Programación 38

CLASIFICACIÓN

Las estructuras de operación de programas son un grupo de formas de


trabajo, que permiten realizar ciertos procesos específicos que nos lleven
a la solución de problemas.

Estas estructuras se clasifican de acuerdo a su complejidad:

4 Entrada
Secuenciales Salida
E t t
Estructuras algorítmicas
l ít i Asignación

Estructuras Condicionales
Simples
Múltiples
Algorítmicas
Hacer para
Cíclicas Hacer mientras
Repetir hasta

Introducción a la Programación 39 Introducción a la Programación 40


Estructuras secuenciales Estructuras secuenciales

La estructura secuencial es aquella en la que una acción o instrucción


sigue a otra en un orden secuencial. Asignación
Representación en pseudocódigo Consiste en el paso de valores o resultados a una zona de memoria.

Inicio
Acción 1 Lectura o Entrada Simples Contador Acumulador De trabajo
Acción 2
Consiste en recibir desde un dispositivo de entrada, un valor.
..
.. a = 15 a=a+1 suma = suma + 4 a = c +b / 4
DATO
leer DATO
Acción n DATO es la variable que
Fin recibe el valor
Consiste en pasar un valor Consiste en usarla como un
Escritura constante a una variable sumador en un proceso
Consiste en mandar por un dispositivo de salida un resultado o mensaje.
Consiste en usarla como un
escribir “La suma de los números es: “ SUMA verificador del numero de veces que Puede recibir el resultado
se realiza un proceso de una operación matemática que
involucre muchas variables
SUMA es la variable que
En la pantalla aparece el texto: La suma de los números es: contiene un valor

Introducción a la Programación 41 Introducción a la Programación 42

Estructuras secuenciales Estructuras condicionales

Ejemplo: Las estructuras condicionales comparan una variable con otro(s)


Se desea conocer el porcentaje de hombres y el porcentaje de mujeres que realizan valor(es), para que en base al resultado de esta comparación, se siga un
un Máster al finalizar su carrera universitaria.
universitaria Se supone que los datos camino dentro del programa.
Nº DE HOMBRES y Nº De MUJERES se leen desde un dispositivo de entrada.
La comparación se puede hacer contra otra variable o contra una
constante, según se necesite.

Simples si ? no
condición
di ió

Si <condición> entonces Acción 1


Acción 1 Acción 2
Acción 2 …
.. …
.. Acción n
Acción n
Fin_Si

Diagrama de flujo

Introducción a la Programación 43 Introducción a la Programación 44


Estructuras condicionales Estructuras condicionales

Dobles Múltiples
Acciones a realizar si se cumple la condición Son tomas de decisión que permiten comparar una variable con distintos
Si <condición> ento nces valores posibles, ejecutando para cada caso una serie de instrucciones
Acción 1
específicas.
Acción 2
..
..
si ? no DATO es la variable
Caso DATO
Acción n condición que se compara
Si <condición> entonces op1:
Si no Acción(es)
Acción 1’ Acción 1 Acción 1’ Acción(es)
op2:
Acción 2’ Acción 2 Acción 2’ Si no
Si <condición> entonces Acción(es)
.. … …
… … Acción(es)
.. ...
Si no
Acción n’ Acción n Acción n’ opN:
Acción(es)
Fin_Si Acción(es)
Fin_Si
Fin_Si Fin_caso S i DATO es igual a op1,
es ejecutan las acciones
Acciones a realizar en el caso de que correspondientes
NO se cumpla la condición Diagrama de flujo

Introducción a la Programación 45 Introducción a la Programación 46

Estructuras condicionales Estructuras condicionales

Múltiples Múltiples
Su representación en diagrama de flujo se puede hacer de varias formas: Diagrama de flujo para la representación de CASOS:

Si <condición1> entonces si no Caso DATO


?
Acción(es) op1: op1 ?
condición1 opN
Si no Acción(es) DATO
Si <condición2> entonces sii ? no op2:
op2
Acción (es)
Acción(es) condición2 Acción(es) Acción (es) Acción (es)
op2
Si no
Acción(es) ...
Acción (es) Acción (es)
Fin_Si opN: Acción (es) ... ...
Fin_Si Acción(es)
Fin_caso

Introducción a la Programación 47 Introducción a la Programación 48


Estructuras condicionales Estructuras cíclicas

Ejemplo 1: Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es


En un almacén se hace un 20% de descuento a los clientes cuya compra supere los necesario utilizar un mismo conjunto de acciones que se puedan ejecutar
1000 €. ¿Cual será el cantidad que pagará un cliente por su compra? Suponemos que una cantidad
id d especifica
ifi dde veces.
el importe de la compra es un dato que se lee desde un dispositivo de entrada.
Esta cantidad puede ser fija (previamente determinada por el programador)
o puede ser variable (estar en función de algún dato dentro del programa).
Ejemplo 2:
Escribir un algoritmo que lea 3 números y a continuación escriba el mayor de los 3.
Los ciclos se clasifican en:
Ciclos con un número
Ejemplo 3: Hacer para DETERMINADO de iteraciones
Escribir un algoritmo que lea un número comprendido entre el 1 y el 12,
12 y que imprima
por pantalla el mes al que corresponde dicho número.

Hacer mientras
Ciclos con un número
Repetir hasta INDETERMINADO de iteraciones

Introducción a la Programación 49 Introducción a la Programación 50

Estructuras cíclicas Estructuras cíclicas

Hacer para Hacer para


Ciclos con un Numero Determinado de Iteraciones. Son aquellos en que el numero de iteraciones se conoce antes de ejecutarse
Son aquellos en que el numero de iteraciones se conoce antes de ejecutarse el ciclo.
el ciclo.
ciclo
i ← inf

Hacer Para i = inf hasta i = sup inf y sup representan el límite Hacer Para i = inf hasta i = sup
Acción 1 iinferior
f i y ell lílímite
it superior
i Acción 1 si ? no
Acción 2 del bucle. Acción 2 i ≤ sup
... ...
Acción N Acción N Acción(es)
A ió (e )
Fin_Para Fin_Para

i←i+1
La variable i es la variable de control del ciclo. El ciclo se repite
desde el límite inferior, hasta que la variable de control llegue la límite superior

Introducción a la Programación 51 Introducción a la Programación 52


Estructuras cíclicas Estructuras cíclicas

Hacer Mientras Repetir Hasta Esta es una estructura similar a la anterior

Ciclos con un Numero Indeterminado de Iteraciones. Repite un proceso una cantidad de veces, pero a diferencia de la anterior, lo
Son aquellos en que el numero de iteraciones no se conoce con exactitud, hace hasta que la condición se cumple y no mientras, como en el Hacer-
ya que está dado en función de un dato dentro del programa Mientras.
Por otra parte, esta estructura permite realizar el proceso al menos una
Hacer vez, ya que la condición se evalúa al final del proceso, mientras que en el
Mientras <condición> Hacer-Mientras puede ser que nunca llegue a entrar si la condición no se
Acción 1
si ? no cumple desde un principio.
Acción 2 condición
... Repetir Acción(es)
Acción N Acción(es) Acción 1
Acción 2
Fin Mientras
Fin_Mientras si ?
...
Acción N
condición no
El grupo de acciones se ejecutan
Hasta <condición>
mientras se cumpla la condición

Introducción a la Programación 53 Introducción a la Programación 54

Estructuras condicionales

Ejemplo 1:
La calificación final de un alumno en la asignatura de cálculo se obtiene como media
aritmética de 7 notas. Calcular dicha calificación suponiendo que las 7 notas se leen
desde un dispositivo de entrada.

Ejemplo 2: 5
Encontrar el mayor valor de un conjunto de números leídos desde un dispositivo de
entrada.
entrada
C difi ió de
Codificación d algoritmos
l it

Introducción a la Programación 55 Introducción a la Programación 56


CODIFICACIÓN: LOS LENGUAJES DE PROGRAMACIÓN CODIFICACIÓN: LOS LENGUAJES DE PROGRAMACIÓN

Instrucciones a la computadora
Un lenguaje de programación es un medio para expresar un algoritmo y una
computadora es un procesador para ejecutarlo. Los diferentes pasos de un algoritmo, se expresan mediante instrucciones,
por tanto, un programa no es más que una secuencia de instrucciones, cada
Una vez que tenemos diseñado un algoritmo, el procesador debe ser capaz
una de las cuales especifica ciertas operaciones que tiene que realizar la
de entender su significado, es decir, comprender las instrucciones de
computadora.
cada paso y realizar las operaciones correspondientes.
Las instrucciones básicas y comunes a casi todos los programas las podemos
Por tanto, el algoritmo debe expresarse en un formato denominado
agrupar en 4:
PROGRAMA y éstos é programas se escriben
ib mediante
di LENGUAJES
DE PROGRAMACIÓN. Instrucciones de Entrada/Salida Instrucciones Selectivas
Transferencia de datos entre los Permiten la selección de tareas alternativas
Lenguaje máquina dispositivos y la memoria central en función del resultado de expresiones
Los principales tipos de condicionales
lenguajes son 3: Lenguaje de bajo nivel Instrucciones aritmético-lógicas
Instrucciones que ejecutan operaciones Instrucciones repetitivas
Lenguajes de alto nivel aritméticas ( suma, resta, … ) Permiten que unas tareas se repitan un
y lógicas (or, and, …) número de veces

Introducción a la Programación 57 Introducción a la Programación 58

LENGUAJE MÁQUINA LENGUAJE DE BAJO NIVEL

Los lenguajes máquina son aquellos que son directamente Son un poco más fiables de utilizar que los lenguajes máquina pero
inteligibles por la computadora ya que las instrucciones se expresan con también dependen de la CPU donde se ejecutan.
cadenas binarias (0´s y 1’s). El más importante es el ENSAMBLADOR.
Estas instrucciones se llaman CÓDIGO MÁQUINA o CÓDIGO Un programa escrito en lenguaje Ensamblador no puede ser ejecutado
BINARIO.
directamente por la máquina sino que requiere una fase de traducción a
INCONVENIENTES lenguaje máquina.
VENTAJA Programa fuente Programa objeto
Son difíciles y lentos de codificar
La velocidad de ejecución Programa escrito Programa traducido a
de los programas es Difíciles de mantener y comprender en Ensamblador código máquina
superior a cualquier otro Dependen de la CPU donde se ejecutan
lenguaje. INCONVENIENTES
VENTAJA
Son poco fiables
Más fáciles de codificar que el Dependen de la CPU donde se ejecutan
lenguaje máquina Son difíciles y lentos de codificar

Introducción a la Programación 59 Introducción a la Programación 60


LENGUAJES DE ALTO NIVEL LENGUAJES DE PROGRAMACIÓN: EJEMPLO

Son los mas utilizados por los programadores Instrucción típica de suma de dos números:
Están diseñados para que el escribir y entender los programas sea más fácil
que codificar en ensamblador o en código máquina.

VENTAJAS 0110 1001 1010 1011

El tiempo de formación de los INCONVENIENTES


Lenguaje máquina
programadores es corto.
Ocupan más espacio en memoria ADD M,
M N,
N P
El mantenimiento de los programas
y las modificaciones son fáciles El tiempo de ejecución es mayor
de realizar Lenguaje Ensamblador
P = M + N ;
No dependen de la CPU donde se
ejecutan

Lenguaje de alto nivel


Programas fáciles de entender

Introducción a la Programación 61 Introducción a la Programación 62

LENGUAJES DE ALTO NIVEL ESTILOS DE PROGRAMACIÓN

1. Programación Imperativa / Secuencial / Estructurada


Al igual que ocurría con el lenguaje ensamblador, los programas escritos
mediante un lenguaje de alto nivel deben ser traducidos en programas Se dispone de un conjunto de operaciones primitivas con una ejecución
objeto. Estos traductores se llaman COMPILADORES o secuencial. Para programar es necesario diseñar una secuencia adecuada de
INTERPRETES. instrucciones.
Ejemplos: PASCAL, ADA y C
Programa fuente Programa objeto
Compilador 2. Programación Orientada al Objeto (POO)
Programa traducido a
Programa
código máquina La programación orientada al objeto esta basada en los objetos, clase, método,
envió y recepción de mensajes, herencia y polimorfismo.
Estilos de programación Ejemplos: C++, JAVA.

Es importante tener claro las características o estilos de programación para 3. Programación orientada al evento
lograr determinar cual es la herramienta o lenguaje ideal según las Esta programación es el resultado de la programación orientada al objeto. En este
características del sistema a implementar. tipo de programación permite trabajar con objetos y clases standard previamente
Existen 5 estilos de programación fuertemente conocidos definidas por la aplicación.
Ejemplo: Visual Basic, Delphi y Power Builder

Introducción a la Programación 63 Introducción a la Programación 64


ESTILOS DE PROGRAMACIÓN TRADUCTORES: Compiladores e Intérpretes

4. Programación Funcional Sirven para escribir programas que permitan la comunicación entre el
El Programa es una Función (o un grupo de funciones). Una Función puede usuario y la computadora.
llamar a otra Función, o el resultado de una Función puede ser usado como el Un intérprete toma el programa fuente, lo traduce y ejecuta línea a
argumento de otra Función. línea. Un ejemplo de lenguaje interpretado es Java.
Ejemplo: F
Función
ió ffactorial
t i l en ML Un compilador
il d es un programa que se encargan de convertir las
fun Factorial loop(n,f)= if n>0 then factorial loop(n-1,f*n) else f instrucciones escritas en un lenguaje de programación en instrucciones
Ejemplos: Haskel, CAML. escritas en lenguaje máquina (0´s y 1´s) que la computadora pueda
entender. Ejemplos de lenguajes compilados son Pascal, C, C++.
5. Programación lógica
Fases de la compilación
La programación Lógica está basada en la noción de relación, debido a que en la
relación es un concepto más general de una aplicación. Los lenguajes de
Programación Lógica se utilizan en el campo de la Inteligencia Artificial. Programa Programa Programa
Ejemplo: PROLOG fuente Compilador objeto Montador ejecutable
(traductor) (Linker)

Introducción a la Programación 65 Introducción a la Programación 66

Compilación de programas

Fases de ejecución de un programa

Programa fuente 1. Escritura del programa fuente mediante un editor.

Compilador 2. Traducir el programa mediante un compilador.

si
3. Verificar y corregir los errores de compilación.
¿Existen
errores de
compilación? 4. Obtención del programa objeto.
no
5. Obtener el programa ejecutable mediante el
Programa objeto montador.

Montador 6. Se ejecuta el programa y si no existen errores, se


tendrá una salida.
Programa ejecutable

Introducción a la Programación 67

También podría gustarte