Vous êtes sur la page 1sur 52

TECNOLGICO NACIONAL DE MXICO

Instituto Tecnolgico Superior de Acayucan

Docente: MTI Isabel Cristina Arias


Salinas

FUNDAMENTOS DE
PROGRAMACIN
Competencia Especfica de la
Asignatura

Aplica algoritmos y
lenguajes de programacin
para disear e implementar
soluciones a problemticas
del entorno.
UNIDAD I

DISEO DE
ALGORITMO
S
SUBTEMAS
1.1 Conceptos
Bsicos 1.2
Anlisis de problemas
y Representacin de
algoritmos: grfica y
pseudocdigo.
1.3 Diseo de
algoritmos aplicados
a problemas.
1.4 Diseo
algortmico de
funciones
Competencia especfica a
desarrollar

Comprende y aplica los conceptos bsicos,


nomenclatura y herramientas para el diseo de
algoritmos orientado a la resolucin de
problemas.
CRITERIOS DE EVALUACIN

Prcticas 30 %
Ejercicios 40 %
Resumen 20 %
Investigacin 10
%
BIBLIOGRAFA O REFERENCIAS DE
INTERNET

Luis Joyanes Aguilar


Fundamentos de
Programacin
Ed. Prentice Hall.

Jess J. Garca Molina


Introduccin a la
programacin un Enfoque
Algortmico
Ed. Paraninfo.
1.2 Metodologa para la
solucin de problemas basados
a computadora
Definicin
del
Problema
Anlisis
Mantenimien
del
to
Problema

Documentaci Diseo del


n Algoritmo

Prueba y
Codificaci
Depuraci
n
n
1. Definicin del problema

Esta fase est dada por el


enunciado del problema,
el cual requiere una
definicin clara y precisa.
Es importante que se
conozca lo que se desea
que realice la
computadora; mientras
esto no se conozca del
todo no tiene mucho caso
continuar con la siguiente
etapa
2. Anlisis del problema
El primer paso a seguir para
encontrar la solucin a un problema
computable es el anlisis del
problema.
El anlisis consiste en estudiar
el problema planteado para obtener
una idea clara y concisa sobre lo que
se desea obtener como resultado,
los datos de entrada de los que se
parte y la forma en que estos datos
iniciales van a llegar a la
computadora. Igualmente debe
estudiarse el tratamiento que se ha
de realizar con dichos datos, as
como la informacin que se desea
obtener como resultado y de qu
manera debe presentarse.
Anlisis del problema

Despus de analizar el
problema, se han de conocer
claramente tres cosas:

1) Datos de Entrada de que se


dispone. Para poder definir estos
datos se debe responder a la
pregunta Qu datos se necesitan?

2) Informacin de Salida
deseada. Para ello se debe
responder a Qu se quiere obtener?

3) Tratamiento que ha de
realizarse con estos datos (mtodos y
formulas). En este caso, se necesita
responder a la pregunta Cmo se
Consideraciones

En el anlisis del problema


se requiere del mximo de
creatividad e imaginacin.

Debido a que se busca una


solucin se debe examinar
cuidadosamente el problema a
fin de identificar que tipo de
informacin es necesaria
producir. En seguida se deben
identificar aquellos elementos
de informacin ofrecidos por
el problema y que resulten
tiles para obtener la solucin
al problema
3. Diseo del Algoritmo

Un algoritmo puede ser definido como la


secuencia ordenada de pasos, sin
ambigedades, que conducen a la
solucin de un problema dado y puede
ser expresado en lenguaje natural, por
ejemplo el castellano.

Es un conjunto finito de pasos ordenados


que nos sirven para llegar a la solucin
de un problema.
Caractersticas de los algoritmos

Esto es, se debe indicar el


Preciso orden de ejecucin de
cada paso.

Si se sigue un algoritmo varias


Definid veces proporcionndole los
mismos datos, se deben
o obtener siempre los mismo
resultados.

Al seguir el algoritmo, ste

Finito debe de terminar en algn


momento, es decir tener un
nmero finito de pasos.
Consideraciones en un Algoritmo

Entra Informacin dada al algoritmo.


da
Operaciones o clculos
Proces necesarios para encontrar la
o solucin del problema.

Respuestas dadas por el


algoritmo o resultados finales de
Salida los clculos.
Formas de presentar un algoritmo

Es la representacin
Grfic grfica
operaciones
de las
que
os realiza un algoritmo
(Diagrama de flujo).

No Representa en forma
descriptiva las
grfic operaciones
debe realizar
que
un
os algoritmo.
(Pseudocdigo).
A) Diagrama de flujo

El Diagrama de Flujo es
una representacin
grfica de la secuencia
de pasos que se realizan
para obtener un
resultado.

Un diagrama de flujo
muestra la lgica de un
algoritmo, haciendo
nfasis en los pasos
individuales y sus
interrelaciones.
Reglas

Los Diagramas de flujo deben No deben quedar lneas de flujo


escribirse de arriba hacia sin conectar.
abajo, y/o de izquierda a Solo los smbolos de decisin
derecha. pueden y deben tener mas de
Los smbolos se unen con una lnea de flujo de salida.
lneas, las cuales tienen en la Todo texto escrito dentro de un
punta una flecha que indica la smbolo debe ser legible, preciso,
direccin que fluye la evitando el uso de muchas
informacin procesos, se palabras.
Se debe evitar el cruce de
deben de utilizar solamente lneas, para lo cual se quisiera
lneas de flujo horizontal o separar el flujo del diagrama a
verticales (nunca diagonales). un sitio distinto, se pudiera
realizar utilizando los
Todos los smbolos pueden tener
conectores. Se debe tener en
ms de una lnea de entrada, a
cuenta que solo se van a utilizar
excepcin del smbolo final.
conectores cuando sea
estrictamente necesario.
Smbolos

Inicio / Fin
Disco
Magntic
o
Proceso

Conecto
r
Decisi
n

Entrada y
Conect
salida de
or
datos

Impresin Lneas de
conexin y
direccin del flujo
Ejemplo No. 1

Inicio 1

Primer Num2
Numero
Realizar el
diagrama de
flujo de la suma Num1 Suma Num1 + Num2

de dos nmeros.
La suma
Segundo de los
Numero nmeros
es, Suma

1 Fin
Ejemplo No. 2

Inicio

Calificaci
Realizar un n

diagrama de
flujo que Cal

indique si un
alumno est V
F Cal>
aprobado o 70
reprobado.
Reprobad Aprobado
o

Fin
B) Pseudocdigo
Es una de las maneras para
representar algoritmos usando la forma
narrada o descriptiva para cada uno de
los pasos del algoritmo.

La palabra Pseudocdigo significa


falso cdigo porque realmente no es un
cdigo, es decir no son instrucciones
escritas en un lenguaje de
programacin, sino que es una forma
sencilla de describir la solucin de un
problema utilizando el lenguaje natural;
el espaol o el ingles de tal forma que su
trascripcin a un lenguaje de
programacin de alto nivel sea lo mas
sencillo para quien esta aprendiendo a
Reglas

Todo pseudocdigo comienza Se escribir en minscula,


con la palabra Inicio y excepto aquellos nombres que
termina con la palabra Fin. elige el programador, como son
los nombres de variables, de
ficheros, de mdulos, etc., que
se escribirn con maysculas.
Cada instruccin se debe
escribir en una lnea. Cada estructura utilizada tendr
un solo punto de comienzo y un
solo punto de fin de estructura.
Para su descripcin, se utilizan Algunos autores suelen utilizar
una serie de palabras un corchete para unir el principio
reservadas: Inicio, fin, si, y fin de cada estructura.
entonces, si no, fin-si, mientras,
etc.
Ejemplo No. 1

INICIO
Escribir Dame el primer nmero
Leer Num1
Escribir Dame el segundo
Obtener la suma
nmero
de dos nmeros
Leer Num2
enteros.
Suma Num1 + Num2
Escribir La suma de los dos
nmeros es , Suma
FIN
Ejemplo No. 1

INICIO
Escribir Introduzca la base
Leer bas
Escribir Introduzca la altura
Calcular el rea Leer alt
de un triangulo. are bas*alt / 2
Escribir El rea es , are
FIN
4.- Codificacin

La codificacin es la
operacin de escribir la
solucin del problema (de
acuerdo a la lgica del
diagrama de flujo o
pseudocdigo), en una serie
de instrucciones detalladas, en
un cdigo reconocible por la
computadora, la serie de
instrucciones detalladas se le
conoce como cdigo fuente, el
cual se escribe en un lenguaje
de programacin o lenguaje de
alto nivel.
5.- Prueba y Depuracin
Los errores humanos dentro de la
programacin de computadoras son
muchos y aumentan considerablemente
con la complejidad del problema. El
proceso de identificar y eliminar errores,
para dar paso a una solucin sin errores
se le llama depuracin.

La depuracin o prueba resulta una


tarea tan creativa como el mismo
desarrollo de la solucin, por ello se
debe considerar con el mismo inters y
entusiasmo.

Resulta conveniente observar los


siguientes principios al realizar una
depuracin, ya que de este trabajo
depende el xito de nuestra solucin.
6.- Documentacin

Es la gua o comunicacin
escrita es sus variadas formas,
ya sea en enunciados,
procedimientos, dibujos o
diagramas.
A menudo un programa escrito
por una persona, es usado por
otra. Por ello la documentacin
sirve para ayudar a
comprender o usar un
programa o para facilitar
futuras modificaciones
(mantenimiento).
La Documentacin se divide en:

Son los comentarios o mensaje que se aaden al


cdigo fuente para hacer mas claro el entendimiento
Interna de un proceso.

Se define en un documento escrito los siguientes


puntos: Descripcin del problema, Nombre del autor,
diagrama de flujo, cdigo fuente.
Externa

Describe paso a paso la manera como funciona el


programa, con el fin de que el usuario obtenga el
Manual de resultado deseado.
usuario
7.- Mantenimiento

Se lleva acabo despus de


terminado el programa,
cuando se detecta que es
necesario hacer algn cambio,
ajuste o complementacin al
programa para que siga
trabajando de manera
correcta. Para poder realizar
este trabajo se requiere que el
programa este correctamente
documentado.
1.3 Entidades primitivas para el
desarrollo de algoritmos.

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 conjunto de valores
que puede tomar una
variable.
Tipos de Datos Simples

Datos
Datos Numricos Datos Lgicos
Alfanumricos
Permiten Son aquellos Es una
representar que solo secuencia de
valores pueden tener caracteres
escalares de dos valores alfanumricos
forma (cierto o falso) que permiten
numrica, esto ya que representar
incluye a los representan el valores
nmeros resultado de identificables
enteros y los una de forma
reales. Este tipo comparacin descriptiva,
de datos entre otros esto incluye
permiten datos nombres de
realizar (numricos o personas,
operaciones alfanumricos). direcciones,
aritmticas etc.
comunes.
Expresiones

Cada expresin toma un


Las expresiones son valor que se determina
combinaciones de tomando los valores de las
constantes, variables, variables y constantes
smbolos de operacin, implicadas y la ejecucin
parntesis y nombres de de las operaciones
funciones especiales. Por indicadas.
ejemplo: Una expresin consta
de operadores y
a+(b + 3)/c
operandos.
Operadores y Operandos
Operadores:

Son elementos que relacionan de forma diferente, los valores


de una o ms variables y/o constantes. Es decir, los
operadores nos permiten manipular valores.

Aritmtico Relacional
s es Lgicos
Tipos de Operadores
Operadores Aritmticos
Los operadores Operadores
aritmticos permiten la Aritmticos
realizacin de
+ Suma
operaciones
matemticas con los - Resta
valores (variables y * Multiplicacin
constantes). / Divisin
Los operadores
Mod Modulo
aritmticos pueden ser
utilizados con tipos de (residuo de la
datos enteros o reales. divisin entera)
Si ambos son enteros,
el resultado es entero;
si alguno de ellos es
real, el resultado es
real.
Tipos de Operadores
Operadores Relacionales
Operadores Relacinales
Se utilizan para
establecer una relacin > Mayor que
entre dos valores. < Menor que
Compara estos valores > = Mayor o igual que
entre si y esta < = Menor o igual que
comparacin produce < > Diferente
un resultado de certeza = = Igual
o falsedad (verdadero o
falso).
Los operadores
relacinales comparan
valores del mismo tipo
(numricos o cadenas)
Tipos de Operadores
Operadores
Lgicos
Operadores
Estos operadores Lgicos
se utilizan para
establecer And Y
relaciones entre Or O
valores lgicos. Not Negacin
Estos valores
pueden ser
resultado de una
expresin
relacional.
Prioridad de los Operadores

1.- ( )
2.- ^
3.- *, /, Mod, Not
4.- +, -, And
5.- >, <, > =, < =, < >, =, Or
Identificadores
1.- Debe comenzar con una letra
Los identificadores (A a Z, maysculas o
representan los datos minsculas) y no deben
de un programa contener espacios en blanco.
(constantes,
variables, tipos de
datos). Un 2.- Letras, dgitos y caracteres
identificador es una como la subraya ( _ ) estn
secuencia de Regla permitidos despus del primer
s: carcter.
caracteres que sirve
para identificar una
posicin en la
memoria de la
computadora, que 3.- La longitud de identificadores
nos permite accesar puede ser de hasta 8 caracteres.
a su contenido.
Constantes

Una constante es un dato


numrico o alfanumrico que
no cambia durante la
ejecucin del programa.
Ejemplo:
pi = 3.1416
Variables
Es un espacio en la memoria de la
computadora que permite
almacenar temporalmente un
dato durante la ejecucin de un
proceso, su contenido puede
cambia durante la ejecucin del
programa. Para poder reconocer Las variables
una variable en la memoria de la son : radio,
computadora, es necesario darle area y la
un nombre con el cual podamos constate es pi
identificarla dentro de un
algoritmo.

Ejemplo:

area = pi *
radio ^ 2
Clasificacin de las variables

Variables

Por su
Por su
conteni
uso
do
De
Numric Lgica Alfanumri Contado Acumulad
Trabaj
as s cas String res ores
o
Por su contenido
Numricas Lgicas Alfanumricas
Son aquellas en Son aquellas que Est formada por
las cuales se solo pueden caracteres
almacenan tener dos valores alfanumricos
valores (cierto o falso) (letras, nmeros
numricos, estos y caracteres
positivos o representan el especiales).
negativos, es resultado de una
decir almacenan comparacin Ejemplo:
nmeros del 0 al entre otros letra=a
9, signos (+ y -) datos.
y el punto
decimal. apellido=Lpez

Ejemplo: direr=Av.
Libertad #190
iva=0.15
pi=3.1416
costo=2500
Por su uso
Variables de
Contadores Acumuladores
Trabajo
Variables que Se utilizan Forma que
reciben el para llevar el toma una
resultado de control del variable y que
una operacin nmero de sirve para
matemtica ocasiones en llevar la suma
completa y que se realiza acumulativa
que se usan una operacin de una serie
normalmente o se cumple de valores
dentro de un una condicin. que se van
programa. Con los leyendo o
incrementos calculando
generalmente progresivame
de uno en nte.
uno.
Estructuras Algortmicas

Estructuras
algortmica
s
Secuencial Condicion Cclic
es ales as
Asignaci Simpl Hacer Hacer Repetir
Entrada Salida Mltiples
n es para Mientras Hasta
Estructuras Secuenciales

La estructura secuencial es aquella en la que una accin


(instruccin) sigue a otra en secuencia. Las tareas se suceden
de tal modo que la salida de una es la entrada de la siguiente
y as sucesivamente hasta el fin del proceso. Una estructura
secuencial se representa de la siguiente forma:
Inicio
Accion1
Accion2
.
.
AccionN
Fin

Asignacin

La asignacin consiste, en el paso de valores o resultados a


una zona de la memoria. Dicha zona ser reconocida con el
nombre de la variable que recibe el valor. La asignacin se puede
clasificar de la siguiente forma:

Simples: Consiste en pasar un valor constate a una variable


(a=15).

Contador: Consiste en usarla como un verificador del numero de


veces que se realiza un proceso (a=a+1)

Acumulador: Consiste en usarla como un sumador en un proceso


(a=a+b).

De trabajo: Donde puede recibir el resultado de una operacin


matemtica que involucre muchas variables (a=c+b*2/4).
Lectura

La lectura consiste en recibir desde un dispositivo de entrada


(p.ej. el teclado) un valor. Esta operacin se representa en un
pseudocodigo como sigue:

Leer a, b

Donde a y b son las variables que recibirn los valores.


Escritura

Consiste en mandar por un dispositivo de salida (p.ej. monitor


o impresora) un resultado o mensaje. Este proceso se representa
en un pseudocodigo como sigue:

Escribe El resultado es:, R

Donde El resultado es: es un mensaje que se desea


aparezca y R es una variable que contiene un valor.

Estructuras Condicionales

Las estructuras condicionales comparan una variable contra


otro(s) valor(es), para que en base al resultado de esta
comparacin, se siga un curso de accin dentro del programa.
Cabe mencionar que la comparacin se puede hacer contra otra
variable o contra una constante, segn se necesite.

Existen dos tipos bsicos, las simples y las mltiples.

Las estructuras condicionales simples se les conoce como


Tomas de decisin.
Las estructuras condicionales dobles permiten elegir entre dos
opciones o alternativas posibles en funcin del cumplimiento o
no de una determinada condicin.
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. Esta
cantidad puede ser fija (previamente determinada por el
programador) o puede ser variable (estar en funcin de algn
dato dentro del programa).

Ciclos con un Nmero Determinado de Iteraciones (Hacer-


Para)

Son aquellos en que el nmero de iteraciones se conoce


antes de ejecutarse el ciclo.

Ciclos con un Nmero Indeterminado de Iteraciones


( Hacer-Mientras, Repetir-Hasta)

Son aquellos en que el nmero de iteraciones no se


Estructuras Cclicas

Hacer-Mientras: Esta es una estructura que repetir un


proceso durante N veces, donde N puede ser fijo o variable.
Para esto, la instruccin se vale de una condicin que es la que
debe cumplirse para que se siga ejecutando. Cuando la condicin
ya no se cumple, entonces ya no se ejecuta el proceso.

Repetir-Hasta: Esta es una estructura similar en algunas


caractersticas, a la anterior. Repite un proceso una cantidad de
veces, pero a diferencia del Hacer-Mientras, el Repetir-Hasta lo
hace hasta que la condicin se cumple y no mientras, como en el
Hacer-Mientras. Por otra parte, esta estructura permite realizar el
proceso cuando 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.