Está en la 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
datos
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 de los algoritmos


Preciso
Indicar el orden de cada paso.
Definido
El mismo resultado se obtendr
ejecutar el algoritmo n ocasiones.
Finito
Deber terminar en algn momento.

al

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 1
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 de programacin

Cuando 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; escritos en cdigo binario.
Bajo nivel (ensamblador); escrito en
nemotcnicos.
Alto nivel; diseados para ser entendidos
por el ser humano.

Estructuras 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.

Programa fuente

Intrprete

Traduccin
y ejecucin
en lnea

Traductores del Lenguaje (cont.)


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

Compilador
(Compiler)

Programa
Objeto

Programa
ejecutable
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

Entero

Carcter

Real

Lgico

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

Tipo de operandos

Tipo resultado

**

Exponenciacin

Entero o real

Entero o real

Suma

Entero o real

Entero o real

Resta

Entero o real

Entero o real

Multiplicacin

Entero o real

Entero o real

Divisin

Real

Real

Div

Divisin entera

Entero

Entero

Mod

mdulo

Entero

Entero

Reglas de prioridad
Operador
Parentesis
Exponencial

Grfo
( )
**

Multi, divide

*, /

Div y mod

Div, mod

Ms y menos

+, -

Operadores de relacin
Expresin 1

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

Operador de
relacin

Expresin 2

Significado
Menor
Mayor
Igual
Menor o igual
Mayor o igual
Distinto

Operadores lgicos
Operador lgico

Expresin lgica

Significado

Not

Not p

Negacin

And

PyQ

Conjuncin

Or

PoQ

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
Asignacin

de

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/04/14

32

INDICE
OBJETIVO
SOLUCION DE PROBLEMAS
ANALISIS DEL PROBLEMA
DISEO DEL ALGORITMO
SOLUCION DEL PROBLEMA MEDIANTE
COMPUTADORA
REPRESENTACION GRAFICA DE
ALGORITMOS
PSEUDOCODIGO
11/04/14

33

2.1 OBJETIVO

EXPONER LOS CONOCIMIENTOS


INDISPENSABLES PARA EL
APRENDIZAJE DE LA PROGRAMACION.

11/04/14

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

11/04/14

35

2.3 ANALISIS DEL PROBLEMA

El propsito es ayudar al programador a


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

11/04/14

36

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.
Definicindel
Problema

Especificaciones
de entrada

Especificaciones
de salida

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

TOTAL = 0
NUM = 9
LIMITE = 90

NUM, TOTAL

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)
d) Num=+9

Sumatoria

Total=+num

Herramientas de
programacin

2.4 DISEO DEL ALGORITMO


cont.
1.
2.
3.
4.
5.

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

tarea
1. Determine si una palabra es un
palndromo.
2. Determine el mximo comn divisor para
dos nmeros enteros.
3. 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
Los mtodos usuales para representarlo
son:
1. Diagrama de flujo
2. 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...
Programacin modular: Descomposicin
del problema en mdulos.
Programacin estructurada: Programacin
de cada mdulo mediante mtodos
estructurados.

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

También podría gustarte