Documentos de Académico
Documentos de Profesional
Documentos de Cultura
a) CONCEPTOS DE ALGORITMO
Un algoritmo es un conjunto finito de instrucciones o pasos
con una secuencia lógica que sirven para ejecutar una
tarea o resolver un problema.
De un modo más formal, un algoritmo es una secuencia
lógica finita de operaciones realizables, no ambiguas,
cuya ejecución da una solución de un problema en un
tiempo finito.
- COMPONENTES DE UN ALGORITMO
Entrada : Datos del problema a resolver.
Salida : El resultado de la resolución.
Procesos : Paso a seguir en la resolución.
- CARACTERÍSTICAS DE UN ALGORITMO
PRECISIÓN
Solución clara sin ambigüedad.
REPETITIVIDAD
Idénticos resultados en las mismas
condiciones iniciales.
FINITUD
Solución en un tiempo finito.
EFICIENCIA
Tiempo de ejecución.
Requerimiento de memoria.
EJEMPLO Nº 1
Un cliente efectúa un pedido a una compañía, La compañía
verifica en su banco de datos la ficha del cliente, si el cliente
es solvente entonces la compañía acepta el pedido; en caso
1
ALGORITMO Y ESTRUCTURA DE DATOS I
CONCEPTO DE PROGRAMA
EJEMPLO Nº 2
b) CONCEPTO DE SOFTWARE
Es la parte lógica de la computación.
Conjunto de programas que sirven para representar un
segmento de la realidad y resolver un problema. Como
por ejemplo: el Office, un sistema operativo, C++, Pascal,
Java, etc.
c) LENGUAJES DE PROGRAMACIÓN
Son aquellos lenguajes que se utilizan para realizar
algoritmos interpretables por la computadora.
Características imprescindibles Estructura de Control.
Programación Modular
(funciones).
2
ALGORITMO Y ESTRUCTURA DE DATOS I
Lenguaje máquina.
Lenguaje de bajo nivel (ensamblador).
Lenguajes de alto nivel: C, C++, Visual Basic, Java,
Pascal, Prolog.
3
ALGORITMO Y ESTRUCTURA DE DATOS I
EJEMPLO Nº 3
Imprimir la hipotenusa, teniendo los lados de un triangulo
rectángulo.
4
ALGORITMO Y ESTRUCTURA DE DATOS I
EJEMPLO Nº 4
Determine a los números menores que 90 y múltiplos de 9, así
como su sumatoria.
Definición del
Definiciónde Especificacion Especificacion
problema
l Problema e s de e s de salida
entrada
5
ALGORITMO Y ESTRUCTURA DE DATOS I
Documentación interna:
Comentarios: líneas informativas incluidas en el código.
Documentación externa:
Manuales, estructura y especificaciones del programa, historia de
las modificaciones, etc.
6
ALGORITMO Y ESTRUCTURA DE DATOS I
Lenguaje natural.
Organigramas.
Diagramas Nassi – Shneiderman (N - S).
Pseudocódigo.
Otros
LENGUAJE NATURAL:
Es un lenguaje utilizado para describir los pasos de cómo
realizamos algo, de una forma sencilla.
EJEMPLO Nº 5
El algoritmo para encontrar las raíces de una ecuación de
segundo grado podría describirse así:
ORGANIGRAMAS:
Los organigramas o diagramas de flujo permiten describir los
algoritmos de forma grafica.
7
ALGORITMO Y ESTRUCTURA DE DATOS I
8
ALGORITMO Y ESTRUCTURA DE DATOS I
Read x
Entrada y salida de
Read x
Datos
Write x
Se escribe en líneas
separadas
Secuencia de
Calcular x = y+3
sentencias
Calcular z = 2*x
IF condición entonces
Acción 1
Selección ELSE
Acción 2
DO WHILE
Acción 1
…
Repetición
…
…
Fin End
9
ALGORITMO Y ESTRUCTURA DE DATOS I
Solución del
Problema por
Computadora
Programa Programa
ejecutable
Compilador Montador
DATOS VS INFORMACIÓN
DATOS VS INFORMACIÓN
- Medidas objetivas de atributos - Resultado de haber organizado
de entidades. o analizado los datos de alguna
- Cifras/hechos crudos (en manera lógica.
bruto) sin interpretar o analizar. - Reduce la incertidumbre.
- No son estímulos de acción. - Impulsa a la acción.
10
ALGORITMO Y ESTRUCTURA DE DATOS I
EJEMPLO Nº 6
DA TO S
- CLASIFICACIÓN
REAL
NUMERICO ENTERO
CHARACTER
ESTANDAR
LOGICO (BOOLEAN)
DATOS SIMPLES
DEFINIDOS X ENUMERATIVO
EL PROGRAMADOR
SUBRANGO
TIPO
DE ARRAYS
DATO ESTATICOS REGISTRO
ARCHIVO (FICHERO)
CONJUNTO)
DATOS
ESTRUCTURADOS CADENA (STRING)
LISTA (PILA/COLA)
DINAMICOS LISTA ENLAZADA
ARBOL
GRAFO
11
ALGORITMO Y ESTRUCTURA DE DATOS I
DATOS ALFANUMÉRICOS
Longitud
Representación Tipo Rango
de byte
Char 1 -128 a 127
Carácter Unsigned 1
char
Int 2 -32768 a 32767
Short int 2 -32768 a 32767
Unsigned int 2 0 a 65535
Enteros
Long 4 -2147483648 a
Unsigned 4 2147483647
long 0 a 4294967295
Float 4 3.4E±38
Reales Double 8 1.7E±308
Long double 10 3.4E-4932 a 1.1E+4932
12
ALGORITMO Y ESTRUCTURA DE DATOS I
DATOS DE DATOS DE
SALIDA ENTRADA
ALGORITMO
ALGORITMOS
+
ESTRUCTURA DE DATOS
=
PROGRAMA
NIKLAUS WIRTH
- CONSTANTES
Constantes: Valores que durante la ejecución de un programa
no cambian su valor.
Ejemplo: pi = 3.1416
- VARIABLES
Definición 1: Valores que cambiarán durante la ejecución del
programa.
13
ALGORITMO Y ESTRUCTURA DE DATOS I
* POR SU USO
DE TRABAJO
Variables que recibe el resultado de una operación
matemática completa y que se usan normalmente dentro
de un programa.
Ejemplo: Suma a + b /c
CONTADORES
Se utilizan para llevar el control del número de ocasiones
en que se realiza una operación o se cumple una
condición. Con los incrementos generalmente de uno en
uno.
IDENTIFICADORES
Para poder reconocer una variable o una constante en la memoria
de la computadora, es necesario darle un nombre con el cual
14
ALGORITMO Y ESTRUCTURA DE DATOS I
Ejemplo:
área pi * radio ^ 2
Los identificadores son: el radio, el área y la constante es pi.
EXPRESIONES
Se definen como una combinación de constantes, variables,
símbolos de operación, paréntesis, y nombres de funciones
especiales.
o Aritméticas
o Lógicas
o Carácter
Operador
Operador Significado
Significado Tipo
Tipo de
de operandos
operandos Tipo
Tipo resultado
resultado
** Exponenciación Entero o real Entero o real
15
ALGORITMO Y ESTRUCTURA DE DATOS I
Reglas de prioridad
Operadores de relación
Operador
Operador Significado
Significado
< Menor
> Mayor
= Igual
<= Menor o igual
>= Mayor o igual
<>,!= Distinto
Operadores lógicos
Operador
Operador lógico
lógico Expresión
Expresión lógica
lógica Significado
Significado
Not Not p Negación
And PyQ Conjunción
Or PoQ disyunción
Ejemplo:
Not 4 > 5 produce un error ya que el operador no se aplica a 4
Not (4 > 5) produce un valor verdadero.
Ejemplo:
P and Q.
P or Q.
16
ALGORITMO Y ESTRUCTURA DE DATOS I
FUNCIONES
Las funciones pueden tener cualquier número de variables, incluso
cero. Para evaluar una función sin variables se debe escribir un par
de paréntesis después de su nombre (por ejemplo fun()). Las
funciones sin variables pueden servir como algoritmos de cálculo
que devuelven un valor real.
FUNCIONES MATEMÁTICAS
Función
Función Descripción
Descripción
Abs(x) Absoluto
Arctan(x) Tangente inversa
Cos(x) Coseno
Exp(x) Exponencial
Ln(x) Log neperiano
Log10(x) Log decimal
Round(x) Redondeo
Sin(x) Seno
Sqr(x) Cuadrado
Sqrt(x) Raíz cuadrada
Trunc(x) Truncamiento
PROBLEMAS PROPUESTOS
17
ALGORITMO Y ESTRUCTURA DE DATOS I
18
ALGORITMO Y ESTRUCTURA DE DATOS I
19
ALGORITMO Y ESTRUCTURA DE DATOS I
20
ALGORITMO Y ESTRUCTURA DE DATOS I
LABORATORIO Nº 1
PASOS A SEGUIR:
Paso 1: Ingresar a inicio – programas – Turbo C++ 4.5. o en otro
compilador de C que le indique el docente
21
ALGORITMO Y ESTRUCTURA DE DATOS I
22
ALGORITMO Y ESTRUCTURA DE DATOS I
#include <iostream.h>
#include <conio.h>
Int main( )
{
float base, altura, area, perímetro;
23
ALGORITMO Y ESTRUCTURA DE DATOS I
24
ALGORITMO Y ESTRUCTURA DE DATOS I
25
ALGORITMO Y ESTRUCTURA DE DATOS I
26
ALGORITMO Y ESTRUCTURA DE DATOS I
CONCEPTO DE PROGRAMA
Es un conjunto de instrucciones, ordenes dadas a la máquina que
producirán la ejecución de una determinada tarea, en esencia es un medio
para seguir un fin.
DESARROLLO DE UN PROGRAMA
1. Definición y Análisis del problema
2. Diseño de algoritmos:
Diagrama de flujo.
Diagrama de N-S.
Pseudocódigo.
Otros
ENTRADA PROGRAMA
SALIDA
Algoritmo de resolución
27
ALGORITMO Y ESTRUCTURA DE DATOS I
TIPOS DE INSTRUCCIÓN
1. Instrucciones de inicio / fin
2. Instrucciones de asignación
3. Instrucciones de lectura
4. Instrucciones de escritura
5. Instrucciones de bifurcación
6. Fin
- Instrucciones de asignación
A 80 la variable A toma el valor de 80
¿Cuál será el valor que tomara la variable C tras la ejecución de las
siguientes instrucciones?
28
ALGORITMO Y ESTRUCTURA DE DATOS I
A 12 A contiene 12
BA B contiene 12
CB C contiene 12
Antes de la ejecución de las tres instrucciones A, B, C son
indeterminados.
Esta instrucción
a) Read numero, horas, tasa lee datos de
un
número12325 horas32 dispositivos
de entrada
tsa1200
a
b) Read A, B, C
A 100 B 200
C300
- A100
- B200
- C300 Esta instrucción
se escribe en
Write A, B, C un
de salida
29
ALGORITMO Y ESTRUCTURA DE DATOS I
30
ALGORITMO Y ESTRUCTURA DE DATOS I
EJEMPLO Nº 7
Ejemplo:
/* El primer programa en C */
#include <stdio.h>
int main( void )
{ printf(“Bienvenido a C!" );
return 0; /* indica que el programa terminó con éxito */
}
EJEMPLO Nº 8
/* Programa de suma */
#include <stdio.h>
int main() /* la función main inicia la ejecución del programa */
{
int entero1; /* primer número introducido por el usuario */
int entero2; /* segundo número introducido por el usuario */
31
ALGORITMO Y ESTRUCTURA DE DATOS I
io s t r e a m . h Flujodeentrada/salida
lim it s . h Limitesenterosdefinidoseimplantados
math.h F u n c i o n e s m a te m á ti c a s
st d i o . h Entrada/Salida
st d l i b . h Funcionesdeutilería
- VARIABLE GLOBAL
INFINITO
Una declaración global de una
variable, hace que la variable INICIO
sea disponible para el uso en
Suma = 0
todas las funciones del archivo
fuente.
Leer N
- BUCLES
Es un segmento de un algoritmo
Suma + N
o programa, cuyas
instrucciones se repiten un Escribir suma
número determinado de veces
mientras se cumple una
determinada condición (existe o es verdadera la condición)
32
ALGORITMO Y ESTRUCTURA DE DATOS I
o Decisión
o Cuerpo de bucle
o Salida de bucle.
TIPOS BUCLES
in icio IN IC IO
Bu c le A
Bu c le B
B u cle C
FIN
fin
Bucles Cruzados
inicio
fin
33
ALGORITMO Y ESTRUCTURA DE DATOS I
Algoritmo
Cabecera del programa
Sección de declaración
Sección de acciones
CONTADORES
34
ALGORITMO Y ESTRUCTURA DE DATOS I
Representación de contadores:
Son variables que se utilizan para contar.
Normalmente su valor se incrementa o decrementa en 1.
Ejemplos:
contador contador
+1 índice índice – 1
EJEMPLO Nº 9
BEGIN
eCon0
END DO
END
ACUMULADORES
Ejemplos:
total total + valor
35
ALGORITMO Y ESTRUCTURA DE DATOS I
Representación:
EJEMPLO Nº10:
BEGIN
eCon0,eAcu0
DO WHILE eCon<=10
READ eNume
eAcueAcu+eNume
eConeCon+1
ENDDO
WRITE eAcum
END
36
ALGORITMO Y ESTRUCTURA DE DATOS I
PROBLEMAS PROPUESTOS
37
ALGORITMO Y ESTRUCTURA DE DATOS I
12. Leer una serie de números distintos de cero (el último número de la
serie es -99) y obtener el número mayor. Como resultado se debe
39
ALGORITMO Y ESTRUCTURA DE DATOS I
19. Dados diez números enteros, visualizar la suma de los números pares
de una lista, cuántos números pares existen y cuál es la media
aritmética de los números impares
LABORATORIO Nº 2
ESTRUCTURA DE UN PROGRAMA:
40
ALGORITMO Y ESTRUCTURA DE DATOS I
#include <nombre_archivo_cabecera>
Ejemplo:
// Importamos la cabeceras de los módulos que necesitamos
#include <iostream.h> // entrada / salida define las variables cin
y cout (consola)
#include <string> // de la biblioteca estándar (STL)
int main ()
{
declaración de variables y constantes
cuerpo del programa
}
41
ALGORITMO Y ESTRUCTURA DE DATOS I
42
ALGORITMO Y ESTRUCTURA DE DATOS I
VARIABLES
Es un espacio en la memoria de la computadora que permite
almacenar temporalmente un dato durante la ejecución de un
proceso, su contenido puede cambiar durante la ejecución del
programa.
1. Un nombre.
2. Un tipo de dato asociado.
3. Un valor inicial.
4. Una dirección de memoria.
CONSTANTES
Una constante es un dato numérico o alfanumérico que no cambia
durante la ejecución del programa.
43
ALGORITMO Y ESTRUCTURA DE DATOS I
LOS COMENTARIOS
Con fines de documentación se pueden añadir comentarios a un
programa. Los comentarios no generan código máquina sino que
son ignorados por el compilador.
Ejemplo:
44
ALGORITMO Y ESTRUCTURA DE DATOS I
#include <iostream.h>
Donde:
45
ALGORITMO Y ESTRUCTURA DE DATOS I
Salida de constantes:
Cout << constantes;
Salida de variables:
Cout << variable;
Notas:
46
ALGORITMO Y ESTRUCTURA DE DATOS I
SECUENCIA DE ESCAPE
Las secuencias de escape proporcionan un determinado significado
al enviar ciertos caracteres especiales a la pantalla, a un archivo de
disco o a la impresora. Todas las secuencias de escape comienzan
con la barra invertida \.
Secuencia de
Descripción
escape
\n Nueva línea. Coloca el cursor al principio de la
segunda línea.
\r Retorno de carro. Coloca el cursor al principio de
la línea actual.
\t Tabulador horizontal. Mueve el cursor al siguiente
tabulador.
\a Alerta. Hace sonar la campana del sistema.
\` Imprime una comilla simple (`).
\” Imprime una comilla doble (“).
\\ Imprime una barra invertida (\)
47
ALGORITMO Y ESTRUCTURA DE DATOS I
Notas:
La entrada con cin se puede concatenar para poder hacer la
entrada de distintas variables o cadenas en una sola
sentencia.
Cin desprecia los caracteres blancos (espacios, tabuladores y
saltos de línea) al realizar la entrada desde el teclado. Esto
significa que no se puede leer con cin cadenas que contengan
espacios en blanco pues cin únicamente leerá la parte de la
cadena hasta el primer blanco. Si se desea leer cadenas que
contengan espacios en blanco use la función gets.
Gets (cad);
La función gets lee una cadena de caracteres ingresada desde el
teclado, incluyendo espacios en blanco, y lo almacena en la variable
de cadena cad. Para usar la función gets debe incluirse el archivo
de cabecera stdio.h.
48
ALGORITMO Y ESTRUCTURA DE DATOS I
operador Acción
++ Suma 1 a su operando
-- Resta 1 a su operando
49
ALGORITMO Y ESTRUCTURA DE DATOS I
DEFINICIÓN
La programación estructurada es una forma de programar de
forma clara, para ello utiliza únicamente tres estructuras:
secuencial, selectiva simple e iterativa; siendo innecesario y
no permitiéndose el uso de la instrucción o instrucciones de
transferencia incondicional (GOTO).
DESVENTAJAS DE LA PROGRAMACIÓN
ESTRUCTURADA
- Es relativamente difícil de aprender ya que es para
expertos.
50
ALGORITMO Y ESTRUCTURA DE DATOS I
3.2.1 SECUENCIAL
La estructura secuencial se refiere a la ejecución de una
secuencia de instrucciones en el orden en que aparecen, de
forma que cada instrucción se ejecuta exactamente una vez.
EJEMPLO Nº 11
BEGIN
REAL base, altura, área, perímetro
READ base, altura
área base*altura
perímetro 2*(base+altura)
WRITE área, perímetro
END
Esta secuencia de instrucciones permuta los valores de x e y, con
ayuda de una variable auxiliar, intermedia.
1º Guardamos una copia del valor de x en auxiliar.
2º Guardamos el valor de y en x, se pierde el valor anterior de x
pero no importa porque tenemos una copia en auxiliar.
3º Guardamos en y el valor de auxiliar, que es el valor inicial de x.
ESTRUCTURA SELECTIVA
Las estructuras de selección son estructuras de control utilizadas
para la toma de decisiones dentro de un programa. A estas
estructuras se les conoce también como estructuras selectivas o
estructuras de decisión.
51
ALGORITMO Y ESTRUCTURA DE DATOS I
DE SELECTIVA DOBLE
SELECCION
DIAGRAMA DE FLUJO:
condición
falsa
verdadera
accion S1
52
ALGORITMO Y ESTRUCTURA DE DATOS I
SINTAXIS:
SINTAXIS EN ESPAÑOL SINTAXIS EN INGLES
SI <condición> IF <condición>
FIN _ SI ENDIF
EJEMPLO Nº 12:
PSEUDOCÓDIGO:
Construya un algoritmo en pseudocódigo tal que, dado los
valores enteros P y Q, que deben leerse del teclado,
determine si los mismos satisfacen la siguiente expresión:
ALGORITMO Problema
VARIABLES
p, q SON ENTEROS
BEGIN
WRITE p
WRITE q
IF p^3 + q^4 -2*p^2<680
WRITE “Los Valores de p y q son:”
WRITE “p=“, p, “q=“, q
END_SI
END
53
ALGORITMO Y ESTRUCTURA DE DATOS I
EN C++:
Según una calificación imprimir si es aprobada
#include <stdio.h>
#include <conio.h>
int main ()
{
float Cal;
clrscr();
printf ("Introduzca la calificación: ");
scanf ("%f", &Cal);
if ( Cal >= 11 )
printf("Aprobó.");
return 0;
}
DIAGRAMA DE FLUJO
si
54
ALGORITMO Y ESTRUCTURA DE DATOS I
SINTAXIS:
PSEUDOCODIGO EN PSEUDOCODIGO EN
ESPAÑOL INGLES
SI <condicion> IF <condición>
<accion S11> <acción S11>
<accion S12> <acción S12>
… …
<accion S2n> <acción S2n>
SI_NO ELSE
<acción 21> <acción 21>
<acción 22> <acción 22>
… …
<acción S1n> <acción S1n>
FIN_SI ENDIF
EJEMPLO Nº 13
La siguiente estructura de selección doble determina si una
persona es mayor o menor de edad:
IF edad >= 18
estado "Mayor de e
d
a
d“
ELSE
estado "Menor de e
d
a
d“
ENDIF
WRITE estado
EN C++:
Imprimir si un número es par o impar
#include <stdio.h>
#include <conio.h>
int main()
55
ALGORITMO Y ESTRUCTURA DE DATOS I
{
int num;
clrscr();
printf("Introducir un número:\n");
scanf("%d",&num);
if ( num % 2 == 0 )
printf("%d es par.",num);
else
printf("%d es impar.",num);
return 0;
}
EJEMPLO Nº 14
Este algoritmo lee tres números A, B, C, imprimiendo el valor
del más grande. Se supone que los tres valores son
diferentes.
Read (A, B, C) // Entrada de valores
then if A > C
B) else if B > C
> A)
Write `El valor más grande es`, MAX // Se imprime el valor más grande
Exit // Termino
56
ALGORITMO Y ESTRUCTURA DE DATOS I
EJEMPLO Nº 15
#include<iostream.h>
int main ( )
{
char codigo;
cout << "Introduzca un código especificado: ";
cin >> codigo;
if (codigo == 'S' )
cout << "El componente tiene calificación de exploración
espacial . ";
else if (codigo == ‘M’)
cout << "El componente tiene calificación de militar. ";
else if (codigo == ‘C’)
cout << "El componente tiene calificación de comercial. ";
else if (codigo == 'J' )
cout << "El componente tiene calificación de juguete. ";
else
cout << "Se insertó un código invalido. ";
cout << endl;
getch();
return 0;
}
57
ALGORITMO Y ESTRUCTURA DE DATOS I
…… Sn
S1 S2 S3 S4
La sintaxis es la siguiente:
Según sea (selector) hacer
caso1, caso2, ..: sentencia 1
.... : .....
caso1n, caso2n, ..: sentencia n
sino
sentencia opcional
fin_según
SINTAXIS:
PSEUDOCÓDIGO EN PSEUDOCÓDIGO EN
ESPAÑOL INGLES
En caso que E sea CASE EXPRESION OF
c1: acción S1 [c1]: acción S1
c2: acción S2 [c2]: acción S2
… …
cn: acción Sn> [cn]: acción Sn>
de otra forma: otherwise
acción Sx acción Sx
fin_caso ENDCASE
58
ALGORITMO Y ESTRUCTURA DE DATOS I
EJEMPLO Nº 16
EN C++:
Imprimir a que día de la semana corresponde un número.
#include
<stdio.h>
#include
<conio.h> int
main()
{
int
Dia;
clrscr(
);
printf("Escriba el número de día:
\n"); scanf("%d",&Dia);
switch(Dia)
{
case 1: printf("El %d corresponde a
Lunes.",Dia); break;
case 2: printf("El %d corresponde a
Martes.",Dia); break;
case 3: printf("El %d corresponde
a Miércoles.",Dia);break;
case 4: printf("El %d corresponde a
Jueves.",Dia); break;
case 5: printf("El %d corresponde a
Viernes.",Dia); break;
case 6: printf("El %d corresponde a
Sábado.",Dia); break;
case 7: printf("El %d corresponde
a Domingo",Dia);break;
default: printf ("El %d día no existe en
la semana.",Dia);
getch();
}
return 0;
}
59
60