Você está na página 1de 82

Algoritmos y Programas

Introduccin

El objetivo de esta sesin consistir en explicar los conceptos de algoritmo, programa y lenguaje de programacin. As como explorar otros temas concurrentes.

Temtica

Sistemas de procesamiento de informacin. Concepto de Algoritmo. Lenguaje de programacin. Datos, tipos de datos y operaciones primitivas. Constantes y variables. Expresiones. Funciones intrnsecas. Asignacin. Entrada y salida de informacin.

1. Sistemas de procesamiento de la informacin

Un sistema de esta clase se define como un conjunto de componentes interconectados entre s que transforman datos en informacin organizada, significativa y til.

Esquemticamente
Datos

Procesador

Informacin

Una primera definicin

Un algoritmo consiste en el grupo de instrucciones que definen la secuencia de operaciones a realizar para resolver un sistema especfico o clase de problema.

Conceptos importantes

Hardware: grupo de componentes fsicos de una computadora. Software: conjunto de programas que controlan el funcionamiento de una computadora

2. Concepto de Algoritmo

La metodologa de la programacin es aquella que es necesaria para resolver problemas mediante programas, su eje es el algoritmo.

Problema

Diseo del algoritmo

Programa

Pasos para la solucin de un problema

El diseo del algoritmo describe el anlisis del problema y desarrollo del algoritmo. Expresar el algoritmo como un programa en un lenguaje de programacin. Ejecutar y validar el programa por la computadora.

Caractersticas algoritmos

de

los

Preciso, indicar el orden de cada paso. Definido, el mismo resultado se obtendr al ejecutar el algoritmo n ocasiones. Finito, deber terminar en algn momento.

Ejemplo 2.1 Genere un algoritmo que solucione la entrega de un pedido a un cliente


Inicio. Leer el pedido. Examinar el historial crediticio del cliente Si el cliente es solvente, entregar el pedido. En caso contrario, rechazarlo. Fin

Ejemplo 2.2 Genere un algoritmo que


sume los nmeros entre el 3 y el 30.

Inicio. Hacer SUMA igual cero. Establecer NUMERO igual a 3. Sumar NUMERO a SUMA. Incrementar NUMERO en 3 Si NUMERO es menor o igual que 30 ir a 4; si no imprimir a SUMA. Fin

Ejemplo 2.3 Genere un algoritmo que determine al mayor de tres nmeros enteros.

Inicio Leer los nmeros y guardarlos en NUM1, NUM2 y NUM3 respectivamente Comparar NUM1 y NUM2, el nmero mayor se guarda en AUX. Comparar AUX y NUM3, imprimir el nmero mayor. Fin.

Tarea 2.1 Disee un algoritmo para


determinar si un nmero es primo o no.

Tarea 2.2 Genere un algoritmo que


sume los nmeros entre el 2 y el 20.

Tarea 2.3 Genere un algoritmo que


sume los nmeros entre el 5 y el 50.

3. Los lenguajes programacin


Cuando

de

el procesador de datos es una computadora entonces el algoritmo de solucin se expresa en un programa. Por tanto, un programa es escrito en un lenguaje de programacin. Luego, la programacin consiste en expresar las operaciones en forma de programa de un algoritmo.

Tipos de lenguajes
Mquina; Bajo

escritos en cdigo binario.

nivel (ensamblador); escrito en nemotcnicos. nivel; diseados para ser entendidos por el ser humano.

Alto

Instrucciones bsicas

Entrada/Salida; transferencia de informacin entre dispositivos perifricos y memoria central. Aritmtico/Lgicas; ejecutan operaciones de stos tipos. Selectivas; seleccionan tareas en funcin de los resultados Repetitivas; permiten la iteracin de secuencias de instrucciones un nmero dado de veces

Traductores del Lenguaje


A)

Intrpretes; Toma un programa fuente lo traduce e inmediatamente lo ejecuta.


Traduccin y ejecucin en lnea

Programa fuente

Intrprete

Traductores (cont.)

del

Lenguaje

B) Compiladores; traduce un programa fuente a cdigo objeto.


Programa Objeto Programa ejecutable

Programa fuente

Compilador (Compiler)

Montador (Linker)

4. Datos, Tipos de Datos y Operaciones Primitivas

Un dato es la expresin general que describe los objetos con los cuales opera la computadora Los tipos son: simples (no estructurados) y compuestos (estructurados). Aquellos se subdividen en:

Numericos (integer, real) Lgicos (booleans) Carcter (char, string)

Datos primitivos
Datos

Numrico

Carcter

Lgico

Entero

Real

5. Constantes y Variables

Constantes: valores que durante la ejecucin de un programa no cambian su valor. Variables: valores que cambiarn durante la ejecucin del programa

6. Expresiones
Se

definen como una combinacin de constantes, variables, smbolos de operacin, parntesis, y nombres de funciones especiales. Una expresin consta de operandos y operadores. Las expresiones se clasifican en aritmticas, lgicas y carcter.

Expresiones aritmticas
Operador ** + * / Significado Exponenciacin Suma Resta Multiplicacin Divisin Tipo de operandos Entero o real Entero o real Entero o real Entero o real Real Tipo resultado Entero o real Entero o real Entero o real Entero o real Real

Div
Mod

Divisin entera
mdulo

Entero
Entero

Entero
Entero

Reglas de prioridad
Operador Parentesis Exponencial Multi, divide Div y mod Ms y menos Grfo ( ) ** *, / Div, mod +, -

Operadores de relacin
Expresin 1 Operador de relacin Expresin 2

Operador < > = <= >= <>,!=

Significado Menor Mayor Igual Menor o igual Mayor o igual Distinto

Operadores lgicos
Operador lgico Not And Or Expresin lgica Not p PyQ PoQ Significado Negacin Conjuncin disyuncin

7. Funciones Intrnsecas
Funcin Abs(x) Arctan(x) Cos(x) Exp(x) Ln(x) Log10(x) Round(x) Sin(x) Sqr(x) Sqrt(x) Trunc(x) Descripcin Absoluto Tangente inversa Coseno Exponencial Log neperiano Log decimal Redondeo Seno Cuadrado Raz cuadrada Truncamiento

8. Operacin de Asignacin
Es

la forma de darle valores tanto a variables como constantes, se representa con el smbolo

Tipos de asignacin
Aritmtica
Lgica Cadena

de carcteres

9. Entrada y salida de informacin

La operacin de lectura READ permite el ingreso de los datos necesarios para los clculos computacionales. La operacin de escritura WRITE imprime la informacin procesada por el programa y su respectivo algoritmo.

PROBLEMAS RESUELTOS CON COMPUTADORAS Y HERRAMIENTAS DE PROGRAMACION

11/09/2013

32

INDICE
OBJETIVO

SOLUCION

DE PROBLEMAS ANALISIS DEL PROBLEMA DISEO DEL ALGORITMO SOLUCION DEL PROBLEMA MEDIANTE COMPUTADORA REPRESENTACION GRAFICA DE ALGORITMOS PSEUDOCODIGO
11/09/2013 33

2.1 OBJETIVO

EXPONER

LOS CONOCIMIENTOS INDISPENSABLES PARA EL APRENDIZAJE DE LA PROGRAMACION.

11/09/2013

34

2.2 SOLUCION DE PROBLEMAS

Fases de fragmentacin:

Anlisis del problema: definicin concisa a fin de que sea analizado en todo detalle. Diseo del algoritmo: procedimiento, paso a paso, para la solucionar el problema dado. Solucin del algoritmo con la computadora: codificacin del algoritmo en un lenguaje de programacin
35

11/09/2013

2.3 ANALISIS DEL PROBLEMA


El

propsito es ayudar al programador a llegar a un cierto grado de comprensin de la naturaleza del problema.
buena definicin del problema, junto con una descripcin detallada de entrada y salida, son los requisitos ms importantes para una solucin eficaz.
36

Una

11/09/2013

2.3 ANALISIS DEL PROBLEMA cont.


1.

Que informacin debe proporcionar la solucin del problema.


Solucin del Problema

Anlisis del Problema

Diseo del algoritmo

Solucin por computadora

2.3 ANALISIS DEL PROBLEMA cont.


2. Que datos se necesitan para resolver el problema.
Anlisis del Problema Definicindel Problema Especificaciones de entrada Especificaciones de salida

2.3 ANALISIS DEL PROBLEMA cont.


Ejemplo:

leer los lados de un tringulo rectangulo e imprima la hipotenusa.


Entradas:

valores de los lados (variable LADO1 y variable LADO2). Salida: valor de la hipotenusa (variable LADO3). Variables: LADO1, LADO2 y LADO3 (tipo reales).

2.4 DISEO DEL ALGORITMO

La informacin proporcionada al algoritmo constituye su entrada y la informacin producida constituye su salida.

Los problemas complejos se resuelven eficazmente si se fragmentan en subproblemas que sean ms sencillos de solucionar que el original. Esta tcnica es conocida como divide y vencers (divide and conquer).

2.4 DISEO DEL ALGORITMO cont.


La

descomposicin del problema original en subproblemas cuya solucin puede implementarse a travs de la computadora se le denomina diseo descendente (top down design) La descripcin detallada de la solucin mediante pasos especficos se le denomina refinamiento del algoritmo (stepwise refinement).

2.4 DISEO DEL ALGORITMO cont.


Diseo del algoritmo Diseo descendente Refinamiento por pasos Herramientas de programacin diagramas de flujo -pseudocdigo

2.4 DISEO DEL ALGORITMO cont.


Ejemplo:

Determine a los nmeros menores que 90 y mltiplos de 9, as como su sumatoria.


Especificaciones de entrada TOTAL = 0 NUM = 9 LIMITE = 90 Especificaciones de salida NUM, TOTAL

Definicindel Problema Imprimir mltiplos de 9 y su suma siempre y cuando sea menor que 90

2.4 DISEO DEL ALGORITMO cont.


Diseo descendente Mltiplos de 9 Refinamiento por pasos a) Num=9 b) Print num c) Num <= 90 regresar a) Herramientas de programacin

d) Num=+9
Sumatoria Total=+num

2.4 DISEO DEL ALGORITMO cont.


1. 2. 3.

4.
5.

6.
7.

Inicio Total=0, Num=9, Limite=90 Print Num Total=Total+Num Si Num <= Limite entonces Num=Num+9 y regresar a 3 Print Total Fin

tarea
1. 2.

3.

Determine si una palabra es un palndromo. Determine el mximo comn divisor para dos nmeros enteros. Lea e imprima una serie de nmeros distintos de cero. El algoritmo terminar con un valor que no se debe imprimir . Finalmente obtenga la cantidad de valores ledos.

tarea
4. Imprima y sume la serie de nmeros mltiplos de 3 en el rango cerrado de 3 y 99. 5. Lea cuatro nmeros e imprima el mayor de ellos. 6. Calcule la superficie de un triangulo en funcin de la base y la altura.

2.5 SOLUCION DE PROBLEMAS MEDIANTE LA COMPUTADORA

Una vez diseado el algoritmo y representado mediante una herramienta de programacin se debe:
Solucin del Problema por Computadora

Codificacin del programa

Ejecucin del programa

Comprobacin del programa

2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS


1. 2.

Los mtodos usuales para representarlo son: Diagrama de flujo Lenguaje de especificacin de algoritmo

2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS cont

2.7 PSEUDOCODIGO
Es

un lenguaje de especificacin de algoritmos que permite una codificacin rpida y simple. Su ventaja radica en que el programador no debe preocuparse por la sintaxis de un lenguaje de programacin en particular. Utiliza palabras sencillas de entender para codificar programas.

ESTRUCTURA DE UN
PROGRAMA

Concepto de Programa
Conjunto de instrucciones que producirn la ejecucin de una determinada tarea. Esencialmente es un medio para lograr un fin.

PROCESO DE PROGRAMACION
Consiste en la solucin de problemas y el desarrollo de programas

Fases del proceso de programacin

Definicin y anlisis del problema. Diseo de algoritmos:


Diagrama de flujo. Diagrama (N-S). Pseudocdigo

Codificacin del programa. Depuracin y verificacin del programa. Documentacin. Mantenimiento.

Partes de un programa
concepto de caja negra
Entrada Algoritmo Salida

Tipos de Instrucciones
(acciones que resuelven un problema)
De

inicio / fin. De asignacin. De lectura, De escritura. De bifurcacin.

Elementos bsicos de un programa

Palabras reservadas. Identificadores (nombres de variables). Caracteres especiales. Constantes. Variables. Expresiones. instrucciones.

Otros elementos

Iteraciones, Contadores, Acumuladores, Interruptores, Estructuras: Secuenciales, Selectivas, Repetitivas.

Iteraciones
Es el segmento de un algoritmo o programa, cuyas instrucciones se repiten un nmero determinado de veces mientras se cumple una determinada condicin. Sus partes son: decisin cuerpo del bucle salida

Contadores

Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante en cada iteracin.

Acumuladores

Un Acumulador es una variable cuya misin es almacernar cantidades distintas resultantes de sumas sucesivas.

Interruptores

Un interruptor ( conmutador, bandera, flag) es una variable que puede tomar diversos valoresdurante la ejecucin de un programa y que permite comunicar informacin desde una parte a otra del mismo.

Componentes de un algoritmo
Algoritmo
Cabecera del programa Seccin de declaracin Seccin de acciones

PROGRAMACIN ESTRUCTURADA

Tcnicas de Programacin...
modular: Descomposicin del problema en mdulos.
estructurada: Programacin de cada mdulo mediante mtodos estructurados.
Programacin

Programacin

Caractersticas de la programacin modular

Todo programa tiene un mdulo principal. Dicho mdulo primario se divide en submdulos, que a su vez ejecutan una tarea nica y podrn codificarse de manera independiente de cualquier otra actividad. Sin embargo, al finalizar su funcin devolvern el control al mdulo principal. Esta independencia alude a que ningn otro mdulo podr accesarlo directamente, a excepcin de sus propios subsubmdulos y al mdulo principal.

Consideraciones .

La descomposicin de un programa podra implemetarse as:


Mdulo principal. Submdulo impresin de ttulos Submdulo de lectura de datos Submdulo ejecucin de procesos Submdulo impresin de resultados

Caractersticas de la programacin estructurada


Conjunto

de tcnicas que reducen el tiempo requerido para escribir, verificar, depurar y mantener los programas. Mediante el uso de:
recursos abstractos, diseo descendente, estructuras bsicas.

Recursos Abstractos

Consiste en descomponer una determinada accin compleja en un nmero de acciones ms simples, capaces de ser ejecutada por una computadora y sus respectivas instrucciones.

Diseo Descendente
TOP-DOWN DESIGN

Esta metodologa efecta una relacin de refinamiento entre las distintas etapas de estructuracin, de modo que se relacionen unas con otras, mediante entradas y salidas de informacin. Descompone el problema en etapas o estructuras jerrquicas, de modo que se pueda considerar cada estructura desde dos puntos de vista: qu hace y cmo lo hace

Diseo Descendente
Desde el exterior ..

Diseo Descendente
Desde el interior ..

Estructuras bsicas
Teorema de la programacin estructurada:

Un programa propio es aquel que cumple las siguientes caractersticas: secuenciales, selectivas, y repetitivas. posee un solo punto de entrada y salida. se puede recorrer toda la estructura del programa modular. todas las instrucciones son ejecutables y no existen bucles infinitos.

Instrucciones Secuenciales

Instruccin Selectiva Simple

Instruccin Selectiva Compuesta

Instruccin Selectiva Mltiple

Instruccin Repetitiva While

Instruccin Repetitiva Repeat

Instruccin Repetitiva For

FIN