ALGORITMIA Y PROGRAMACIÓN Peter Emerson Pinchao 1 Tomado de las presentaciones la Ing Lucy Garcia.
-
Upload
maria-del-rosario-quintero-moya -
Category
Documents
-
view
214 -
download
0
Transcript of ALGORITMIA Y PROGRAMACIÓN Peter Emerson Pinchao 1 Tomado de las presentaciones la Ing Lucy Garcia.
ALGORITMIA Y PROGRAMACIÓNPeter Emerson Pinchao
1
Tomado de las presentaciones la Ing Lucy Garcia
Contenido• El 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• Entrada y/o salida de información• Un ejemplo sencillo• Asignación
• Intercambio de variables• Ejemplos• Estructura de control: Secuencial
2
Algoritmos: Conceptos Básicos
• El 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
3
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
4
Ejercicio Identificadores
• nombre_empleado• area• 1texto• TAMANO_STRING• EdadEmpleado• while• potencia10• i
5
Distinga los identificadores inválidos. Porqué?
For nombre-
empleado iF Nombre Teléfono nombre While
Constantes
• Numéricas• Ejemplos: 123 123,45 12345
• Caracteres• Una serie de caracteres encerrados entre comillas• Ejemplos: “constante”, “Texto”, “texto”, “1”
• Lógicas• Verdadero• Falso
6
Variables
• Almacenar datos
7
Variables
• Almacenar datos• Nombres• Tipo de dato
• Numéricos• Enteros• Reales
• Cadena de Caracteres• Lógicos o Booleanos
8
Variables
• Deben ser declaradas previamente• Sintaxis de la Declaración
• Tipo de Dato• Lista de variables separadas por coma
• Ejemplos:• Caracteres: Nombre, Apellido• Entero: Nro_Estudiantes• Real: Valor_Hora, Salario, Descuentos
9
Entrada de Información
10
Instrucción Leer
Instrucción Leer
11
El valor ingresado por medio del dispositivo de entrada (generalmente el teclado) pasa a la variable (celdas de
memoria)
Instrucción Leer
• Restricción• El valor digitado debe concordar con el tipo de dato de la variable
12
Instrucción Leer
• Sintaxis
• Leer • lista de variables separadas por coma y entre paréntesis
• Ejemplos• Leer (X, Y, Z)• Leer (Nota1P, Nota2P, NotaEF)
13
Entrada de Información
• Analice la siguiente instrucción:
• Leer (12, “abc1”, Verdadero)
?
14
Salida de Información
• Instrucción Escribir
15
Instrucción Escribir
• Escribir (una o más expresiones separadas por coma)• Expresiones?
• Variables• Constantes• Expresiones aritméticas
• Cálculos
16
Salida de Información
• Ejemplo • Escribir (“Producto”, Producto)
• Escribir (“%IVA=”, 0.16)
• Escribir (“Valor IVA”, ValorProducto*0.16)
17
Salida de Información
• El programador es responsable del formato de salida de la información
18
Salida de Información
19
5 3 2 4 3,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
Instrucción Escribir
Escriba (parcial1, parcial2, final, lab, quiz, nota_final)
20
5 3 2 4 3,5 3,5
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)
21
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
Ejemplo
• Hacer un algoritmo que lea y muestre el nombre de un estudiante
22
Ejemplo
Algoritmo Leer_Escribir
Caracteres: Nombre
Inicio
Lea (Nombre)
Escriba (Nombre)
Fin
Fin Algoritmo
23
Ejemplo
Algoritmo Leer_Escribir
Cadena: Nombre
Inicio
Lea (Nombre)
Escriba (Nombre)
Fin
Fin Algoritmo
24
Nombre del algoritmo
Declaración de variables
Inicio de las instrucciones
Fin de las instrucciones
Problemas?• Mejore el anterior algoritmo, de manera que tanto la
entrada como la salida sean lo más clara posible para el usuario.
25
Ejemplo
Algoritmo Leer_Escribir
Cadena: Nombre
Inicio
Escriba (“Ingrese el nombre del estudiante”)
Lea (Nombre)
Escriba (“El nombre ingresado fue ”, Nombre)
Fin
Fin Algoritmo
26
Expresiones Aritméticas • Operadores binarios
• + Suma• - Resta• * Multiplicación• / División• % Módulo (sólo sobre tipo entero)
• Operadores unitarios:• - Signo negativo• ++ Incremento• -- Decremento
• Consultar: reglas de precedencia
27
Expresiones Aritméticas
Operador Significado Tipo de OperandosTipo de Resultados
^,** Exponenciación Entero o real Entero o real
+ Suma Entero o real Entero o real
- Resta Entero o real Entero o real
* Multiplicación Entero o real Entero o real
/ División Real Real
Div División entera Entero Entero
Mod Modulo (rest) Entero Entero
28
Reglas de prioridad o precedencia
• Primero 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
•
29
Ejemplos de Expresiones
30
Ejemplos de Expresiones
31
Ejemplos de Expresiones
32
¿?
Expresiones Lógicas • Operadores binarios:
• && 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
33
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.
34
Asignación de variables
• Sintaxis• <variable> <expresión>
35
Asignación de variables• Restricciones
• La expresión debe ser del mismo tipo de la variable
36
?
Asignación de variables
• Ejemplos
• 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
37
Errores
X “ 1 ”
Y 1 + 2
Z ”verdadero”
38
Errores
x + y + z variable
39
5 variable
Variables: Asignación
• X 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
40
Variables: Asignación
• X 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
41
Intercambio del contenido de dos variables
42
Intercambio del contenido de dos variables
aux 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 }
43
Ejercicio en clase: Hacer el algoritmo
Ejercicio en Clase
• Diseñar un algoritmo que lea cuatro variables y calcule e imprima su producto, suma y media aritmética.
44
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
45
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)
finFin-Algoritmo
46
Ejercicio• Mejorar el formato de salida del anterior algoritmo.
47
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) finFin-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, “la suma es: ”,
suma, “la media es: ”, media) finFin-Algoritmo
49
Estructuras de Control: Secuencial
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) finFin-Algoritmo
50
Ejercicio
• Diseñar un algoritmo que calcule la definitiva de esta asignatura (ver la sección evaluación en el programa del curso).
51
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
52
Solución del Ejercicio
• Tareas1. Leer el nombre del estudiante
2. Pedir al usuario que ingrese cada una de las notas
3. Leer cada una de las notas
4. Calcular la nota final: sumar las notas y dividir entre 5
5. Mostrar el resultado
53
Ejercicio
• Variables
• 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
54
Solución del Ejercicio
DECLARACIÓN DE VARIABLES
real: parcial1, parcial2, final, quiz, lab, nota_final
caracteres: nombre
55
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
56
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
57
Ejercicios1. Transforme una temperatura de °C a °F ( T°F = T°C * 1.8 + 32 ).2. 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.3. 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.
4. Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes.
5. 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.
58
Ejercicios: Lógica de Programación (E. Oviedo)
Hacer un algoritmo que:
1. Calcule los meses transcurridos entre enero de 2009 y enero 1964.
2. Generalizar el anterior ejercicio para cualquier subrango de años.
3. Calcule el área y el perímetro de un rectángulo cuyos lados son conocidos
59
Ejercicios: Lógica de Programación (E. Oviedo)
Hacer un algoritmo que:
4. 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.
60
Ejercicios: Lógica de Programación (E. Oviedo)
5. Hacer la prueba de escritorio:Inicio
suma 0x 20suma suma + xy 40 x x+y**2suma suma + x/yEscriba (“el valor de la suma es”, suma)
Fin
61
Ejercicios: Lógica de Programación (E. Oviedo)
6. Escriba las siguientes expresiones algebraicas como expresiones algorítmicas
X2 +4YZ
62
Pendiente
•Repasar aplicaciones de los porcentajes• Comisión • Descuentos • Aumento • Precio con Impuesto a las ventas • Interés simple • Interés simple y principal
63