Problemas y Algoritmos
Problemas y Algoritmos
Datos
Problemas y algoritmos
Dato e Información
Dato
•Unidad mínima que por sí sola no tiene significado.
•Representación simbólica de propiedades que poseen entes y/o sucesos.
•Puede referirse a números, letras, símbolos, etc.
•Los datos aisladamente pueden no contener información relevante.
Información
•Conjunto de datos que relacionados entre sí poseen significado.
•Representación simbólica obtenida operando sobre datos.
Computadora
Programa
•Secuencia de pasos finita expresada en un lenguaje comprensible
por una computadora, que resuelve un problema.
•Conjunto de instrucciones o sentencias.
Sistema
•Conjunto de programas que cumplen una tarea específica,
hardware y software que cumplen tareas específicas.
•Conjunto de componentes que cumplen determinada función.
Entrada, Proceso y Salida
• Entradas: ingresos al sistema, pueden ser recursos materiales, humanos o
información.
• Determinar cuales son los datos necesarios para obtener dichos resultados
• Determinar cual es el proceso a realizar con los datos para obtener los
resultados
Comprensión del problema (que)
Qué tipo de relación, método o proceso debo establecer con los datos?
para obtener los resultados pedidos?
- es un proceso matemático ? de evaluación ?
- es un proceso selectivo ? simple ó múltiple ?
- es una combinación y/o repetición de ambos ?
- existen condiciones especiales ó restricciones ?
Comprensión del problema (que)
Ejemplo
Calcular el área de un cuadrado cuyos lados tienen como longitud la
hipotenusa de un triángulo rectángulo cuyos catetos se dan como datos.
Conviene en este caso graficar el problema.
a) Resultados : área del cuadrado de lado h
b) Datos : catetos a y b, mayores que cero
c) Proceso : está compuesto por dos cálculos simples, el primero es el de la
hipotenusa del triángulo y el segundo el del área del cuadrado.
Restricción / orden : no puedo resolver el área del cuadrado si no calculo
previamente su lado.
Diseño de una estrategia (como)
• Elaboración de un plan general que permita resolver el problema.
b) Acciones internas :
c) Condición de final :
b) Acciones internas :
- Efectuar cálculos aritméticos, pueden ser intermedios ó auxiliares y/o finales
- CONTADOR : cuenta elementos de uno a uno
- ACUMULADOR : efectúa la sumatoria de valores
- Comparar 2 valores y elegir entre 2 caminos posibles.
- Generar ciclos definidos y condicionados.
- Posibilidad de definir y usar funciones que efectúan cálculos específicos, como
ser :
MAXIMO : halla el máximo de una serie de números.
MINIMO : determina el mínimo de una serie de números.
ORDENAR : ordena en forma ascendente o descendente una serie de valores
Diseño de una estrategia (como)
c) Condición de final :
todo programa tiene un final, bajo ciertas condiciones, que debemos
especificar. Esta condición solo la aplicaremos en aquellos problemas que
tienen más de un dato ó de un juego de datos.
2 - ESTRATEGIA ( cómo ?? )
5 – Que cada instrucción sea lo suficientemente básica para que pueda ser
resuelta por cualquier computador.
Características de los algoritmos
• Las características que debe cumplir un algoritmo son:
• Una lista ordenada de sentencias con las que resolver el problema asociado al
algoritmo
• Los símbolos utilizados en los diagramas de flujo han sido estandarizados por la
ANSI (American National Institute) y por la ISO (International Standard
Organization)
Símbolos de diagramas de flujo 1
Variables y Constantes
a) Variables :
- Elementos que toman valores específicos de algún tipo de datos.
- Lo toman por asignación
- Lo toman por entradas de datos
- Es una representación simbólica de una dirección de memoria donde se
guarda un valor (el valor de la variable).
b) Constantes:
- Almacenan siempre el mismo valor.
- Se usan por ejemplo para patrones de conversión: fuerza de gravedad,
pulgadas a cm, Pi, etc.
Tipos de datos
- Tienen que ver con la clase de datos que una variable/constante pueden
alojar.
Tipo de datos Descripcion Ejemplo
Edad de una persona en años
Números enteros El numero de hijos
Entero
Se escriben tal cual Las notas de los alumnos de una
int
Declaracion: int nombre_variable comisión
La velocidad de un auto
Números reales Sueldo de un trabajador
Real
Se escriben tal cual con coma El promedio de ventas
float
Declaración: float nombre_variable
Caracteres alfanuméricos Estado civil de una persona
Carácter
Se escriben entre comillas simples Cada uno de los caracteres ASCII
char
Declaración: char nombre_variable
Verdadero o Falso El resultado de la comparación 5
Lógico o booleano
Se escriben V F >10
Conjunto de caracteres El nombre de una persona
Cadena (ó texto)
Se escriben entre comillas dobles El domicilio de una persona
char[x]
Declaración char[10] nombre_variable Un número de telefono
Operadores
Tipo de operador Simbolo Ejemplo
a <- 10
Asignación <-
b <- a * c
+ (suma)
- (resta)
* (producto)
Aritméticos / (división) 9+(6/3)
Mod (resto)
Div (resultado entero en división)
Exponente
> (mayor que)
< (menor que) a >= b
De relación / >= (mayor o igual que)
comparación <=(menor o igual que) Siempre dan como resultado un valor
<> != (distinto que) verdadero o falso
== (igual que)
Y
(a >= b) Y (a>=c)
Unión de expresiones O
Not
Instrucciones: Asignación
• Asignación:
• Se utiliza para almacenar un valor en una posición de memoria
• Se hacer mediante el operador
• Lado izquierdo de la asignación: una variable (un identificador)
• Lado derecho: una expresión (un valor)
• Entrada:
• Simula la lectura desde un dispositivo (teclado, lector de código
de barras, etc.)
• Se hacer mediante la orden Leer.
• Leer a: leo un valor y lo guardo en a.
• Salida:
• Simula la salida a la pantalla, impresora, etc.
• Se hace mediante la orden Escribir
• Escribir a: muestro el valor de a.
escribir a
Símbolo en diagrama de flujo:
Ejemplo: Diagrama de flujo
Ejemplo: Diagrama de flujo
Diagramas de flujo - ventajas
• - permite una sencilla y rápida visualización total del problema y sus
distintas alternativas.