Anda di halaman 1dari 48

ALGORITMOS

Resolución de Programas por


Computadora
 Un algoritmo es un grupo de instrucciones que definen la
secuencia de operaciones a realizar para resolver una clase de
problema.
 Secuencia ordenada de pasos que nos sirve para resolver un
problema.
 Características:

• Finito: un algoritmo siempre debe terminar después de un


número finito de pasos.
• Definido: si se sigue un algoritmo dos veces se debe
obtener el mismo resultado
• Entrada: un algoritmo tiene cero o más entradas.
• Salida: un algoritmo tiene una o más salidas.
• Efectivo: resolver el problema para el cual fue diseñado
Resolución de Problemas con Computadoras
Análisis del Problema:
 Requiere una definición donde se contemple exactamente lo que debe
hacer el programa y el resultado o solución deseada.
 Dado que se busca una solución se precisan especificaciones de
entrada y salida.
Diseño del Algoritmo
 Se determina como hace el programa la tarea solicitada.
 Los métodos utilizados para el proceso del diseño se basan en el
conocido divide y vencerás.
 La resolución de un problema complejo se realiza dividendo el
problema en subprogramas y a continuación dividir estos subproblemas
en otros de nivel mas bajo, hasta que sea implementada una solución
en la computadora.
Implementación del Algoritmo
 Para implementar un algoritmo en la computadora, se debe ejecutar los
siguientes pasos:
 Codificación
 Compilación y ejecución
 Verificación
 Depuración
 Documentación
Dato
Son representaciones simbólicas de objetos, hechos, instituciones,
conocimientos.
Ejemplos
 15
 25º C
 25 m
 31-10-2005
 Febrero
 María Pérez

Información
Los datos organizados o procesados adquieren significado y
proporcionan conocimiento o desencadenan un comportamiento
sobre los hechos u objetos que lo originaron.
La información se resumen en :
Datos + significado
Fase de Resolución de Problemas
Análisis del Problema:
 Requiere una definición donde se contemple exactamente lo que
debe hacer el programa y el resultado o solución deseada.
 Dado que se busca una solución se precisan especificaciones de
entrada y salida.
Diseño del Algoritmo
 Se determina como hace el programa la tarea solicitada.
 Los métodos utilizados para el proceso del diseño se basan en el
conocido divide y vencerás.
 La resolución de un problema complejo se realiza dividendo el
problema en subprogramas y a continuación dividir estos
subproblemas en otros de nivel mas bajo, hasta que sea
implementada una solución en la computadora.
Implementación del Algoritmo
 Para implementar un algoritmo en la computadora, se debe ejecutar
los siguientes pasos:
 Codificación
 Compilación y ejecución
 Verificación
 Depuración
 Documentación
Datos primitivos
Datos

Numérico Carácter Lógico

Entero Real
Constantes
 Valores que durante la ejecución de un programa no cambian su
valor.
 Valor Literal: valor constante escrito en un programa.

“Buen día”

 Constante Nombrada: es otra forma de representar un valor literal,


donde se le da un nombre en un enunciado de sentencia y luego se
usa ese nombre:

const string saludo = “Buen día”


saludo

Variables
 Valores que cambiarán durante la ejecución del programa
Sentencias de Asignación
 Sentencia que almacena el valor de una expresión en una variable.

VARIABLE = EXPRESIÓN

Expresión
 Se definen como una combinación de constantes, variables,
símbolos de operación, paréntesis, y nombres de funciones
especiales.
 Una expresión consta de operandos y operadores.
 Las expresiones se clasifican en aritméticas, lógicas y carácter.

Función

 Los subprogramas permiten escribir por separado partes del


programa y ensamblarlas luego en una forma final (funciones).
Identificadores
 Nombre asociado con una función u objeto de datos y empleado
para referir a esa función u objetos de datos.

 Están constituidos por las letras (A-Z,a-z), dígitos (0-9) y el carácter


subrayado (_)

suma
_resta

40Horas
Suma y resta
Tipos de Datos
 Conjunto específico de valores de datos, junto con un
conjunto de operaciones en esos valores.

 int: números enteros.


 float: números reales que tienen puntos decimales.
 char: datos de caracteres
 string: secuencia de caracteres, como una palabra, nombre,
enunciado encerrado entre comillas.

Operandos y Operadores
 Un operador es el símbolo que determina el tipo de operación o
relación que habrá de establecerse entre los operandos para
alcanzar un resultado.
Expresiones aritméticas
Operador Significado Tipo de operandos Tipo resultado
^ Exponenciación Entero o real Entero o real

+ Suma Entero o real Entero o real

- Resta Entero o real Entero o real

* Multiplicación Entero o real Entero o real

/ División Real Real


Div División entera Entero Entero
Mod módulo Entero Entero
Reglas de prioridad
Operador Gráfo
Paréntesis ( )
Exponencial **

Multi, divide *, /

Div y mod Div, mod

Más y menos +, -
Operadores de relación
Expresión 1 Operador de Expresión 2
relación

Operador Significado
< Menor
> Mayor
= Igual
<= Menor o igual
>= Mayor o igual
<>,!= Distinto
Operadores lógicos

Operador lógico Expresión lógica Significado


Not Not p Negación
And PyQ Conjunción
Or PoQ disyunción
Funciones Intrínsecas
Funció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
Operación de Asignación
 Es la forma de darle valores tanto a variables como constantes, se
representa con el símbolo
Herramientas de programación
 Son aquellas que permiten realizar aplicativos, programas, rutinas,
utilitarios y sistemas para que la parte física del computador u
ordenador, funcione y pueda producir resultados.
 Hoy día existen múltiples herramientas de programación en el
mercado, tanto para analistas expertos como para analistas
inexpertos.
Diagramas de Flujo
Indica inicio – final de Indica la salida de
nuestro diagrama información por
impresora
Indica entrada y salida Indica el sentido de la
de datos ejecución de las
Símbolo de proceso y operaciones
nos indica la asignación
de un valor en la Conector fuera de
memoria y/o la ejecución pagina. Representa la
de una operación continuidad del diagrama
aritmética. en otra pagina.

Símbolo de decisión. Conector dentro de


Indica la realización página. Representa la
de una comparación continuidad del
de valores. diagrama dentro de la
misma página.
Diagramas de Flujo
Símbolo del Mientras. Dada una
expresión al principio de la iteración
esta es evaluada; si la condición es
verdadera realizará el ciclo, si es
falsa la repetición cesará.

Símbolo del Para. Esta estructura de


control repetitiva se usa
generalmente cuando se conoce de
antemano el numero de iteraciones.

Símbolo Repita Hasta. funciona igual que la


estructura Mientras, con la diferencia que al
menos una vez hará el grupo de instrucciones y
luego evaluará una condición. Si la condición
evaluada es falsa continua dentro del ciclo y si
es verdadera termina la iteración.
PSEUDOCODIGO
 Es un lenguaje de especificación de algoritmos que permite una
codificación rápida y simple.
 Su ventaja radica en que el programador no debe preocuparse por la
sintaxis de un lenguaje de programación en particular.
 Utiliza palabras sencillas de entender para codificar programas.

SUMAR DOS NUMEROS

 Inicio
 Entero: num1, num2, sum
 Leer num1
 Leer num2
 sum=num1 + num2
 Presentar sum
 Fin
ESTRUCTURAS
ALGORITMICAS DE
CONTROL
ESTRUCTURAS SECUENCIALES
 Son aquellas que se ejecutan una después de otra. Hay
tres tipos de instrucciones secuenciales:

 Declaración de Variables.
 Asignación
 Instrucción Leer – Instrucción Escribir

 La mayoría de algoritmos actúan sobre un conjunto de


datos suministrados por el usuario y se espera que a
partir de dichos valores y desarrollando los procesos
programados se genere información de salida o
resultados.
Declaración de Variables
 Considerando la compatibilidad de la mayoría de los lenguajes de
programación se recomienda que desde el diseño del programa se
utilice una forma predeterminada para la declaración de variables.
 Consiste en escribir el tipo de dato y la lista de identificadores que
tendrán de dicho tipo, separando cada identificador por medio de
comas (,).
 Para facilitar el leer un algoritmo se puede colocar dos puntos (:)
para separar el tipo de datos de la lista de identificadores.
 Ejemplo:

 Entero: edad
 Real: peso, sueldo
 Cadena: nombre, dirección

 A favor de los buenos hábitos de programación es recomienda


declarar las variables antes de utilizarlas y el sitio más adecuado es
el inicio del programa o de la función
Asignación
 Asignar un valor a la variable equivale a decir que se guarda dicho
valor en la posición de memoria reservado para la variable en
mención.
 Para realizar una asignación es necesario primero haber declarado
una variable, con los cual se reserva un espació de memoria
suficiente para guardar un dato del tipo especificado.
 Una expresión de asignación tiene la forma:
variable = expresión
Ejemplos:
 Edad = 10
 Peso = 88.4

 Una asignación tiene tres partes, una variable, el signo igual y la


expresión cuyo valor se asigna a la variable.
 La variable siempre va a la izquierda del igual mientras que la
expresión estará a la derecha.
Instrucción Leer
 La instrucción LEER se utiliza para enviar
información desde un dispositivo de
entrada de datos hacia la memoria.
 En la memoria los datos son ubicados
mediante el identificador (nombre de la
variable) utilizando como complemento de
la instrucción LEER.
 Ejemplo
 Leer a, b
Instrucción Escribir
 Permite enviar datos desde la memoria hacia un
dispositivo de salida como la pantalla o la impresora.
 La información que se envía puede ser constante como
también el contenido de la variables.
Escribir <lista de constantes y variables>

 Ejemplo:
Escribir a, b

 Cuando se escriben más de una variable es necesario


separarlas con comas (,) y los mensajes se escriben
entre comillas dobles “ ”. Si una variable es variable es
escrita entre comillas se mostrará el identificador y no el
contenido.
Estructura de Selección o Decisión
 Permiten que el algoritmo tome decisiones y ejecute u omita
algunos procesos dependiendo del cumplimento de una condición.
 Sintaxis:
Si <condición o condiciones>entonces
Instrucciones cuando la condición es verdadera
Caso contrario
Instrucciones cuando la condición es falsa
Fin Si
 La sintaxis de la estructura de decisión nos permite evaluar una
condición, si esta se cumple ejecutamos las instrucciones que estén
entre el SI ENTONCES y CASO CONTRARIO, mientras que si la
condición es falsa ejecutaremos las instrucciones que estén entre
CASO CONTRARIO Y SI.
 Considere que puede haber caso en que el problema no necesite
el caso contrario en este caso la sintaxis quedaría de la siguiente
manera:
 Sintaxis:
Si <condición o condiciones>entonces
Instrucciones cuando la condición es verdadera
Fin Si
Estructura de un Programa en C++
 Los subprogramas permiten escribir por separado
partes del programa y ensamblarlas luego en una
forma final (funciones).

Función main

Función square

Función cube
int main ()
{
cout << “El cuadrado es ” << Square (5) <<endl;
cout << El cubo es ” << Cube(5) <<endl;
return 0;
}

int Square (int n)


{
return (n*n);
}

int Cube (int n)


{
return (n*n*n);
}
Sentencias de Asignación
Entrada
 Los valores de la variables para recibir un dato desde el
teclado se utiliza la variable llamad cin junto con el
operador >>
cin >> variable

Salida
 Los valores de variables y expresiones se escriben por
medio de una variable llamada cout junto con el operador
de inserción <<.

cout << “Hello”;


PRIMER PROGRAMA
#include <iostream.h>

int a;
int main()
{
cin >> a;
cout << "la variable a vale " << a;
return 0;
}
Comentarios
 Lo que necesita para crear un programa funcional
es la correcta combinación de declaraciones y
sentencia ejecutables.
 Pero los comentarios son de ayuda para entender
el programa cuando otra persona lo lee.
 Hay dos formas de comentarios en C++:
/*…… */ //

int num; // Definir número entero que


string nom; //Almacena nombre de empleados
El Preprocesador de C++
 El preprocesador es un programa que actúa como filtro
durante la fase de compilación.

Programa Fuente
Programa Fuente Preprocesador Compilador C++
Expandido

 Líneas que comienzan con # no se consideran sentencias


de C++; se llaman directivas de preprocesador.

 El preprocesador expande una directiva #include al insertar


físicamente del contenido del archivo nombrado en el
programa fuente.

 Es archivo de llama archivo de encabezado.

#include <iostream>
#include <string>
Introducción de Programas
Corrección y Ejecución
 Editor: programa que permite crear y modificar
programas al introducir en un área de
almacenamiento secundario.

 Archivo: área nombrada en un almacenamiento


secundario que se usa para contener un conjunto
de datos.

 Compilar el programa con un comando (Alt +F9),


traduce el programa y almacena una versión del
archivo en lenguaje máquina (Depuración).

 Ejecutarlo con el comando (Crtl + f9).


ESTRUCTURAS
ALGORITMICAS DE
CONTROL
ALTERNATIVA SIMPLE
si ( <expresión_lógica> )
<bloque_de_instrucciones
fin_si

algoritmo Calificacion_segun_nota

variables
real nota

inicio
escribir( "Introduzca nota (real): " )
leer( nota )

si ( nota >= 5 )
escribir( "APROBADO" )
fin_si
fin
Alternativa Doble
si ( <expresión_lógica> )
<bloque_de_instrucciones_1>
sino
<bloque_de_instrucciones_2>
fin_si

 <expresión_lógica> de una instrucción alternativa doble también se


le denomina condición.
 Para que se ejecute el <bloque_de_instrucciones_1>, la condición
tiene que ser verdadera. Por el contrario, si la condición es falsa,
se ejecutará el <bloque_de_instrucciones_2>.
Una instrucción alternativa doble permite seleccionar, por medio
de una condición, el siguiente bloque de instrucciones a ejecutar,
de entre dos posibles.
Ejemplo

algoritmo Calificacion_segun_nota

variables
real nota

inicio
escribir( "Introduzca nota (real): " )
leer( nota )

si ( nota >= 5 )
escribir( "APROBADO" )
sino
escribir( "SUSPENDIDO" )
fin_si
fin
Alternativa Múltiple
 Permite seleccionar, por medio de una expresión, el siguiente
bloque de instrucciones a ejecutar de entre varios posibles.

segun_sea ( <expresión> )
<lista_de_valores_1> : <bloque_de_instrucciones_1>
<lista_de_valores_2> : <bloque_de_instrucciones_2>
...
<lista_de_valores_n> : <bloque_de_instrucciones_n>
[ sino : <bloque_de_instrucciones_n+1> ]
fin_segun_sea

 El resultado de evaluar la <expresión> debe ser un valor


perteneciente a un tipo de dato finito y ordenado, es decir, entero,
lógico, carácter, enumerado o subrango.
Ejemplo
Ejemplo
 algoritmo Dia_de_la_semana
variables
entero dia
inicio
escribir( "Introduzca día de la semana: " )
leer( dia )
segun_sea ( dia )
1 : escribir( "Lunes" )
2 : escribir( "Martes" )
3 : escribir( "Miércoles" )
4 : escribir( "Jueves" )
5 : escribir( "Viernes" )
6 : escribir( "Sábado" )
7 : escribir( "Domingo" )
sino : escribir( "ERROR: Día incorrecto." )
fin_segun_sea
fin
Ejemplo
algoritmo Signo_del_zodiaco
variables
entero numero
inicio
escribir( "Listado de signos del zodíaco:" )
escribir( "1. Aries" )
escribir( "2. Tauro" )
escribir( "3. Géminis" )
escribir( "4. Cáncer" )
escribir( "5. Leo" )
escribir( "6. Virgo" )
escribir( "7. Libra" )
escribir( "8. Escorpio" )
escribir( "9. Sagitario" )
escribir( "10. Capricornio" )
escribir( "11. Acuario" )
escribir( "12. Piscis" )
escribir( "Introduzca número de signo: " )
leer( numero )
segun_sea ( numero )
1, 5, 9 : escribir( "Es un signo de Fuego." )
2, 6, 10 : escribir( "Es un signo de Tierra." )
3, 7, 11 : escribir( "Es un signo de Aire." )
4, 8, 12 : escribir( "Es un signo de Agua." )
sino : escribir( "ERROR: ", numero,
" no está asociado a ningún signo." )
fin_segun_sea
fin
Anidadas
 Las instrucciones alternativas y repetitivas pueden escribirse una
dentro de otra. A este hecho se le conoce como anidamiento.

si ( <expresión_lógica_1> )

/* Inicio del anidamiento */


si ( <expresión_lógica_2> )
<bloque_de_instrucciones_1>
sino
<bloque_de_instrucciones_2>
fin_si
/* Fin del anidamiento */

sino
<bloque_de_instrucciones_3>
fin_si
si ( <expresión_lógica_1> )
<bloque_de_instrucciones_1>
sino

/* Inicio del anidamiento */


si ( <expresión_lógica_2> )
<bloque_de_instrucciones_2>
sino
<bloque_de_instrucciones_3>
fin_si
/* Fin del anidamiento */

fin_si
Ejemplo
1º) Pida por teclado la nota (real) de una asignatura.
2º) Muestre por pantalla:

 "APTO", en el caso de que la nota sea mayor o igual que 5 y menor


o igual que 10.
 "NO APTO", en el caso de que la nota sea mayor o igual que 0 y
menor que 5.
 "ERROR: Nota incorrecta.", en el caso de que la nota sea menor
que 0 o mayor que 10.
 algoritmo Calificacion_segun_nota
variables
real nota
inicio
escribir( "Introduzca nota (real): " )
leer( nota )
si ( nota >= 5 y nota <= 10 )
escribir( "APTO" )
sino
/* Inicio del anidamiento */
si ( nota >= 0 y nota < 5 )
escribir( "NO APTO" )
sino
escribir( "ERROR: Nota incorrecta." )
fin_si
/* Fin del anidamiento */
fin_si
fin

Anda mungkin juga menyukai