Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I
Diseño de Algoritmos Análisis Escribir el Algoritmo Prueba de Escritorio
Diseño de Algoritmos 1. EL ANÁLISIS: Hacer un buen análisis de cual es específicamente el problema a resolver. Para esto es bueno ayudarse mediante gráficos del problema o en caso de que no sea graficable, también se puede resolver el problema para casos específicos y luego generalizarlo para todos los posibles casos. También se deben observar cuales serían los casos especiales, es decir, aquellos casos que no cumplan la norma general, y tratar de evaluarlos de otra forma. Este paso es el que más tiempo debe llevarle a un buen programador, ya que de un buen análisis depende los buenos resultados que arroje el algoritmo.
Diseño de Algoritmos 2. ESCRIBIR EL ALGORITMO: Después de haber analizado el problema en una forma abstracta, se debe llevar al papel, mediante instrucciones adecuadas al análisis. Si el problema fue bien analizado, este paso es muy rápido a comparación del anterior.
Diseño de Algoritmos 3. PRUEBA DE ESCRITORIO: Este paso es opcional y se aplica siguiendo paso por paso las instrucciones del algoritmo, anotando los diferentes valores que van tomando las variables, de forma que se pueda verificar si hay errores en alguna instrucción (debug). Obviamente, éste método es muy engorroso para algoritmos muy extensos, por lo que en estos casos no sería aplicable.
Convertir el fracaso…
Tengo un teléfono y necesito llamar a alguien pero no sé como hacerlo. Algoritmo secuencial Tengo un teléfono y necesito llamar a alguien pero no sé como hacerlo Pseudocódigo Diagrama de Flujo INICIO: Levante la bocina Espere tono Marque el número Espere que contesten Hable con la otra persona Cuelgue la bocina FIN
Ejercicios Escriba un algoritmo que pregunte por dos números y muestre como resultado la suma de estos. Use Pseudocódigo y diagrama de flujos. Escriba un algoritmo que permita conocer el área de un triángulo a partir de la base y la altura. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.
Ejercicio 1 Pseudocódigo DFD INICIO NUM1, NUM2, SUMA LEE NUM1 LEE NUM2 SUMA NUM1+NUM2 MOSTRAR SUMA FIN
Ejercicio 2 Pseudocódigo DFD INICIO BASE, ALTURA, AREA LEE BASE LEE ALTURA AREA ( BASE * ALTURA ) MOSTRAR AREA FIN
Algoritmo condicional Tengo un teléfono y necesito llamar a alguien pero no sé como hacerlo. Algoritmo condicional Una instrucción condicional es aquella que nos permite "preguntar" sobre el entorno que nos rodea, pudiendo así actuar según la respuesta obtenida. Estas respuestas siempre serán Verdadero o Falso, pudiendo así tomar, en un principio, dos caminos diferentes. Pseudocódigo Diagrama de Flujo
Ejemplos Ejemplo 3 Elaborar un algoritmo que me muestre el mayor de dos números ingresados por teclado. Ejemplo 4 Elaborar un algoritmo que me calcule el promedio de tres notas y me muestre APROBADO si su promedio es mayor que 10.5 caso contrario me muestre DESAPROBADO.
Ejemplo 3 Pseudocódigo DFD
Ejemplo 4 Pseudocódigo DFD
Estructura de Selección Elaborar un algoritmo que me muestre la edad de una persona: si es menor que 12 años mostrar niño, si es menor que 19 mostrar joven, si es menor que 50 mostrar adulto, caso contrario mostrar anciano Pseudocódigo Diagrama de Flujo INICIOLEER EDAD SELECCIONAR EDAD Caso 00 .. 11:Mostrar “NIÑO” Caso 12 .. 18:Mostrar “JOVEN” Caso 19 .. 49:Mostrar “ADULTO” SI NO MOSTRAR “ANCIANO” FIN DE SELECCIONAR FIN
Ejemplos Ejemplo 5 Elaborar un algoritmo que me muestre la clasificación de películas según las edades: 3 a 8 años sala 1 => dibujos animados 9- 14 años sala 2 => familiares 15- 21 años sala 3 => accion 21 adelante sala 3 => drama, terror
Estructuras Repetitivas Las estructuras repetitivas son aquellas que ingresan a un "loop" o ciclo repetitivo; repitiendo una o varias instrucciones, tantas veces lo hayamos indicado o definido en nuestra lógica.
Estructuras repetitivas Elaborar un programa que permita ingresar una letra y me muestre la misma letra repetida 20 veces Pseudocódigo Diagrama de Flujo INICIO LETRA, CONT Leer LETRA HACER DESDE CONT=1 HASTA20 Mostrar LETRA FIN HACER FIN
Ejemplos Ejemplo 6 Elaborar un algoritmo que permita ingresar solo números hasta que se escriba 999 y devolver la cantidad ingresada. Ejemplo 7 Escriba un algoritmo que permita buscar la palabra “UPDS” en un conjunto de 20 palabras leidas previamente.
Ejemplos 6 Pseudocodigo DFD Inicio LEER <- Numero,Cantidad Mientras Num <> 999 Cantidad = Cantidad +1 LEER <- Numero Fin Mientras Fin
Ejemplo 7 Pseudocodigo DFD Inicio Hacer desde 1 hasta 20 LEER <- Palabras[i] Fin Hacer SI Palabras[i]=“UPDS” Entonces “Hallado” Fin
Unidad 1. Programación orientada a Eventos y Objetos Tipos de datos, variables, operadores Descripción del lenguaje C# Estructuras de control
Conocimientos Previos ¿Qué es una variable? ¿Qué es un tipo de dato? ¿Qué es un sentencia de programa?
Tipos de datos En los lenguajes de programación un tipo de dato es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar. Ejemplo Tipos de datos c# Caracter Númerico Lógicos (Falso o verdadero) Int x; String cad; Float num; Bool estado;
Variables En programación, las variables son espacios reservados en la memoria que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. Una variable corresponde a un área reservada en la memoria principal del ordenador pudiendo ser de longitud: Fija.- Cuando el tamaño de la misma no variará a lo largo de la ejecución del programa. Todas las variables, sean del tipo que sean tienen longitud fija, salvo algunas excepciones — como las colecciones de otras variables (arrays) o las cadenas. Variable.- Cuando el tamaño de la misma puede variar a lo largo de la ejecución. Típicamente colecciones de datos.
Variables - Ejemplos Int a; String nombre; Nombre=“UPDS”; Bool estado; a=“kjhkjh”; a= true; String nombre; Nombre=“UPDS”; Bool estado; Estado=true;
Operadores Un operador es un símbolo matemático que indica que debe ser llevada a cabo una operación especificada1 sobre un cierto número de operandos (número, caracteres, lógicos, etc.). Tipos de operadores Lógicos (not, and, or, >,<,==,!=,<0 Aritméticos (+,-,*,/, %,)
Operadores Lógicos Los más sencillos son (nótese su relación con los operadores relacionales):Operador NO-lógico: '¬A' significa todo lo que no es A' Operador Y-lógico: 'A ∧ B' significa 'A y B a la vez‘ Operador O-lógico: 'A ∨ B' significa 'O bien A, o bien B, o bien los dos'; Operador =: 'A = B' significa 'A debe ser igual a B'; Operador <: 'A < B' significa 'A debe ser menor que B';
Operadores Aritméticos Las operaciones aritméticas pueden ser entendidas, desde un punto de vista operacional, como operadores bivariantes o como operadores a derecha. En efecto, '2 × 3' puede ser el operador bivariante de la multiplicación actuando sobre los números 2 y 3, o el operador '2 ×' que actúa sobre 3. Adición Resta Multiplicación División Potenciación Radicación Logaritmación
Práctica – Algoritmos, tipos de datos, variables y operadores Ejemplo 1 Diseñar un algoritmo que lea cuatro variables y calcule e imprima su producto, suma y media aritmética. inicio leer (a, b, c, d) producto <-- (a * b * c * d) suma <-- (a + b + c + d) media <-- (a + b + c + d) / 4 escribir (producto, suma, media) fin
Práctica – Algoritmos, tipos de datos, variables y operadores Ejercicios: 1. Escribe un algoritmo que pida tres números y luego escriba el promedio. 2. Escribe un algoritmo que calcule el área de un círculo de cualquier radio. 3. Escribe un algoritmo que lea una cantidad depositada en un banco y que calcule la cantidad final después de aplicarle un 20% de interés. 4. Diseñar un algoritmo que lea un valor en dólares y lo convierta a Bolivianos. 5. Leer dos números y encontrar la suma del doble del primero mas el cuadrado del segundo.
DFD Diseñar un algoritmo que halle el mayor de 5 números enteros Diseñar un algoritmo que halle el menor de una lista de 100 números Diseñar un algoritmo que halle la palabra “éxito” dada un conjunto de palabras que se va ingresando.