La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ALGORITMOS.

Presentaciones similares


Presentación del tema: "ALGORITMOS."— Transcripción de la presentación:

1 ALGORITMOS

2 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

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

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

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

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

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

8 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

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

10 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

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

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

13

14 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

15 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

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

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

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

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

20 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

21 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

22 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: * 1019 = E19 -3.5E3 = 1.23E2 = 4.5E- 4 =

23 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:

24 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’.

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

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

27 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 El valor de la gravedad en mts 9.8

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

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

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

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

32 IDENTIFICADORES EJEMPLOS

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

34 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

35 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

36 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

37 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

38 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

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

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

41 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 %.

42 EXPRESIONES ARITMETICAS

43 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 < ) (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)

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

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

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

47 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

48 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


Descargar ppt "ALGORITMOS."

Presentaciones similares


Anuncios Google