ALGORITMOS.

Slides:



Advertisements
Presentaciones similares
Nuestro reto es educar al pensamiento, para que razone de acuerdo a ciertas reglas; con ello podremos ser más eficientes al momento en que ordenamos.
Advertisements

PROF. ING. JULIO CESAR CANO RAMIREZ
Clase 2 Tipos de datos Asignación de valores Estructura IF Ejercicios
Elementos de Pascal Escribir un programa en Pascal que lea los valores de los catetos de un triángulo rectángulo y calcule y muestre la hipotenusa. program.
Resolución de Problemas Algoritmos y Programación
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Técnico en programación de Software
Introducción a la Estadística Informática
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Introducción a la Programación
Algoritmo y Estructura de Datos I
METODOLOGIA DE LA PROGRAMACION
Tema 6. Conceptos básicos de programación
ESTRUCTURAS DE CONTROL
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
INTRODUCCIÓN A LA COMPUTACIÓN 12va Semana – 19va Sesión Miércoles 18 de Mayo del 2005 Juan José Montero Román
Fundamentos de Programación
LOGICA DE PROGRAMACION
Tema 1 Algoritmos.
Proceso de información en la computadora
Academia de Informática
Sistemas de Numeración
PRINCIPIOS DE PROGRAMACION ESTRUCTURADA
Programación en Matlab
CARACTERÍSTICAS DE LOS PROGRAMAS
Tema 2: Los tipos de datos
Algoritmos ¿Que es un algoritmo?
ESTRUCTURA DE DATOS ESD-243
Tema 6. Conceptos básicos de programación (Repaso) Prof. María Alejandra Quintero Informática Año 2013.
Tae Programación WEB Ventajas de los ordenadores ( compus pa los cuates ) Que es la Programación? Que es un lenguaje de programación? Algoritmo Que es.
COMPONENTES DE UN ALGORITMOS
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
ETAPAS PARA SOLUCIONAR UN PROBLEMA
INTRODUCCION A LOS ALGORITMOS
PENSAMIENTO ANALÍTICO SISTÉMICO DAISY KATERINE RODRÍGUEZ DURÁN
Algoritmo Ing. Maria Rosana Heredia
Introducción a la programación
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
DIAGRAMA DE FLUJO ERIKA SUAREZ lozano Sergio Ortiz caballero Arturo González Yesica mariana regueros Paola García sanchez.
ALGORITMOS La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió.
Departamento de Informática Universidad Técnica Federico Santa María Temas 2,3,4: Estructura de un Programa Pascal Declaraciones Tipos de Datos Simples.
A continuación… Repaso Repaso Estructuras de Decisión Ejemplos
Elementos básicos para el desarrollo de algoritmos
Representación de Algoritmos
TEMA 2: DIAGRAMAS DE FLUJO
Términos algoritmo diseñar algoritmo implementar algoritmo
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
HERAMIENTAS DE PRODUCCIÓN
DEV- C++ ·include <iostream> Int x x=x+2(x)
UNIVERSIDAD TECNICA PERTICULAR DE LOJA
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.
Computación I (CI-2125) Clase 2 Prof. Mireya Morales.
PRINCIPIOS DE PROGRAMACIÓN
Elaboración de algoritmos usando lógica de programación
Presente un cuestionario con los aspectos mas importantes sobre los
M.S.C. Ivette Hernández Dávila
Metodología de la programación
Lic. Carla Aguirre Montalvo
Conceptos Generales PROGRAMACIÓN I DOCENTE: ING. MARLENY SORIA M. 1.
Algoritmos Algoritmos Un algoritmo es una serie de pasos lógicos, que se estructuran para resolver un problema. Generalmente un algoritmo se compone de.
Algoritmos y Programación. Objetivos de Aprendizaje: Al finalizar esta unidad ud. debe estar en la capacidad de: Definir el propósito y el contenido de.
ELEMENTOS BÁSICOS DE PROGRAMACIÓN EN C# Mtro. José David Uc Salas
Circuitos Combinacionales I
Tema 8: Programación estructurada Introducción La importancia del conocimiento de programación es mucho mayor de lo que se piensa. Aprender a programar.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
ALGORITMOS Asignatura: Informática. Algoritmos Conjunto de instrucciones ordenadas de forma lógica y precisa, con un inicio y fin que permite resolver.
Transcripción de la presentación:

ALGORITMOS

1.1 ALGORITMOS El objetivo principal de esta sesión es que identifiquemos algunos conceptos y elementos claves de la algoritmia, con los cuales podamos construir algoritmos, y con nuestro trabajo en casa, desarrollar habilidad para el diseño de los mismos. IMCT-UV

ALGORITMO Un algoritmo es un procedimiento a seguir, para resolver un problema en términos de: Las acciones por ejecutar y el El orden en que dichas acciones deben ejecutarse Un algoritmo nace en respuesta a la aparición de un determinado problema. Una algoritmo esta compuesto de una serie finita de pasos que convergen en la solución de un problema, pero además estos pasos tienen un orden específico.

ALGORITMO Entenderemos como problema a cualquier acción o evento que necesite cierto grado de análisis, desde la simpleza de cepillarse los dientes hasta la complejidad del ensamblado de un automóvil. En general, cualquier problema puede ser solucionado utilizando un algoritmo, en este sentido podemos utilizar los algoritmos para resolver problemas de computo.

ALGORITMO Un algoritmo para un programador es una herramienta que le permite resaltar los aspectos más importantes de una situación y descartar los menos relevantes. Todo problema de cómputo se puede resolver ejecutando una serie de acciones en un orden específico.

ALGORITMO Por ejemplo considere el algoritmo que se elaboraría para el problema o situación de levantarse todas las mañanas para ir al trabajo: Salir de la cama quitarse la pijama ducharse vestirse desayunar arrancar el automóvil para ir al trabajo o tomar transporte.

CARACTERISTICAS DE UN ALGORITMO ROBUSTEZ DE UN ALGORITMO Quiere decir que un algoritmo debe contemplar todas las posibles facetas del problema que queremos resolver, al elaborar un algoritmo no se nos debe escapar ningún detalle que provoque un funcionamiento malo nuestro algoritmo. Si logramos construir un algoritmo robusto, cualquier giro inesperado del problema será controlado por el algoritmo, es decir, debe ser flexible a cambios.

CARACTERISTICAS DE UN ALGORITMO CORRECTITUD DE UN ALGORITMO Es correcto cuando da una solución al problema a tratar y cumple con todos lo requerimientos especificados tal que cumplamos con los objetivos planteados. COMPLETITUD DE UN ALGORITMO Cuando un algoritmo cuenta con todos los recursos para poder llegar a una solución satisfactoria

CARACTERISTICAS DE UN ALGORITMO EFICIENCIA Y EFICACIA DE UN ALGORITMO Un algoritmo es eficiente cuando logra llegar a sus objetivos planteados utilizando la menor cantidad de recursos posibles, es decir, minimizando el uso memoria, de pasos y de esfuerzo humano. Un algoritmo es eficaz cuando alcanza el objetivo primordial, el análisis de resolución del problema se lo realiza prioritariamente. Puede darse el caso de que exista un algoritmo eficaz pero no eficiente, en lo posible debemos de manejar estos dos conceptos conjuntamente.

CLASIFICACION DE LOS ALGORITMOS CONVERSACIONALES: Aquellos algoritmos donde la secuencia de los pasos se presentan mediante frases o proposiciones. Ejemplo: Elaborar un algoritmo para determinar la nota definitiva de estudiantes en el curso de introducción a la programación. Paso 1: Comienzo Paso2: Se debe conocer el código, nombre del estudiante; además las notas obtenidas durante el curso. Paso 3: Con las notas obtenidas efectuar los cálculos u operaciones necesarias para obtener las notas definitivas o finales del curso. Paso 4: Por último debemos entregar o publicar las notas definitivas del curso. Paso 5: Final

CLASIFICACION DE LOS ALGORITMOS GRAFICOS: Son aquellos algoritmos donde la secuencia de pasos se representa mediante gráficos o figuras geométricas. A estos algoritmos se les llama “Diagramas de flujo”. La ventaja de utilizar un algoritmo es que se lo puede construir independientemente de un lenguaje de programación, pues al momento de llevarlo a código se lo puede hacer en cualquier lenguaje. Dichos diagramas se construyen utilizando ciertos símbolos de uso especial como son rectángulos, diamantes, óvalos, y pequeños círculos, estos símbolos están conectados entre sí por flechas, conocidas como líneas de flujo. A continuación se detallarán estos símbolos.

DIAGRAMAS DE FLUJO Terminal. Representa el inicio y fin de un programa. Proceso. Son acciones que el programa tiene que realizar Decisión. Indica operaciones lógicas o de comparación, así como expresiones Entrada / Salida. Nos permite ingresar datos, de un periférico, así como mostrarlos Salida. Es usado para mostrar datos o resultados Conector. Se coloca al principio y fin de un pedazo de programa, enlaza dos partes cualquiera de un programa Línea de flujo o indicador de dirección.

CLASIFICACION DE LOS ALGORITMOS SEUDOCODIGO: Aquellos algoritmos donde la secuencia de pasos se representa o indica mediante códigos en español, los cuales tendrán un significado especial de acuerdo a cada paso: Inicio : INICIO - COMIENZO Datos conocidos: ENTRADA - LEER Cálculos: EJECUTE - HAGA Resultados: SALIDA - IMPRIMIR Final: FINAL - FIN

CLASIFICACION DE LOS ALGORITMOS Seudocódigo para el algoritmo anterior Paso 1: Comienzo Paso 2: Entrada: Código, nombre y notas Paso 3: Ejecute: Cálculo de la nota definitiva Paso 4: Salida: Entrega de nota definitiva Paso 5: Final

Resolución de Problemas Para lograr resolver cualquier problema se deben seguir básicamente los siguientes pasos: Análisis del Problema. en este paso se define el problema, se lo comprende y se lo analiza con todo detalle. Diseño del Algoritmo. se debe elaborar una algoritmo que refleje paso a paso la resolución del problema. Resolución del Algoritmo en la computadora. se debe codificar el algoritmo.

RESOLUCION DE PROBLEMAS A TRAVES DEL COMPUTADOR Se identifican dos fases: Fase de resolución del problema Análisis del problema. Modelación y diseño de algoritmos para los métodos. Verificación manual de algoritmos. Fase de implementación en la computadora. Codificación. Prueba. Puesta en marcha. Necesariamente el entendimiento del problema es lo primero y es extremadamente importante comprender todos los aspectos del problema: el tipo y la forma de la entrada, la información disponible y los resultados deseados.

ANALISIS DEL PROBLEMA Podemos observar cierta regularidad (patrón) en los algoritmos. Veamos... Pasos Iniciales (entrada): captura de datos con los que el algoritmo va a trabajar. Pasos centrales (proceso): realización de cálculos y control de errores o posibles situaciones anormales o inesperadas que generen conflicto. Pasos Finales (salida): despliegue o devolución de resultados.

TIPOS DE DATOS Concepto propio de la informática, más específicamente de los lenguajes de programación, aunque también se encuentra relacionado con nociones similares de las matemáticas y la lógica. En un sentido amplio, un tipo de datos define un conjunto de valores y las operaciones sobre estos valores. Todo sistema de computación digital es alimentado con datos. La representación de los datos, incide en la elaboración de los pasos del algoritmo. Generalmente el sistema de identificación de los datos se denomina “estructura de datos”; la cual depende de la característica de los datos.

TIPOS DE DATOS DATOS NUMÉRICOS: Los utilizaremos para efectuar operaciones aritméticas. Se representan de la siguiente forma: Enteros: Corresponden a números completos, o sea que no tienen componente decimal; pueden ser negativos, positivos y el cero. En general son aquellos números que no poseen punto decimal. Ejemplo: La edad de un estudiante  33 El total de estudiantes de un grupo 40

Ejemplo: la nota de un estudiante 4.2 TIPOS DE DATOS Reales: Son aquellos números que poseen un punto decimal, pueden ser positivos, negativos y el cero. Los números reales los podemos representar de dos formas. Reales decimales: Son aquellos números que pueden constar de una parte entera y una parte decimal. Ejemplo: la nota de un estudiante 4.2

TIPOS DE DATOS Reales exponenciales: Son aquellos números que se expresan en función de potencias de 10. Se conoce también como notación científica o coma flotante. Representan números muy grandes o muy pequeños. Se representan de la siguiente forma: “real decimal” E “entero” Ejemplo: 3.675204 * 1019 = 3.675204E19 -3.5E3 = -3500.0 1.23E2 = 123.0 4.5E- 4 = 0.00045

Se representan de la siguiente forma: TIPOS DE DATOS DATOS ALFANUMERICOS: Se agrupan en series o cadenas de caracteres alfabéticas o caracteres numéricos o caracteres especiales. Los datos alfanuméricos generalmente se utilizan de referencia, o sea que con ellos no efectuaremos operaciones aritméticas. Se representan de la siguiente forma:

De caracter: Cuando se hace referencia a un solo carácter. Ejemplo: TIPOS DE DATOS De caracter: Cuando se hace referencia a un solo carácter. Ejemplo: El sexo de un empleado: Masculino = ‘M’ Femenino = ‘F’ El estado civil de una persona: Soltero ‘S’, Casado ‘C’, Viudo ‘V’, Separado ‘Z’.

El nombre de un estudiante “Juan Pérez” TIPOS DE DATOS De cadena: Cuando se hace referencia a más de un carácter. Son datos de tipo cadena los siguientes: El nombre de un estudiante “Juan Pérez” La dirección de una persona “Calle 3 No. 3-12” El cargo que desempeña “Docente”

TIPOS DE DATOS Datos Lógicos: Son aquellos que pueden tomar dos valores: El valor verdadero o el valor falso, representan estados (0 y 1). Ejemplo: le preguntamos a un alumno que si aprobó el curso; dicho alumno nos podrá responder verdadero o falso.

Constantes Constantes: Son aquellos datos que permanecen fijos e invariables en la solución de un problema. Pueden ser (enteros, reales, carácter, cadena, booleanos). Ejemplo: El porcentaje de una evaluación 0.20 El valor PI en geometría 3.1415926 El valor de la gravedad en mts 9.8

Variables Las variables son posiciones de memoria en donde se pueden guardar valores. A una variable se le identifica con un nombre, se le define un tipo de dato y almacena un valor. A las variables se les asocia un datos el cual puede cambiar en la solución de un problema. (un nombre de variable debe existir solo una vez en el ámbito de la variable). La declaración de una variable origina una reserva de una posición en la memoria de la computadora y que sea etiquetada con el correspondiente identificador.

Variables Ejemplos: Código del estudiante codigoEstudiante Nombre del estudiante nombresEst Primera evaluación evaluacion1 Edad del empleado edadEmp

IDENTIFICADORES Reglas para la creación de identificadores: 1. Java hace distinción entre mayúsculas y minúsculas, por lo tanto, nombres o identificadores como var1, Var1 y VAR1 son distintos. 2. Pueden estar formados por cualquiera de los caracteres del código Unicode, por lo tanto, se pueden declarar variables con el nombre: fechaDeNacimiento, edad, etc. (se acabó la época de los nombres de variable como fecha_de_nacimiento), aunque eso sí, el primer carácter no puede ser un dígito numérico y no pueden utilizarse espacios en blanco ni símbolos coincidentes con operadores. 3. La longitud máxima de los identificadores es prácticamente ilimitada.

IDENTIFICADORES 4. No puede ser una palabra reservada del lenguaje ni los valores lógicos true o false. 5. No pueden ser iguales a otro identificador declarado en el mismo ámbito. 6. Por convenio, los nombres de las variables y los métodos deberían empezar por una letra minúscula y los de las clases por mayúscula. Además, si el identificador está formado por varias palabras la primera se escribe en minúsculas (excepto para las clases) y el resto de palabras se hace empezar por mayúscula (por ejemplo: fechaDeNacimiento). Estas reglas no son obligatorias, pero son convenientes ya que ayudan al proceso de codificación de un programa, así como a su legibilidad. Es más sencillo distinguir entre clases y métodos o variables.

IDENTIFICADORES EJEMPLOS

DECLARACION DE VARIABLES Hay tres posibilidades: Tipo nombre; Tipo nombre1, nombre2, nombre3; Tipo nombre=valor; Por ejemplo: float peso; Se declara una variable de tipo float int temperatura, edad; Se declaran dos variables del mismo tipo. double iva=16.5; se declara una variable y a su vez se le asigna un valor de inicio.

Calcula el resto de dividir op1 entre op2 Operadores Un operador es un símbolo que se utiliza para manipular datos. Clasificación: Los operadores pueden ser: Operadores aritméticos Operador Uso Descripción + op1 + op2 Suma op1 y op2 - op1 - op2 Resta op2 de op1 * op1 * op2 Multiplica op1 por op2 / op1 / op2 Divide op1 por op2 % op1 % op2 Calcula el resto de dividir op1 entre op2

Operadores Operadores de comparación y condicionales (relacionales) Un operador de comparación compara dos valores y determina la relación existente entre ambos. Por ejemplo, el operador != devuelve verdadero (true) si los dos operandos son distintos. La siguiente tabla resume los operadores de comparación: Operador Uso Devuelve verdadero si > op1 > op2 op1 es mayor que op2 >= op1 >= op2 op1 es mayor o igual que op2 < op1 < op2 op1 es menor que op2 <= op1 <= op2 op1 es menor o igual que op2 == op1 == op2 op1 y op2 son iguales != op1 != op2 op1 y op2 son distintos

Operadores Operadores Lógicos Operador Uso Devuelve verdadero si... && op1 && op2 op1 y op2 son ambos verdaderos, condicionalmente evalúa op2 || op1 || op2 op1 o op2 son verdaderos, condicionalmente evalúa op2 ! ! op op es falso

Operadores Operadores de asignación El operador de asignación básico es el = , que se utiliza para asignar un valor a otro. Por ejemplo: int contador = 0; Inicia la variable contador con un valor 0. La siguiente tabla muestra los operadores de atajo de asignación y sus equivalentes largos: Operador Uso Equivalente a  += op1 += op2 op1 = op1 + op2 -= op1 -= op2 op1 = op1 - op2 *= op1 *= op2 op1 = op1 * op2 /= op1 /= op2 op1 = op1 / op2 %= op1 %= op2 op1 = op1 % op2

Operadores de este tipo Tipo de operadores Operadores de este tipo Paréntesis ( ) Multiplicación * / % Suma + - Comparación < <= >= > Igualdad == != AND lógico && OR lógico || Asignación = += -= *= /= %= Precedencia de operadores

Tablas de verdad p ¬p V F p q p^q V F p q p v q V F

Expresiones Una expresión es una combinación de variables y/o constantes mediante operadores Se clasifican en: Expresiones aritméticas Expresiones lógicas

Expresiones aritméticas las expresiones aritméticas se obtienen combinando expresiones aritméticas más sencillas con operadores aritméticos. Una expresión aritmética se compone de operadores y operandos. Los operadores actúan sobre los operandos para obtener un resultado. Los operadores aritméticos más comúnmente utilizados son +, -, *, / y %.

EXPRESIONES ARITMETICAS

EXPRESIONES LOGICAS Expresiones lógicas: son aquellas expresiones donde intervienen expresiones aritméticas, operadores relacionales y/o operadores lógicos. Simples: Expresiones donde intervienen expresiones aritméticas con los operadores relacionales. Ejemplos (df == 3) (sueldo < 245000) (a + b > c) Compuestas: Expresiones donde intervienen expresiones lógicas simples y los operadores lógicos. Ejemplos (A + B < C) && (A + C > D) && ( B + C != A) (DF >= 3) && (DF < 4.5) (ED >= 18) || (ES >= 40)

FUNCIONES Son un conjunto de pasos preestablecidos internamente en la máquina, los cuales son utilizados por el usuario con solo nombrarlos. Las funciones se clasifican por categorías, la clase Math contiene todas las funciones en coma flotante que se utilizan en geometría y trigonometría Su forma general o sintaxis de codificación es la siguiente: Clase.Nombre preestablecido (argumento) Clase es el nombre de la clase que contiene las funciones, El nombre preestablecido indica el código que nos identifica la función y el argumento puede ser una variable, constante o expresión aritmética sobre la cual deseamos evaluar la función.

FUNCIONES TRIGONOMETRICAS Sin (double a) devuelve el seno del ángulo a en radianes. Cos (double a) devuelve el coseno del ángulo a en radianes. Tan (double a) devuelve la tangente del ángulo a en radianes. Asin (double r) devuelve el ángulo cuyo seno es r. Acos (double r) devuelve el ángulo cuyo coseno es r. Atan (double r) devuelve el ángulo cuya tangente es r. Atan2 (double a, double b) devuelve el ángulo cuya tangente es a/b. EXPONENCIALES Pow (double y, double x) devuelve y elevado a x; por ejemplo: pow (2.0,3.0) devuelve 8.0 Exp (double x) devuelve e elevado a x. Log (double x) devuelve el logaritmo natural de x. Sqrt (double x) devuelve la raíz cuadrada de x.

FUNCIONES Funciones de redondeo: Ceil (double a) devuelve el número completo más pequeño mayor o igual que a. Floor (double a) devuelve el número completo más grande menor o igual que a. Rint (double a) devuelve el valor double truncado de a. Round (float a) devuelve a redondeado al int más cercano. Round (double a) devuelve a redondeado al long más cercano. Ejemplos Math.cos ( X ) Math.sen ( X ) Math.pow (X,2)

Peter J. Denning, Acm Computing Surveys “No existen reglas fijas para construir programas claros, comprensibles y comprobables. Hay, por supuesto, guías muy generales y muy buenas además; pero el estilo individual del programador (o la ausencia de él), la claridad de su pensamiento (o la oscuridad de él), su creatividad (o falta de ella), podrán contribuir significativamente al éxito de esa tarea.” Peter J. Denning, Acm Computing Surveys

El esquema general de un algoritmo es: INICIO /*Nombre:SumaDosNumeros Objetivo:El algoritmo solicita dos números cualquiera y calcula la suma de ellos. Autor:Martha López. Fecha:15 de Noviembre del 2006.*/ //sección de declaración de variables. entero numero1; //sección de lectura de datos. imprimir (“Ingrese un número”); leer (numero1); //sección de procesamiento de los datos /* aquí se efectúan los cálculos con base en el diseño planteado*/ //sección de impresión de resultados imprimir (“El resultado es: “, variable2); FIN