Upload
edward-ropero
View
1.030
Download
4
Embed Size (px)
Citation preview
Modelaje y solución de problemas
Es la capacidad de abstraer la información de la realidad relevante para un problema, de expresar dicha realidad en términos de algún lenguaje y proponer una solución en términos de modificaciones de dicha abstracción.
Se denomina “análisis” al proceso de crear dicha abstracción a partir de la realidad, y “especificación del problema” al resultado de expresar el problema en términos de dichaabstracción.
Algorítmica
Es la capacidad de utilizar un conjunto de instrucciones para expresar las modificaciones que se deben hacer sobre la abstracción de la realidad, para llegar a un punto en el cual el problema se considere resuelto. Se denomina “diseño de un algoritmo” al proceso de construcción de dicho conjunto de instrucciones
OperadorAritmético
Operación Ejemplo Resultado
¨ Potencia 4¨3 64
. ó x Multiplicación 4 . 8 ó 4x8 32
/ ó ÷ División 15/3 ó 15÷3 5
+ Suma 13+7 20
- Resta 25-8 17
mod Módulo (residuo)
15 mod 2 1
div División Entera 17 div 3 5
Operador Jerarquía Operación
¨ (mayor)
(menor)
Potencia
·,/,MOD, DIV Multiplicación, división, módulo,
división Entera
+, - Suma, resta
5¨3/10-4+(24·3DIV5)-48MOD5/35¨3/10-4+(24·3DIV5)-48MOD5/35¨3/10-4+ (72DIV5) -48MOD5/35¨3/10-4+ 14 -48MOD5/3
125/10-4+14-48MOD5/312,25-4+14-48MOD5/3
12,25-4+14-3/312,25-4+14-1
8,25+14-122,25-121,25
Resolver la siguiente operación:
Operador Operación Ejemplo Resultado
= Igual que ‘hola’=‘lola’ Falso
<> Diferente a ‘a’ <> ‘b’ Verdadero
< Menor que 8 < 29 Verdadero
> Mayor que 45 > 27 Verdadero
< = Menor o Igual que 14 <= 22 Verdadero
> = Mayor o Igual que 33 >= 12 Verdadero
5¨3/10-4<(24·3DIV5)≥48MOD5/35¨3/10-4<(24·3DIV5)≥48MOD5/35¨3/10-4< (72DIV5) ≥48MOD5/35¨3/10-4< 14 ≥48MOD5/3
125/10-4<14≥48MOD5/312,25-4<14≥48MOD5/3
12,25-4<14≥3/312,25-4<14 ≥ 1
8,25<14 ≥ 1TRUE ≥ 1
ERROR
Operador Jerarquía Ejemplo Resultado
No (mayor)
(menor)
No P~ P
NO PNo es cierto que P
Es FALSO que P
Y P y Q P^QP sin embargo Q
O P o Q P o Q o P o Q o ambas
P Q ~ P ~ Q P o Q P y Q
Verdadero Verdadero Falso Falso Verdadero Verdadero
Verdadero Falso Falso Verdadero Verdadero Falso
Falso Verdadero Verdadero Falso Verdadero Falso
Falso Falso Verdadero Verdadero Falso Falso
~(5¨3/10-4 <= 7+24 · 3DIV3) AND ~(8-20 · 4/5 > 56) OR (48MOD5/3 · 149 = 34+120-5)
~(5¨3/10-4 <= 7+24 · 3DIV3) AND ~(8-20 · 4/5 > 56) OR (48MOD5/3 · 149 = 34+120-5)
~(125/10-4 <= 7+24 · 3DIV3) AND ~(8-20 · 4/5 > 56) OR (48MOD5/3 · 149 = 34+120-5)
~(12,5 -4 <= 7+24 · 3DIV3) AND ~(8-20 · 4/5 > 56) OR (48MOD5/3 · 149 = 34+120-5)
~( 12,5 -4 <= 7+72DIV3) AND ~(8-20 · 4/5 > 56) OR (48MOD5/3 · 149 = 34+120-5)
~(12,5-4 <= 7+24) AND ~(8-20 · 4/5 > 56) OR (48MOD5/3 · 149 = 34+120-5)
~(8,5 <= 7+24) AND ~(8-20 · 4/5 > 56) OR (48MOD5/3 · 149 = 34+120-5)
~(8,5 <= 31) AND ~(8-20 · 4/5 > 56) OR (48MOD5/3 · 149 = 34+120-5)
~ VERDADERO AND ~(8-20 · 4/5 > 56) OR (48MOD5/3 · 149 = 34+120-5)
~ V AND ~(8-80/5 > 56) OR (48MOD5/3 · 149 = 34+120-5)
~ V AND ~(8-16 > 56) OR (48MOD5/3 · 149 = 34+120-5)
~ V AND ~ (-8 > 56) OR (48MOD5/3 · 149 = 34+120-5)
~ V AND ~FALSO OR (48MOD5/3 · 149 = 34+120-5)
~ V AND ~F OR ( 3/3 · 149 = 34+120-5)
~ V AND ~F OR ( 1 · 149 = 34+120-5)
~ V AND ~F OR ( 149 = 34+120 -5)
~ V AND ~F OR ( 149 = 154-5)
~ V AND ~F OR VERDADERO
F AND ~F OR V
F AND V OR V
F OR V
V
Utilizar la coma (,) para indicar los decimales y el punto (.)para la multiplicación
Resolver los puntos paso a paso Los paréntesis se resuelven de adentro hacia afuera Los paréntesis tienen la mayor gerarquía, por lo tanto se
resuelven primero Cada parentesis divide el ejercicio en partes Los ejercicios se resuleven de izquierda a derecho No confundir división con división entera La respuesta o solución de una operación relacional es un
valor lógico FALSO o VERDADERO VERDADERO siempre es mayor que FALSO No se puede realizar una comparación entre un valor lógico
y un valor numérico, utilizando un operador relacional
Simple Estructurado
Datos Simples
• Entero (integer)• Real (real)• Carácter (char)• Lógico (boolean)
Datos Estructurados
dinámicos
estáticos
• Lista (pila/cola)• Lista enlazada• árbol• grafo
• Arreglo(array)• Registro• Archivo (fichero)• Conjunto• Cadena (string)
Llamaremos identificador al nombre que se les da a las casillas de memoria
Reglas Para Contruir Identificadores
El primer caracter que forma un identificador debe ser una letra (a, b, c, z).
Los demás caracteres pueden ser letras (a,b,c,...,z), dígitos (0,1,2,...,9) o el siguiente símbolo especial: _
La longitud del identificador es igual a 7 en la mayoría de los lenguajes de programación.
Constantes
Las constantes son datos que no cambian durante la ejecución de un programa
Variables
Las variables son objetos que pueden cambiar su valor durante la ejecución de un programa
Asigna valores o expresiones a una variable.
Operación destructiva
Variable expresión o valor
La expresión puede ser aritmética o lógica, o una constante o variable.
Contendor ContenidoVariable = Dato
Ejemplo
Supongamos que las variables i, ACUM y J son de tipo entero, REA y SUM de tipo real, CAR de tipo caracter y BAND de tipo booleano. Consideremos también que tenemos que realizar las siguientes asignaciones
1. i =02. i = i + 13. ACUM = 04. J =5 ¨ 2 DIV 35. CAR = ‘a'6. ACUM = J DIV i7. REA = ACUM/3
8. BAND = (8 > 5) AND (15 <2 ¨ 3)9. SUM = ACUM . 5 / J ¨ 210. i = i . 311. REA = REA/512. BAND = BAND OR (i = J)13. i = REA14. CAR = J
Número de Asignación
i J ACUM REA SUM CAR BAND
1 0
2 1
3 0
4 8
5 ‘a’
6 8
7 2,66
8 FALSO
9 0,625
10 3
11 0,532
12 FALSO
13 ERROR
14 ERROR
Conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema
Etapas para la solución de un problema
Problema
Análisis profundo
del problema
Construcción del
Algoritmo
Verificación del
Algoritmo
Características:
Precisión: Los pasos a seguir en el algoritmo deben ser precisados claramente
Determinismo: El algoritmo, dado un conjunto de datos idénticos de entrada, siempre debe arrojar los mismos resultados
Finitud: El algoritmo, independientemente de la complejidad del mismo, siempre debe ser de longitud finita
Módulos o secciones de un algoritmo:
Entrada de Datos
Procesamiento de datos
Impresión de resultados
Algoritmo
Qué es pseudocódigo?
Para qué sirve y cómo se usa el pseudocódigo?
Ejemplo de pseudocódigo
Qué son los diagramas de flujo?
Para qué sirve y cómo se usan los diagramas de flujo?
Ejemplo de un diagrama de flujo
Representación del Símbolo Explicación del Símbolo
Marca el inicio o fin del diagrama
Símbolo utilizado para Introducir los datos de entrada. Expresa lectura
Símbolo utilizado para representar un proceso.
No
Si
Símbolo utilizado para representar una decisión
Símbolo utilizado para representar una decisión múltiple
Representación del Símbolo Explicación del Símbolo
5ímbolo utilizado para representar la Impresión de un resultado. Expresa escritura
Símbolos utilizados para expresar la dirección del flujo del diagrama
Símbolo utilizado para expresar conexión dentro de una misma página
Símbolo utilizado para expresar conexión entre páginas diferentes
Símbolo utilizado para expresar un módulo de un problema
Inicio
Fin
Reglas3. Todas las líneas deben estar conectadas
4. El diagrama debe ir de arriba hacia abajo, de izquierda a derecha
5. La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de programación
1. Todo diagrama de flujo debe tener un inicio y un fin
2. Las líneas deben ser rectas, verticales y horizontales
Reglas
6. Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o ayuden a entender lo que hicimos
7. Si el diagrama de flujo requiriera más de una hoja para su construcción, debemos utilizar los conectores adecuados y enumerar las páginas convenientemente.
8. No puede llegar más de una línea a un símbolo
Conjunto de instrucciones que sigue la computadora para alcanzar un resultado específico
Un lenguaje de programación, por otra parte, está constituido por un conjunto de reglas sintácticas y semánticas, que hacen posible escribir un programa.
Determinar las entradas y salidasReconocer o determinar cada uno de los pasos
para el desarrollo del algoritmoAl solicitar un dato, siempre se “Imprime o
escribe primero la pregunta” y luego se solicitaSe debe pensar en términos de que quién
realiza las preguntas es la máquina no el programador
https://www.youtube.com/watch?v=X5Wkp1gsNik
La mejor forma de aprender, no es compilando por cada línea, deben de imaginar el flujo de la ejecución del programa mientras lo realizas
La programación es una forma estructurada de expresar pensamientos
Es muy importante no ignorar los errores Reconocer el significado de las palabras en inglés que se
manejan
Una instrucción sigue a la otra en secuencia
InicioAcción 1Acción 2Acción 3::Acción N
Fin
Inicio
Fin
Acción 1
Acción 2
Acción N
Ejemplo: Escriba el pseudocódigo y diagrama de flujo para un algoritmo que sume dos números enteros
InicioInt num1, num2, sumEscribir “Diga dos números enteros”Leer num1, num2sum = num1 + num2Escribir “La suma es: ”, sum
Fin
Inicio
Int num1, num2, sum
“Diga dos números enteros”
Fin
num1, num2
sum = num1 + num2
“La suma es: ”, sum
Se utilizan en el desarrollo de la solución de un problema debemos tomar una decisión, para establecer un proceso o señalar un camino alternativo a seguir.
Estructura selectiva simple
SI ENTONCES
Estructura selectiva doble
SI ENTONCES / SINO
Estructura selectiva múltiple
SI MULTIPLE
Estructura selectiva anidada (cascada)
condición
operación
Donde:
CONDICION expresa la condición o conjunto de condiciones a evaluar.
OPERACION expresa la operación o conjunto de operaciones que se van a realizar si la condición resulta verdadera.
Si (verdadero)
No (falso)
Si condición entonceshacer operación
{Fin del condicional}
Ejemplo:
Construya un diagrama de flujo y pseudocódigo tal que ingresando la calificación de un alumno en un examen, escriba “aprobado” en caso de que esa calificación sea mayor o igual a 3.
Inicio
Double nota
“Digite la nota”
Fin
nota
“Aprobado”
nota >= 3
Si
No
InicioDouble notaEscribir “Digite la nota”Leer notaSi (nota >= 3) Entonces
Escribir “Aprobado”Fin
Donde:
CONDICION expresa la condición o conjunto de condiciones a evaluar.
OPERACIÓN 1 expresa la operación o conjunto de operaciones que se van a realizar si la condición resulta verdadera.
OPERACIÓN 2 expresa la operación o conjunto de operaciones que se van a realizar si la condición resulta falsa.
Si condición entonceshacer operación 1
Si nohacer operación 2
{Fin del condicional}
condición
Operación 1
Si verdadero
No falso
Operación 2
Ejemplo:
Construya un diagrama de flujo tal que dado como dato la calificación de un alumno en un examen, escriba “aprobado” si su calificación es mayor o igual que 3 y “reprobado” en caso contrario.
Inicio
Double nota
“Digite la nota”
Fin
nota
“Aprobado”
nota >= 3Si No
“Reprobado”
InicioDouble notaEscribir “Digite la nota”Leer notaSi (nota >= 3)
EntoncesEscribir “Aprobado”
SinoEscribir “Reprobado”
Fin
Donde:SELECTOR es la variable o expresión a evaluarse, según la cual se tomará una de las “múltiples” decisiones o Alternativas
ACCION 1 expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el valor 1.
ACCION 2 expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el valor 2.
ACCION N expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el valor N.
ACCION N + l expresa la operación que se va a realizar cuando se continúe con el flujo normal del diagrama.
Acción 1
Valor 1
Acción 2 Acción N
Acción N+1
Selector
Valor NValor 2Si selector igual
valor 1 hacer acción 1
valor 2hacer acción 2
valor Nhacer acción N
{Fin del condicional}hacer acción N+1
Ejemplo:
Su empresa implementará una nueva forma de ajustar los sueldos según la experiencia laboral:Si la experiencia es de 1 año, el sueldo actual aumenta en 10%, si esta es de 2 años el incremento es del 15% y si es de 3 años el incremento es del 20%De acuerdo a lo anterior, construya un diagrama de flujo y pseudocódigo que calcule el salario final.
Inicio
Double sue, nsueInt exp
“Digite su sueldo y años de experiencia”
Fin
sue, exp
1 3
exp
“Su nuevo sueldo es: ”, nsue
nsue = sue * 0.1 + sue
nsue = sue * 0.2 + sue
nsue = sue * 0.15 + sue
2
InicioDouble sue, nsueInt expEscribir “Digite su sueldo y años de experiencia”Leer exp, sueSi exp igual
1: nsue = sue * 0.1 + sue2: nsue = sue * 0.15 + sue3: nsue = sue * 0.2 + sue
Escribir “Su nuevo sueldo es: ”, nsueFin
Ejemplo:
Desarrolle el diagrama de flujo y pseudocódigo que: dados 3 números enteros determine cual es el mayor.
Inicio
int n1, n2, n3
“Ingrese 3 números enteros”
n1,n2,n3
“El número mayor es: ”, n1
n1 > n2No
n1 > n3 n2 > n3
“El número mayor es: ”, n3
“El número mayor es: ”, n2
n3 > n2
“El número mayor es: ”, n2
“El número mayor es: ”, n3
n3 > n1
“El número mayor es: ”, n1
Fin
No No
NoNoSi
Si
Si
Si
Si
InicioInt n1, n2, n3Escribir “Ingrese 3 números enteros”Leer n1, n2, n3Si (n1 > n2)
EntoncesSi (n1 > n3)
EntoncesEscribir “El número mayor es: ”, n1
SinoSi (n3 > n2)
EntoncesEscribir “El número mayor es: ”, n3
SinoEscribir “El número mayor es: ”, n2
SinoSi (n2 > n3)
EntoncesEscribir “El número mayor es: ”, n2
SinoSi (n3 > n1)
EntoncesEscribir “El número mayor es: ”, n3
SinoEscribir “El número mayor es: ”, n1
Fin
Inicio
int n1, n2, n3
“Ingrese 3 números enteros”
n1,n2,n3
“El número mayor es: ”, n1
n1 > n2No
n1 > n3 n2 > n3
“El número mayor es: ”, n3
“El número mayor es: ”, n2
“El número mayor es: ”, n3
Fin
No NoSi Si
Si