1 Algoritmia y ProgramaciónPeter Emerson Pinchao Tomado de las presentaciones la Ing Lucy Garcia
2 Contenido El pseudocódigo Elementos de un programaImitación y versión abreviada de instrucciones reales para las computadoras. Elementos de un programa Palabras reservadas, Identificadores, Constantes, Variables, Expresiones, Instrucciones Entrada y/o salida de información Un ejemplo sencillo Asignación Intercambio de variables Ejemplos Estructura de control: Secuencial
3 Algoritmos: Conceptos BásicosEl pseudocódigo Imitación y versión abreviada de instrucciones reales para las computadoras. Elementos de un programa Palabras reservadas Identificadores Constantes Variables Expresiones Instrucciones
4 Identificadores Nombres de los objetos de un programa Reglas:Letras (menos: ñ, Ñ, acentuadas y caracteres especiales) Mayúsculas ≠ Minúsculas (case-sensitive). El primer caracter debe ser una letra Dígitos numéricos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) Símbolo de subrayado ( _ ) NO permitido el conjunto de palabras reservadas del lenguaje. En C, cuáles son esas palabras? SUGERENCIA: Nombres representativos
5 Ejercicio IdentificadoresDistinga los identificadores inválidos. Porqué? nombre_empleado area 1texto TAMANO_STRING EdadEmpleado while potencia10 i For nombre-empleado iF Nombre Teléfono nombre While
6 Constantes Numéricas Caracteres Lógicas Ejemplos: 123 123,45 12345Una serie de caracteres encerrados entre comillas Ejemplos: “constante”, “Texto”, “texto”, “1” Lógicas Verdadero Falso
7 Variables Almacenar datos
8 Variables Almacenar datos Nombres Tipo de dato NuméricosEnteros Reales Cadena de Caracteres Lógicos o Booleanos
9 Variables Deben ser declaradas previamente Sintaxis de la DeclaraciónTipo de Dato Lista de variables separadas por coma Ejemplos: Caracteres: Nombre, Apellido Entero: Nro_Estudiantes Real: Valor_Hora, Salario, Descuentos
10 Entrada de InformaciónInstrucción Leer
11 Instrucción Leer El valor ingresado por medio del dispositivo de entrada (generalmente el teclado) pasa a la variable (celdas de memoria)
12 Instrucción Leer RestricciónEl valor digitado debe concordar con el tipo de dato de la variable
13 Instrucción Leer Sintaxis Leerlista de variables separadas por coma y entre paréntesis Ejemplos Leer (X, Y, Z) Leer (Nota1P, Nota2P, NotaEF)
14 Entrada de InformaciónAnalice la siguiente instrucción: Leer (12, “abc1”, Verdadero) ?
15 Salida de Información Instrucción Escribir
16 Instrucción Escribir Escribir (una o más expresiones separadas por coma) Expresiones? Variables Constantes Expresiones aritméticas Cálculos
17 Salida de Información Ejemplo Escribir (“Producto”, Producto)Escribir (“%IVA=”, 0.16) Escribir (“Valor IVA”, ValorProducto*0.16)
18 Salida de Información El programador es responsable del formato de salida de la información
19 Salida de Información 5 3 2 4 3,5 3,5 La nota del 1er Parcial fue: 5.0,5 3,5 La nota del 1er Parcial fue: 5.0 La nota del 2° Parcial fue: 3.0 La nota del Examen Final fue: 2.0 La nota de Laboratorios fue: 4.0 La Nota de Quices fue: 3,5 LA NOTA FINAL ES: 3,5
20 Instrucción Escribir Escriba (parcial1, parcial2, final, lab, quiz, nota_final) ,5 3,5
21 Instrucción Escribir Escriba (“La nota del 1er Parcial fue:”, parcial1) Escriba (“La nota del 2° Parcial fue:”, parcial2) Escriba (“La nota del Examen Final fue:”, final) Escriba (“La nota de Laboratorios fue:”, lab) Escriba (“La nota de Quices fue:”, quiz) Escriba (“LA NOTA FINAL ES:”, nota_final) La nota del 1er Parcial fue: 5.0 La nota del 2° Parcial fue: 3.0 La nota del Examen Final fue: 2.0 La nota de Laboratorios fue: 4.0 La Nota de Quices fue: 3,5 LA NOTA FINAL ES: 3,5
22 Ejemplo Hacer un algoritmo que lea y muestre el nombre de un estudiante
23 Ejemplo Algoritmo Leer_Escribir Caracteres: Nombre Inicio Lea (Nombre)Escriba (Nombre) Fin Fin Algoritmo
24 Ejemplo Algoritmo Leer_Escribir Cadena: Nombre Inicio Lea (Nombre)Escriba (Nombre) Fin Fin Algoritmo Nombre del algoritmo Declaración de variables Inicio de las instrucciones Fin de las instrucciones
25 Problemas? Mejore el anterior algoritmo, de manera que tanto la entrada como la salida sean lo más clara posible para el usuario.
26 Ejemplo Algoritmo Leer_Escribir Cadena: Nombre InicioEscriba (“Ingrese el nombre del estudiante”) Lea (Nombre) Escriba (“El nombre ingresado fue ”, Nombre) Fin Fin Algoritmo
27 Expresiones AritméticasOperadores binarios + Suma - Resta * Multiplicación / División % Módulo (sólo sobre tipo entero) Operadores unitarios: - Signo negativo ++ Incremento -- Decremento Consultar: reglas de precedencia
28 Expresiones AritméticasOperador Significado Tipo de Operandos Tipo de Resultados ^,** Exponenciación Entero o real + Suma - Resta * Multiplicación / División Real Div División entera Entero Mod Modulo (rest)
29 Reglas de prioridad o precedenciaPrimero lo que está entre paréntesis Si existen paréntesis anidados las expresiones más internas se evalúan primero. Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente orden de prioridad: Operador exponencial (^, , o bien **) Operadores *, / Operadores +, - Operadores div y mod
30 Ejemplos de Expresiones
31 Ejemplos de Expresiones
32 Ejemplos de Expresiones¿?
33 Expresiones Lógicas Operadores binarios: Operadores unitarios&& AND (conjunción) || OR (disyunción) Operadores unitarios ! NOT lógico Operadores relacionales o de comparación Comparan dos expresiones devolviendo como resultado un valor booleano == igual != distinto < menor <= menor o igual > mayor >= mayor o igual Consultar: reglas de precedencia
34 Operador de Asignación Almacena datos en las variables Es un operador binario primer operando (lado izquierdo): variable El segundo operando (el del lado derecho) Variable Constante Expresión en general.
35 Asignación de variablesSintaxis
36 Asignación de variablesRestricciones La expresión debe ser del mismo tipo de la variable ?
37 Asignación de variablesEjemplos X 1 X es una variable numérica Y ”abc” Y es una variable alfanumérica Y “123” Y “a1*+b2#&(c3%$” Z verdadero Z es una variable lógica
38 Errores X “ 1 ” Y 1 + 2 Z ”verdadero”
39 Errores x + y + z variable 5 variable
40 Variables: AsignaciónX es una variable numérica entera En X se guarda el número 10 X 10 Es correcta la siguiente instrucción? X 10 * X
41 Variables: AsignaciónX es una variable numérica entera X 10 Con qué valor quedaría la variable X después de ejecutar la siguiente instrucción? X 10 * X
42 Intercambio del contenido de dos variables
43 Intercambio del contenido de dos variablesaux var1 { El valor inicial de var1 se guarda en aux } var1 var2 { El contenido de var2 se pasa a var1 } var2 aux { El contenido de aux se pasa a var2 } Ejercicio en clase: Hacer el algoritmo
44 Ejercicio en Clase Diseñar un algoritmo que lea cuatro variables y calcule e imprima su producto, suma y media aritmética.
45 Ejercicio en Clase Diseñar un algoritmo que lea cuatro variables y calcule e imprima su producto, suma y media aritmética. Pasos Nombre algoritmo Variables: Cuántas? Cuáles? Tipo? Declarar variables Instrucciones del Algoritmo Inicio Leer Calcular Mostrar Fin
46 Ejercicio en Clase Algoritmo Prueba Entero: a, b, c, d, producto, suma Real: media inicio leer (a, b, c, d) producto <-- (a * b * c * d) suma <-- (a + b + c + d) media <-- suma / 4 escribir (producto, suma, media) fin Fin-Algoritmo
47 Ejercicio Mejorar el formato de salida del anterior algoritmo.
48 Ejercicio en Clase Algoritmo Prueba Entero: a, b, c, d, producto, suma Real: media inicio escribir (“Por favor ingrese los cuatro datos”) leer (a, b, c, d) producto <-- (a * b * c * d) suma <-- (a + b + c + d) media <-- suma / 4 escribir (“El producto es: ”, producto) escribir (“la suma es: ”, suma) escribir (“la media es: ”, media) fin Fin-Algoritmo
49 Ejercicio en Clase Algoritmo Prueba Entero: a, b, c, d, producto, suma Real: media inicio escribir (“Por favor ingrese los cuatro datos”) leer (a, b, c, d) producto <-- (a * b * c * d) suma <-- (a + b + c + d) media <-- suma / 4 escribir (“El producto es: ”, producto, “la suma es: ”, suma, “la media es: ”, media) fin Fin-Algoritmo
50 Estructuras de Control: SecuencialAlgoritmo Prueba Entero: a, b, c, d, producto, suma Real: media inicio escribir (“Por favor ingrese los cuatro datos”) leer (a, b, c, d) producto <-- (a * b * c * d) suma <-- (a + b + c + d) media <-- suma / 4 escribir (“El producto es: ”, producto, “la suma es: ”, suma, “la media es: ”, media) fin Fin-Algoritmo
51 Ejercicio Diseñar un algoritmo que calcule la definitiva de esta asignatura (ver la sección evaluación en el programa del curso).
52 Ejercicio Diseñar un algoritmo que calcule la definitiva de esta asignatura (ver la sección evaluación en el programa del curso). Descomponer el problema Tarea: Generalizar el algoritmo para notas con diferentes porcentajes
53 Solución del EjercicioTareas Leer el nombre del estudiante Pedir al usuario que ingrese cada una de las notas Leer cada una de las notas Calcular la nota final: sumar las notas y dividir entre 5 Mostrar el resultado
54 Ejercicio 1er Parcial 2º Parcial Laboratorios Quices Examen FinalVariables Una variable para identificar al estudiante Una variable para cada nota 1er Parcial 2º Parcial Laboratorios Quices Examen Final Una variable para guardar el resultado
55 Solución del EjercicioDECLARACIÓN DE VARIABLES real: parcial1, parcial2, final, quiz, lab, nota_final caracteres: nombre
56 Algoritmo: Solución del Ejercicio (1)algoritmo Calculo_Nota real: parcial1, parcial2, final, quiz, lab, nota_final caracteres: nombre Inicio escribir (“Ingrese el nombre del estudiante”) //TAREA #1 leer (nombre) escribir (“Digite las notas así: bla bla bla …”) //TAREA #2 leer (parcial1, parcial2, final, quiz, lab) //TAREA #3 … fin
57 Algoritmo: Solución del Ejercicio (2)algoritmo Calculo_Nota real: parcial1, parcial2, final, quiz, lab, nota_final caracteres: nombre Inicio escribir (“Ingrese el nombre del estudiante”) leer (nombre) escribir (“Digite las notas”) leer (parcial1, parcial2, final, quiz, lab) nota_final (parcial1 + parcial2 + final + quiz + lab)/5 escribir (“la nota definitiva de:”, nombre, “es:”, nota_final) fin
58 Ejercicios Transforme una temperatura de °C a °F ( T°F = T°C * ). Obtener el área de un rectángulo de lados conocidos a y b menos el área de una circunferencia completamente contenida en él de diámetro d. Un vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas, el vendedor desea saber cuanto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones. Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes. Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad distinta. Las ganancias de la empresa serán repartidas entre los fundadores de acuerdo a la proporción invertida por cada uno. Obtener el porcentaje de ganancias que le corresponde a cada uno.
59 Ejercicios: Lógica de Programación (E. Oviedo)Hacer un algoritmo que: Calcule los meses transcurridos entre enero de 2009 y enero 1964. Generalizar el anterior ejercicio para cualquier subrango de años. Calcule el área y el perímetro de un rectángulo cuyos lados son conocidos
60 Ejercicios: Lógica de Programación (E. Oviedo)Hacer un algoritmo que: Calcule la edad de los miembros de una familia: La mamá tiene tres hijos y se conoce la edad de uno de ellos Juan. José 2/3 de la edad de Juan. Ana Tiene 4/3 de la edad de Juan. Y la edad de la mamá es la suma de la edad de los tres hijos.
61 Ejercicios: Lógica de Programación (E. Oviedo)Hacer la prueba de escritorio: Inicio suma 0 x 20 suma suma + x y 40 x x+y**2 suma suma + x/y Escriba (“el valor de la suma es”, suma) Fin
62 Ejercicios: Lógica de Programación (E. Oviedo)Escriba las siguientes expresiones algebraicas como expresiones algorítmicas X2 +4YZ
63 Pendiente Repasar aplicaciones de los porcentajes Comisión DescuentosAumento Precio con Impuesto a las ventas Interés simple Interés simple y principal