SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
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.
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
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.
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
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)
09/08/2013
6
Ejemplo
seudocódigo
 Algoritmo (en pseudocódigo)para un juego de adivinar un número:
EjemploCódigo
 Código (en C++) para un juego de adivinar un número:
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:
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
09/08/2013
9
Móduloso
seccionesdeun
Algoritmo
Algoritmo
Datos de
Entrada
Procesamiento
de los datos
Impresión de
resultados
Herramientas
de
programación
 Para la elaboración de Algoritmos en pseudocódigo, diagramas de flujo y
diagramas N-S se utilizará el programa PSeInt el cual es un software
interprete de pseudocódigo y generador de diagramas.
09/08/2013
10
Demo
usode PSeInt
Formageneral
de unalgoritmo
en
pseudocodigo
 Todo algoritmo en pseudocodigo tiene la siguiente estructura general:
ProcesoTítulo
acción 1;
acción 2;
. . .
acción n;
FinProceso
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.
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)).
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é?

Más contenido relacionado

La actualidad más candente (13)

Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programación
 
Niveles de programacion
Niveles de programacionNiveles de programacion
Niveles de programacion
 
Lenguaje de programacióndiapost1.
Lenguaje de programacióndiapost1.Lenguaje de programacióndiapost1.
Lenguaje de programacióndiapost1.
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programación
 
1. que es programacion
1. que es programacion1. que es programacion
1. que es programacion
 
Introducción al Lenguaje de Programación
Introducción al Lenguaje de ProgramaciónIntroducción al Lenguaje de Programación
Introducción al Lenguaje de Programación
 
Trabajo tecnología
Trabajo tecnologíaTrabajo tecnología
Trabajo tecnología
 
Software aplicado 2
Software aplicado 2Software aplicado 2
Software aplicado 2
 
Algoritmos c2. p2. i2.
Algoritmos c2. p2. i2.Algoritmos c2. p2. i2.
Algoritmos c2. p2. i2.
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores
 
Tecnología taller grupal 9 3 (1)
Tecnología taller grupal 9 3 (1)Tecnología taller grupal 9 3 (1)
Tecnología taller grupal 9 3 (1)
 
Tema1
Tema1Tema1
Tema1
 
Tema1
Tema1Tema1
Tema1
 

Similar a Clase 5

Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
lupitagarcia07
 
Clase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionClase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacion
joel210696
 
Conceptos básicos Programacion
Conceptos básicos ProgramacionConceptos básicos Programacion
Conceptos básicos Programacion
Alfonso Mozko H
 

Similar a Clase 5 (20)

Alg diag
Alg diag Alg diag
Alg diag
 
Rpp
RppRpp
Rpp
 
Alg diag
Alg diagAlg diag
Alg diag
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Programación
ProgramaciónProgramación
Programación
 
Conceptos basicos algoritmos
Conceptos basicos algoritmosConceptos basicos algoritmos
Conceptos basicos algoritmos
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
 
Clase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionClase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacion
 
Tema 2 Algoritmo Concepto y Ejemplos.pptx
Tema 2 Algoritmo Concepto y Ejemplos.pptxTema 2 Algoritmo Concepto y Ejemplos.pptx
Tema 2 Algoritmo Concepto y Ejemplos.pptx
 
Conceptos básicos Programacion
Conceptos básicos ProgramacionConceptos básicos Programacion
Conceptos básicos Programacion
 
Preguntas de diagnostico
Preguntas de diagnosticoPreguntas de diagnostico
Preguntas de diagnostico
 
TEMA Nº 1
TEMA Nº 1TEMA Nº 1
TEMA Nº 1
 
Algoritmos+sam+deyson
Algoritmos+sam+deysonAlgoritmos+sam+deyson
Algoritmos+sam+deyson
 
Presentacion info
Presentacion infoPresentacion info
Presentacion info
 
Algoritmos de victor gelvez
Algoritmos de victor gelvezAlgoritmos de victor gelvez
Algoritmos de victor gelvez
 
Conceptos basicos de lenguajes de programacion
Conceptos basicos de lenguajes de programacionConceptos basicos de lenguajes de programacion
Conceptos basicos de lenguajes de programacion
 
SILDESHARE.pdf
SILDESHARE.pdfSILDESHARE.pdf
SILDESHARE.pdf
 
3 Conceptos progamacion-tema3
3 Conceptos progamacion-tema33 Conceptos progamacion-tema3
3 Conceptos progamacion-tema3
 
INTRODUCCION A LA PROGRAMACIÓN kxcr.pptx
INTRODUCCION A LA PROGRAMACIÓN kxcr.pptxINTRODUCCION A LA PROGRAMACIÓN kxcr.pptx
INTRODUCCION A LA PROGRAMACIÓN kxcr.pptx
 

Más de Leo Avila

Más de Leo Avila (7)

Clase 6
Clase 6Clase 6
Clase 6
 
Portada
PortadaPortada
Portada
 
Prg1 clase4
Prg1 clase4Prg1 clase4
Prg1 clase4
 
Prg1 clase3
Prg1 clase3Prg1 clase3
Prg1 clase3
 
Prg1 clase2
Prg1 clase2Prg1 clase2
Prg1 clase2
 
Prg1 clase1
Prg1 clase1Prg1 clase1
Prg1 clase1
 
Prg1 clase1
Prg1 clase1Prg1 clase1
Prg1 clase1
 

Clase 5

  • 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)
  • 6. 09/08/2013 6 Ejemplo seudocódigo  Algoritmo (en pseudocódigo)para un juego de adivinar un número: EjemploCódigo  Código (en C++) para un juego de adivinar un número:
  • 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
  • 9. 09/08/2013 9 Móduloso seccionesdeun Algoritmo Algoritmo Datos de Entrada Procesamiento de los datos Impresión de resultados Herramientas de programación  Para la elaboración de Algoritmos en pseudocódigo, diagramas de flujo y diagramas N-S se utilizará el programa PSeInt el cual es un software interprete de pseudocódigo y generador de diagramas.
  • 10. 09/08/2013 10 Demo usode PSeInt Formageneral de unalgoritmo en pseudocodigo  Todo algoritmo en pseudocodigo tiene la siguiente estructura general: ProcesoTítulo acción 1; acción 2; . . . acción n; FinProceso
  • 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é?