Sie sind auf Seite 1von 25

Algoritmos y Programacin

Unidad I
Introduccin a la resolucin
de problemas por
computadora

Introduccin
Desde un punto de vista simple, una computadora
procesa datos y los convierte en informacin
significativa.
Datos
Son hechos en bruto (No sirven
de nada por si
solos).
Informacin Son datos procesados.
Datos

Computadora

Informacin
Salida

Entrada
Proceso

Modelo fundamental de datos

Introduccin
Organizacin de una
computadora
Rol de un programa dentro de una
computadora?
Un programa es una conjunto de instrucciones detalladas que
indican a la computadora lo que ha de hacer.
La computadora no puede hacer nada sin un programa.
Los programas modernos producen informacin en muchos
formatos. Por lo tanto los datos de entrada y salida pueden ser
cualquier cosa texto, dibujo, sonidos, etc..
3

Programas
Un

programa es un conjunto de instrucciones que


controlan a una computadora.
El

proceso de escritura de un programa, se


denomina programacin y el conjunto de
instrucciones que se pueden utilizar para construir
un
programa
se
denomina
lenguaje
de
programacin.
Programa

Datos

Computadora

Salida

Software (Programas)
Las operaciones que debe realizar el hardware son especificadas
por una lista de instrucciones, llamadas programas o software.
El software se divide en dos grandes grupos: Software de
Sistema y Software de Aplicaciones.

Software de Sistema: son los indispensables para que la


mquina funcione. Estos programas son, bsicamente, el
sistema operativo (Windows, Linux, etc.).
Software de Aplicaciones: son programas que funcionan
sobre el sistema operativo y permiten la realizacin de
diversas tareas.
5

Programas
Lenguajes de Programacin
Los lenguajes de programacin sirven para escribir
programas que permitan la comunicacin usuario/maquina.
Unos programas especiales llamados traductores
convierten las instrucciones escritas en lenguajes de
programacin en instrucciones escritas en lenguaje de
maquina ( 0 y 1, bits) que sta pueda entender.
Programas de Aplicacin
Programas del Sistema

Se debe diferenciar entre el acto


de crear un programa y la
accin de la computadora
cuando ejecuta las instrucciones
6
del programa.

Programas
Lenguajes de
Programacin

Los lenguajes de computadoras permiten a las


personas escribir en un lenguaje que sea ms
apropiado a las caractersticas
humanas y se
puedan traducir al lenguaje de mquina de
diferentes tipos de mquinas.
Los tipos de lenguajes son tres:

Lenguaje de Mquina.
Lenguaje de bajo nivel (ensamblador).
Lenguajes de alto nivel.

Programas
Lenguajes de
Programacin
LENGUAJE DE MAQUINA
Son

aquellos que estn escritos en lenguajes directamente


entendible por la mquina (computadora), ya que sus
instrucciones son cadenas binarias que especifican una operacin
y las posiciones de memoria implicadas.
Las

instrucciones en lenguaje de maquina dependen del hardware


de la computadora y, por tanto, diferirn de una computadora a
otra.

Ventaja
Ventaja
Nohay
hayproceso
procesode
detraduccin
traduccin
- -No

Desventajas
Desventajas
-DificultadyyLentitud
Lentituden
enlalacodificacin.
codificacin.
-Dificultad
-Pocafiabilidad.
fiabilidad.
-Poca
-Dificultad grande
grande de
de verificar
verificar yy poner
poner aa
-Dificultad
puntolos
losprogramas.
programas.
punto
8
-Dependende
delalamaquina
maquinaen
enparticular
particular
-Dependen

Programas
Lenguajes de
Programacin
LENGUAJE DE BAJO NIVEL
Son ms fciles de utilizar que los lenguajes de
mquina.
El lenguaje de bajo nivel por excelencia es el
ensamblador (assembly). Las instrucciones en
lenguaje
ensamblador
son
conocidas
como
nemotcnicos. Los nemotcnicos tpicos de
MOV AX, DS son: ADD, SUB, DIV, etc.
operaciones aritmticas
MOV ES, AX
MOV DX,
AX P(equivalente Mquina) 0110
Ejemplo: ADD, M,
N,
AL, DH
1001 1010 1011 MOV
ADD AX, BX ; Sumara AX y BX y lo guardara en AX

ADD [AX], BX

; Suma el contenido de la direccin de AX a BX,


; Y se almacena en la direccin de AX
ADD AX, [BX]
; Se suman AX y el contenido de la direccin de
; BX, y se almacena sta suma en AX
ADD AX, 3 ; Lo mismo pero utilizando un valor inmediato
; En vez de la BX sealada anteriormente.
SUB CL, DL ; Resta de CL el valor de DL, y se almacena en CL
SUB [CX], DX
; Se resta al contenido de la direccin de CX 9
;el valor de DX, y se almacena en la dir. de CX
SUB CX, 23h

Programas
Lenguajes de
Programacin
LENGUAJE DE BAJO NIVEL
Un programa escrito en este lenguaje no puede ser
ejecutado directamente por la computadora.

Ventaja
Ventaja
Mayorvelocidad
velocidadde
decalculo
calculo
- -Mayor

Desventajas
Desventajas
-Dependenciatotal
totalde
delalamquina.
mquina.Lenguajes
Lenguajes
-Dependencia
distintospara
paradiversas
diversasmaquinas.
maquinas.
distintos
-Formacinde
delos
losprogramadores
programadoresms
ms
-Formacin
compleja(Conocimientos
(Conocimientosdel
delinterior
interiorde
delala
compleja
maquina).
maquina).

10

Programas
Lenguajes de
LENGUAJE
DE ALTO NIVEL
Programacin
Este

tipo de lenguajes son los mas utilizados por los


programadores. Estn diseados para que las
programadores escriban y entiendan los programas de
un modo mucho mas fcil.
Los programas que se realizan con estos lenguajes son
independientes de la maquina (Los
hace muy portables).
Ventajas
Desventajas

Ventajas
-Tiempo
de
formacin
de
los
-Tiempo
de
formacin
de
los
programadoreses
esrelativamente
relativamentecorto.
corto.
programadores
-La escritura
escritura de
de programas
programas se
se basa
basa en
en
-La
reglaslingsticas.
lingsticas.
reglas
-Modificaciones yy Puestas
Puestas apunto
apunto mas
mas
-Modificaciones
simples.
simples.
-Reduccindel
delcoste
costede
delos
losprogramas.
programas.
-Reduccin
-Portabilidad.
-Portabilidad.

Desventajas
-Incremento
-Incremento
necesitarse
necesitarse
programa.
programa.

del tiempo
tiempo
del
diferentes
diferentes

de traduccion,
traduccion, alal
de
traducciones del
del
traducciones

-Nose
seaprovechan
aprovechanlos
losrecursos
recursosinternos
internosde
de
-No
maquina.
lalamaquina.
-Aumentode
delalaocupacin
ocupacinde
dememoria.
memoria.
-Aumento
-Tiempode
deEjecucin
Ejecucinmucho
muchomayor.
mayor.
-Tiempo

11

Programas
Traductores
Al igual que los lenguajes ensambladores, los
programas fuentes tienen que ser traducidos por los
programas traductores, llamados en este caso
compiladores e intrpretes
Programa fuente
Programa fuente
Interprete

Compilador

Traduccin y
ejecucin
lnea a lnea

Programa Objeto

12

Resolucin de
problemas con
computadores
Los computadores se utilizan hoy

da en innumerables
reas cientficas para resolver problemas, aunque, son
incapaces de resolver el problema por s mismos.
Es necesario que una persona (el programador) sea
capaz de analizar el problema a resolver y disee un
programa. Dicho programa ser ejecutado por el
computador y producir la solucin al problema buscado.
Existen distintas tcnicas y herramientas de las que
dispone un programador para analizar un problema y
generar un mtodo para solucionarlo susceptible de ser
utilizado por un computador. A dicho mtodo es lo que
llamaremos algoritmo.
13

Algoritmo
La

principal razn por la que las personas aprenden a


programar es para utilizar el computador como una
herramienta para la resolucin de problemas.
Ayudado

por un computador, la obtencin de la


solucin a un problema se puede dividir en dos fases:

Fase de resolucin del problema.


Fase de implementacin del problema

14

Algoritmo
Es muy importante tener claro que los
algoritmos
son
completamente
INDEPENDIENTES tanto del lenguaje de
programacin en que se implementaran y el
computador donde se ejecutarn.

15

Algoritmo
Caractersticas de un
Algoritmo
Todo algoritmo ha de cumplir necesariamente, las
caractersticas:

siguientes

Precisin: el algoritmo debe indicar el orden de


realizacin de cada accin de forma clara y sin
ambigedades. Adems, el algoritmo debe ser concreto
en el sentido de contener slo el nmero de pasos precisos
para llegar a la solucin (no deben haber pasos de ms).
Repetitividad: el algoritmo debe poder repetirse tantas
veces como se quiera, alcanzndose siempre los mismos
resultados para una misma entrada, independientemente
del momento de ejecucin.
Finito: el algoritmo debe terminar en algn momento.

16

Algoritmo
Caractersticas de un
Algoritmo
Considerando lo anterior, no toda secuencia ordenada
pasos a
seguir puede considerarse como un algoritmo.

de

Ejemplo: Una receta para preparar un determinado plato, no


es un algoritmo, ya que:

NO es repetible, pues para las mismas entradas


(ingredientes) no se garantizan los mismos resultados.
NO es preciso, ya que en una receta concreta no se
suelen especificar los grados de temperaturas exactos,
tipos de recipientes, calidad o tipo de ingredientes,

17

Algoritmo
Fases detalladas de resolucin de
problemas
1) Anlisis del problema
2) Diseo del algoritmo
3) Verificacin del algoritmo
4) Codificacin
5) Compilacin y Ejecucin

18

Algoritmo
Fase de resolucin de un
problema
Est fase incluye, el anlisis del problema as como el diseo y la

verificacin del algoritmo.


Anlisis del Problema
Se

debe examinar cuidadosamente el problema a fin de obtener


una idea clara sobre lo que se solicita y determinar los datos
necesarios para conseguirlos.
Diseo del algoritmo
Para

disear un algoritmo se debe comenzar por identificar las


tareas ms importantes para resolver el problema y disponerlas en
el orden en que han de ser ejecutadas.

19

Algoritmo
Fase de resolucin de un
problema

Diseo

del Programa
En un algoritmo se deben considerar tres partes:

Entrada: Datos dados al algoritmo.


Proceso: Operaciones o clculos necesarios para
encontrar la solucin del problema.
Salida: Resultados finales de los clculos.

20

Algoritmo
Fase de resolucin de un
problema
Diseo
del Programa

Ejemplo:

Se desea desarrollar un algoritmo que calcule el


promedio final de un alumno de algoritmos y programacin.
Lo primero que debera hacer es plantearse las siguientes
preguntas:
Especificacionesde
deEntrada
Entrada
Especificaciones
-Qudatos
datosson
sonde
deentrada?
entrada?
-Qu
-Cuntosdatos
datosse
seintroducirn?
introducirn?
-Cuntos
-Cuntosson
sondatos
datosde
deentrada
entradavlido?
vlido?
-Cuntos

Especificacionesde
deSalida
Salida
Especificaciones
-Culesson
sonlos
losdatos
datosde
desalida?
salida?
-Cules
-Cuntosdatos
datosde
desalida
salidase
seproducirn?
producirn?
-Cuntos
-Sedebe
debeimprimir
imprimiruna
unacabecera?
cabecera?
-Se

Sedefinen
definenprocesos
procesospara
paraTransformar
Transformardatos
datos
Se
deentrada
entradaen
endatos
datosde
desalida.
salida.
de
21

Algoritmo
Fase de resolucin de un
problema

Diseo

del Programa

Ejemplo:

Resultado Calculo Promedio.

Especificacionesde
deEntrada
Entrada
Especificaciones
nota11
- -nota

Especificacionesde
deSalida
Salida
Especificaciones
-valorde
depromedio
promedio
-valor

nota22
- -nota
nota33
- -nota
Nota44
- -Nota

Proceso:
Proceso:
promedio==(nota1+nota2+nota3+nota4)/4
(nota1+nota2+nota3+nota4)/4
promedio

22

Algoritmo
Fase de resolucin de un
problema

Verificacin

de Algoritmos

Una

vez que se ha terminado de escribir un algoritmo es


necesario comprobar que realiza las tareas para las que se ha
diseado y produce el resultado correcto y esperado.
El

modo ms normal de comprobar un algoritmo es mediante su


ejecucin manual, usando datos significativos que abarquen todo
el posible rango de valores y anotando en una hoja de papel las
modificaciones que se realizan en cada fase (ruteo de algoritmos).
Una

vez que el algoritmo est diseado, representado mediante


un mtodo (Diagrama de Flujo de Datos o Pseudocdigo) y
verificado se debe pasar a la fase de codificacin.

23

Ejemplo
Algoritmo para calcular la compra de un cliente en un
supermercado
Inicio
asignar 0 a total
mientras haya productos
leer precios y unidades
asignar el total la expresin precio * unidades
Datos
deSalida:
Salida:Total
Total
Datos
de
escribir
total
Datosde
deEntrada:
Entrada:Precio,
Precio,Unidades
Unidades
Datos
fin
DatosAuxiliares:
Auxiliares:Importe
Importe
Datos
Proceso:
Proceso:
Porcada
cadaproducto
productode
delalacompra,
compra,se
seleer
leerelelprecio
preciodel
delproducto
productoyyse
secalcular
calcularelelimporte
importe
Por
mediantelalaexpresin
expresinprecio
precio* *unidades.
unidades.Una
Unavez
vezcalculado
calculadoelelimporte
importese
seacumular
acumular
al total
mediante
24al total
que,previamente,
previamente,se
sehabr
habrinicializado
inicializadoaa0.0.ElElproceso
procesocontinuar
continuarmientras
mientraselelcliente
clientetodava
todava
que,
tengaproductos.
productos.
tenga

Ejercicios
Realice un algoritmo para:
Calcular el IMC de una persona
Indicar cuantos segundos, minutos y horas
tiene un ao.
Calcular el promedio de notas de un alumno
de la asignatura Algoritmos y Programacin,
indicndole si da o no examen.
Indicar si una persona es nio(010),adolescente(11-16), joven (17 a 25) o
adulto(26 o mas), sabiendo su edad.
Indicar cuantos dolares son una cierta
cantidad de pesos.
25

Das könnte Ihnen auch gefallen