Professional Documents
Culture Documents
Metropolitano
[ALGORITMOS
COMPUTACIONALES]
Ingeniería en Tecnologías de la Información
Primer Cuatrimestre
Contenido
I. CONCEPTOS BÁSICOS E HISTORIA .................................................................................................... 3
1.1 Introducción .............................................................................................................................. 3
1.2 Definición de Lenguaje de Programación ................................................................................. 4
1.2.2 Objetivos de la programación ............................................................................................ 4
1.2.3 Historia de los Lenguajes de Programación ....................................................................... 4
1.2.4 Clasificación de los Lenguajes de Programación ................................................................ 7
1.3 Definición de algoritmo ............................................................................................................. 8
1.4 Algoritmos Cotidianos ............................................................................................................... 9
1.5 Definición de Lenguajes Algorítmicos ..................................................................................... 10
II. METODOLOGÍA PARA LA RESOLUCIÓN DE PROBLEMAS............................................................... 11
2.1 Definición del problema .......................................................................................................... 11
2.2 Análisis de los datos ................................................................................................................ 11
2.3 Diseño de la solución............................................................................................................... 12
2.4 Codificación ............................................................................................................................. 13
2.5 Prueba y depuración .............................................................................................................. 13
2.6 Documentación ....................................................................................................................... 13
2.7 Mantenimiento...................................................................................................................... 14
III. ENTIDADES PRIMITIVAS PARA EL DISEÑO DE INSTRUCCIONES ................................................... 14
3.1 Tipos de Datos ......................................................................................................................... 14
3.1.1 El tipo Int .......................................................................................................................... 14
3.1.2 El tipo Char ....................................................................................................................... 16
3.2 Operadores y Operandos ........................................................................................................ 18
3.2.1 Operadores aritméticos ................................................................................................... 18
3.2.2 Operadores de asignación ................................................................................................ 19
3.2.3 Jerarquía de los operadores ................................................................................................. 20
IV. TÉCNICAS DE DISEÑO ................................................................................................................... 20
4..1 Top Down ............................................................................................................................... 20
4.2 Bottom Up ............................................................................................................................... 21
1
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
2
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
3
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Exactitud
Claridad
Eficiencia
4
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
5
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
polaco llamado Lukasiewiez creo el hardware B550 que permitía usar pilas
lo que hacia que ALGOL corriera más rápido. También se empiezan a usar
los transistores para los aparatos electrónicos y con ello da inicio la
2nda Generación ( 1960-1965 ).
6
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
7
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
C C# C++ Clipper
Modula2 Fortran
"Un algoritmo se define como un método que se realiza paso a paso para
solucionar un problema que termina en un número finito de pasos".
8
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Inicio.
Traer gato.
Quitar la llanta.
9
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Bajar el gato.
Fin
Inicio
Leer el pedido
Fin
Lenguaje Natural.
Lenguaje de Diagrama de Flujo.
Lenguaje Natural de Programación.
Lenguaje de Programación de Algoritmos
10
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
11
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
12
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
2.4 Codificación
2.6 Documentación
13
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
2.7 Mantenimiento
14
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Por ejemplo:
int numero;
int x, y;
Podríamos pensar que "x" y "y" son igual a 20, pero no es así. La
variable x está sin valor inicial y la variable y tiene el valor
20.
Ejemplo:
#include <stdio.h>
void main()
{
int x = 10;
prinft( "El valor inicial de x es %dn", x );
x = 50;
printf( "Ahora el valor es %d\n", x );
}
¡ Importante !
15
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
int x = 10;
Puede que te imprima el valor 10 o puede que no.
resultado:
La letra es A.
resultado:
El código ASCII de la letra A es 65.
16
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Todo lo demás dicho para los datos de tipo int se aplica también a
los de tipo char.
Una curiosidad:
letra = 'A';
printf( "La letra es: %c y su valor ASCII es: %i\n", letra,
letra );
letra = letra + 1;
printf( "Ahora es: %c y su valor ASCII es: %i\n", letra,
letra );
Resultado:
El valor de num es: 4060.80
17
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Los binarios:
+ Suma
- Resta
* Multiplicación
/ División
% Módulo (resto)
Los unarios:
++ Incremento (suma 1)
- - Decremento (resta 1)
- Cambio de signo
Su sintaxis es:
binarios:
<variable1><operador><variable2>
unarios:
<variable><operador> y al revés, <operador><variable>.
18
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
#include <stdio.h>
= Asignación simple
+= Suma
-= Resta
*= Multiplicación
/= División
%= Módulo (resto)
#include <stdio.h>
19
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
( ) Mayor precedencia
++, - -
*, /, %
+, - Menor precendencia
a*b+c/d-e
1. a*b resultado = x
2. c/d resultado = y
3. x+y resultado = z
4. z-e
20
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
4.2 Bottom Up
21
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
22
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
23
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Diagrama de flujo
Pseudo código
Diagramas estructurados
24
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
25
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
26
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Ejemplo:
27
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
28
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Ejemplo:
29
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
4.4 Pseudocódigo
Secuencia
Inicio
acción1
acción2
acción n
Fin
Decisión
Simple
si condición entonces
30
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
acción 1
acción 2
acción n
Doble
si condición entonces
acción1
acción2
en caso contrario
acción1
acción2
Iteración
Fija
acciòn 1
acciòn 2
acciòn n
Condicional al inicio
acción 1
acción 2
acción n
31
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Condicional al final
Repetir
acción1
acción2
acción n
Selección
casos selector de
valor1 : acción1
acción2
valor2 : acción1
acción2
valor n : acción1
acción2
Ejercicio :
Declaración de variables :
Real : X, Y, RESPUESTA
Entero : OPCION
32
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Carácter : OP
Inicio
Repetir
escribir(‘Primer valor : ’ )
leer(X)
escribir(‘Segundo valor : ‘)
leer(Y)
escribir(‘1) Suma ‘)
escribir(‘2) Resta ‘)
escribir(‘3) Multiplicación ‘)
escribir(‘4) División ‘)
l eer(OPCION)
casos OPCION de
1 : RESULTADO X+Y
2 : RESULTADO X-Y
3 : RESULTADO X*Y
RESULTADO 0
en caso contrario
RESULTADO X/Y
leer(OP)
33
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Fin
Ejercicio :
Declaración de variables
Cadena : nom
entero : x, n
Inicio
escribir(‘Nombre : ‘)
leer(nom)
leer(n)
escribir(x’.- ‘, nom)
Fin
34
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Acciòn 1
Acciòn 2
Acciòn N
Fin
Ejemplo:
35
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Secuenciales
Condicionales
36
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Ejemplo:
Calcular el salario neto de un trabajador en función del número de
horas trabajadas, precio de la hora de trabajo y considerando unos
descuentos fijos al sueldo bruto en concepto de impuestos (20 por
100).
Pseudocódigo
Inicio
{cálculo salario neto}
leer nombre, horas, precio_hora
salario_bruto <- horas * precio
impuestos <- 0.20 * salario_bruto
salario_neto <- salario_bruto_impuestos
escribir nombre, salario_bruto, salario_neto_bruto, salario_neto
Fin
37
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Diagrama N-S
Simples
Múltiples
38
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
simple.
Pseudocódigo en español
Si <condición> Entonces
<acción S1>
Fin_si
Pseudocódigo en inglés
If <condición> then
<acción S1>
end_if
39
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Diagrama N-S
Mientras (while)
Repetir (repeat)
Desde (for)
40
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Diagrama N-S
Ejemplo:
Contar los números enteros positivos introducidos por teclado. Se
consideran dos variables enteras NUMERO y CONTADOR (contará el
número de enteros positivos). Se supone que se leen números
positivos y se detiene el bucle cuando se lee un número negativo o
cero.
Pseudocódigo
Inicio
Contador <- 0
Leer (numero)
Mientras numero > 0 hacer
Contador <- contador+1
Leer (numero)
Fin_Mientras
Escribir('El número de enteros positivos es :
', contador)
Fin
41
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Diagrama de Flujo
Representación en N-S
42
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Pseudocódigo en Español
Pseudocódigo en Inglés
Repetir
Repeat
<acciones>
<acciones>
:
:
Hasta que <condición>
Until <condición>
43
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Pseudocódigo en Español
Pseudocódigo en Inglés
Donde:
v: Variable índice
vi, vf: Valores inicial y final de la variable
44
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
VII. ARREGLOS
Vectores
Matrices
Manejo de cadenas de caracteres
Unidimensionales (Vectores)
Tipo de
Arreglos
Bidimensionales (Matrices)
7.1. Vectores
Vec[x]
Donde:
45
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Vec[1]
7
8
9
Vec[2] 10
· Hacer para I = 1 a 10
Vec[4] Leer vec[I]
Fin-para
Leer vec[I]
Fin-mientras
· I=1
Repetir
Leer vec[I]
I = I + 1
Hasta-que I>10
46
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
7.2 Matrices
Mat [R,C]
Mat [R,C]
· Por renglones
Fin-para
Fin-para
· Por columnas
47
Instituto de Estudios Superiores Metropolitano
M.TL. Juan Carlos González Pinto ALGORITMOS COMPUTACIONALES
Fin-para
Fin-para
Nota: Para hacer el llenado de una matriz se deben de usar dos variables
para los índices y se utilizan 2 ciclos uno para los renglones y otro para
las columnas; a estos ciclos se les llama ciclos anidados (un ciclo dentro
de otro ciclo).
48
Instituto de Estudios Superiores Metropolitano