Vous êtes sur la page 1sur 52

TECNOLGICO NACIONAL DE MXICO

Instituto Tecnolgico Superior de Acayucan

Docente:
Salinas

MTI Isabel Cristina Arias

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
Mantenimien
to

Documentaci
n

Prueba y
Depuraci
n

Anlisis
del
Problema

Diseo del
Algoritmo

Codificaci
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

3)

Tratamiento

de

Salida
deseada.
Para
ello
se
debe
responder a Qu se quiere obtener?
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

Preciso

Esto es, se debe indicar el


orden de ejecucin de
cada paso.

Definid
o

Si se sigue un algoritmo varias


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

Finito

Al seguir el algoritmo, ste


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
solucin del problema.
o
Respuestas dadas por el
algoritmo o resultados finales de
Salida los clculos.

Formas de presentar un algoritmo

Grfic
os

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

No
grfic
os

Representa en forma
descriptiva
las
operaciones
que
debe
realizar
un
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
escribirse de arriba hacia
abajo, y/o de izquierda a
derecha.
Los smbolos se unen con
lneas, las cuales tienen en la
punta una flecha que indica la
direccin
que
fluye
la
informacin
procesos,
se
deben de utilizar solamente
lneas de flujo horizontal o
verticales (nunca diagonales).
Todos los smbolos pueden tener
ms de una lnea de entrada, a
excepcin del smbolo final.

No deben quedar lneas de flujo


sin conectar.
Solo los smbolos de decisin
pueden y deben tener mas de
una lnea de flujo de salida.
Todo texto escrito dentro de un
smbolo debe ser legible, preciso,
evitando el uso de muchas
palabras.
Se debe evitar el cruce de
lneas, para lo cual se quisiera
separar el flujo del diagrama a
un sitio distinto, se pudiera
realizar
utilizando
los
conectores. Se debe tener en
cuenta que solo se van a utilizar
conectores
cuando
sea
estrictamente necesario.

Smbolos
Inicio / Fin

Proceso

Decisi
n
Entrada y
salida de
datos

Impresin

Disco
Magntic
o
Conecto
r

Conect
or

Lneas de
conexin y
direccin del flujo

Ejemplo No. 1
Inicio

Realizar
el
diagrama
de
flujo de la suma
de dos nmeros.

Primer
Numero

Num2

Num1

Suma Num1 + Num2

Segundo
Numero

La suma
de los
nmeros
es, Suma

Fin

Ejemplo No. 2
Inicio

Realizar
un
diagrama
de
flujo
que
indique si un
alumno
est
aprobado
o
reprobado.

Calificaci
n
Cal

Cal>
70

Reprobad
o

V
Aprobado

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
con la palabra Inicio y
termina con la palabra Fin.

Cada instruccin se
escribir en una lnea.

debe

Para su descripcin, se utilizan


una
serie
de
palabras
reservadas:
Inicio,
fin,
si,
entonces, si no, fin-si, mientras,
etc.

Se
escribir
en
minscula,
excepto aquellos nombres que
elige el programador, como son
los nombres de variables, de
ficheros, de mdulos, etc., que
se escribirn con maysculas.
Cada estructura utilizada tendr
un solo punto de comienzo y un
solo punto de fin de estructura.
Algunos autores suelen utilizar
un corchete para unir el principio
y fin de cada estructura.

Ejemplo No. 1

Obtener la suma
de dos nmeros
enteros.

INICIO
Escribir Dame el primer nmero
Leer Num1
Escribir Dame el segundo
nmero
Leer Num2
Suma
Num1 + Num2
Escribir La suma de los dos
nmeros
es , Suma
FIN

Ejemplo No. 1

Calcular el rea
de un triangulo.

INICIO
Escribir Introduzca la base
Leer bas
Escribir Introduzca la altura
Leer alt
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:

Interna

Externa

Son los comentarios o mensaje que se aaden al


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

Se define en un documento escrito los siguientes


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

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 Numricos

Datos Lgicos

Permiten
representar
valores
escalares de
forma
numrica, esto
incluye a los
nmeros
enteros y los
reales. Este tipo
de datos
permiten
realizar
operaciones
aritmticas
comunes.

Son aquellos
que solo
pueden tener
dos valores
(cierto o falso)
ya que
representan el
resultado de
una
comparacin
entre otros
datos
(numricos o
alfanumricos).

Datos
Alfanumricos
Es una
secuencia de
caracteres
alfanumricos
que permiten
representar
valores
identificables
de forma
descriptiva,
esto incluye
nombres de
personas,
direcciones,
etc.

Expresiones
Las
expresiones
son
combinaciones
de
constantes,
variables,
smbolos de operacin,
parntesis y nombres de
funciones especiales. Por
ejemplo:
a+(b + 3)/c

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.

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
s

Relacional
es

Lgicos

Tipos de

Operadores

Operadores Aritmticos

Los operadores
aritmticos permiten la
realizacin de
operaciones
matemticas con los
valores (variables y
constantes).
Los operadores
aritmticos pueden ser
utilizados con tipos de
datos enteros o reales.
Si ambos son enteros,
el resultado es entero;
si alguno de ellos es
real, el resultado es
real.

Operadores
Aritmticos
+ Suma
Resta
*
Multiplicacin
/
Divisin
Mod
Modulo
(residuo de la
divisin entera)

Tipos de

Operadores

Operadores Relacionales
Operadores Relacinales

Se
utilizan
para
establecer una relacin
entre dos valores.
Compara estos valores
entre
si
y
esta
comparacin
produce
un resultado de certeza
o falsedad (verdadero o
falso).

Los
operadores
relacinales comparan
valores del mismo tipo
(numricos o cadenas)

>
<
>
<
<
=

Mayor que
Menor que
= Mayor o igual que
= Menor o igual que
> Diferente
= Igual

Tipos de

Operadores

Operadores
Lgicos
Estos operadores
se utilizan para
establecer
relaciones entre
valores lgicos.
Estos valores
pueden ser
resultado de una
expresin
relacional.

Operadores
Lgicos

And
Or
Not

Y
O
Negacin

Prioridad de los Operadores

1.- ( )
2.- ^
3.- *, /, Mod, Not
4.- +, -, And
5.- >, <, > =, < =, < >, =, Or

Identificadores
Los
identificadores
representan los datos
de
un
programa
(constantes,
variables, tipos de
datos).
Un
identificador es una
secuencia
de
caracteres que sirve
para identificar una
posicin
en
la
memoria
de
la
computadora,
que
nos permite accesar
a su contenido.

1.- Debe comenzar con una letra

(A
a
Z,
maysculas
o
minsculas)
y
no
deben
contener espacios en blanco.
2.- Letras, dgitos y caracteres
Regla
s:

como la subraya ( _ ) estn


permitidos despus del primer
carcter.

3.- La longitud de identificadores

puede ser de hasta 8 caracteres.

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
una variable en la memoria de la
computadora, es necesario darle
un nombre con el cual podamos
identificarla
dentro
de
un
algoritmo.
Ejemplo:
area = pi *
radio ^ 2

Las variables
son : radio,
area y la
constate es pi

Clasificacin de las variables

Variables
Por su
conteni
do
Numric
as

Lgica
s

Por su
uso
Alfanumri
cas String

De
Trabaj
o

Contado
res

Acumulad
ores

Por su contenido
Numricas

Lgicas

Alfanumricas

Son aquellas en
las
cuales
se
almacenan
valores
numricos,
positivos
o
negativos,
es
decir almacenan
nmeros del 0 al
9, signos (+ y -)
y
el
punto
decimal.

Son aquellas que


solo
pueden
tener dos valores
(cierto o falso)
estos
representan
el
resultado de una
comparacin
entre
otros
datos.

Est formada por


caracteres
alfanumricos
(letras, nmeros
y
caracteres
especiales).

Ejemplo:
iva=0.15
pi=3.1416
costo=2500

Ejemplo:
letra=a
apellido=Lpez
direr=Av.
Libertad #190

Por su uso
Variables de
Trabajo
Variables que
reciben
el
resultado de
una operacin
matemtica
completa
y
que se usan
normalmente
dentro de un
programa.

Contadores

Acumuladores

Se
utilizan
para llevar el
control
del
nmero
de
ocasiones en
que se realiza
una operacin
o se cumple
una condicin.
Con
los
incrementos
generalmente
de uno en
uno.

Forma
que
toma
una
variable y que
sirve
para
llevar la suma
acumulativa
de una serie
de
valores
que se van
leyendo
o
calculando
progresivame
nte.

Estructuras Algortmicas

Estructuras
algortmica
s
Secuencial
es
Asignaci
n

Entrada

Cclic
as

Condicion
ales
Salida

Simpl
es

Mltiples

Hacer
para

Hacer
Mientras

Repetir
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 (HacerPara)

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.

Vous aimerez peut-être aussi