Vous êtes sur la page 1sur 24

Universidad Nacional de Lans

Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin

Clase 2
ALGORITMOS
Un algoritmo es un mtodo para resolver un problema.
Es un conjunto de instrucciones ordenadas que tienen un tiempo de ejecucin y que para
la cual consume una serie de recursos identificados.
Todo algoritmo tiene un punto de inicio y un punto de terminacin.
Los cuales son nicos y claramente identificables
.
Todo algoritmo debe cumplir las siguientes caractersticas:

Ser preciso: esto significa que los pasos u operaciones del algoritmo deben
desarrollarse en un orden estricto.

Ser definido. el algoritmo se desarrolla como paso fundamental para desarrollar un


programa, el computador solo desarrollar las tareas programadas, con los datos
suministrados; no puede improvisar ni inventa el dato que necesite para realizar un
paso. Por eso, cuantas veces se ejecute el algoritmo, el resultado depende
estrictamente de los datos suministrados, de hecho si se ejecuta con un mismo
conjunto de datos de entrada, el resultado ser siempre el mismo.

Ser finito: el nmero de pasos de un algoritmo, por grande y complicado que sea el
problema que soluciona, debe ser limitado. Todo algoritmo incluye los pasos inicio y
fin.

Presentacin formal: el algoritmo debe estar expresado en alguna de las formas


comnmente aceptadas. Las formas de presentacin de algoritmos son: el
pseudocdigo, diagrama de flujo y diagramas de Nassi/Schneiderman, entre otras.

Correccin: el algoritmo debe satisfacer la necesidad o solucionar el problema para


el cual fue diseado. Para garantizar que el algoritmo logre el objetivo, es necesario
ponerlo a prueba; a esto se le llama verificacin o prueba de escritorio.

Eficiencia: En cuanto menos recursos requiere ser ms eficiente el algoritmo. Este


concepto se aplica, entre otros puntos, las formas de almacenar los datos, de leerlos,
etc.
1

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin

Ejemplos de algoritmos son:


Supongamos que tenemos un problema en el auto, que debemos hacer?.
Debemos encontrar lo que anda mal (resolver el problema)
Para lo cual, primeramente queremos ver que puede hacer el auto y que no puede hacer
(estado inicial)
Para eso hacemos diferentes operaciones, ej. Damos arranque, prendemos las luces (en
varios casos aplicamos algunos golpes sobre el motor).
Si estamos en un mecnico, nos preguntara si sentimos algo raro cuando empez la falla,
si cambiamos algo, etc. Intentara realizar algunos controles (aceite, presin de los
cilindros, carga de la batera, etc).
Es decir ,tanto nosotros como el mecnico ,intentamos obtener datos que nos permitan
llegar a un diagnstico, y finalmente saber la accin a seguir, el tiempo de reparacin y
el costo.
Por lo que el algoritmo que realizo fue el siguiente:
o Recabar la informacin inicial.
o Diagnosticar (ejecutar el algoritmo)
o Informar los resultados obtenidos.
Por ejemplo, el mismo concepto es aplicable a
Instrucciones para montar una bicicleta.
Hacer una receta de cocina.
Obtener el rea de un tringulo.
En todos ellos es conveniente responder a las siguientes preguntas:
o Qu entradas se requieren?
o Cul es la salida deseada?
o Qu mtodo produce la salida deseada?

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin

Diseo del Algoritmo


Un algoritmo recibe datos de entrada y devuelve datos de
salida.
Esta transformacin o generacin de nuevos datos se conoce como
procesamiento de la informacin
Para procesar la informacin, es muy importante el tener desarrollado los
algoritmos pertinentes, pero veremos mas adelante que no son ellos solos los
involucrados en este procesamiento.
Los mtodos ms eficaces para el proceso de diseo se basan en el conocido
divide y vencers.
Es decir, la resolucin de un problema complejo se realiza dividiendo el
problema en subproblemas y a continuacin dividir estos subproblemas en otros de nivel
mas bajo o sea ms simples hasta que pueda ser implementada una solucin en la
computadora y s sucesivamente (de lo global a lo concreto), es lo que se denomina
diseo descendente (Top-Down design) o modular.
Una vez realizado un primer acercamiento al problema, este se ha de ampliar,
(romper el problema en cada etapa y expresar cada paso en forma mas detallada) lo que
denominamos como refinamiento del algoritmo (Stepwise Refinement)
Cada subproblema es resuelto mediante un mdulo (subprograma), que tiene un
solo punto de entrada y un solo punto de salida.
Cualquier programa bien diseado consta de un programa principal (el mdulo
de nivel mas alto) que llama a subprogramas (mdulos de nivel mas bajo) que a su vez
puede llamar a otros subprogramas.
Los programas estructurados de esta forma se dicen que tienen un diseo
modular y el mtodo de romper el programa en mdulos ms pequeos se llama
programacin modular.
Los mdulos pueden ser planeados, codificados, comprobados y depurados
independientemente (incluso por diferentes programadores) y a continuacin
combinarlos entre si.
El proceso implica la ejecucin de los siguientes pasos hasta que el programa se termina.
1.
2.
3.
4.

Programar el mdulo.
Comprobar el mdulo.
Si es necesario, depurar el mdulo.
Combinar el mdulo con los mdulos anteriores.

El proceso que convierte los resultados del anlisis del problema en un diseo modular
con refinamiento sucesivos que permitan una posterior traduccin a un lenguaje se
denomina diseo del algoritmo.
3

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
El diseo del algoritmo es independiente del lenguaje de
programacin en el que se vaya a codificar posteriormente.
Durante toda esta materia evitaremos focalizarnos en un lenguaje y de igual manera todo
ejemplo o ejercicio que les pida deber ser resuelto con las instrucciones propias, que
veamos dentro de algoritmos.
Por ejemplo: Resumiendo todo lo visto hasta ahora, en diseo top-down, modular seria:
Resolucin
de un
Problema

Anlisis del problema


1

Diseo del algoritmo


2

Resolucin del problema con la computadora


3

Es decir que resolver un problema, implica la resolucin de tres subproblemas en el


siguiente orden:
1. Anlisis del problema;
2 Disear el algoritmo
3 aplicar la solucin en la computadora.
Obviamente cada uno de estos subproblemas pueden a su vez dividirse en otros; por
ejemplo:

Anlisis del problema


1

Datos de entrada
1

Datos de salida
2

Metodologa de la solucin.
3

Con lo cual vemos que el concepto de dividir un gran problema en pequeos problemas,
nos ayuda a:

Reducir la complejidad para el desarrollo

Facilitar entender la lgica de cada proceso

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
Cada proceso pasa a tener un objetivo nico

Cualquier cambio se aplica sobre el proceso especfico que


maneja la situacin afectada

Permite reducir los futuros costos de mantenimiento.

Permite entregas parciales que ayudan a reducir los tiempos totales.

Tipos de Objetos.
Los algoritmos trabajan con datos de la realidad, esta informacin que recibe, deber
procesarla, por lo cual puede generar nuevos datos a partir de la informacin ingresada,
transformar directamente lo que ingreso al proceso y actualizar o informar a partir de las
condiciones que le definamos.
Esa relacin de comunicacin, ya sea de entrada al mismo o de salida desde el algoritmo
lo realiza mediante DATOS, que en nuestro proceso los conocemos como CAMPOS.
Podemos dar como primera definicin, que un CAMPO es el elemento que nosotros
identificamos mediante un nombre.
Por lo cual la caracterstica fundamental del CAMPO es su nombre, ese nombre que
declaramos es el que permite que el algoritmo lo identifique unvocamente y que
mediante el mismo lo utilizare en el proceso en las operaciones que desarrollemos.
Mientras que el DATO es el valor que ese campo tiene.
El mismo lo obtiene desde el exterior, o lo modifica durante el proceso o es el que
indicamos como salida del mismo.
Por lo cual consideramos al CAMPO como el nombre y lugar fsico en el cual
alojaremos el valor o DATO.
Cada DATO tiene una particularidad, y es justamente el tipo de informacin que puede
traer y por la cual a esa particularidad debemos definirla en el CAMPO que lo va a
contener
Por ejemplo, encontramos rpidamente dos grandes divisiones:

caracteres alfabticos (a, b, D, J, *, /,=, 3, 5)


nmeros (1 2 4,5 -8 0,4),

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
Vemos que dentro de los caracteres alfabticos incluyo tambin
nmeros, esos nmeros que ingreso, veremos mas adelante que los
tomaremos en este caso como caracteres, es decir, no podremos
hacer operaciones matemticas con ellos.
Ahora veamos a los mismos un poco ms en profundidad y podremos distinguir aun una
divisin mayor en los tipos de objetos:
Para esto vamos a hacer un pequeo repaso de la clasificacin de los nmeros que vimos
en las clases de matemtica.

El sistema numrico lo podemos clasificar de la siguiente forma

Por lo cual un nmero que utilicemos como tal, es decir que nos permita usarlo en
operaciones matemticas pude ser o bien un NUMERO REAL o un NUMERO
ENTERO.
Definiendo entonces como:
ENTERO: son solo nmeros enteros: 1, 0, 28, 30, 5, tambin los enteros
negativos (-1, -40, etc), pero siempre sin decimales.

REAL: son los enteros mas los nmeros decimales (3/4, 0.45 , -8 , -95.45 ,
etc)

Ahora bien, tambin existen otros tipos de datos, como vimos antes, que son los
caracteres alfabticos, con la aclaracin de los nmeros que en caso de ser definidos de
esta manera no podemos usarlos para operaciones matemticas.
Para nuestros algoritmos los definiremos como:
ALFANUMERICO: Un objeto que representa una cadena de caracteres, que
pueden ser letras o nmeros, en este caso los nmeros se toman como
caracteres, es decir que no tendrn un valor numrico.
Por Ej: SanMartin1554

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
CARCTER: Un carcter es cualquier smbolo que se
representa en forma de un solo smbolo.
Por Ej: a; 2; !
Por lo que la diferencia entre un tipo de dato CARCTER y uno ALFANUMERICO es
que el primero es solo cuando se quiere indicar un solo carcter
Por ultimo tenemos un tipo de dato especial que es el LOGICO, que lo definimos como:
LOGICO: Solo hay dos posibilidades, verdadero y falso, un valor
lgico es un valor de verdad. Pero siempre debe tener uno de esos
valores.
Por Ej: eof / no eof (es el indicador de fin de archivo)
(O esta en eof o esta en no eof)
Adems los objetos pueden ser:

Constantes:
1. Normales:
a. Enteros
b. Reales
c. Alfanumricas
d. Carcter
e. Lgica
2. Figurativas:
a. Enteros
b. Reales
c. Alfanumrica
d. Carcter
e. Lgica

Variables

Constante (definicin): Un objeto de tipo constante es un valor cuyo


contenido no puede variar.
Podramos diferenciar:
Constante Normal: Valor constante expresado en si mismo. Por Ej:
Valor numrico 128

Constante figurativas: Un nombre que de manera figurada simboliza


un valor constante que no cambia. Por Ej: PI = 3,1416; en el que PI
sera la constante.

Variable (definicin): Lugar en la memoria que esta reservado, y que


posee un nombre, un tipo y un contenido. El valor de la variable puede
cambiar y puede ser modificado a lo largo del programa.
Al igual que las constantes pueden ser de tipo:
7

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
Enteros
Reales
Alfanumrica
Lgica
Carcter
La variable tiene un valor determinado, de forma que el tipo de variable, debe de ser uno
en concreto.
Por tanto el primer dato de la variable condicionar los posteriores datos que almacenar
despus.
La variable contiene tres cualidades:
-

Nombre
Tipo
Valor

En el momento de declarar una variable deberemos definir el nombre y el tipo, pero


el valor podr declararse despus.
Para facilitar y recordar fcilmente que valor tiene asignado cada variable, esta deber
tener un nombre acorde al valor que contenga.
Tambin podemos decir que las variables y constantes tienen un atributo que es la
longitud, o sea la cantidad mxima de caracteres o dgitos que estas pueden contener.
Podemos adems asignarle un valor y este valor puede ser modificado a lo largo de todo
el procesamiento, por esta razn, se denominan Variables.
Ejemplo:
NROLEGAJO= 24779 Le estamos asignando a la variable NROLEGAJO el Valor 24779

Descripcin del Tipo y Longitud


TIPO
Numerico,Entero
Numerico,Real
Lgico+Verdadero
Lgico+Falso
Carcter+alfabtico+Unica
Carcter+alfabtico+cadena

Ejemplos
12500
245.65
.V.
.F.
A
Analia

Defino como
entero
real
logico
logico
carcter
alfanumrico

Por lo tanto, en el lenguaje de pseudocdigo podramos definir como ejemplo las


siguientes variables:
Cantidad: entero
8

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
Nombre: alfanumerico
Sueldo: real

Resumiendo
Podemos encontrar solamente 4 tipos de datos en nuestros ejercicios:

Real
Entero
Alfanumrico
Lgico

Expresiones
Dentro de nuestros algoritmos podemos hacer una separacin , un tanto parcial, diciendo
que tendremos instrucciones y expresiones.
Las INSTRUCCIONES u OPERACIONES las veremos una a una mas adelante.
Veremos en este momento un poco ms en detalle las EXPRESIONES.
Ahora bien a que consideramos una expresin?.
Podemos considerar como expresiones tanto una operacin matemtica como un manejo
de cadena de caracteres.
Expresiones de resultado nico
Mensaje=Muy Buenos Das
Suma=4+8
Pregunta:
Que tipo de dato le hubiera asignado a:
Mensaje:
Suma:
Expresiones de resultado variable
Sueldo=Basico+Basico*0.50
Nombre=Sr. ,S_nombre
En estos ejemplos ,tanto el campo basico como el campo S_nombre, son las variables

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
Pregunta:
En este caso tambin, que tipo de dato le hubiera
asignado a:
Sueldo:
Nombre:
En estos ltimos casos, el resultado de las variables Sueldo y Nombre dependern de los
valores que adquieran las otras variables.
Ejemplo 1: si a la variable Bsico le corresponde el valor 500, la expresin resultara
Sueldo=500+500*0.50
Finalmente
Sueldo=750
Ejemplo 2: si a la variable S_nombre le corresponde el valor Juan Perez, la expresin
resultara:
Nombre=Sr. ,S_nombre
Nombre= Sr. Juan Perez

Operaciones Fundamentales
Introduccin
Vamos a definir a continuacin estructuras que nos permitirn interactuar con el
ambiente y determinar la forma en que podemos resolver los clculos matemticos y
operaciones con caracteres.
Asignacin
La utilizamos cuando a un campo determinado le queremos mover un valor especfico,
ya sea producto de una operacin matemtica o no.
Cuando creamos una variable a travs de su definicin (Ej: Cantidad, entera), estamos
reservando un lugar en memoria ,pero no le estamos pasando ningn valor, es lo que
identificamos como el CAMPO, ahora bien cuando le queremos dar un valor la
operacin que usamos es la asignacin y decimos que le estamos asignando un valor.
Por ejemplo al campo VARI, le movemos el valor que tiene el campo A, eso quiere decir
que a VARI le asigno el valor de A
Vari = A
10

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
Donde el signo = representa la asignacin
Ej: Nombre=Ana
Esto significa que al campo NOMBRE, le asignamos el valor Ana.
La asignacin la representamos por el =, pero tambin podemos utilizar
: o

<= o

Debemos tener especial cuidado de moverle a un campo, un tipo de dato igual al que
usamos para definir al campo.
Es decir, moveremos caracteres a un campo definido como tal, y podremos mover
nmeros a utilizar en operaciones aritmticas si previamente al campo lo definimos
como entero o como real.

Operaciones Numricas
Las operaciones mas comunes son la de contar o la de acumular en un campo.
Para esto, se utilizan dos estructuras, que son:

Acumuladores
Contadores.

Si bien son operaciones bsicamente similares, tiene pequeas particularidades que las
diferencian
Acumuladores
Consiste en la operacin de ir acumulando cantidades variables dentro de una misma
variable.
Que hago primero?: DEFINO LAS VARIABLES A UTILIZAR, por ejemplo:
Importe, entera
Acumulo, entera
Que caractersticas tienen? QUE SIEMPRE DEBEN SER NUMERICAS, YA SEA
ENTERA (como en este caso ) o REAL.
Si el campo el cual se acumula es REAL, tenemos que pensar que seguramente el
acumulador tambin deba ser REAL

11

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
Que hago despus?, utilizo al campo ACUMULO (en este caso)
como el campo en la cual voy guardando la suma de todos los campos IMPORTE que
pasen por esta instruccin.
Acumulo=Acumulo+Importe
Cada vez que se pase por esta instruccin, se agregar al contenido de la variable
Acumulo el contenido de la variable Importe.
Ejemplo de esto, podra ser sumar las ventas de todo un da, donde en una variable se
acumulara los importes de todas las facturas. Ms adelante pondremos en prctica
ejemplos de este tipo.
Contadores
Consiste en la operacin de ir sumando cantidades constantes dentro de una variable.
Cantidad, entera //Defino la variable a utilizar que debe ser de tipo numrica
Cantidad= Cantidad+1
Cada vez que el programa pase por esta instruccin incrementar en uno el valor de
Cantidad.
Como se puede apreciar, bsicamente ambas operaciones son similares, la diferencia
radica en que las primeras el valor se incrementa en forma variable y en las segundas en
forma constante.

Este tipo de variables se podran aplicar para determinar por ejemplo, dentro de un
conjunto de personas cuantas de ellas son del sexo femenino y cuantas del sexo
masculino.
Operaciones Alfabticas o alfanumricas
Estas operaciones son aquellas definidas para el manejo de caracteres. Para resolverlas
existe una jerarqua de operaciones a tener en cuenta:
Operacin
1. Parntesis
2. Funciones
3. Concatenacin
Funciones para el manejo de caracteres
A=LEN(Variable)
12

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin

Esta funcin devuelve la cantidad de caracteres ocupados de una variable alfabtica o


alfanumrica, despreciando los caracteres en blanco del final.
Ejemplo:
A,alfanumerica
B,entera
A=Juan Perez
B=LEN(A)

// El contenido de B es =10

Concatenacin de Cadena de Caracteres


La concatenacin podemos definirla como una suma de caracteres, pero no una suma
algebraica, sino como la unin de cadena de caracteres.
Ejemplo:
A=Juan , Perez da como resultado Juan Perez
En este caso a cada valor que quiero movel lo debo colocar entre por ser
caracteres (ese es el caso de Juan y de Perez),
Luego uno a ambos por medio de la ,
Si hubiera tenido la informacin de la siguiente manera:
A=Buenos
B=Das
C=A+B da como resultado Buenos Das
Operaciones de Entrada y Salida
El objetivo del proceso es tomar y validar la informacin de entrada luego efectuar una
transformacin de la misma segn las instrucciones que previamente se le defini.
Por esto debemos contar con operaciones que establezcan la interfaz con el medio en que
esta inmerso el algoritmo desarrollado.
Bsicamente cuando tomamos datos del ambiente para drselos a la aplicacin estamos
realizando una operacin de ENTRADA y cuando devolvemos al ambiente los
resultados obtenidos hacemos una operacin de SALIDA.
Analicemos estas dos operaciones.

13

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
Entrada de Datos
El ingreso de datos desde un teclado lo vamos a realizar por medio de la instruccin
INGRESAR
La estructura es la siguiente:
INGRESAR(variable)

INGRESAR (texto, variable)


Ejemplo
INGRESAR(Ingresar el valor : ,val)
En este caso:
Val es el campo donde el sistema asignara el valor ingresado desde la pantalla.
Imaginamos que al usuario le aparecer algo similar a esto en la pantalla:

Ingresar el valor: ____

En el caso de ambas sentencias:


INGRESAR(variable)

INGRESAR (texto, variable)


Toman la informacin ingresada y la almacenan en una variable.
La diferencia entre ambas es que la segunda muestra un mensaje para indicar al usuario
que debe ingresar.

14

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
Nosotros, en la materia, utilizamos INGRESAR, cuando queremos
asociar la entrada de datos a un proceso de ingreso de informacin por pantalla
Vale aclarar , que en este caso debemos preguntar al operador que ingresa la info si
quiere seguir ingresando mas informacin, como forma de saber cuando termina el
proceso; volveremos mas adelante con este tema al referirnos a estructuras repetitivas y
a sus clusulas de escape.
Tambin podemos utilizar otra instruccin para el ingreso de datos que es:
LEER
Su estructura es de la siguiente manera:
Leer(campo1,campo2,campon)
Entre parntesis, coloco el nombre de los campos que estar trayendo de algn archivo
existente.
Puedo colocar un campo o n campos, siempre que indique claramente a cada uno por
su nombre y separados por ,
En caso de no definir otra condicin, el fin del proceso se dar con el fin del fichero, es
decir cuando all ledo toda la info, eso se da por la condicin de fin de archivo o:
Eof
Por lo que el campo eof, que es del tipo lgico o booleano, es quien me avisa si tengo o
no registros del archivo secuencial para seguir leyendo.
Cuando veamos las instrucciones del tipo repetitivas debemos recordar a este campo
como la clusula de escape de la misma, es decir la condicin por la cual dejo de realizar
el loop .
Salida de Datos
El egreso de datos, tanto por pantalla o por impresora, nos permite informar el contenido
de las variables.
Es decir informar sobre los resultados obtenidos.

Para el caso que la salida fuera a una pantalla usaremos la instruccin:


MOSTRAR

15

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
En el caso que la salida fuera a una impresora usaremos la
instruccin:
IMPRIMIR
Y en el caso que quisiramos como salida un archivo usaramos:
ESCRIBIR
La forma de las tres instrucciones es la misma, por lo que usare una como ejemplo.
Si quisiera que apareciera la frase FIN DEL PROCESO, la instruccin seria:
Mostrar(FIN DE PROCESO)
Recordando el uso de las dado que es una salida de caracteres.
Si quiero que la salida indique una leyenda mas el valor de un campo que genere durante
el proceso, la forma de hacerlo es:
Mostar(La cantidad de reg. leida es: ,campo_cant)
Donde, al igual que el caso anterior escribo la leyenda entre
Luego con una como ( , ) separo a la leyenda del campo variable campo_cant, que por
ejemplo tiene un valor de 132
De ser as, quedara en la pantalla

La cantidad de reg. leida es: 132

Un ejemplo completo:
Confeccionar un algoritmo tal que dados 2 nmeros enteros muestre su suma y su
diferencia.
Atencin: ...dados 2 nmeros cualquiera... significa que nuestro algoritmo tiene que
servir para cualquier par de nmeros.
Por lo tanto tendremos que preguntarlos.

16

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
Formalicemos:
Ejercicio 1
Algoritmo Ejemplo
Var
NUM1,entera
NUM2,entera
SUMA, entera
RESTA, entera
Inicio
Ingresar(Ingrese un nmero, NUM1)
Ingresar(Ingrese otro nmero, NUM2)
SUMA=NUM1+NUM2
RESTA=NUM1-NUM2
Mostrar(La suma es:, SUMA)
Mostrar(La resta es:, RESTA)
Fin
Veamos en detalle el proceso de este algoritmo:

Realizaremos un ALGORITMO, al cual llamamos EJEMPLO


Al cual le definimos 4 campos enteros: NUM1, NUM2, SUMA y RESTA
Al momento de indicar INICIO, comienza la zona de procesamiento propiamente
dicha.
La informacin la obtenemos de una pantalla, por eso usamos la instruccin
INGRESAR.
Se ingresan 2 nmeros, que se guardan en los campos NUM1 y NUM2
Procedemos a realizar la operacin de suma de ambos nmeros y colocamos el
resultado en el campo SUMA.
Luego procedemos a restar los mismos valores y colocamos el resultado de esta
operacin en el campo RESTA.
Luego informamos por pantalla el resultado de ambas operaciones, usando la
instruccin MOSTRAR, y en pantalla aparecer la expresin entre :
La suma es:
Y luego el valor que se obtuvo de la suma, el cual esta en el campo SUMA
Debajo de ella aparecer la frase:
La resta es:
Seguida del valor resultante de la resta, la cual esta en el campo RESTA.
Terminando el algoritmo con la sentencia FIN

17

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
Prueba de Escritorio
Este mtodo se utiliza para probar el algoritmo diseado, a fin de corroborar que el
mismo funciona y alcanza el objetivo deseado.
Debemos indicar en el papel el valor que toman las distintas variables del proceso en
cuestion y nosotros debemos actuar como la CPU que recorre secuencialmente al
algoritmo haciendo cumplir cada una de las instrucciones y condiciones indicadas.
Para la prueba de escritorio debemos recordar que:
No debemos saltear ninguna instruccin, si no estamos totalmente seguros de lo
que hace
Indicar el valor en la hoja una vez que estamos seguros del mismo.
No asumir nada que no este indicado expresamente en el algoritmo.
Veremos a continuacin como quedara la misma para este programa:
INGRESAR
NUM1
20

SUMA
A+B

NUM2
10
30=10+10

RESTA

MOSTRAR
SUMA

MOSTRAR
RESTA

10=20-10

30

10

18

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin

Representacin de Algoritmos
Existen diversas formas de representar algoritmos, dentro de las
ms comunes se encuentran los diagramas de flujo y el pseudocdigo.
Cada uno tiene sus ventajas y desventajas, todo depende del gusto de la persona que
realiza el algoritmo.
Pseudocdigo
El pseudocdigo es una herramienta de programacin en la que las instrucciones se
escriben en palabras similares al espaol o ingles, que facilitan tanto la escritura como la
lectura de programas, y permite a quien lo realiza concentrarse en las estructuras de
control sin tener presente las caractersticas propias de algn lenguaje en especial
En esencia se puede definir como un lenguaje de especificaciones de algoritmos.
El pseudocdigo se encuentra a un solo paso de pasarse a un lenguaje de programacin y
es leble de igual forma que los diagramas de flujo ,a diferencia que no es grfico pero
igual de comprensible:
Cuenta con palabras reservadas y la forma de su uso, y tiene una estructura minima qu se
debe respetar.
Siempre la primera palabra debe ser:
Algoritmo:nombre
Seguida de : y el nombre que le definamos para el mismo.
Debe tener una sentencia unica de FIN , que indica la finalizacion del proceso.
Diagramas de flujo
Tambin llamado ordinograma.
Esta tcnica muestra los algoritmos de una manera clara y comprensible.
Es una representacin grfica, es decir, se vale de diversos smbolos para representar las
ideas o acciones a desarrollar.
Los diagramas de flujo ayudan en la comprensin de la operacin de las estructuras de
control.

19

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin

Por ejemplo: el inicio y el fin del algoritmo se representan con un smbolo elptico, las
entradas y salidas con un paralelogramo, las decisiones con un rombo, los procesos con
un rectngulo, etc.
Los smbolos utilizados han sido normalizados por el Instituto Norteamericano de
Normalizacin(ANSI) y algunos de ellos son:

Entrada/salida

Inicio
o
Fin
Subprograma

Decisin
NO
Proceso
SI

Estructuras y acciones en un diagrama de flujo:

Definicin de variables:
Es obligatorio definir todas las variables que vayamos a utilizar durante el
programa, en el inicio del diagrama de flujo.
Cuando nuestro programa se ejecuta, a nuestros efectos la memoria contendr
informacin basura (informacin que estaba cargada en la memoria antes de
ejecutar nuestro programa)
Para definir una variable es imprescindible indicar cual ser su nombre y su tipo.
Pudiendo asignar a esa variable su valor posteriormente.

Asignacin de valores a variables:


Existen dos tipos de asignaciones:

20

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin

Directa: Asignar un valor directamente que ya conocamos a priori.


Indirecta: El valor de estas variables vendr dado una vez que se ejecuta
el programa, y se produzcan datos de entrada.
La accin de asignacin a una variable destruye cualquier valor inicial de esa
variable.

Declaracin de Expresiones numricas:


Definicin de expresin numrica: Dos o ms valores numricos operados entre
s aritmticamente. Ej:
2x + y 7x
2x + 3y = 10
Los operadores aritmticos siguen una jerarqua de prioridad:

Asignacin directa de variables en un Diagrama de Flujo


Se representa con este smbolo:

< Variable > = <Expresin>


Expresin: Consiste en un valor o ms en el caso de que halla varios valores operados
entre si mediante operadores del tipo que sea.
La expresin que da el valor a una variable puede ser aritmtica, alfanumrica y lgica
Expresiones Aritmticas:
Uno o ms valores numricos operados entre si.
Una expresin puede constar de variables y constantes, utilizando los operadores
aritmticos:
Mdulo ( MOD )
Multiplicacin ( * )
Divisin ( / )
Suma ( + )
Resta ( - )
21

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin

Estos operadores tienen un nivel de prioridad:


Mdulo Multiplicacin Divisin Suma Resta
El orden de evaluacin es de derecha a izquierda.
Resolviendo primero los parntesis que tenga la expresin.
El operador Mdulo ( MOD ), hace un resto entre enteros, es decir de dos nmeros
enteros, los divide y nos da el resto de la divisin. Ej:
7 MOD 3 = 1 Ya que el resto de dividir 7 entre 3 es
1.
Resolucin de operaciones aritmticas en trminos matemticos
R = 18 3 * A + ( A MOD B C / 2 ) + A * A MOD 5
Siendo A = 5 B = 7 C =8
R= 18 3 * 5 + ( 5 MOD 7 8 / 2) + 5 * 5 MOD 5
R= 18 15 + ( 5 4) + 5 * 0
R= 3 + 1 + 0
R=4
R = B A+ C * 2 + ( C / 2 1 ) + A* 4 * B 4
Siendo A = 2 B = 3

C=6

R = 3 2 + 6 * 2 + ( 6/2 1) + 2 * 4 * 3 4
R = 1 + 12 + 2 + 20
R= 35
Expresiones alfanumricas ( STRINGS ):
CADENA =(Pepe, Lpez)

PepeLopez

Si queremos que en el resultado salga un espacio en blanco, tendremos que indicarlo en


alguno de los dos literales, es decir:
CADENA =( Pepe ,Lpez)

Pepe Lpez

Tambin puede haber expresiones de tipo lgico

22

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin

Asignaciones indirectas por teclado de variables en un diagrama de flujo


Se representa con este smbolo:

El valor previo de la variable es destruido por el que se le asigna.


El valor de esta variable no viene dado por el programa sino por un dispositivo de
entrada.
.
Visualizacin por pantalla en un diagrama de flujo
Se representa con este smbolo:

Cada representacin, abarcar una lnea en la pantalla.


Podemos indicar uno o ms valores dentro del mismo smbolo.
No se pueden incluir expresiones dentro de este smbolo.
Otros tipos de variables
Variable Contador:
C=C+1
C=C+5
La variable contador aumenta de manera constante cada vez que se ejecuta.
Variable Acumulador:
A=A+ B
B es una variable que cambia de valor en cada pasada por esta instruccin , por tanto
cada vez que se ejecuta esta instruccin, la variable A aumenta de manera NO constante.

23

Universidad Nacional de Lans


Campus Virtual
Carrera: Licenciatura en Informtica Educativa
Materia: Tcnicas de Programacin
Si B no cambiara de valor, A seria una variable contador.

Variable Bandera ( Flag):


Este tipo de variables muestran el estado del valor de la variable, por ejemplo, si
tenemos dos grupos de personas, preferentes o no preferentes, podramos definir una
variable de tipo Alfanumrico con el nombre de Preferentes y darla un valor Si, con lo
que estaramos declarando que las personas son preferentes.
Este tipo de variables, no tienen por que ser de tipo lgico, ya que pueden indicar ms de
un estado. Ej:
Estado_civil = C (Casado)
V (Viudo)
S (Soltero)
En este caso una variable podra definirse como: significador de un estado dentro de un
algoritmo.

24

Vous aimerez peut-être aussi