Você está na página 1de 11

1) Defina que es un algoritmo

El algoritmo constituye un mtodo para resolver un problema mediante una secuencia


de pasos a seguir. Dicha secuencia puede ser expresada en forma de diagrama de
flujo con el fin de seguirlo de una forma ms sencilla.
Un algoritmo debe tener al menos las siguientes caractersticas:
Ser preciso: esto significa que las operaciones o pasos del algoritmo deben
desarrollarse en un orden estricto, ya que el desarrollo de cada paso debe obedecer a
un orden lgico.
Ser definido: Ya que en el rea de programacin, el algoritmo se desarrolla como
paso fundamental para desarrollar un programa, es necesario tener en cuenta que el
computador solo desarrollar las tareas programadas y con los datos suministrados;
es decir, no puede improvisar y tampoco se inventar o adivinar el dato que necesite
para realizar un proceso. Por eso, el algoritmo debe estar plenamente definido; esto
es, que cuantas veces se ejecute, el resultado depende estrictamente de los datos
suministrados. Si se ejecuta con un mismo conjunto de datos de entrada, el resultado
ser siempre el mismo.
Ser finito: esta caracterstica implica que el nmero de pasos de un algoritmo, por
grande y complicado que sea el problema que soluciona, debe ser limitado. Todo
algoritmo, sin importar el nmero de pasos que incluya, debe llegar a un final. Para
hacer evidente esta caracterstica, en la representacin de un algoritmo siempre se
incluyen los pasos inicio y fin.
Presentacin formal: para que el algoritmo sea entendido por cualquier persona
interesada es necesario que se exprese en alguna de las formas comnmente
aceptadas; pues, si se describe de cualquier forma puede no ser muy til ya que solo
lo entender quien lo dise. Las formas de presentacin de algoritmos son: el
pseudocdigo, diagrama de flujo y diagramas de Nassi/Schneiderman, entre otras.
Correccin: el algoritmo debe ser correcto, es decir 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.
La prueba de escritorio es una herramienta til para entender que hace un
determinado algoritmo, o para verificar que un algoritmo cumple con la especificacin
sin necesidad de ejecutarlo.

Bsicamente, una prueba de escritorio es una ejecucin a mano del algoritmo, por lo
tanto se debe llevar registro de los valores que va tomando cada una de las variables
involucradas en el mismo.




A continuacin se muestra un ejemplo de prueba de escritorio del siguiente algoritmo:
suma :entero
entrada :entero
menor :entero

leer entrada
menor = entrada
suma = 0
mientras (entrada != 0) haga
si (entrada < menor) entonces
menor =entrada
fin_si
suma = suma + entrada
leer entrada
fin_mientras
escribir valor Menor:
escribir menor
escribir Suma:
escribir suma

tr>
INSTRUCCIN entrada menor suma Pantalla
leer entrada 10
menor = entrada 10
suma :=0 0
suma :=suma +
entrada
10
leer entrada 7
menor = entrada 7
suma :=suma +
entrada
17
leer entrada 9
suma :=suma +
entrada
26
leer entrada 0
Escribir valor
menor:

Valor
Menor
Escribir menor 7
Escribir Suma: Suma:
Escribir suma 26

Eficiencia: hablar de eficiencia o complejidad de un algoritmo es evaluar los recursos
de cmputo que requiere para almacenar datos y para ejecutar operaciones frente al
beneficio que ofrece. En cuanto menos recursos requieren ser ms eficiente el
algoritmo.
2) Formas de presentacin de algoritmo
Pseudocdigo: Es una forma de diagramar o representar un algoritmo para resolver
un determinado problema, independiente de cualquier lenguaje de programacin en
especial. En ciencias de la computacin, y anlisis numrico el pseudocdigo es una
descripcin informal de alto nivel de un algoritmo informtico de programacin,
compacto e informal, que utiliza las convenciones estructurales de un lenguaje de
programacin verdadero, pero que est diseado para la lectura humana en lugar de
la lectura mediante mquina, y con independencia de cualquier otro lenguaje de
programacin. Normalmente, el pseudocdigo omite detalles que no son esenciales
para la comprensin humana del algoritmo, tales como declaraciones de variables,
cdigo especfico del sistema y algunas subrutinas.
En la actualidad y por lo general, el pseudocdigo, como su nombre lo indica, no
obedece a las reglas de sintaxis de ningn idioma en particular ni es de forma
estndar sistemtica, a pesar de que cualquier escritor en particular vaya a pedir
prestado las estructuras de control general, la sintaxis y el estilo, por ejemplo, de algn
lenguaje de programacin convencional. Pero en caso de que se quiera ejecutar, se
debe llevar a forma tipo, para que no genere mensajes de error. Las fuentes populares
incluyen la sintaxis de Pascal, BASIC, C, C++, Java, Lisp, y ALGOL. Por lo general, se
omiten las declaraciones de variables. A veces, las llamadas a funciones, los bloques
de cdigo y el cdigo contenido dentro de un loop se remplazan por una sentencia de
una lnea en lenguaje natural.
Dependiendo del escritor, el pseudocdigo puede variar mucho en su estilo, yendo
desde en un extremo, una imitacin casi exacta de un lenguaje de programacin real,
hasta al acercarse a una descripcin en prosa de formato de pseudocdigo en el otro
extremo. Este es un ejemplo de pseudocdigo (para el juego matemtico bizz buzz):
Pseudocdigo
estilo Fortran:
programa bizzbuzz
hacer i = 1 hasta 100
establecer print_number
a verdadero
si i es divisible por 3
escribir "Bizz"
establecer
print_number a falso
si i es divisible por 5
escribir "Buzz"
establecer
print_number a falso
si print_number, escribir i
escribir una nueva lnea
fin del hacer
Pseudocdigo estilo Pascal:
procedimiento bizzbuzz
para i := 1 hasta 100 hacer
establecer print_number
a verdadero;
Si i es divisible por 3
entonces
escribir "Bizz";
establecer
print_number a falso;
Si i es divisible por 5
entonces
escribir "Buzz";
establecer
print_number a falso;
Si print_number, escribir
i;
escribir una nueva lna;
fin
Pseudocdigo estilo C:
subproceso funcion
bizzbuzz
para (i <- 1; i<=100; i++) {
establecer print_number
a verdadero;
Si i es divisible por 3
escribir "Bizz";
establecer
print_number a falso;
Si i es divisible por 5
escribir "Buzz";
establecer
print_number a falso;
Si print_number, escribir
i;
escribir una nueva lnea;
}

Ejemplo:
Dadas dos variables numricas A y B, que el usuario debe teclear, se pide realizar un
algoritmo que intercambie los valores de ambas variables y muestre cunto valen al
final las dos variables (recuerda la asignacin).
Papel:
1
2
3
4
5
6
7
8
9
10
11
Var A, B, C: numerica
Inicio
Escribir "Introduce el valor de A"
Leer A
Escribir "Introduce el valor de B"
Leer B
C<-A
A<-B
B<-C
Escribir "A vale " A " y B vale " B
Fin


Diagrama de flujo: Es la esquematizacin grfica de un algoritmo, el cual muestra
grficamente los pasos o procesos a seguir para alcanzar la solucin de un problema.
Es la representacin de la solucin utilizando figuras geomtricas como
circunferencias, flechas, rectngulos, rombos, etc.



Diagrama N-S (Nassi-Shneiderman): tambin conocido como diagrama de Chapin es
una tcnica de especificacin de algoritmos que combina la descripcin textual, propia
del seudocdigo, con la representacin grfica del diagrama de flujo.
El diagrama N-S cuenta con un conjunto limitado de smbolos para representar los
pasos del algoritmo, por ello se apoya en expresiones del lenguaje natural; sin
embargo, dado que el lenguaje natural es muy extenso y se presta para la
ambigedad, solo se utiliza un conjunto de palabras. Son:
Inicio Fin Leer Escribir
Mientras Repita Hasta Para
Incrementar Decrementar Hacer Funcin
Entero Real Caracter Cadena
Lgico Retornar

Ejemplo:

Un maestro desea saber qu porcentaje de hombres y que porcentaje de mujeres hay
en un grupo de estudiantes.
Definicin del problema
Calcular porcentaje de hombres y mujeres en un grupo
Anlisis del problema
Datos a tener en cuenta:
Nmero hombres
Nmero mujeres
Total estudiantes
Porcentaje hombres
Porcentaje mujeres
Datos de entrada: nmero hombres, nmero mujeres
Datos salida: porcentaje hombres, porcentaje mujeres
Procesos: tot estudiantes = nm. hombres + nm. Mujeres
Porc.hombres = nm. Hombres / tot estudiantes*100
Porc.hombres = nm. mujeres / tot estudiantes*100
Diseo de la solucin
Inicio
Entero: numm, numh, totest
Real: porch, porcm
Leer numm, numh
totest = numm + numh
porcm = numm / totest * 100
porch = numh / totest * 100
Escribir "porcentaje mujeres:", porcm
Escribir "porcentaje hombres:", porch
Fin algoritmo

Decisin Doble:

Dados dos nmeros cul es mayor? y cul es menor?
Definicin del problema
Identificar el mayor y menor de dos nmeros
Anlisis del problema
Datos de entrada: num1, num2
Datos salida: mayor, menor
Proceso: comparacin
Diseo de la solucin



Decisin mltiple:
Muchas decisiones deben tomarse, no solo entre dos alternativas, sino de un conjunto
mayor. Estos casos bien pueden solucionarse utilizando condicionales dobles
anidados; sin embargo, en favor de la claridad del algoritmo y la facilidad para el
programador, es mejor utilizar una estructura de decisin mltiple, la cual es fcil de
llevar a un lenguaje de programacin, ya que stos incluyen alguna instruccin con
este fin.
La decisin mltiple determina el valor de una variable y dependiendo de ste sigue un
curso de accin. Es importante tener en cuenta que solo se verifica la condicin
de igualdad entre la variable y la constante.
En diagrama N-S la estructura de seleccin mltiple tiene la forma:

Ejemplo:
Una distribuidora de motocicletas tiene una promocin de fin de ao que consiste en
los siguiente. Las motos marca HONDA tienen un descuento del 5%, las de marca
Yamaha del 8% y las Suzuki el 10%, las de otras marcas el 2%

Definicin del problema:

Calcular el valor del descuento y el valor a pagar por la motocicleta.

Anlisis del problema:
Porcentaje descuento = 5% para motos Honda
Porcentaje descuento = 8% para motos Yamaha
Porcentaje descuento = 10% para motos Suzuki
Porcentaje descuento = 2% para motos otras marcas
Datos de entrada: marca, valor
Datos de salida: descuento, valor a pagar
Proceso:
Descuento = valor * porcentaje
Valor neto = valor - descuento
Diseo de la solucin



































3) Simbologa en el desarrollo de algoritmos en diagrama de flujos:




4) Definicin de programas

Un programa de computadora o simplemente un programa, es una secuencia
de instrucciones, escritas para realizar una tarea especfica con una computadora.1
Este dispositivo requiere programas para funcionar, por lo general ejecutando las
instrucciones del programa en un procesador central.2 El programa tiene un formato
ejecutable que la computadora puede utilizar directamente para ejecutar las
instrucciones. El mismo programa en su formato de cdigo fuente legible para
humanos, del cual se derivan los programas ejecutables (por ejemplo, compilados), le
permite a un programador estudiar y desarrollar sus algoritmos. Una coleccin de
programas de computadora y datos relacionados se conoce como software.


5) Diferencia entre programa y algoritmo

El algoritmo es el procedimiento lgico elemental, necesario para lograr un objetivo, el
programa es la serie de instrucciones necesarias para hacer que un dispositivo
ciberntico ejecute ese procedimiento para, en consecuencia, lograr el objetivo en
cuestin y uno es consecuencia del otro, es decir, primero se elabora el algoritmo para
saber cmo lograr lo que se quiere hacer y despus se codifica el programa segn el
dispositivo y el lenguaje que se usen.

Para las respuestas anteriores:

Algoritmo es una secuencia de acciones lgicas necesarias para lograr un objetivo
cualquiera que sea, no especficamente matemtico, un programa en general es una
serie de instrucciones en determinado lenguaje necesarias para que un ordenador
cumpla con una tarea, mismas que en todo caso, son la traduccin de un algoritmo al
lenguaje en cuestin.

El programa es siempre programa ya sea ejecutable o cdigo, estas son solo etapas
en la elaboracin del mismo, es decir en ambos casos son la traduccin del algoritmo
al lenguaje de la maquina, solo que cuando es el cdigo es en la forma que es
entendible para las personas y el ejecutable es en lenguaje que entiende la maquina.

6) Mostrar un ejemplo de algoritmo en diagrama de flujo y mostrar el mismo
en pseudocdigo

Una ONG tiene puntos de reparto de vacunas que se pretende funcionen de la
siguiente manera. Cada da, empezar con 1000 vacunas disponibles y a travs de un
programa que controla las entregas avisar si el inventario baja de 200 unidades.
Desarrollar pseudocdigo y diagrama de flujo

Pseudocodigo:

1. Inicio [Control de Vacunas aprenderaprogramar.com]
2. Existencias = 1000
3. Mientras Existencias >= 200 Hacer
Mostrar Introduzca el nmero de unidades entregadas
Pedir Entregadas
Existencias = Existencias Entregadas
Repetir
4. Mostrar El inventario ha bajado de 200 unidades. Debe comunicarlo
5. Fin.

Você também pode gostar