Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Conceptos Básicos de Algoritmos
Conceptos Básicos de Algoritmos
Fundamentos de Informtica
Tema 2. Conceptos bsicos de algortmica
Solucin(problema) ALGORITMO(Solucin(problema))
Pasos para la resolucin de un problema:
2.2 Qu es un programa?
Un programa es la expresin (transcripcin) de un algoritmo en un
lenguaje de programacin, capaz de ser procesado por un ordenador tras
su compilacin y linkado y que controla el funcionamiento de un
ordenador a la hora de resolver un problema.
ALGORITMO
+
LENGUAJE DE PROGRAMACIN
PROGRAMA
No
Si
N=2
No
Si
Escribe PAR
N=1
N=N-2
Escribe Impar
Pgina 4 de 16
2.3.2 El pseudocdigo
El pseudocdigo es la representacin narrativa (no hay reglas
sintcticas estrictas) de un algoritmo, escrita en lenguaje natural
utilizando las estructuras de control tpicas de algn Lenguaje de
Programacin y algunos smbolos algebraicos.
La utilizacin de pseudocdigo presenta las ventajas de ser ms
compacto que un organigrama, ser ms fcil de escribir y ser ms fcil de
transcribir a un lenguaje de programacin.
Las estructuras de control deciden qu camino hay que seguir en
funcin de una condicin. Son las siguientes:
1. Estructura secuencial: consiste en colocar una instruccin tras
otra, de manera que se van ejecutando de arriba abajo.
2. Estructura selectiva o condicional (si, si no): permiten ejecutar
un conjunto de instrucciones u otras en funcin de si se cumple o
no una condicin
3. Estructura iterativa o de repeticin (mientras, repetir, para):
permite repetir una instruccin o grupo de ellas un n fijo de veces
o mientras (o hasta que) una condicin sea cierta.
Estructura secuencial
Pseudocdigo de un algoritmo que calcule la media de tres nmeros:
Leer (n1);
Leer (n2);
Leer (n3);
suma = n1 + n2 + n3;
media = suma / 3;
escribir (media);
El orden en el que se realizan las operaciones es importante: no
puede calcularse la media sin antes haber ledo los nmeros.
Pgina 5 de 16
inicio
raiz = RaizCuadrada (media);
escribir (raiz);
fin
si no
escribir ("No se puede hallar la raiz cuadrada");
Pgina 6 de 16
si (teoria >= 5)
inicio
si (practica < 5)
media = 0.4 * teoria + 0.6 * practica;
si (teoria >= 5)
inicio
si no
si (practica < 5)
inicio
fin
si no
fin
inicio
fin
si (practica >= 5)
media = 0.6 * teoria + 0.4 * practica;
si no
inicio
si no
si (practica >= 5)
fin
fin
Pgina 7 de 16
Leer (edad);
escribir("Puedes trabajar");
si no
escribir("No Puedes trabajar");
Ej: algoritmo que lee por teclado unos nmeros (hasta que
introduzcamos un nmero negativo) y calcula su media.
suma = 0;
n = 0;
escribir("Dame un n no negativo");
leer (numero);
leer (numero);
fin
si (n > 0)
inicio
media = suma / n;
escribir("La media es ", media);
fin
si no
escribir ("La media es 0");
leer (numero);
si (numero >= 0)
inicio
suma = suma + numero;
n = n + 1;
fin
fin
mientras (numero >= 0);
si (n > 0)
inicio
media = suma / n;
escribir("La media es ", media);
fin
si no
escribir("La media es 0");
Pgina 9 de 16
Estructura para
Permite realizar una accin un nmero determinado de veces.
El formato de esta estructura es el siguiente:
para variable de inicio a fin
inicio
conjunto de acciones;
fin
En cada iteracin del bucle variable va tomando distintos valores
comprendidos entre inicio y fin. En la primera iteracin toma el valor
inicio, en la segunda inicio+1, y as sucesivamente hasta el valor fin.
Ej: Algoritmo que pide 20 nmeros por teclado y calcula su media.
suma = 0;
para n de 1 a 20
inicio
escribir("Introduzca n", n); leer (numero);
suma = suma + numero;
fin
media = suma / (n-1);
escribir("La media es ", media);
Pgina 10 de 16
suma = 0;
n = 1;
repetir
inicio
leer (numero);
suma = suma + numero;
n = n - 1;
fin
mientras (n <= 20);
media = suma / (n-1);
Pgina 11 de 16
media = 0;
escribir(media);
inicio
fin
escribir (suma);
Pgina 12 de 16
EJEMPLOS
Pseudocdigo
leer(N);
X = 2;
mientras (mod(N / X)<> 0 y X<N)
inicio
X = X + 1;
fin
si (X < N)
escribir( N no es primo);
sino
escribir(N es primo);
Pseudocdigo
SUMA = 0;
N = 2;
mientras (N < = 1000)
inicio
SUMA = SUMA + N;
N = N + 2;
fin
escribir(SUMA);
Pgina 13 de 16
Pgina 15 de 16
2.5.2 El Lenguaje C.
- Es un lenguaje de nivel medio: combina elementos de lenguajes de
alto nivel con la funcionalidad del ensamblador.
- Permite hacer cosas que otros lenguajes de alto nivel no pueden
hacer (manipulacin de bits, bytes, direcciones) y es tan fcil de usar
como cualquier otro lenguaje de alto nivel.
- Es particularmente adecuado para la programacin de sistemas.
- Es muy portable, es decir, es posible adaptar el software escrito para
un tipo de ordenador en otro.
Pgina 16 de 16