Algoritmos

48
ALGORITMOS

Transcript of Algoritmos

Page 1: Algoritmos

ALGORITMOS

Page 2: 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

Page 3: Algoritmos

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

Page 4: Algoritmos

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

Page 5: Algoritmos

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

Page 6: Algoritmos

Datos primitivosDatos primitivos

Datos

CarácterNumérico Lógico

Entero Real

Page 7: Algoritmos

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

Page 8: Algoritmos

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

Page 9: Algoritmos

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

Page 10: Algoritmos

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.

Page 11: Algoritmos

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

Page 12: Algoritmos

Reglas de prioridadReglas de prioridad

( )Paréntesis

+, -Más y menos

Div, mod Div y mod

*, /Multi, divide

**Exponencial

GráfoOperador

Page 13: Algoritmos

Operadores de relación

Menor<

Distinto<>,!=

Mayor o igual>=

Menor o igual<=

Igual=

Mayor>

SignificadoOperador

Expresión 2Operador de relación

Expresión 1

Page 14: Algoritmos

Operadores lógicosOperadores lógicos

disyunciónP o QOr

ConjunciónP y QAnd

NegaciónNot pNot

SignificadoExpresión lógicaOperador lógico

Page 15: Algoritmos

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

Page 16: Algoritmos

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

Page 17: Algoritmos

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.

Page 18: Algoritmos

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

Page 19: Algoritmos

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.

Page 20: Algoritmos

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

Page 21: Algoritmos

ESTRUCTURAS ALGORITMICAS DE

CONTROL

Page 22: Algoritmos

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.

Page 23: Algoritmos

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

Page 24: Algoritmos

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.

Page 25: Algoritmos

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

Page 26: Algoritmos

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.

Page 27: Algoritmos

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

Page 28: Algoritmos

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

Page 29: Algoritmos

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);}

Page 30: Algoritmos

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”;

Page 31: Algoritmos

PRIMER PROGRAMA

#include <iostream.h>

int a;int main(){

cin >> a; cout << "la variable a vale " << a; return 0;

}

Page 32: Algoritmos

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

Page 33: Algoritmos

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++

Page 34: Algoritmos

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).

Page 35: Algoritmos

ESTRUCTURAS ALGORITMICAS DE

CONTROL

Page 36: Algoritmos

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

Page 37: Algoritmos

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

Page 38: Algoritmos

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

Page 39: Algoritmos

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.

Page 40: Algoritmos

Ejemplo

Page 41: Algoritmos

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

Page 42: Algoritmos

Ejemplo

Page 43: Algoritmos

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

Page 44: Algoritmos

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

Page 45: Algoritmos

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

Page 46: Algoritmos

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.

Page 47: Algoritmos

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

Page 48: Algoritmos