Está en la página 1de 17

Programacin I g

Grado en Estadstica Aplicada Curso 2009-2010 2009 2010 Introduccin a la ciencia de la computacin p y a la programacin , g p g Problemas, algoritmos y programas
Yolanda Garca Ruiz D17C ygarciar@fdi.ucm.es http://gpd.sip.ucm.es/yolanda/
Departamento de Sistemas Informticos y Computacin (UCM) Introduccin a la Programacin 1

Importante: Estas transparencias son un material de apoyo a las clases presenciales y no sustituyen a la bibliografa bsica ni a l propias clases presenciales para el estudio d l i las i l i l l t di de la asignatura.

Introduccin a la Programacin

Introduccin a la ciencia de la computacin y a la programacin CONTENIDOS


1. La computadora como herramienta para resolver problemas. Vamos a definir qu es una computadora, su organizacin fsica: CPU, memoria principal, dispositivos de entrada/salida, etc 2. E tid d 2 Entidades primitivas para el d i iti l desarrollo de algoritmos. ll d l it Constantes, variables, tipos de datos y expresiones. 3. Metodologa a seguir para la resolucin de problemas con computadoras Describir el concepto de algoritmo, diseo de algoritmos como paso previo a la creacin de un programa y representacin de algoritmos: diagramas de flujo. g 4. Codificacin de algoritmos Tipos de lenguajes, paradigmas de programacin, estilos de programacin. 5. Compiladores (compilador de C++) Descripcin, para qu se usan, fases de la compilacin, etc D i i f d l il i t

Introduccin a la ciencia de la computacin y a la programacin


INTRODUCCIN
Las computadoras electrnicas modernas son uno de los productos ms importantes del siglo XX. Son una herramienta esencial en muchas reas: industria, ciencia, educacin, etc El papel que juegan los lenguajes de programacin y los programas es esencial; sin una lista de instrucciones a seguir, las computadoras son intiles. Los lenguajes de programacin nos permiten escribir esos programas y por consiguiente comunicarnos con las computadoras. Las computadoras son una herramienta para resolver problemas. La resolucin de un problema exige al menos los siguientes pasos: bl i l l i i t 1. Definicin o anlisis del problema 2. Diseo del algoritmo 3. Transformacin del algoritmo en un programa: codificacin 4. Ejecucin y validacin del programa
3 4

Introduccin a la Programacin

Introduccin a la Programacin

LA COMPUTADORA
Una computadora es un dispositivo electrnico utilizado para procesar informacin y obtener unos resultados.

LA COMPUTADORA

Computadora
Los datos de entrada son procesados para producir una salida
Programa

Los componentes fsicos que constituyen la computadora se conocen con el trmino HARDWARE. Son por ejemplo: ratn, monitor, teclado, El conjunto de instrucciones que hacen funcionar a la computadora se llama j t d i t i h f i l t d ll PROGRAMA. Al conjunto de programas se llama SOFTWARE y se e cue a almacenados e a e o a encuentran a ace ados en la memoria de la computadora. a co pu ado a.

(Texto, imgenes, sonido, )

Datos de entrada d

Datos de D t d salida
5 Introduccin a la Programacin 6

Introduccin a la Programacin

ORGANIZACIN FSICA DE UNA COMPUTADORA


Estructura general basada en la arquitectura Von Newman:

ORGANIZACIN FSICA DE UNA COMPUTADORA


Memoria Central Principal - Se utiliza para almacenar informacin (RAM) - La informacin almacenada puede ser de 2 tipos:
Instrucciones de un programa Datos con los que operan las instrucciones

CPU Memoria E/S Perifricos

Unidad central de d proceso


Unidad Aritmtico lgica Unidad de control

Memoria Principal

Programas Datos de salida


Dispositivos de SALIDA
7

Componente principal p de un computador

Datos de entrada
Dispositivos de ENTRADA

- P que un programa se pueda ejecutar debe ser situado en la memoria Para d j t d b it d l i central (carga del programa) - En la memoria central hay tambin un espacio de almacenamiento temporal que necesita el programa para poder ejecutarse - La memoria principal est organizada en millares de celdas de memoria Cada celda consta de 8 bits (1 byte) Un byte tiene capacidad para almacenar un carcter de informacin
Introduccin a la Programacin 8

Introduccin a la Programacin

ORGANIZACIN FSICA DE UNA COMPUTADORA


Memoria Central Principal (Continuacin) Ejemplo:
Si deseamos almacenar la frase: Hola mundo la computadora utilizar 10 bytes consecutivos de memoria.

ORGANIZACIN FSICA DE UNA COMPUTADORA


Memoria Central Principal (Continuacin) La direccin indica la posicin en memoria. El contenido es la informacin almacenada en dicha posicin de memoria. memoria Puede cambiar mientras se ejecuta el programa
b c a

999 998 997

- La informacin numrica se almacena de forma diferente. Veremos que los datos numricos ocupan 2, 4 y hasta 8 bytes consecutivos 2 dependiendo del tipo de dato. - Existen 2 conceptos importantes asociados a cada celda posicin de memoria Direccin de la celda Contenido de la celda

Direcciones
2 1 0

C Contenido En la direccin de memoria 2, se encuentra almacenado el carcter b


10

Memoria central de una computadora


9

Introduccin a la Programacin

Introduccin a la Programacin

ORGANIZACIN FSICA DE UNA COMPUTADORA


CPU (Unidad Central de Proceso) procesador - Procesa y manipula la informacin almacenada en memoria * Recupera la informacin desde memoria (datos y programas) * Controla y realiza operaciones con los datos * Almacena resultados de los procesos en dicha memoria para su utilizacin posterior. - Consta de dos componentes:
Unidad de control Coordina las actividades de la p computadora Qu operaciones se deben realizar y en qu orden
Introduccin a la Programacin

Unidad Aritmtico-lgica Aritmtico lgica Realiza operaciones aritmticas y lgicas (suma, resta, multiplicacin, )

2 Entidades i iti E tid d primitivas para el l desarrollo de algoritmos

11

Introduccin a la Programacin

12

PRINCIPALES DEFINICIONES CONSTANTES Y VARIABLES


Una constante es un dato cuyo valor no cambia durante la ejecucin del programa. Ejemplo: pi = 3,1416 3 1416 Las variables son palabras que manipulan datos, en forma tcnica son p porciones de memoria q almacenan un valor. Dicho valor puede ser que p modificado en cualquier momento durante la ejecucin del programa. Por lo tanto una variable esta constituida por un nombre y un valor. El nombre de la variable o constante lo llamaremos identificador. El valor de la variable puede ser simple o compuesto. Dependiendo del valor de la variable, decimos que dicha variable es de un ti de d t l d l i bl d i di h i bl d tipo d dato. Por ejemplo, si el valor de la variable es un entero, decimos que la variable es de tipo entero.
13

PRINCIPALES DEFINICIONES IDENTIFICADORES


Los identificadores representan los datos de un programa. Es una secuencia de caracteres que sirve para identificar una posicin en la memoria de la computadora, y nos permite acceder al contenido de dicha posicin. Reglas para formar un identificador:
- Debe comenzar con una letra. letras caracteres - Despus de la primera letra pueden aparecer otras letras, dgitos y caracteres. - No debe contener espacios en blanco. j p Ejemplos: SUMA NUMERO1
Introduccin a la Programacin

n_primo num_horas
14

Introduccin a la Programacin

PRINCIPALES DEFINICIONES TIPOS DE DATOS SIMPLES


Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carcter, tal como b, un valor entero tal como 35. El tipo de dato determina la naturaleza del valor que puede tomar una variable. variable

PRINCIPALES DEFINICIONES TIPOS DE DATOS ESTRUCTURADOS: ARRAYS


Son un conjunto finito de valores Un Array es una estructura de datos que almacena bajo el mismo nombre (variable) a una coleccin de datos del mismo tipo. Los arrays se caracterizan por: Almacenan los elementos en posiciones contiguas de memoria. memoria Tienen un mismo nombre de variable que representa a todos los elementos. Para hacer referencia a esos elementos es necesario utilizar un ndice que especifica el lugar que ocupa cada elemento dentro del array. Tipo de Arrays : Vectores y Matrices.

Datos Numricos: son los nmeros enteros y los reales. Este tipo de datos p permiten realizar operaciones aritmticas comunes. p Datos Lgicos: Son aquellos que slo pueden tener dos valores (cierto o falso). Son el resultado de una comparacin entre otros datos (numricos o alfanumricos). lf i ) Datos Alfanumricos: Es una secuencia de caracteres, por ejemplo, nombres de personas, direcciones, etc. Este tipo de datos se representan encerrados entre comillas. Ejemplos: Hola amigos 1997

Introduccin a la Programacin

15

Introduccin a la Programacin

16

PRINCIPALES DEFINICIONES VECTORES


Es un array de "N" elementos donde "N" recibe el nombre de longitud o tamao del vector. Para hacer referencia a un elemento del vector se usa el nombre del mismo, seguido del ndice (entre corchetes), el cual indica una posicin en particular del vector. p
Esto es un vector de 4 elementos 1 alumnos 2 3 4 Indices del vector

PRINCIPALES DEFINICIONES MATRICES


Es un array de M * N elementos organizados en dos dimensiones donde "M" es el numero de filas y "N" el numero de columnas. Para hacer referencia a un elemento de la matriz, se usa el nombre seguido de dos ndices (entre corchetes), que indican la fila y la columna donde se encuentra almacenado el dato.
Esto es una matriz 3 * 3 elementos 1 1 Juego = 2 3 3 filas
17 Introduccin a la Programacin

2 X O

3 O

3 columnas

ana luis pepe lucia

O X X

El nombre del vector es una variable


Introduccin a la Programacin

El contenido de la posicin 3 es pepe alumnos[3] = pepe

El dato almacenado en la fila 3 y columna 1 es X juego[3,1] = X


18

PRINCIPALES DEFINICIONES EXPRESIONES


Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales. Ejemplos: Ej l a+(b+3)/c SUMA > 100 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 expresin consta de operadores y operandos.
+, /, > a, b, 3, c, SUMA, 100

3 Metodologa a seguir para la resolucin de problemas con computadoras

Introduccin a la Programacin

19

Introduccin a la Programacin

20

RESOLUCIN DE PROBLEMAS
Concepto de ALGORITMO El objetivo fundamental de ste curso es ensear a resolver problemas mediante una computadora. Para ello necesitamos estudiar una metodologa que nos ayudar en dicha tarea. t d l d di h t El eje central de dicha metodologa es el concepto de algoritmo.

ALGORITMOS
Para llegar a ser un programador eficaz se necesita aprender a resolver p problemas de un modo riguroso y sistemtico. Esto significa q slo se g g que puede llegar a realizar un buen programa con el diseo previo de un algoritmo. Resolucin de un problema
Diseo del i d l Algoritmo

Problema Un algoritmo es una serie de pasos ordenados que describen el proceso que se debe seguir para dar solucin a un problema especfico. Un algoritmo es un conjunto finito de instrucciones que especifican la secuencia de operaciones a realizar en orden para resolver un problema.

Programa de computadora

Introduccin a la Programacin

21

Introduccin a la Programacin

22

ALGORITMOS

ALGORITMO Caractersticas de los algoritmos.


Las caractersticas fundamentales son:

Sin algoritmo no puede existir programa. Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan como de la computadora donde se ejecutan. Un lenguaje de programacin es un medio para expresar un algoritmo y una computadora es un procesador para ejecutarlo. La definicin de un algoritmo debe describir tres partes: 1. 1 Entrada: El algoritmo tiene 0 ms entradas. Son datos que se entregan al entradas
algoritmo antes de su ejecucin.

hDebe ser preciso


Debe especificar las acciones que se van a realizar y el orden de dichas acciones. i

hDebe estar definido


Si se sigue el algoritmo dos veces, se debe obtener el mismo resultado cada veces vez.

2. Proceso: Pasos del algoritmo 3. Salida: El algoritmo tiene 1 ms salidas. Es el resultado de aplicar los
pasos del algoritmo.
23

hDebe ser finito


Debe tener un nmero finito de pasos.

Introduccin a la Programacin

Introduccin a la Programacin

24

ALGORITMO
Ejemplo: Realizar la suma de todos los nmeros pares entre 2 y 100. El problema consiste en sumar 2+4+6+ + 98+100. Utilizamos las palabras SUMA y NUMERO para representar las sumas ili l l b l sucesivas (2+4), (2+4+6), etc. El algoritmo es el siguiente: l l i l i i
SUMA Y NUMERO son variables 1. Inicialmente SUMA vale 0 2. Inicialmente el valor de NUMERO es 2 3. Sumar NUMERO a SUMA 4. Aumentar el valor de NUMERO en dos unidades 5. 5 Si el valor de NUMERO 100 entonces i al paso 3 l l d 100 ir l 6. En caso contrario, finalizar el proceso.

RESOLUCIN DE PROBLEMAS
Las fases de resolucin de un problema:
1. 1 Definicin o anlisis del problema Consiste en entender el problema que se quiere resolver. En sta fase se determina QU debe hacer el algoritmo. 2. Diseo del algoritmo Pensar e idear un plan para resolver el problema. En sta fase de determina CMO se hace la tarea solicitada solicitada. 3. Transformacin del algoritmo en un programa: codificacin Llevar a cabo el plan es decir representar el algoritmo en forma de plan, decir, programa. 4. Ejecucin y validacin del programa. Correccin. j p g Evaluar el programa en cuanto a capacidad para resolver el problema planteado. Juegos de pruebas.
25 Introduccin a la Programacin 26

Introduccin a la Programacin

Definicin o anlisis del problema


Para poder definir correctamente un problema, es conveniente responder a las siguientes preguntas: iQu entradas se requieren? iCul es la salida deseada? iQu mtodo produce la salida deseada? i d d l lid d d Ejemplo:
Se desea obtener el coste final de un automvil sabiendo que el importe inicial es de 12.000 y los descuentos a aplicar son del 10% si la venta se produce antes de Junio de 2004 y del 20% si se produce con posterioridad. Entradas: Coste original y los descuentos segn el mes. Salidas: Coste del automvil hasta Junio, coste del automvil a partir de Junio. Proceso: Clculo del descuento aplicado hasta Junio y a partir de Junio.

Diseo del algoritmo


Para disear un algoritmo, es decir, para especificar el CMO se hace una determinada tarea, se dispone de dos herramientas: Diagramas de flujo Pseudocdigo

Diagramas de flujo
Es la representacin grfica de un algoritmo. Permite representar la secuencia de operaciones que se deben realizar para p , ,p p j la resolucin de un problema, es decir, permite representar el flujo de informacin desde su entrada hasta su salida. Dispone de un conjunto de smbolos grficos con significado referente al tipo de instruccin que se va a realizar. realizar Dichos smbolos van unidos con flechas que indican el orden de secuencia a seguir.
27 Introduccin a la Programacin 28

Introduccin a la Programacin

Diseo del algoritmo


Para disear un algoritmo, es decir, para especificar el CMO se hace una determinada tarea, se dispone de varias herramientas: Diagramas de flujo Pseudocdigo

Diseo del algoritmo: Diagramas de flujo


Los smbolos grficos utilizados han sido normalizados por el instituto norteamericano de normalizacin (ANSI). ( ) Los ms frecuentemente utilizados son:
Indica el inicio y final del diagrama de flujo Indica la entrada y salida de datos Smbolo de proceso. Indica la realizacin de una operacin.
si

Pseudocdigo
E un lenguaje utilizado para definir algoritmos con una sintaxis Es l j ili d d fi i l i i i muy parecida a la de un lenguaje de programacin. Las instrucciones se escriben en palabras similares al ingls o al espaol, facilitando as la comprensin el algoritmo. j q y p p g La ventaja es que es muy fcil pasar de pseudocdigo a un lenguaje de programacin.
no

Smbolo de decisin. Indica operaciones de comparacin entre datos. En funcin del resultado se sigue por distintos caminos. caminos Llamada a otro proceso complejo. Llamada a subrutina.

Introduccin a la Programacin

29

Introduccin a la Programacin

30

Diseo del algoritmo: Diagramas de flujo


Otros smbolos:
Indica la salida de informacin por impresora.

Diseo del algoritmo: Diagramas de flujo


Ejemplo: Realizar la suma de todos los nmeros pares entre 2 y 100. t 100
Descripcin del algoritmo
Inicio SUMA 0 NUMERO 2 SUMA SUMA+ NUMERO NUMERO NUMERO + 2

Conector. Representa la continuidad del diagrama. Lnea de flujo. flujo Indica el sentido de ejecucin de las operaciones

1. Inicialmente SUMA vale 0. 2. Inicialmente el valor de NUMERO es 2. 3. Sumar NUMERO a SUMA. 4. Aumentar el valor de NUMERO en dos
si
? NUMERO100

Recomendaciones para el diseo de Diagramas de Flujo Se deben usar solamente lneas de flujo horizontales y/o verticales. j y Se debe evitar cruce de lneas utilizando los conectores.

unidades. 5. Si el valor de NUMERO 100 entonces ir al paso 3. 6. En caso contrario, devolver el valor de SUMA y finalizar el proceso.

no

Visualizar SUMA Fin


32

Introduccin a la Programacin

31

Introduccin a la Programacin

Diseo del algoritmo: Diagramas de flujo


Ejemplo: Realizar la suma de todos los nmeros pares entre 2 y 100. t 100
Inicio SUMA 0 NUMERO 2 SUMA SUMA+ NUMERO NUMERO NUMERO + 2

EJERCICIOS
Ejercicio 1: Realizar la suma de una serie de nmeros positivos, suponiendo que los datos l d t se leen desde un dispositivo de entrada. Si el nmero ledo es un cero, d d di iti d t d l l d indicar que se ha alcanzado el final de la serie de nmeros. Ejercicio 2: Realizar la MEDIA aritmtica de una serie de nmeros positivos, suponiendo que los datos se leen desde un dispositivo de entrada. Si el nmero ledo es un cero, indicar que se ha alcanzado el final de la serie de nmeros. Ejercicio 3:
si
? NUMERO100

Pseudocdigo
1. SUMA = 0 2. NUMERO = 2. 3. mientras NUMERO 100 SUMA = SUMA + NUMERO NUMERO = NUMERO + 2 fin_mientras fin mientras 4. visualizar SUMA y finalizar el proceso.

Escribir E ibi un algoritmo que calcule el rea de un tringulo en funcin de la base y la l i l l l d i l f i d l b l altura.

no

Visualizar SUMA Fin

Introduccin a la Programacin

33

Introduccin a la Programacin

34

EJERCICIOS
Ejercicio 4: Dados 3 nmeros, determinar si la suma de cualquiera de ellos es igual al tercer nmero. Si se cumple esta condicin, escribir IGUALES y, en caso contrario, escribir DISTINTAS. Ejercicio 5: Escribir un algoritmo que lea 3 nmeros y a continuacin escriba el mayor de los 3. Ejercicio 6: Disear un algoritmo que le un nmero positivo y escriba por pantalla la palabra Hola nmero Hola las veces que indique dicho nmero.

EJERCICIOS
Ejercicio 7: Disear un algoritmo que lea un nmero positivo y escriba por pantalla todos los nmeros positivos menores que l en orden descendente. (Si se lee el nmero 6, entonces se escribe 5 4 3 2 1) Ejercicio 8: Escribir un algoritmo que visualice una tabla de ceros de tamao M*N, donde M y N son datos ledos por pantalla. Por ejemplo si M = 3 y N=4, se visualiza la siguiente tabla: 0 0 0 0 0 0 0 0 0 0 0 0

Introduccin a la Programacin

35

Introduccin a la Programacin

36

EJERCICIOS
Ejercicio 9: Disear un algoritmo para visualizar el siguiente dibujo: * *** ***** ******* ********* ******* ***** *** *

EJERCICIOS
Ejercicio 10: Dada una matriz de enteros de tamao 5 5 , disear un algoritmo que calcule la suma de todas las componentes. componentes Por ejemplo, si la matriz es: 1 1 2 0 2 2 1 2 0 1 3 1 2 1 3 2 1 2 0 1 1 1 2 1 2

el algoritmo debe devolver el valor 35.

Introduccin a la Programacin

37

Introduccin a la Programacin

38

CLASIFICACIN
Las estructuras de operacin de programas son un grupo de formas de trabajo, que permiten realizar ciertos procesos especficos q nos lleven j q p p p que a la solucin de problemas. Estas estructuras se clasifican de acuerdo a su complejidad:

4 Estructuras algortmicas Et t l t i
Estructuras Algortmicas

Secuenciales

Entrada Salida Asignacin Simples Mltiples Hacer para Hacer mientras Repetir hasta
40

Condicionales

Cclicas

Introduccin a la Programacin

39

Introduccin a la Programacin

Estructuras secuenciales
La estructura secuencial es aquella en la que una accin o instruccin sigue a otra en un orden secuencial.
Representacin en pseudocdigo
Inicio Accin 1 Accin 2 .. .. Accin n Fin

Estructuras secuenciales

Asignacin
Consiste en el paso de valores o resultados a una zona de memoria. Simples
a = 15

Lectura o Entrada
Consiste en recibir desde un dispositivo de entrada, un valor.
leer DATO DATO es la variable que recibe el valor

Contador
a=a+1

Acumulador
suma = suma + 4

De trabajo
a = c +b / 4

Escritura
Consiste en mandar por un dispositivo de salida un resultado o mensaje.
escribir La suma de los nmeros es: SUMA La es SUMA es la variable que contiene un valor 41

Consiste en pasar un valor constante a una variable Consiste en usarla como un ve cado de u e o verificador del numero de veces que se realiza un proceso

Consiste en usarla como un p sumador en un proceso

Puede recibir el resultado de una operacin matemtica que involucre muchas variables

En la pantalla aparece el texto: La suma de los nmeros es: Introduccin a la Programacin

Introduccin a la Programacin

42

Estructuras secuenciales
Ejemplo: Se desea conocer el porcentaje de hombres y el porcentaje de mujeres que realizan un Mster al finalizar su carrera universitaria. Se supone que los datos universitaria N DE HOMBRES y N De MUJERES se leen desde un dispositivo de entrada.

Estructuras condicionales
Las estructuras condicionales comparan una variable con otro(s) valor(es), para que en base al resultado de esta comparacin, se siga un camino dentro del programa. La comparacin se puede hacer contra otra variable o contra una constante, constante segn se necesite. necesite

Simples
Si <condicin> entonces Accin 1 Accin 2 .. .. Accin n Fin_Si

si

no

condicin di i Accin 1 Accin 2 Accin n

Diagrama de flujo
Introduccin a la Programacin 43 Introduccin a la Programacin 44

Estructuras condicionales

Estructuras condicionales

Dobles
Acciones a realizar si se cumple la condicin A i li i l l di i
Si <condicin> entonces Accin 1 Accin 2 .. .. Accin n Si no Accin 1 Accin 2 .. .. Accin n Fin_Si

Mltiples
Son tomas de decisin que permiten comparar una variable con distintos valores posibles, ejecutando para cada caso una serie de instrucciones especficas.
Caso DATO op1: Accin(es) op2: Accin(es) ... opN: Accin(es) Fin_caso Fin caso

si

no Si <condicin> entonces Accin(es) Si no Si <condicin> entonces Accin(es) Si no Accin(es) Fin_Si Fin_Si Fin Si

condicin Accin 1 Accin 2 Accin n Accin 1 Accin 2 Accin n

DATO es la variable que se compara

Acciones a realizar en el caso de que NO se cumpla la condicin


Introduccin a la Programacin

Diagrama de flujo
45 Introduccin a la Programacin

Si DATO es igual a op1 op1, se ejecutan las acciones correspondientes

46

Estructuras condicionales

Estructuras condicionales

Mltiples
Su representacin en diagrama de flujo se puede hacer de varias formas:

Mltiples
Diagrama d fl j para la representacin de CASOS Di de flujo l t i d CASOS:

Si <condicin1> entonces Accin(es) Si no Si <condicin2> entonces Accin(es) Si no Accin(es) Fin_Si Fin_Si

si

no

condicin1 Accin (es)


si i
?

no

condicin2 Accin (es) Accin (es)

Caso DATO op1: Accin(es) op2: op2 Accin(es) ... opN: Accin(es) Fin_caso

op1

? DATO

opN

Accin (es)

op2

Accin (es) ... ...

Accin (es)

Introduccin a la Programacin

47

Introduccin a la Programacin

48

Estructuras condicionales
Ejemplo 1: En un almacn se hace un 20% de descuento a los clientes cuya compra supere los 1000 Cual ser el cantidad que pagar un cliente por su compra? Suponemos que . el importe de la compra es un dato que se lee desde un dispositivo de entrada.

Estructuras cclicas
Se llaman problemas repetitivos o cclicos a aquellos en cuya solucin es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad especifica de veces. id d ifi d Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en funcin de algn dato dentro del programa). Los ciclos se clasifican en:

Ejemplo 2: Escribir un algoritmo que lea 3 nmeros y a continuacin escriba el mayor de los 3.

Ejemplo 3: Escribir un algoritmo que lea un nmero comprendido entre el 1 y el 12, y que imprima 12 por pantalla el mes al que corresponde dicho nmero.

Hacer para Hacer mientras Repetir hasta

Ciclos con un nmero DETERMINADO de iteraciones

Ciclos con un nmero INDETERMINADO de iteraciones


50

Introduccin a la Programacin

49

Introduccin a la Programacin

Estructuras cclicas

Estructuras cclicas

Hacer para
Ciclos con un Numero Determinado de Iteraciones. Son aquellos en que el numero de iteraciones se conoce antes de ejecutarse el ciclo. ciclo
Hacer Para i = inf hasta i = sup Accin 1 Accin 2 ... Accin N Fin_Para

Hacer para
Son aquellos en que el numero de iteraciones se conoce antes de ejecutarse el ciclo.
i inf
Hacer Para i = inf hasta i = sup Accin 1 Accin 2 ... Accin N Fin_Para

inf y sup representan el lmite inferior l l it i f i y el lmite superior i del bucle.

si

i sup Accin(es) A i (e ) ii+1

no

La variable i es la variable de control del ciclo. El ciclo se repite desde el lmite inferior, hasta que la variable de control llegue la lmite superior

Introduccin a la Programacin

51

Introduccin a la Programacin

52

Estructuras cclicas

Estructuras cclicas

Hacer Mientras
Ciclos con un Numero Indeterminado de Iteraciones. Son aquellos en que el numero de iteraciones no se conoce con exactitud, ya que est dado en funcin de un dato dentro del programa
Hacer Mientras <condicin> Accin 1 Accin 2 ... Accin N Fin_Mientras Fin Mientras si
?

Repetir Hasta

Esta es una estructura similar a la anterior

Repite un proceso una cantidad de veces, pero a diferencia de la anterior, lo hace hasta que la condicin se cumple y no mientras, como en el HacerMientras. Mientras Por otra parte, esta estructura permite realizar el proceso al menos una vez, ya que la condicin se evala al final del proceso, mientras que en el Hacer-Mientras puede ser que nunca llegue a entrar si la condicin no se cumple desde un principio.
Repetir Accin 1 Accin 2 ... Accin N Hasta <condicin>

no

condicin Accin(es)
si

Accin(es)

El grupo de acciones se ejecutan mientras se cumpla la condicin


Introduccin a la Programacin 53

condicin

no

Introduccin a la Programacin

54

Estructuras condicionales
Ejemplo 1: La calificacin final de un alumno en la asignatura de clculo se obtiene como media aritmtica de 7 notas. Calcular dicha calificacin suponiendo que las 7 notas se leen desde un dispositivo de entrada. Ejemplo 2: Encontrar el mayor valor de un conjunto de nmeros ledos desde un dispositivo de entrada. entrada

5 Codificacin d l it C difi i de algoritmos

Introduccin a la Programacin

55

Introduccin a la Programacin

56

CODIFICACIN: LOS LENGUAJES DE PROGRAMACIN


Un lenguaje de programacin es un medio para expresar un algoritmo y una computadora es un procesador p ejecutarlo. p p para j Una vez que tenemos diseado un algoritmo, el procesador debe ser capaz de entender su significado, es decir, comprender las instrucciones de cada paso y realizar las operaciones correspondientes. Por tanto, el algoritmo debe expresarse en un formato denominado PROGRAMA y stos programas se escriben mediante LENGUAJES ib di DE PROGRAMACIN.

CODIFICACIN: LOS LENGUAJES DE PROGRAMACIN


Instrucciones a la computadora Los diferentes pasos de un algoritmo, se expresan mediante instrucciones, por tanto, un programa no es ms que una secuencia de instrucciones, cada una de las cuales especifica ciertas operaciones que tiene que realizar la computadora. computadora Las instrucciones bsicas y comunes a casi todos los programas las podemos agrupar en 4:
Instrucciones de Entrada/Salida
Transferencia de datos entre los dispositivos y la memoria central

Instrucciones Selectivas
Permiten la seleccin de tareas alternativas en funcin del resultado de expresiones condicionales

Los principales tipos de g j lenguajes son 3:

Lenguaje mquina Lenguaje de bajo nivel Lenguajes de alto nivel


57

Instrucciones aritmtico-lgicas
Instrucciones que ejecutan operaciones aritmticas ( suma, resta, ) y lgicas (or, and, )
Introduccin a la Programacin

Instrucciones repetitivas i ii
Permiten que unas tareas se repitan un nmero de veces
58

Introduccin a la Programacin

LENGUAJE MQUINA
Los lenguajes mquina son aquellos que son directamente inteligibles por la computadora y q las instrucciones se expresan con g p p ya que p cadenas binarias (0s y 1s). Estas instrucciones se llaman CDIGO MQUINA o CDIGO BINARIO. BINARIO INCONVENIENTES VENTAJA La velocidad de ejecucin de los programas es superior a cualquier otro lenguaje. Son difciles y lentos de codificar Difciles de mantener y comprender Dependen de la CPU donde se ejecutan Son poco fiables

LENGUAJE DE BAJO NIVEL


Son un poco ms fiables de utilizar que los lenguajes mquina pero tambin dependen de la CPU donde se ejecutan. El ms importante es el ENSAMBLADOR. Un programa escrito en lenguaje Ensamblador no puede ser ejecutado directamente por la mquina sino que requiere una fase de traduccin a lenguaje mquina.
Programa fuente Programa escrito en Ensamblador Programa objeto Programa traducido a cdigo mquina

VENTAJA
Ms fciles de codificar que el lenguaje mquina

INCONVENIENTES
Dependen de la CPU donde se ejecutan Son difciles y lentos de codificar
60

Introduccin a la Programacin

59

Introduccin a la Programacin

LENGUAJES DE ALTO NIVEL


Son los mas utilizados por los programadores Estn diseados para que el escribir y entender los programas sea ms fcil que codificar en ensamblador o en cdigo mquina. VENTAJAS
El tiempo de formacin de los programadores es corto. El mantenimiento de los programas y las modificaciones son fciles de realizar No dependen de la CPU donde se ejecutan Programas fciles de entender
Introduccin a la Programacin 61

LENGUAJES DE PROGRAMACIN: EJEMPLO


Instruccin tpica de suma de dos nmeros:

0110 INCONVENIENTES

1001

1010

1011
Lenguaje mquina

Ocupan ms espacio en memoria El tiempo de ejecucin es mayor

ADD M N P M, N,
Lenguaje Ensamblador

P = M + N ;

Lenguaje de alto nivel

Introduccin a la Programacin

62

LENGUAJES DE ALTO NIVEL


Al igual que ocurra con el lenguaje ensamblador, los programas escritos mediante un lenguaje de alto nivel deben ser traducidos en programas g j p g objeto. Estos traductores se llaman COMPILADORES o INTERPRETES.
Programa fuente P f t Compilador Programa Programa objeto P bj t Programa traducido a g q cdigo mquina

ESTILOS DE PROGRAMACIN
1. Programacin Imperativa / Secuencial / Estructurada
Se dispone de un conjunto de operaciones primitivas con una ejecucin secuencial. Para programar es necesario disear una secuencia adecuada de instrucciones.
Ejemplos: PASCAL ADA y C PASCAL,

2. Programacin Orientada al Objeto (POO)


La programacin orientada al objeto esta basada en los objetos, clase, mtodo, envi y recepcin de mensajes, herencia y polimorfismo.
Ejemplos: C++, JAVA.

Estilos de programacin Es importante tener claro las caractersticas o estilos de programacin para lograr determinar cual es la herramienta o lenguaje ideal segn las caractersticas del sistema a implementar. p Existen 5 estilos de programacin fuertemente conocidos

3. Programacin orientada al evento


Esta programacin es el resultado de la programacin orientada al objeto. En este tipo de programacin permite trabajar con objetos y clases standard previamente definidas por la aplicacin.
Ejemplo: Visual Basic, Delphi y Power Builder

Introduccin a la Programacin

63

Introduccin a la Programacin

64

ESTILOS DE PROGRAMACIN
4. Programacin Funcional
El Programa es una Funcin (o un grupo de funciones). Una Funcin puede og a a u a u c u g upo u c o es). U a u c llamar a otra Funcin, o el resultado de una Funcin puede ser usado como el argumento de otra Funcin. Ejemplo: F i factorial en ML Ej l Funcin f t i l fun Factorial loop(n,f)= if n>0 then factorial loop(n-1,f*n) else f
Ejemplos: Haskel, CAML. j p

TRADUCTORES: Compiladores e Intrpretes


Sirven para escribir programas que permitan la comunicacin entre el usuario y la computadora. p Un intrprete toma el programa fuente, lo traduce y ejecuta lnea a lnea. Un ejemplo de lenguaje interpretado es Java. Un U compilador es un programa que se encargan d convertir las il d de ti l instrucciones escritas en un lenguaje de programacin en instrucciones escritas en lenguaje mquina (0s y 1s) que la computadora pueda entender. Ejemplos de lenguajes compilados son Pascal, C, C++. Fases de la compilacin
Programa g fuente Programa g objeto Programa g ejecutable

5. Programacin lgica
La programacin Lgica est basada en la nocin de relacin, debido a que en la relacin es un concepto ms general de una aplicacin. Los lenguajes de Programacin Lgica se utilizan en el campo de la Inteligencia Artificial.
Ejemplo: PROLOG

Compilador (traductor)

Montador (Linker)

Introduccin a la Programacin

65

Introduccin a la Programacin

66

Compilacin de programas
Fases de ejecucin de un programa
Programa fuente Compilador
si
Existen errores de compilacin?

1. Escritura del programa fuente mediante un editor. . aduc el p og a a ed a te u co p ado . 2. Traducir e programa mediante un compilador. 3. Verificar y corregir los errores de compilacin. 4. Obtencin del programa objeto. 5. Obtener el programa ejecutable mediante el montador. 6. Se ejecuta el programa y si no existen errores, se tendr una salida.

no

Programa objeto Montador Programa ejecutable


Introduccin a la Programacin

67

También podría gustarte