Anda di halaman 1dari 22

DISEAR EL ALGORITMO (trazar un plan)

Cuando se ha realizado un anlisis a fondo del problema (utilizando alguna metodologa),


se puede proceder a elaborar el algoritmo (diagrama de flujo). Este consiste en la
representacin grfica, mediante smbolos geomtricos, de la secuencia lgica de las
instrucciones (plan) que posteriormente sern traducidas a pseudocdigo y de ah a un
lenguaje de programacin, como C, para ejecutarlas y probarlas en una computadora.

EJEMPLO:

Disear un algoritmo (pseudocdigo y diagrama de flujo) para hallar el rea de un tringulo


rectngulo cuya Base mide 3 cm, la Altura 4 cm y la Hipotenusa 5 cm.

ANLISIS DEL PROBLEMA

- Formular el problema: Ya se encuentra claramente planteado.


- Resultados esperados: El rea de un tringulo rectngulo.
- Datos disponibles: Base, Altura, Hipotenusa, tipo de tringulo. La incgnita es el
rea y todos los valores son constantes. El valor de la hipotenusa se puede omitir.
El estudiante debe preguntarse si sus conocimientos actuales de matemticas le
permiten resolver este problema; de no ser as, debe plantear una estrategia para
obtener los conocimientos requeridos.
- Determinar las restricciones: Utilizar las medidas dadas.
- Procesos necesarios: Guardar en dos variables (BASE y ALTURA) los valores de
Base y Altura; Guardar en una constante (DIV) el divisor 2; aplicar la frmula
BASE*ALTURA/DIV y guardar el resultado en la variable REA; comunicar el
resultado (REA).
ALGORITMO EN PSEUDOCDIGO

Paso 1: Inicio

Paso 2: Asignar el nmero 2 a la constante "div"

Paso 3: Asignar el nmero 3 a la constante base

Paso 4: Asignar el nmero 4 a la constante altura

Paso 5: Guardar en la variable "rea" el resultado de base*altura/div

Paso 6: Imprimir el valor de la variable "rea"

Paso 7: Final

TRADUCIR EL ALGORITMO (ejecutar el plan)

Una vez que el algoritmo est diseado y representado grficamente se pasa a la etapa de
traduccin a un lenguaje de programacin determinado (en nuestro caso ser C). Cada
lenguaje posee sus propias reglas gramaticales, por lo tanto es fundamental que los
estudiantes conozcan de antemano la sintaxis de los comandos que deben utilizar para
resolver el problema. A mayor dominio del lenguaje de programacin, mayor posibilidad de
llegar rpidamente a una solucin satisfactoria. A esta fase de traduccin se le conoce
comnmente como codificacin.

DEPURAR EL PROGRAMA (revisar)

Despus de traducir el algoritmo en un lenguaje de programacin como C, el programa


resultante debe ser probado y validados los resultados. A este proceso se le conoce como
depuracin. Depurar programas contribuye a mejorar la capacidad en los estudiantes para
resolver problemas; la depuracin basada en la retroalimentacin es una habilidad til para
toda la vida.

Quienes han escrito alguna vez un programa de computadora, saben de la dificultad que
representa elaborar programas perfectos en el primer intento, dificultad que aumenta a
medida que el problema a resolver es ms complejo. La depuracin, afinamiento y
documentacin de un programa hacen parte fundamental del ciclo de programacin y desde
el punto de vista educativo estimula en los estudiantes la curiosidad, la perspectiva, la
comunicacin y promueve valores como responsabilidad, fortaleza, laboriosidad, paciencia
y perseverancia. La programacin facilita un dilogo interior en el cual la retroalimentacin
constante y el xito gradual empujan a los alumnos a ir ms all de sus expectativas.

Otras dos actividades relacionadas con esta etapa son la afinacin y la documentacin. La
primera consiste en realizar retoques para lograr una mejor apariencia del programa (en
pantalla o en los resultados impresos) o para ofrecer funcionalidades ms all de los
resultados esperados (especificados en la fase de anlisis del problema). La segunda tiene
un carcter eminentemente comunicativo, con la documentacin de un programa se pone
a prueba la capacidad del estudiante para informar a otras personas cmo funciona su
programa y lo que significa cada elemento utilizado.

CONCEPTOS BSICOS DE PROGRAMACIN

Variables

Para poder utilizar algoritmos con diferentes conjuntos de datos iniciales, se debe
establecer una independencia clara entre los datos iniciales de un problema y la estructura
de su solucin. Esto se logra mediante la utilizacin de variables (cantidades que se suelen
denotar con letras (identificadores) y que pueden tomar cualquier valor de un intervalo de
valores posibles).

En programacin, las variables son espacios de trabajo (contenedores) reservados para


guardar datos (valores). El valor de una variable puede cambiar en algn paso del algoritmo
o permanecer invariable; por lo tanto, el valor que contiene una variable es el del ltimo
dato asignado a sta.

En C existen dos tipos de variables: locales y globales. Las primeras retienen su valor el
tiempo que dure la ejecucin del procedimiento en el cual se utilizan. Las variables locales
crean dentro de una funcin o subrutina y slo existen mientras se ejecuta la funcin.

Constantes

Las Constantes se crean en C por medio de una definicin y consisten en datos que, luego
de ser asignados, no cambian en ninguna instruccin del algoritmo. Pueden contener
constantes matemticas (pi) o generadas para guardar valores fijos (3.8, "Jorge", etc.).
Identificadores

Los identificadores son nombres que se dan a los elementos utilizados para resolver un
problema y poder diferenciar unos de otros. Al asignar nombres (identificadores) a
variables, constantes y procedimientos se deben tener en cuenta algunas reglas:

Los nombres pueden estar formados por una combinacin de letras y nmeros (saldoMes,
salario, fecha2, baseTringulo, etc.).

El primer carcter de un nombre debe ser una letra.

La mayora de los lenguajes de programacin diferencian las maysculas de las


minsculas.

Los nombres deben ser nemotcnicos, con solo leerlos se puede entender lo que
contienen. Deben ser muy descriptivos; no utilizar abreviaturas, a menos que se justifique
plenamente.

Es conveniente utilizar una sola palabra para nombrar pginas, controles, variables, etc.

No utilizar caracteres reservados (%, +, /, >, etc.).

Se debe tener en cuenta que algunos lenguajes de programacin no admiten las tildes.

No utilizar palabras reservadas por los lenguajes de programacin.

Para cumplir con convenciones ampliamente utilizadas, los nombres de procedimientos,


variables y constantes deben empezar con minscula. Ejemplo, fecha, suma, etc.

Si es un nombre compuesto por varias palabras, cada una de las palabras (con excepcin
de la primera) deben empezar con mayscula. Ejemplo: fechaInicial, baseTringulo, etc.
(opcional).
Palabras reservadas (primitivas)

Todos los lenguajes de programacin definen unas palabras para nombrar sus comandos,
instrucciones y funciones. Un identificador definido por el usuario no puede tener el nombre
de una palabra reservada en C.

Algunas palabras reservadas en C son:

Subrutinas, procedimientos o funciones

Una sub-rutina tambin conocidas como procedimientos o funciones son partes de un


programa que se identifican por medio de un nombre y que realizan alguna actividad
especfica. Las subrutinas sirven para ahorrar cdigo pues una actividad como por ejemplo
sacar la raz cuadrada de un nmero puede utilizarse en diferentes partes de un programa
simplemente haciendo una llamada a una funcin en lugar de hacer todos los pasos
necesarios para lograr obtener el resultado.

Las funciones reciben datos, los procesan y devuelven un resultado. Este resultado puede
guardarse en una variable. Los datos que se le dan a una funcin para que trabaje con ellos
se llaman parmetros. Cuando una funcin no regresa un resultado en algunos lenguajes
se les llama procedimientos. En C todas las subrutinas se llaman funciones aunque no
regrese un resultado.
INSTRUCCIONES
El diseo del algoritmo y luego la codificacin de programas consiste en la definicin de
acciones o instrucciones que van a dar solucin al problema que se est tratando.
Luego de escribirse las acciones o instrucciones, se deber ir al proceso de
almacenamiento en la memoria conservando el orden lgico para su posterior ejecucin; es
decir en secuencia. Un programa puede ser lineal o no lineal.
Un programa es lineal cuando las instrucciones siguen una secuencia, sin bifurcaciones,
decisin ni comparaciones. Cuando el programa es no lineal, significa que la secuencia es
interrumpida mediante instrucciones de bifurcacin.

TIPOS DE INSTRUCCIONES
De acuerdo al tipo de lenguaje de programacin en que se trabaja las instrucciones van a
ser diferentes. Pero las instrucciones bsicas son independientes del lenguaje.
Las instrucciones bsicas pueden clasificarse de la siguiente forma:

Instruccin de inicio/fin.
- Instruccin de asignacin.
- Instruccin de lectura.
- Instruccin de escritura.
- Instruccin de bifurcacin.
- Instrucciones de repeticin o ciclos.
La instruccin de lectura de datos (entrada). Esta instruccin lee datos que son
ingresados por medio de un dispositivo de entrada.
La instruccin de escritura de resultados (salida). Estas se escriben en un dispositivo de
salida.
Instrucciones de bifurcacin. Cuando se ejecuta esta instruccin un programa detiene su
desarrollo lineal. Las bifurcaciones pueden ser hacia delante o hacia atrs, segn el punto
del programa donde se bifurca. Las bifurcaciones en el desarrollo de un programa sern de
modo condicional, de acuerdo al resultado de la evaluacin de la condicin.
Bifurcacin incondicional. Esta se realiza siempre que el flujo del programa pase por la
instruccin sin necesidad del cumplimiento de ninguna condicin.
Bifurcacin condicional: Esta depende de que se cumpla una condicin determinada.
La estructura de bifurcacin condicional permite elegir una de dos opciones en una
alternativa, dependiente del resultado obtenido al evaluar la condicin. Vase el siguiente
fragmento de algoritmo:
La palabra clave
"s" indica que estamos en
una sentencia de bifurcacin
condicional. Si la condicin es
verdadera se ejecuta la
operacin 1, de otro modo se
ejecuta la operacin 2.

PROGRAMA Y SUS ELEMENTOS BSICOS


Los lenguajes de programacin se componen de elementos bsicos, los cuales se usan
como bloques constructivos; tambin existen reglas que harn uso de la combinacin de
estos elementos. A estas reglas les llamamos la Sintaxis del lenguaje, slo las
instrucciones que contienen una sintaxis correcta pueden ser interpretadas por la
computadora y los programas que contengan errores de sintaxis son rechazados por esta
misma.
Los elementos bsicos que constituyen un programa o algoritmo son:
- palabras reservadas (inicio, fin, si-entonces, etc.)
- identificadores (nombres de variables, esencialmente)
- caracteres especiales (coma, apstrofe, etc.)
- constantes
- variables
- expresiones
- instrucciones
Hay otros elementos que tambin son bsicos y forman parte de los programas. Son de
mucha importancia la comprensin y el funcionamiento, porque gracias a ellos se llegar a
un correcto diseo del algoritmo.
Estos elementos son:
- bucles
- contadores
- acumuladores
- interruptores
- estructuras
secuenciales
selectivas
repetitivas

Bucles:
Los bucles son elementos que tiene instrucciones que se repiten un cierto nmero de veces,
mientras una condicin es cumplida; se conoce como lazo (loop). La condicin es un
mecanismo que determina las tareas repetitivas el cual debe ser establecido por el
programador, ste puede ser verdadero o falso y se comprueba una vez a cada paso o
iteracin del bucle.
Un bucle est compuesto de tres partes:

1. decisin
2. cuerpo del bucle
3. salida del bucle

Bucles Anidados: La forma como se disponen los bucles tambin lleva un nombre, de all
que pueden ser anidados o independientes. Los que son anidados son cuando se
encuentran uno contenido en otro, y los independientes son los que se encuentran libres,
sin la influencia de otro.
Contadores: Es un dispositivo que sirve para un control permanente del bucle. Este
dispositivo llamado Contador es una variable en la que su valor se incrementa o decrementa
en una cantidad constante por cada iteracin.

Acumulador: Conocido tambin como totalizador, almacena cantidades variables que


resulten de sumas sucesivas. Al igual que el contador, cumplen la misma funcin, con la
diferencia de que este ltimo cuenta cantidades no constantes, sino que son variables.

Decisin o seleccin: Este tipo de estructura es usada cuando el programador quiere dar
dos o ms caminos como alternativa en un algoritmo a seguir, segn los parmetros
especificados. Una instruccin de decisin evala una condicin y, en funcin del resultado,
se bifurcar el algoritmo a un determinado punto.
Interruptores: Variable que puede tomar diversos valores a lo largo de la ejecucin de un
programa, permitiendo comunicar la informacin de una parte a otra. Estos pueden tomar
dos valores 1 y 0. (encendido / apagado, abierto/ cerrado).El interruptor es llamado
tambin conmutador (switch).

DIAGRAMAS DE FLUJO (Flujogramas):

Diagrama de flujo: Un diagrama de flujo o flujograma es una forma de representar


grficamente los pasos para resolver un problema en especfico. Estos diagramas utilizan
una serie de smbolos con significados especiales y son la representacin grfica de los
pasos de un proceso. En computacin es un primer enfoque con lo que sera la
programacin formal.
Aspectos a tomar en cuenta para crear un buen diagrama de flujo:

Existe siempre un camino que permite llegar a una solucin (finalizacin del
algoritmo).
Existe un nico inicio del proceso.
Existe un nico punto de fin para el proceso de flujo (salvo del rombo que indica una
comparacin con dos caminos posibles).

Desarrollo del Diagrama de Flujo:

Acciones previas a la realizacin del diagrama de flujo:

Definir qu se espera obtener del diagrama de flujo.


Identificar quin lo emplear y cmo.
Establecer el nivel de detalle requerido.
Determinar los lmites del proceso a describir.

Pasos a seguir para construir el diagrama de flujo:

Establecer el alcance del proceso a describir. De esta manera quedar fijado el


comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del
proceso previo y el final la entrada al proceso siguiente.
Identificar y listar las principales actividades/subprocesos que estn incluidos en el
proceso a describir y su orden cronolgico.
Si el nivel de detalle definido incluye actividades menores, listarlas tambin.
Identificar y listar los puntos de decisin.

Construir el diagrama respetando la secuencia cronolgica y asignando los


correspondientes smbolos.

Asignar un ttulo al diagrama y verificar que est completo y describa con exactitud
el proceso elegido.
Ventajas de Diagramas de flujo:

Favorecen la comprensin del proceso a travs de mostrarlo como un dibujo.


El cerebro humano reconoce fcilmente los dibujos. Un buen diagrama de
flujo reemplaza varias pginas de texto.
Permiten identificar los problemas y las oportunidades de mejora del
proceso. Se identifican los pasos redundantes, los flujos de los re-procesos,
los conflictos de autoridad, las responsabilidades, los cuellos de botella, y
los puntos de decisin.
Tambin dentro del mbito laboral ms all de la ingeniera muestran la
interaccin de cliente-proveedor as como la informacin que en ellas se
realizan, facilitando a los empleados el anlisis de las mismas para futuros
procesos o capacitaciones ms rpidas dentro de un entorno general de
trabajo.
Son una excelente herramienta para capacitar a los nuevos empleados y
tambin a los que desarrollan la tarea, cuando se realizan mejoras en el
proceso.

El diagrama de flujo representa lo que es una secuencia de pasos a seguir por


medio de smbolos y seguidos en secuencia por medio de conectores en
flechas llegando a una solucin para una entrada; es una relacin finita dado
que siempre llegara a un fin.

PSEUDOCDIGO:
Conocido como lenguaje de especificacin de algoritmos, el pseudocdigo se traduce
posteriormente a un lenguaje de programacin. La computadora no puede ejecutar el
pseudocdigo. Su uso tiene ventajas porque permite al programador una mejor
concentracin de la lgica y estructuras de control, y no preocuparse de las reglas de un
lenguaje de programacin especfico. El pseudocdigo tambin ofrece la ventaja de poder
hacer modificaciones cuando se detectan errores en la lgica del programa, lo que no es
posible o es muy difcil cuando se ve esto en un lenguaje de programacin. Dentro de las
ventajas del pseudocdigo es que da la facilidad de traduccin por lenguajes como
PASCAL, COBOL, C, FORTRAN 77 o BASIC estructurado (ANSI, True, Quick, Turbo,
etc.).
El pseudocdigo hace uso de palabras que son reservadas para las acciones sucesivas,
las cuales son similares a sus homnimas en los lenguajes de programacin tales como:
star, end, stop, if-then-else, while-when, repeat-until, etc. El pseudocdigo exige la
indentacin (sangra en el margen izquierdo) de diferentes lneas.
Pseudocdigo: Un pseudocdigo (falso lenguaje), es una serie de instrucciones a seguir
pero utilizando palabras lxicas y gramaticales referidos a los lenguajes de programacin,
pero sin llegar estar estrictamente correcta su sintaxis de programacin; ni tener la fluidez
del lenguaje coloquial. Permitiendo codificar un programa con mayor agilidad que en
cualquier lenguaje de programacin. Forma parte de las distintas herramientas de la
ingeniera de software y es, netamente, lenguaje de tipo informtico.

La estructura de un pseudocdigo puede ser de tres tipos:

Secuencial.- esta consiste en colocar cada instruccin una tras de la otra sin tener
ningn tipo de saltos.
Selectiva.- esta lleva a cabo ciertas instrucciones cuando se cumple una cierta
condicin y si esta condicin no se cumple se salta a la siguiente instruccin.
Selectiva doble (anidamiento).- Esta realiza una instruccin u otra segn la
respuesta de la condicin planteada.
Selectiva mltiple.- Esta realiza instrucciones para distintos comportamientos de
las condiciones, que sera como trabajar varias selectivas dobles.
Selectiva mltiple-casos.- Esta realizara para un cierto tipo de orden declarado en
un inicio y dependiendo cual sea ser el tipo de comportamiento a realizar.
Iterativa.- Este consiste en la posibilidad de realizar una misma instruccin ms de una
vez.
Bucle mientras.- Realiza ciertas instrucciones mientras que la condicin se siga
cumpliendo.
Bucle repetir.- Realiza ciertas instrucciones hasta que se deje de cumplir con la
condicin que a diferencia del mientras esta instruccin realiza al menos una vez
las instrucciones.
Bucle para.- Se utiliza para realizar instrucciones cierto nmero de veces pero
definiendo por un ndice que se incrementa en cada vuelta.
Bucle para cada.- Realiza instrucciones para todo elemento que cumpla con la
condicin.
Al igual que en el caso del diagrama de flujo existen ciertas reglas para que
sea un buen pseudocdigo:

1.-Tenga un nico punto de inicio.

2.-Tenga un nmero finito de posibles puntos de trmino.

3.-Haya un nmero finito de caminos, entre el punto de inicio y los posibles puntos de
termino.

Funciones y Procedimientos:

Al plantear y resolver algoritmos medio de la programacin, al estar trabajndolos saltan a


la vista dos conceptos que aunque son similares no son lo mismo, los cuales son las
funciones y los procedimientos.

Una funcin al igual que en matemticas recibe uno o ms posibles valores y entrega una
salida, y un procedimiento recibe una entrada pero no genera salida.

Un procedimiento son instrucciones con las cuales realizaras un proceso pero son como
una receta y no ocupas nada de smbolos matemticos.

Caractersticas de Pseudocdigos

Ocupan mucho menos espacio en el desarrollo del problema.


Permite representar de forma fcil operaciones repetitivas complejas.
Es ms sencilla la tarea de pasar de pseudocdigo a un lenguaje de programacin
formal.
En los procesos de aprendizaje de los alumnos de programacin, estos estn ms
cerca del paso siguiente (codificacin en un lenguaje determinado, que los que se
inician en esto con la modalidad Diagramas de Flujo).
Mejora la claridad de la solucin de un problema

Todo documento en pseudocdigo debe permitir la descripcin de:

Instrucciones primitivas: Asignacin (5A), Entrada de datos, Salida de datos.


Instrucciones de proceso: Ciclos, Operaciones con datos
Instrucciones compuestas: Desplegar algo en pantalla, ocupar una direccin como
referencia y trabajar con ella
Instrucciones de descripcin: mensajes para usuario de que seguira dentro del
programa

Estructura a seguir en su realizacin Cabecera:

Programa:
Mdulos:

Tipos de datos:

Constantes:
Variables:

Cuerpo:

Inicio
Instrucciones
Fin

Para comentar en pseudocdigo se le antepone al comentario dos asteriscos (**)

Ejemplos: * Programa que calcula el rea de un cuadrado a partir de un lado dado por
teclado. * Programa que visualice la tabla de multiplicar del nmero introducido por teclado

El pseudocdigo es otra forma de representar una solucin a un problema con la diferencia


que se hace ya un poco ms parecido a lo que sera ya un lenguaje de programacin pero
ser estrictos en la sintaxis, tiene distintas formas de estructurarse y sus distintas secuencias,
iteraciones y repeticiones son ya muy similares al menos en contexto a lo que seran ya
dentro de un programa.
PROBLEMAS DE DIAGRAMA DE FLUJO

a) Clculo de grados centgrados a Fahrenheit o viceversa


b) Queremos determinar la cantidad total de llamadas a pagar en la empresa telefnica,
teniendo en cuenta los siguientes aspectos:
1. Cada llamada es de cinco minutos y stas tienen un costo de 0.60 Nuevos
Soles.
2. Pasados los tres minutos por llamada, cada minuto que se adicione tendr un costo de 0.30
Nuevos Soles.

Solucin:
Realizar un algoritmo que solucione el problema planteado:
1. Inicio.
2. Realizar la lectura del nmero de minutos hablados por telfono.
3. Realizar la comprobacin de que el nmero de minutos es mayor que cero, pues la
llamada ha sido realizada. Si el nmero de minutos es distinto de cero entonces es positivo.
Si el nmero de minutos es menor que cero, entonces se producir error.
4. Realizar el clculo de la conversacin de acuerdo a la tarifa:
Si el nmero de pasos es menor que cinco, entonces el precio es de
0.60 Nuevos Soles.
Si el nmero de pasos es mayor que cinco, entonces calcular los pasos que son
adicionales a cinco, pues estos tienen un costo de 0.30 Nuevos Soles cada uno.
Este resultado deber ser sumado al costo de la llamada que son 0.60 Nuevos
Soles, para as obtener el costo total de la llamada.
c) Disear un algoritmo para encontrar las races de una ecuacin de segundo grado.

EJERCICIOS DE PSEUDOCDIGO

PROBLEMA N1

Un operario de una fbrica recibe cada cierto tiempo un depsito cilndrico de dimensiones
variables, que debe llenar de aceite a travs de una toma con cierto caudal disponible. Se
desea crear un programa que le indique cunto tiempo transcurrir hasta el llenado del
depsito. El caudal disponible se considera estable para los tiempos que tardan los llenados
de depsitos y se encuentra almacenado en un archivo del ordenador, figurando el dato en
litros por minuto.

1. Inicio

2. [Q = Caudal disponible en litros / minuto]

3. Leer Q

4. Mostrar Introduzca el dimetro del depsito, en metros: Pedir D

5. Mostrar Introduzca la altura del depsito, en metros: Pedir H

6. Pi = 3,141593

7. R = D / 2

8. V = Pi * (R ^ 2) * H: Vlitros = V * 1000

9. tminutos = V litros / Q

10. Mostrar El tiempo que transcurrir hasta el llenado del depsito es de,
tminutos, minutos

11. Fin
PROBLEMA N2
Se desea disear un algoritmo para saber si un nmero es primo o no.
Solucin:
Un nmero es primo si slo puede dividirse por s mismo y por la unidad (es decir, no tiene
ms divisores que el mismo y la unidad). Por ejemplo 3, 5, 7, 11, 13, 17,19, etc., As, 3 es
divisible por 3 y por 1, 17 lo es por 17 y por 1, etc.
El algoritmo de resolucin del problema pasa por dividir sucesivamente el nmero
2, 3,4, etc.

1. Inicio.
2. Poner X igual a 2 (X=2, X, variable que representa a los divisores del nmero que se
busca N).
3. Dividir N por X (N/X).
4. Si el resultado de N/X es entero, entonces N no es un nmero primo y bifurcar al punto
7, en caso contrario continuar el proceso.
5. Suma 1 a X (X X + 1).
6. Si X es igual a N, entonces N es un nmero primo; en caso contrario, bifurcar al punto 3.
7. Fin.
PROBLEMA N3

Una empresa constructora vende terrenos con la forma A de la figura. Realice un algoritmo y
represntelo mediante un diagrama de flujo y el pseudocdigo para obtener el rea respectiva de
un terreno de medidas de cualquier valor.

Anda mungkin juga menyukai