Unidad
1
Métodos
de representación de un problema de procesamiento de datos,
(informal: lenguaje natural, y formal: pseudocódigo).
Conocimiento
de los distintos tipos de datos. Resolución de diferentes problemas
de la vida real utilizando pseudocódigo.
Algoritmo
•La
palabra algoritmo proviene del nombre del matemático persa del siglo
IX Muhammad ibn Musa al-Jwarizmi
•Un
algoritmo es una secuencia ordenada de pasos, sin ambigüedades, que
permite la resolución de un problema dado y expresado en lenguaje
natural, ej. en castellano.
•Características
de un algoritmo
–Preciso:
Indica el orden de realización de cada uno de sus pasos.
–Finito:
si se sigue el algoritmo, se debe terminar en algún momento, es
decir tiene un numero finito de pasos.
–Definido:
si se sigue dos veces el algoritmo con los mismo
datos
de entrada, la salida debe ser la misma
Ej.1
Algoritmo para cambiar una lamparita
Retirar
la lamparita fundida.
Colocar
una escalera debajo de la lámpara.
Subir
la escalera.
Desenroscar
la lamparita en el sentido contrario de las agujas del
reloj.
Bajar
la escalera.
Poner
una lamparita nueva.
Tomar
la lamparita nueva.
Subir
la escalera.
Enroscar
la lamparita en el sentido de las agujas del reloj.
Bajar
la escalera.
Retirar
la escalera.
Descripción
de algoritmos
• Metodología
para describir algoritmos
–Entrada:
Información dada al algoritmo.
–Proceso:
Operaciones o cálculos necesarios para encontrar la solución
del
problema.
–Salida:
Respuestas dadas por el algoritmo o resultados finales de los
procesos
realizados.
•El
lenguaje algorítmico debe ser independiente de cualquier lenguaje de
programación particular, pero fácilmente traducible a cada uno de
ellos. Alcanzar estos objetivos conducirá al empleo de métodos
normalizados para la
representación
de algoritmos, tales como los diagramas de flujo o el pseudocódigo.
Notaciones
para describir algoritmos
• Método
informal
– Lenguaje
natural
• Ventajas:
comprensible e intuitivo
• Inconveniente:
impreciso
• Métodos
formales
–Pseudocódigo
• Lenguaje
natural limitado y sin ambigüedad
– Diagramas
•Diagramas
de flujo u organigramas
– Utiliza
un conjunto de símbolos para representar cada estructura de control
y mediante líneas de flujo se indica el orden en que se realiza el
flujo lógico del algoritmo
• Diagramas
de Nassi-Schneiderman o Diagramas N-S
–Los
pasos sucesivos se escriben en cajas con distintas formas según la
estructura de control que representen
Notaciones
para describir algoritmos
•Variables
–Numéricas:
•Enteros:
integer
•Reales
(punto flotante): real
–Alfanuméricas:
•Carácter:
char
•Cadena
de caracteres: string
–Lógicas:
boolean
Otros
operadores:
•Número
aleatorio: RANDOM ( )
•Raíz
cuadrada: SQRT ( )
•Parte
entera: TRUNC ( )
•Concatenar:
+
•Valor
absoluto: ABS ( )
•Largo
de cadena: LEN ( )
•Operaciones:
–Asignación:
=
–Aritméticas:
+, -, *, /, ^ (potenciación), MOD (resto división entera)
–Lógicas:
>, <, =, !=, <=, >=, AND, OR, NOT
–Trigonométricas:
SIN ( ), COS ( ), TAN ( ), ASIN ( ), ACOS ( ), ATAN ( )
Ej.
2 Algoritmo que calcule la superficie de un rectángulo
proporcionándole
su
base y altura. (Metodología)
•
Especificaciones
de entrada:
– ¿Qué
datos son de entrada?
–¿Cuántos
datos se introducirán?
– ¿Cuántos
son datos de entrada validos?
•Especificaciones
de salida:
– ¿Cuáles
son los datos de salida?
–¿Cuántos
datos de salida se producirán?
–¿Qué
formato y precisión tendrán los resultados?
•El
algoritmo que podemos utilizar es el siguiente:
–Paso
1: Entrada desde el teclado de los datos de base y altura
–Paso
2: Calculo de la superficie, multiplicando la base por la altura
–Paso
3: Salida por pantalla de base, altura y superficie calculada.
Ej.3
Algoritmo
para calcular el cociente de una división entera (Diagrama de flujo)
Diagramas
de Flujo
Son
gráficas detalladas que representan los pasos que se deben ejecutar
dentro de la computadora a fin de producir los resultados
esperados.
Los Diagramas de Flujos son una técnica estándar para representar
algoritmos y son independientes del lenguaje de programación
utilizado.
Todo
diagrama de flujo debe tener un inicio y un fin.
Las
líneas utilizadas para indicar la dirección del diagrama deben ser
rectas, horizontales o verticales, nunca se deben cruzar entre si.
No
deben haber líneas sin conexión a los demás elementos del
diagrama de flujo.
Un
diagrama de flujo se debe construir de arriba hacia abajo y de
requerirse de izquierda a derecha.
La
notación o símbolos utilizados son independientes del lenguaje de
programación utilizado para la elaboración del programa o
aplicación.
No
puede llegar mas de una línea de conexión a un símbolo.
Secuencia
Simple
Decisión
Simple
El
objeto decisión selecciona el flujo a seguir de acuerdo al valor
lógico de una condición. La condición debe ser siempre una
expresión que al ser evaluada de como resultado un valor Lógico.
Decisión
Múltiple
Iteración
El
objeto Ciclo Mientras tiene como función el ejecutar un bloque de
objetos mientras que una condición sea verdadera. La condición debe
ser siempre una
expresión
que al ser evaluada de como resultado un valor de tipo Lógico.
Si
al evaluar la condición se obtiene el valor F la ejecución del
algoritmo continuará a partir del objeto que sigue al Cierre
Repetición
Su
función es ejecutar un bloque de objetos mientras que la variable
contadora no alcance el límite establecido por el valor final. El
contador es siempre una variable de tipo de dato entero. Contiene
además un valor inicial que será asignado al contador al iniciar la
ejecución del ciclo, un valor final y un valor de incremento. Si el
contador excede el valor final, la ejecución continuará a partir
del objeto que sigue al Cierre. En caso contrario, se ejecutará el
cuerpo del ciclo y el contador será incrementado en el valor
indicado por el incremento.
PRIMER
EJERCICIO (En grupo de 5-6 personas)
Determinar
si un número ingresado por el usuario es par o impar.
Pueden
charlarlo, juntarse a debatir, pensarlo en grupo.
¡Tienen
20 minutos para resolverlo!