Vous êtes sur la page 1sur 19

Introduccin a la Programacin

ALGORITMIA
Definicin:
Es la Ciencia que trata sobre los algoritmos. Es uno de los pilares de la informtica
y su relevancia se muestra en el desarrollo de cualquier aplicacin, ms all de la mera
construccin de programas
Para la ejecucin de diversas tareas, el computador requiere de un algoritmo que
mediante un programa le indique de manera metodolgica y precisa la manera como lo va a
realizar.
Algoritmo:
La palabra algoritmo proviene del gran matemtico rabe Mohamed Al Kho
Warizmi.
Definiciones:
Es sencillamente un conjunto de reglas para efectuar algn clculo, bien sea a
mano o, ms frecuentemente, en una mquina (Brassard y Bratley, 2000)
Es una descripcin de los pasos bsicos a seguir para cumplir una determinada
tarea... para que una computadora realice una tarea es necesario definir previamente un
algoritmo (Torrealba, 2004)
Es un mtodo para resolver problemas. El cual consta de una sucesin finita de
pasos no ambiguos, definidos y precisos que se pueden ejecutar en un tiempo finito.
Conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un
resultado o resolver un problema
Caractersticas de un algoritmo:
Las caractersticas fundamentales que debe cumplir todo algoritmo son:

Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.


Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe
obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algn
momento; o sea, debe tener un nmero finito de pasos.
No debe ser ambiguo. Cada accin a desarrollar en cada secuencia, tiene que estar
unvocamente determinada, tanto por la instruccin como por los datos disponibles
Lcdo. Jos
Romero

Introduccin a la Programacin

en este momento. Es decir, en cada momento se debe saber que accin nica se
tiene que llevar a cabo.
Los algoritmos son independientes tanto del lenguaje de programacin en que se
expresan como de la computadora que los ejecuta.
Un lenguaje de programacin es tan slo un medio para expresar un algoritmo y una
computadora es slo un procesador para ejecutarlo.
Tanto el lenguaje de programacin como la computadora son los medios para
obtener un fin: conseguir que el algoritmo se ejecute y se efecte el proceso
correspondiente.
Clasificacin de los algoritmos:
Toda actividad que realice el ser humano, responde a un algoritmo.
Los algoritmos se pueden clasificar en cuatro tipos:

Algoritmo computacional: Es un algoritmo que puede ser ejecutado en una


computadora. Ejemplo: Frmula aplicada para un clculo de la raz cuadrada de un
valor x.

Algoritmo no computacional: Es un algoritmo que no requiere de una


computadora para ser ejecutado. Ejemplo: Instalacin de un equipo de sonido.

Algoritmo cualitativo: Un algoritmo es cualitativo cuando en sus pasos o


instrucciones no estn involucrados clculos numricos. Ejemplos: Las
instrucciones para desarrollar una actividad fsica, encontrar un tesoro.

Algoritmo cuantitativo: Una algoritmo es cuantitativo cuando en sus pasos o


instrucciones involucran clculos numricos. Ejemplo: Solucin de una ecuacin de
segundo grado.

Partes de un algoritmo
Todo algoritmo debe obedecer a la estructura bsica de un sistema, es decir:
Entrada, Proceso y Salida.

Entrada de datos: Son los datos necesarios que requiere el proceso para ofrecer los
resultados esperados
Proceso: es la secuencia de pasos para ejecutar el algoritmo y as obtener la solucin
del problema
Salida de resultados: son los datos obtenidos despus de la ejecucin del algoritmo
Lcdo. Jos
Romero

Introduccin a la Programacin

De algoritmo a programa
Para que un algoritmo sea comprendido por una computadora, este debe ser escrito
en un lenguaje de programacin.
Un programa, es un algoritmo expresado en un determinado lenguaje de
programacin.

Elementos de un algoritmo:
Los elementos para la construccin de un algoritmo son:
Comandos
Datos
Variables y constantes
Operadores
Comandos o Palabras reservadas:
Son palabras que denotan acciones que debe interpretar y ejecutar el computador.
Cada comando conserva una sintaxis determinada.
Los lenguajes computacionales tienen en su repertorio comandos dirigidos al
procesamiento de archivos y datos.
Datos:
Es un campo que puede convertirse en informacin.
Los datos que procesa una computadora pueden ser simples o estructurados:
Los datos simples solo ocupan una casilla o celdas de memoria.
Para poder acceder a una ubicacin especfica de la memoria, la CPU genera seales en el
bus de direccin, que habitualmente tiene un tamao de 32 bits en la mayora de mquinas
actuales. Un bus de direccin de 32 bits permite especificar a la CPU 232 = 4.294.967.296
direcciones de memoria distintas
Los datos simples pueden ser:

Numricos (Reales, Enteros)

Lgicos
Lcdo. Jos
Romero

Introduccin a la Programacin

Carcter (char)

Estructurados: Se caracterizan por el hecho que con un nombre o identificador se hace


referencia a un grupo de casillas. Es decir, un dato estructurado tiene varios componentes.
Los datos estructurados pueden ser:

Arreglos

Cadenas de caracteres

Registros.

Identificador:
Los datos que procesar la computadora, ya sean simples o estructurados, se deben
almacenar en casillas o celdas de memoria para utilizarlos posteriormente. A esta casilla o
celda de memoria se le asigna un nombre, el cual se forma por medio de letras, dgitos, y el
carcter subrayado (_), Siempre hay que comenzar con una letra.

Variables y constantes:
Son espacios de memoria creados para contener valores que de acuerdo a su
naturaleza deseen mantenerse (constantes) o que puedan variar (Variables).

Constantes: Es un dato que permanece con valor, sin cambios, es decir constante, a
lo largo del desarrollo del algoritmo o a lo largo de la ejecucin del programa.

Variable: Es un dato cuyo valor puede variar a lo largo del desarrollo del algoritmo
o en el transcurso de la ejecucin del programa. Una variable descrita o declarada
de un tipo determinado, slo podr contener, valores de ese tipo.

Una vez que se declaran las variables, estas reciben un valor a travs de un bloque de
asignacin. La asignacin es una operacin destructiva. Esto significa que si la variable
tena un valor, este se destruye o se sustituye por el nuevo valor.

En Pseudocdigo es:
Variable<-expresin o valor

Variable<-expresin o valor
En C y otros lenguajes de programacin:
Lcdo. Jos
Romero

Introduccin a la Programacin

Variable=expresin o valor
Operadores:
Los operadores son elementos que disparan ciertos clculos cuando son aplicados a
variables o a otros objetos en una expresin.
Operandos: cada una de las cantidades, constantes, variables, funciones que intervienen en
una expresin
Operacin: es cualquier conjunto de operadores y operandos, que dan como resultado una
cantidad.

Operadores aritmticos: Son utilizadas para construir frmulas matemticas. Las


variables y constantes son de naturaleza numrica, es decir nmeros enteros o
reales. El resultado de una operacin aritmtica es un nmero.

Nombre del Operador


Adicin
Diferencia
Producto
Divisin
Mdulo
Raz Cuadrada
Potencia

Smbolo
+
*
/
%
sqrt()
^, pow(base, exponente)

Jerarqua de los Operadores Aritmticos:


1. sqrt(),^
2. *,/,%
3.

+,-

Operaciones Lgicas o Booleanas:


Son expresiones cuyo resultado es un Verdadero o Falso. Se Utilizan mucho
en las estructuras selectivas y repetitivas

Operadores relacionales: Son aquello que sirven para expresar las condiciones en
los algoritmos.
Las variables y constantes son de distinta naturaleza, el resultado de una expresin
lgica y relacional es de tipo lgica.
Lcdo. Jos
Romero

Introduccin a la Programacin

Operadores lgicos: se utilizan en los programas cuando se requiere conocer o


evaluar si los valores de variables o constantes determinada cumplen con ciertas
condiciones. De cumplirse o no, permiten un conjunto de instrucciones que pueden
o no ejecutarse. Una expresin lgica puede ser verdadera o falsa.

AND (y)
OR(o)
NOT (NO)
Representacin de un algoritmo:
Son los mtodos utilizados para independizar el algoritmo de su correspondiente
codificacin.
Existen dos tipos:

Pseudocdigo
Diagrama de flujo

Pseudocdigo:
Es un lenguaje de especificacin de algoritmo (no de programacin) basado en un
sistema notacional, con estructuras sintcticas y semnticas, similares a los lenguajes de
procedurales, aunque menos formales que las de estos, por lo que no puede ser ejecutados
directamente por un computador.
Es la representacin de los pasos del algoritmo a travs de palabras,
utilizando una nomenclatura estandarizada para denotar el significado de cada paso. Dentro
de ste es permitido la sangra con el fin de que se visualice, en forma sencilla, el grupo de
instrucciones pertenecientes a una determinada accin.

Lcdo. Jos
Romero

Introduccin a la Programacin

El pseudocdigo utiliza para representar las sucesivas acciones, palabras reservadas


que son parecidas a los del lenguaje de programacin.
Su objetivo es permitir que el programador se centre en los aspectos lgicos de la
solucin a un problema.
Ventajas del Pseudocdigo:

Permite que el programador no se preocupe, por ahora en detalles acerca de las


reglas sintcticas y semnticas de un lenguaje de programacin especifico.
Es ms sencillo de modificar, en caso de encontrar errores y anomalas en la lgica
del algoritmo.
Puede ser expresado en cualquiera de los lenguajes de programacin existentes.

Diagrama de flujo:
Son herramientas grficas utilizadas tanto para representar algoritmos, como en la
ayuda en el diseo de programas. Est compuesto por una serie de smbolos o figuras,
unido con flechas, donde cada smbolo representa una accin distinta y las flechas (lneas
de flujo) el orden de realizacin de las acciones.
Cada instruccin del pseudocdigo puede ser representada por el diagrama de flujo
Smbolos utilizados en los diagramas de flujo:
SMBOLO

FUNCIN

Asignacin
Proceso

SMBOLO

Decisin

FUNCIN

Llamada
procedimientos o
Mdulos

Comienzo y Final
del programa
Conector

Lcdo. Jos
Romero

Introduccin a la Programacin

Entrada

Salida

Conector

Reglas para la realizacin de un diagrama de flujo:


1. Todo Diagrama de flujo debe tener un inicio y un final
2. Las lneas utilizadas para indicar la direccin del flujo del diagrama deben de ser
rectas: verticales u horizontales
3. Todas las lneas utilizadas para indicar la direccin del flujo del diagrama deben
estar conectadas. La Conexin puede ser un smbolo que exprese lectura, proceso,
decisin, escritura, conexin o fin del programa.
4. El diagrama de flujo debe construirse de arriba hacia abajo(top-down) y de
izquierda a derecha(left to right)
5. La notacin utilizada en el DF debe ser independiente del lenguaje de
programacin. La Solucin presentada se puede escribir posteriormente en
diferentes lenguajes de programacin.
6. Al realizar una tarea compleja, es conveniente colocar comentarios que expresen o
ayuden a entender lo que hayamos hecho.
7. Si la construccin del DF requiere ms de una hoja, debemos utilizar los conectores
adecuados y enumerar las pginas correspondientes.
8. No puede llegar ms de una lnea a un smbolo determinado.
Estructuras bsicas
Instrucciones de Entrada y Salida:

Leer: Lee o almacena una(s) variable(s del teclado)


Escribir: Despliega texto(s) o valor de una(s) variable(s) en pantalla

Ejemplo: Hacer un Algoritmo para sumar dos nmeros, y mostrarlo en pantalla.


Pseudocdigo:
1.
2.
3.

INICIAR
//ENTRADA
ESCRIBIR Introduzca Primer Nmero:;

Lcdo. Jos
Romero

Introduccin a la Programacin

4.
5.
6.
7.
8.
9.
10.
11.

LEER a; // a es real
ESCRIBIR Introduzca
LEER b; // a es real
//PROCESO
suma<- a+b;
//SALIDA
ESCRIBIR La Suma es:
FINALIZAR

Segundo Nmero:;

, suma;

DIAGRAMA DE FLUJO:

Estructura de control:
Son las acciones que tienen por objeto marcar el orden de realizacin de los
distintos pasos de un programa o algoritmo. Cada estructura debe tener un punto de entrada
y otro de salida.
Tipos de estructura de control:

Estructuras Secuenciales
Estructuras Selectivas
Estructuras repetitivas

Estructuras secuenciales:
Son aquellas en las que una accin (instruccin) sigue a otra de acuerdo con su
orden de escritura. Las tareas se suceden de tal modo que tras la salida de una se efecta la
entrada de la siguiente y as sucesivamente hasta el final del proceso.
Diagrama de Flujo de la estructura secuencial:
Estructura Selectivas:
Son aquellas que se utilizan para tomar decisiones, de ah que se suelan denominar
tambin estructura de decisin o alternativa. En estas estructuras se evala una condicin,
Lcdo. Jos
Romero

Introduccin a la Programacin

especificada mediante una expresin lgica, en funcin de cuyo resultado, se realiza una
opcin u otra.

Diagrama de flujo de una estructura


selectiva:

Estructuras selectivas o alternativas


simples (Si-Entonces/if-then)
Es la estructura alternativa ms
simple. Su efecto es el de ejecutar una determinada accin cuando se cumple una cierta
condicin y en caso contrario seguir el orden secuencial.
Esta condicin evala la condicin, y de acuerdo con su resultado realiza lo
siguiente.

Verdadero: Ejecuta una o varias acciones


Falsa: No hace nada y sigue la ejecucin normal del programa, pasando a la
instruccin siguiente a la finalizacin de la estructura selectiva

En el pseudocdigo debe estar claramente delimitada la finalizacin del SiEntonces, lo cual se logra con un fin_si.
Pseudocdigo de la estructura Si-Entonces:
si <condicin> entonces
<acciones>
fin_si
Ejem: Hacer un Algoritmo que dados dos nmero determine cul es mayor
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

INICIAR
//ENTRADA
ESCRIBIR Introduzca Primer Nmero:;
LEER a; // a es real
ESCRIBIR Introduzca Segundo Nmero:;
LEER b; // a es real
//PROCESO
mayor<-b;
SI a>b ENTONCES
mayor<-a;
FIN_SI
Lcdo. Jos
Romero

Introduccin a la Programacin

12.
13.
mayor es: , mayor;
14.

//SALIDA
ESCRIBIR

El

FINALIZAR

DIAGRAMA DE FLUJO:

Estructuras selectivas o alternativas dobles. (Si-entonces-sino/if-then-else)


Permite elegir entre dos opciones posibles en funcin del cumplimiento o no de una
condicin. En estas estructuras si la condicin es verdadera, se ejecuta la(s) accin(es)
correspondiente a S1, y si es falsa, se ejecuta la(s) accin(es) S2.
Pseudocdigo estructura Si-Entonces-si_no:
si <condicin> entonces
<acciones S1>
si_no
<acciones S2>
fin_si
Ejem: Hacer un Algoritmo que dados dos nmero determine cul es mayor y menor
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

INICIAR
//ENTRADA
ESCRIBIR Introduzca Primer Nmero:;
LEER a; // a es real
ESCRIBIR Introduzca Segundo Nmero:;
LEER b; // a es real
//PROCESO
SI a>b ENTONCES
mayor<-a;
menor<-b;
SINO

Lcdo. Jos
Romero

Introduccin a la Programacin

12.
13.
14.
15.
16.
es , mayor , y el menor es , menor;
17.

mayor<-b;
menor<-a;
FIN_SI
//SALIDA
ESCRIBIR El mayor
FINALIZAR

DIAGRAMA DE FLUJO:

Estructuras alternativas Mltiples (segun_sea, en_caso_de)


Consiste en evaluar una expresin que podr tomar n valores distintos e1, e2,. en.
Segn el valor que tome la condicin, se realizar una de las n acciones posibles, o lo que
es lo mismo, el flujo del algoritmo seguir un determinado camino entre los n posibles.
Diagrama de flujo de la estructura de alternativa Mltiples:

Lcdo. Jos
Romero

Introduccin a la Programacin

Pseudocdigo de la estructura alternativas Mltiples:


segn_sea expresin (E) hacer
e1: <acciones S1>
e2: <acciones S2>

De_otro_Modo: <acciones Sn>


fin_segun
Ejem: Mostrar las acciones que debe realizar un automvil al pasar por un semforo.
El usuario debe introducir la seal del semforo(amarillo, verde, rojo) y mostrar
la accin que debe realizar: parar, continuar , disminuir la velocidad.
1.
2.
3.
4.
5.
6.

7.
8.

9.
10.

INICIAR
//ENTRADA
ESCRIBIR Escriba el Color de la Seal:;
LEER sn;//sn seal
//PROCESO
SEGUN_SEA sn HACER
verde:
ESCRIBIR Continuar;
amarillo:
ESCRIBIR Disminuir Velocidad;
rojo:
ESCRIBIR Disminuir Velocidad;
DE_OTRO_MODO:
ESCRIBIR Color Equivocado;
FIN_SEGUN_SEA
FINALIZAR

Lcdo. Jos
Romero

Introduccin a la Programacin

DIAGRAMA DE FLUJO:

Lcdo. Jos
Romero

Introduccin a la Programacin

Estructuras repetitivas
Conceptos bsicos:
Bucle o lazo (loop): segmento de un programa cuyas instrucciones se repiten bien un
nmero determinado de veces o mientras se cumpla una determinada condicin.
Contador: variable cuyo valor se incrementa o decrementa en una cantidad constante en
cada repeticin que se produzca.
Acumulador o totalizador: variable encargada de almacenar una cantidad no constante o
variable, resultante de operaciones sucesivas y repetidas.
Estructuras repetitivas: Son aquellas que marcan la reiteracin de una serie de acciones
basndose en un bucle. Est compuesto por tres partes bsicas:

Decisin (para finalizar la repeticin)


Cuerpo del bucle (conjunto de instrucciones que se repiten)
Salida del bucle (instruccin a la que se accede una vez se decide finalizar)

Estructura desde-hasta (for)


Consiste en que la condicin de salida se basa en un contador que cuenta el nmero de
interaccin. En estas estructuras se conoce de antemano el nmero de antemano.
Pseudocdigo Estructura desde-hasta:
Desde v<-vi hasta vf inc incremento hacer
<acciones>
.
.
fin_desde
v= variable ndice. En muchos casos se utilizan las letras i, j, k
vi= valor inicial de la variable
vf= valor final de la variable
-------------------------------------------------------------------------Para v<-vi hasta vf Con_Paso incremento hacer
Lcdo. Jos
Romero

Introduccin a la Programacin

<acciones>
.
.
fin_para
v= variable ndice. En muchos casos
letras i, j, k

se utilizan las

vi= valor inicial de la variable


vf= valor final de la variable
Ejemplo: Hacer un algoritmo que
primeros diez nmero.
1.
2.
3.
4.
5.
6.
7.
8.
9.

sume

los

INICIAR
sum<-0; //Inicializamos el Acumulador
//PROCESO
DESDE i<-0 HASTA 10 CON_PASO 1 HACER
sum<-sum+i;
FIN_DESDE
//SALIDA
ESCRIBIR La Suma de los 10 primeros Nmeros es, sum;
FINALIZAR

DIAGRAMA DE FLUJO:

Estructura mientras (while)


Son aquellas donde la condicin de salida del bucle se realiza al principio del
mismo, este se ejecuta mientras se verifica una cierta condicin.
Lcdo. Jos
Romero

Introduccin a la Programacin

Pseudocdigo

de

la

Estructura

mientras:

mientras condicin hacer


<acciones>
fin_mientras
Ejemplo: Realizar el algoritmo anterior
mientras
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

pero

con

la

estructura

INICIAR
sum<-0; //Inicializamos el Acumulador
i<-0; //Inicializamos el contador
//PROCESO
MIENTRAS i<=10 HACER
sum<-sum+i
FIN_MIENTRAS
//SALIDA
ESCRIBIR La Suma de los 10 primeros Nmeros es, sum;
FINALIZAR

DIAGRAMA DE FLUJO:

Estructura repetir-hasta_que
En esta la condicin de salida se sita al final del bucle; y este se ejecuta hasta que
se verifique una cierta condicin. En estos bucles se ejecuta al menos una vez, antes de
comprobar la condicin de repeticin. La estructura repetir-hasta_que se ejecuta hasta que
se cumpla una condicin determinada que se comprueba al final del bucle.
Pseudocdigo repetir-hasta_que:
repetir
<acciones>
Lcdo. Jos
Romero

Introduccin a la Programacin

hasta_que <condicin >

Lcdo. Jos
Romero

Introduccin a la Programacin

Ejemplo: Hacer un Algoritmo para


un Nmero. Tiene que validarse el
1.
2.
3.
4.
5.
6.
7.
8.
Nmeros es, sum;
9.

INICIAR
//PROCESO
REPETIR
ESCRIBIR
LEER n;
HASTA_QUE
//SALIDA
ESCRIBIR La

calcular la raz cuadrada de


Radicando.

Inserte Valor:;
//ENTRADA
N>0
Suma

de

los

10

primeros

FINALIZAR

DIAGRAMA DE FLUJO:

Anidamiento de estructuras repetitivas


Los bucles son anidados cuando estn dispuestos de tal modo que unos son
interiores a otros.

Lcdo. Jos
Romero

Vous aimerez peut-être aussi