1. 09/08/2013
1
Objetivo: definir el concepto, uso y creación de algoritmos.
Universidad Católica de El Salvador
Facultad de Ingeniería y Arquitectura
Programación I, Sección A
Docente: Ma. Ing. Giovanni Acosta
Usosde la
programación
Una persona piensa y se comporta obedeciendo a un
secuencial lógico, por ejemplo para realizar actividades
cotidianas, como: bañarse, vestirse, conducir el
automóvil, etc.
Una computadora realiza tareas y maneja datos en memoria
obedeciendo a una secuencia de pasos lógicos para lo cual ha sido
programada.
Programar computadoras es indispensable en cualquier área
profesional, ya que diferentes problemas que se puedan presentar
tardan tiempo resolverlos de manera manual. La computadora
resuelve problemas (de acuerdo como se le haya programado) de
manera rápida.
2. 09/08/2013
2
¿Quées un
lenguajede
programación?
Se puede definir un lenguaje de programación como un conjunto de
reglas o normas, símbolos y palabras especiales utilizadas para
construir un programa y con él, darle solución a un problema
determinado.
El lenguaje de programación es el encargado de que la computadora
realice paso a paso las tareas que el programador a diseñado en el
algoritmo.
Se puede decir que un lenguaje
de programación es el
intermediario entre la máquina
y el usuario (programador) para
que este último pueda resolver
problemas a través de la
computadora haciendo uso de
palabras (comandos o
instrucciones) que le traducen
dicho programa a la
computadora para la realización
de dicho trabajo.
Nivelesdelos
lenguajesde
programación
Desde que se desarrollaron las computadoras programables se han creado
lenguajes con los cuales las personas puedan dar órdenes a éstas. En su orden los
lenguajes de programación se pueden clasificar de la siguiente manera:
Lenguaje de máquina
• Las primeras
computadoras se
programaban en código
de máquina. Se puede
decir que los programas
eran diseñados en
código binario. Eran
difíciles de leer, difíciles
de entender y por su
puesto difíciles de
corregir. Los programas
se caracterizaban por ser
pequeños.
• Ej. 55 89 e5 53 83 ec 04 f0
e8 31...
Lenguajes de Bajo Nivel
• Para dar solución a lo
difícil que era programar
en código máquina, se
desarrolló un lenguaje
conocido como lenguaje
ensamblador. Este
lenguaje era encargado
de tomar algunas
palabras comunes a una
persona y traducirlas al
código máquina. Lo
anterior facilitaría un
poco la escritura de
programas.
• Ej. subl, pushl, movl, ...
Lenguajes de alto nivel
• Como las personas
resuelven problemas y se
comunican en lenguajes
naturales (español,
ingles, francés, etc.), se
desarrollaron lenguajes
de programación que
estuvieran mas cerca de
ésta manera de resolver
problemas. De los
lenguajes de alto nivel se
puede citar el Basic,
Cobol, Fortran, Pascal,
Turbo Pascal, C, Modula,
Ada. Como es necesario
traducir el programa a
lenguaje de máquina, en
los lenguajes de alto
nivel esa operación la
realiza el compilador
3. 09/08/2013
3
Tiposde
programación
Un paradigma de programación provee (y determina) la visión y métodos de un
programador en la construcción de un programa:
Paradigma
Imperativo
•Describe la programación como una secuencia de instrucciones o comandos
que cambian el estado de un programa. El código máquina en general está
basado en el paradigma imperativo. Su contrario es el paradigma
declarativo. En este paradigma se incluye el paradigma procedimental
(procedural) entre otros. Ej. Basic, C, Fortran, PHP, etc.
Paradigma
Declarativo
•No se basa en el cómo se hace algo (cómo se logra un objetivo paso a paso),
sino que describe (declara) cómo es algo. Se enfoca en describir las
propiedades de la solución buscada, dejando indeterminado el algoritmo
(conjunto de instrucciones) usado para encontrar esa solución. Ej. SQL, etc.
Paradigma
Estructurado
•La programación se divide en bloques (procedimientos y funciones) que
pueden o no comunicarse entre sí. Además la programación se controla con
secuencia, selección e iteración. Permite reutilizar código programado y
otorga una mejor compresión de la programación. Ej. Algol, Ada, Pascal, etc.
Paradigma
Orientado a
Objetos
•Está basado en la idea de encapsular estado y operaciones en objetos. En
general, la programación se resuelve comunicando dichos objetos a través
de mensajes. Se puede incluir dentro de este paradigma, el paradigma
basadoen objetos. Ej. Java, Smalltalk, VB .NET, etc.
Paradigma
Funcional
•Este paradigma concibe a la computación como la evaluación de funciones
matemáticas y evita declarar y cambiar datos. En otras palabras, hace
hincapié en la aplicación de las funciones y composición entre ellas, más que
en los cambios de estados y la ejecución secuencial de comandos. Ej.
Scheme, Lisp, etc.
Paradigma
Lógico
•Se basa en la definición de reglas lógicas para luego, a través de un motor de
inferencias lógicas, responder preguntas planteadas al sistema y así resolver
los problemas. Ej. Prolog, etc.
Otros
paradigmas y
subparadigmas
•Paradigma orientado al sujeto, paradigma reflectante, programación basada
en reglas, paradigma basado en restricciones, programación basada en
prototipos, paradigma orientado a aspectos, etc.
Fasesenla
resoluciónde
problemascon
computadora
1- Análisis del problema
El problema se analiza teniendo
presente la especificación de los
requisitos dados por el cliente o
persona que solicita el
programa.
2- Diseño del algoritmo
Se diseña una solución que
conducirá a un algoritmo que
resuelvael problema.
3-Codificación
La solución se escribe en la
sintaxis del lenguaje de
programación. Ejemplo: Visual
Basic,C, C++, C#, etc.
4- Compilación y
ejecución
El programa fuente se convierte
a código de maquina y se ejecuta
el programa.
5-Verificación
Se comprueba que el programa
cumpla con los requisitos
establecidos y funcione
correctamente.
6- Depuración
Se eliminan todos los errores
existente y se vuelve a compilar,
ejecutar y verificar el programa
hasta que este libre de errores.
7- Mantenimiento
El programa se actualiza y
modifica, cada vez que sea
necesario, de modo que se
cumplanlas nuevasnecesidades.
8- Documentación
Es la escritura de las diferentes
fases del ciclo de vida del
software, especialmente: el
análisis, diseño y codificación,
entre otros manuales.
4. 09/08/2013
4
¿Quées un
algoritmo?
La palabra algoritmo se deriva de la traducción
al latín de la palabra árabe alkhowarizmi,
nombre de un matemático y astrónomo árabe
que escribió un tratado sobre manipulación de
números y ecuaciones en el siglo IX.
Un algoritmo es un método para resolver un
problema mediante una serie de pasos precisos,
definidos y finitos.
Características de un algoritmo:
1. Preciso (indica el orden de realización en cada paso)
2. Definido (si se sigue dos veces, obtiene el mismo resultado cada vez)
3. Finito (tiene fin; un número determinado de pasos)
Tiposde
algoritmos
Algoritmo para preparar “Pechugas de
pollo en salsa de elote y chile poblano”
Ingredientes (para6 personas):
3 pechugas deshuesadas,sin piel y
partidas a la mitad.
1 diente de ajo.
4 gramos de pimienta negra.
Sal
6 cucharadas de aceite.
5 chiles poblanos asadosy limpios.
½ tasa de leche.
¼ tasa de crema ligera.
1 lata de crema de elote.
Algoritmo (preparación)
1. Muela el ajo, la pimienta y un
poco de sal y únteselo a las
pechugas.
2. Caliente el aceite y dore las
pechugas.
3. Licue los chiles con la leche y la
crema, y mézclelos con la crema
de elote.
4. En una fuente coloque las
pechugas y báñeselas con la
mezcal anterior.
5. Cubra el platón con papel de
aluminioy hornee a 200º C,
durante 15 minutos.
Algoritmo para obtener el promedio
simple de un estudiante a partir de sus
tres notas de periodo.
Algoritmo:
Proceso promedio
Escribir 'Nota primer periodo:'
Leer per1
Escribir 'Nota segundo periodo:'
Leer per2
Escribir 'Nota tercerperiodo:'
Leer per3
prom <- (per1+per2+per3)/3
Escribir 'Nota promedio final: ', prom
FinProceso
Cualitativos
• son aquellos en los que describen los
pasos utilizando palabras
Cuantitativos
• son aquellos en los que se
utilizan cálculos numéricos para
definir los pasos del proceso
5. 09/08/2013
5
Ejercicios
PROBLEMA 1: elaborar un algoritmo para preparar una tasa de café
instantáneo, teniendo un recipiente con agua caliente, un bote de café,
la tasa, azúcar y cuchara; listos.
PROBLEMA 2: elaborar un algoritmo para cambiar la llanta pinchada de
un carro, teniendo un gato mecánico en buen estado, una llanta de
repuesto y una llave cruz; listos.
Losalgoritmos
puedenser:
1. Lenguaje Natural: es el lenguaje común (coloquial).
2. Lenguaje Estructurado: Es un lenguaje más limitado que el anterior, con reglas
de sintaxis y semántica definidas, esto quiere decir que consiste en crear
programas con instrucciones agrupadas en un estricto orden secuencial, el cual
es imprescindible conservar para la resolución de un problema.
a. Pseudocódigo: lenguaje universal para comunicarse entre programadores,
esto quiere decir que es un conjunto de instrucciones en lenguaje natural,
como el castellano o el inglés, de acuerdo a la persona que desarrollará un
algoritmo basado en dicho lenguaje natural, en conclusión, es elaborar el
algoritmo usando palabras y frases que se comprendan fácilmente.
b. Código: lenguaje orientado a un tipo de compilador especifico, para ser
interpretado por el computador, en otras palabras es un conjunto de
instrucciones que son parte de un lenguaje de programación especifico que
se escriben en orden secuencial y se almacenan en un archivo al que se
denomina programa, cuando el programa es pequeño se le denomina mini-
programa o con el nombre de macro (en inglés se le denomina Script)
7. 09/08/2013
7
Losalgoritmos
puedenser:
(cont…)
3. Lenguaje Simbólico: es una representación que usa símbolos
predefinidos para diagramar un algoritmo, con el fin de que sea fácil de seguir
la lógica de la solución que se desea expresar en forma de un flujo de pasos a
realizar, indicando el inicio y el termino de los mismos.
a. Diagramas de flujo: es un esquema para representar gráficamente un
algoritmo. Se basan en la utilización de diversos símbolos para
representar operaciones específicas. Se les llama diagramas de flujo
porque los símbolos utilizados se conectan por medio de flechas para
indicar la secuencia de operación.
b. Carta N-S: el diagrama N-S (Nassi Schneiderman) o también conocido
como diagrama de Chapín es una técnica de especificación de algoritmos
que combina la descripción textual, propia del pseudocódigo, con la
representación gráfica del diagrama de flujo.
Ejemplo
diagramade
flujo
Diagrama de flujo para un juego de adivinar un número:
8. 09/08/2013
8
Ejemplo
diagramaN-S
Diagrama Nassi Schneiderman para un juego de adivinar un número:
Etapasaseguir
parasolucionar
unproblemaa
travésde
Algoritmos
Problema
Análisis
Profundo del
problema
Construcción del
Algoritmo
Verificación del
Algoritmo
11. 09/08/2013
11
Acciones
secuenciales
Asignación: la instrucción de asignación permite almacenar un valor en
una variable.
Sintaxis: <variable> <- <expresión>
Ejemplo: edad <- 20
Lectura: la instrucción Leer permite ingresar información desde el
teclado.
Sintaxis: Leer <variablel> , <variable2> , ... ,<variableN>
Ejemplo: Leer nombre
Escritura: la instrucción Escribir permite mostrar valores en la pantalla
de salida.
Sintaxis: Escribir <exprl> , <expr2> , ... , <exprN>
Ejemplo: Escribir ‘Buenos días: ‘, nombre
Observaciones: se puede utilizar las palabras "SIN SALTAR" o "SIN BAJAR"
para evitar el salto de línea.También puede utilizarse indistintamente las
palabras Imprimir y Mostrar en lugar de Escribir.
Ejemplo
Algoritmo básico utilizando las acciones de: asignación, lectura y
escritura.
12. 09/08/2013
12
Operadoresen
PSeInt
Este pseudolenguaje dispone de un conjunto básico de operadores que
pueden ser utilizados para la construcción de expresiones más o menos
complejas.
Funcionesen
PSeInt
Las funciones en el pseudocódigo se utilizan de forma similar a otros lenguajes. Se
coloca su nombre seguido de los argumentos para la misma encerrados entre
paréntesis (por ejemplo trunc(x)).
13. 09/08/2013
13
Ejercicios
PROBLEMA 1: construya un algoritmo en pseudocódigo que lea los
datos enteros A y B. luego escriba el resultado de la siguiente expresión:
PROBLEMA 2: escriba un algoritmo en pseudocódigo que permita
calcular e imprimir el cuadrado y el cubo de un número entero positivo
capturado por teclado.
PROBLEMA 3: construya un algoritmo en pseudocódigo que lea los
datos de base y altura de un rectángulo, calcule e imprima el perímetro y
la superficie del mismo.
(𝐴 + 𝐵)2
3
𝑆𝑢𝑝𝑒𝑟𝑓𝑖𝑐𝑖𝑒 = 𝑏𝑎𝑠𝑒 ∗ 𝑎𝑙𝑡𝑢𝑟𝑎
𝑃𝑒𝑟í𝑚𝑒𝑡𝑟𝑜 = 2 (𝑏𝑎𝑠𝑒 + 𝑎𝑙𝑡𝑢𝑟𝑎)
Tarea
Responder las siguientes preguntas en el foro sobre la importancia de aprender programación:
1. ¿Cuál es la importancia de aprender a programar hoy en día?
2. ¿Qué se necesita para aprender a programar?
3. ¿Con cual de los personajes que se encuentran en el sitio www.code.org comparte su punto de
vista sobre la importancia de aprender a programar y por qué?