Post on 04-Jul-2015
ALGORITMOS
Resolución de Programas por Resolución de Programas por ComputadoraComputadora
Un algoritmo es un grupo de instrucciones que definen la Un algoritmo es un grupo de instrucciones que definen la secuencia de operaciones a realizar para resolver una clase de secuencia de operaciones a realizar para resolver una clase de problema.problema.
Secuencia ordenada de pasos que nos sirve para resolver un Secuencia ordenada de pasos que nos sirve para resolver un problema.problema.
Características: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 ComputadorasAná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
DatoDatoSon representaciones simbólicas de objetos, hechos, instituciones, conocimientos. EjemplosEjemplos
15 25º C 25 m 31-10-2005 Febrero María Pérez
InformaciónInformaciónLos 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 ProblemasFase de Resolución de ProblemasAná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 primitivosDatos primitivos
Datos
CarácterNumérico Lógico
Entero Real
Constantes Valores que durante la ejecución de un programa no cambian su Valores que durante la ejecución de un programa no cambian su
valor.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 programaValores 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, Se definen como una combinación de constantes, variables, símbolos de operación, paréntesis, y nombres de funciones símbolos de operación, paréntesis, y nombres de funciones especiales.especiales.
Una expresión consta de operandos y operadores.Una expresión consta de operandos y operadores. Las expresiones se clasifican en aritméticas, lógicas y carácter.Las expresiones se clasifican en aritméticas, lógicas y carácter.
Los subprogramas permiten escribir por separado partes del programa y ensamblarlas luego en una forma final (funciones).
Función
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
40HorasSuma 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 Un operador es el símbolo que determina el tipo de operación o
relación que habrá de establecerse entre los operandos para relación que habrá de establecerse entre los operandos para alcanzar un resultado.alcanzar un resultado.
Expresiones aritméticasExpresiones aritméticas
EnteroEnteromóduloMod
EnteroEnteroDivisión enteraDiv
RealReal División/
Entero o realEntero o realMultiplicación*
Entero o realEntero o realResta-
Entero o realEntero o realSuma+
Entero o realEntero o realExponenciación^
Tipo resultadoTipo de operandosSignificadoOperador
Reglas de prioridadReglas de prioridad
( )Paréntesis
+, -Más y menos
Div, mod Div y mod
*, /Multi, divide
**Exponencial
GráfoOperador
Operadores de relación
Menor<
Distinto<>,!=
Mayor o igual>=
Menor o igual<=
Igual=
Mayor>
SignificadoOperador
Expresión 2Operador de relación
Expresión 1
Operadores lógicosOperadores lógicos
disyunciónP o QOr
ConjunciónP y QAnd
NegaciónNot pNot
SignificadoExpresión lógicaOperador lógico
Funciones IntrínsecasFunciones Intrínsecas
TruncamientoTrunc(x)
Raíz cuadradaSqrt(x)
CuadradoSqr(x)
SenoSin(x)
RedondeoRound(x)
Log decimalLog10(x)
Log neperianoLn(x)
ExponencialExp(x)
CosenoCos(x)
Tangente inversaArctan(x)
AbsolutoAbs(x)
DescripciónFunción
Operación de AsignaciónOperación de Asignación Es la forma de darle valores tanto a variables como constantes, se Es la forma de darle valores tanto a variables como constantes, se
representa con el símbolorepresenta 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 FlujoIndica inicio – final de nuestro diagrama
Indica entrada y salida de datos
Símbolo de proceso y nos indica la asignación de un valor en la memoria y/o la ejecución de una operación aritmética.
Indica la salida de información por impresora
Símbolo de decisión. Indica la realización de una comparación de valores.
Conector dentro de página. Representa la continuidad del diagrama dentro de la misma página.
Conector fuera de pagina. Representa la continuidad del diagrama en otra pagina.
Indica el sentido de la ejecución de las operaciones
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.
PSEUDOCODIGOPSEUDOCODIGO Es un lenguaje de especificación de algoritmos que permite una Es un lenguaje de especificación de algoritmos que permite una
codificación rápida y simple.codificación rápida y simple. Su ventaja radica en que el programador no debe preocuparse por la Su ventaja radica en que el programador no debe preocuparse por la
sintaxis de un lenguaje de programación en particular.sintaxis de un lenguaje de programación en particular. Utiliza palabras sencillas de entender para codificar programas.Utiliza palabras sencillas de entender para codificar programas.
SUMAR DOS NUMEROSSUMAR DOS NUMEROS
Inicio Entero: num1, num2, sum Leer num1 Leer num2 sum=num1 + num2 Presentar sum Fin
ESTRUCTURAS ALGORITMICAS DE
CONTROL
ESTRUCTURAS SECUENCIALESESTRUCTURAS 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.
EjemploLeer 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>entoncesInstrucciones cuando la condición es verdadera
Caso contrarioInstrucciones 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 verdaderaFin 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 questring 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.
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>
Programa Fuente PreprocesadorPrograma Fuente
ExpandidoCompilador C++
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 SIMPLEsi ( <expresión_lógica> ) <bloque_de_instruccionesfin_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
<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.
si ( <expresión_lógica> ) <bloque_de_instrucciones_1> sino <bloque_de_instrucciones_2> fin_si
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
Ejemplo1º) 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