Page 1

09/08/2013

Universidad Católica de El Salvador Facultad de Ingeniería y Arquitectura Programación I, Sección A Docente: Ma. Ing. Giovanni Acosta

Objetivo: definir el concepto, uso y creación de algoritmos.

 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.

Usos de la programación

 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.

1


09/08/2013

 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.

¿Qué es un lenguaje de programación?

 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.

 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:

Niveles de los lenguajes de programación

Lenguaje de máquina

Lenguajes de Bajo Nivel

Lenguajes de alto nivel

• 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.

• 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.

• 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

• Ej. 55 89 e5 53 83 ec 04 f0 e8 31...

• Ej. subl, pushl, movl, ...

2


09/08/2013

 Un paradigma de programación provee (y determina) la visión y métodos de un programador en la construcción de un programa:

Tipos de programación

Fases en la resolución de problemas con computadora

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 basado en 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.

1- Análisis del problema

2- Diseño del algoritmo

3- Codificación

El problema se analiza teniendo presente la especificación de los requisitos dados por el cliente o persona que solicita el programa.

Se diseña una solución que conducirá a un algoritmo que resuelva el problema.

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

5- Verificación

6- Depuración

El programa fuente se convierte a código de maquina y se ejecuta el programa.

Se comprueba que el programa cumpla con los requisitos establecidos y funcione correctamente.

Se eliminan todos los errores existente y se vuelve a compilar, ejecutar y verificar el programa hasta que este libre de errores.

7- Mantenimiento

8- Documentación

El programa se actualiza y modifica, cada vez que sea necesario, de modo que se cumplan las nuevas necesidades.

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.

3


09/08/2013

 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

¿Qué es un algoritmo?

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)

Cualitativos • son aquellos en los que describen los pasos utilizando palabras

Algoritmo para preparar “Pechugas de pollo en salsa de elote y chile poblano”

Tipos de algoritmos

Ingredientes (para 6 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 asados y limpios.  ½ tasa de leche.  ¼ tasa de crema ligera.  1 lata de crema de elote.

Cuantitativos • son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso 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 tercer periodo:' Leer per3 prom <- (per1+per2+per3)/3 Escribir 'Nota promedio final: ', prom

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 aluminio y hornee a 200º C, durante 15 minutos.

FinProceso

4


09/08/2013

 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.

Ejercicios

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 miniprograma o con el nombre de macro (en inglés se le denomina Script)

Los algoritmos pueden ser:

5


09/08/2013

 Algoritmo (en pseudocódigo) para un juego de adivinar un número:

Ejemplo seudocódigo

 Código (en C++) para un juego de adivinar un número:

Ejemplo Código

6


09/08/2013

3.

Los algoritmos pueden ser: (cont…)

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.

 Diagrama de flujo para un juego de adivinar un número:

Ejemplo diagrama de flujo

7


09/08/2013

 Diagrama Nassi Schneiderman para un juego de adivinar un número:

Ejemplo diagrama N-S

Problema

Etapas a seguir para solucionar un problema a través de Algoritmos

Análisis Profundo del problema

Construcción del

Verificación del

Algoritmo

Algoritmo

8


09/08/2013

Algoritmo

Módulos o secciones de un Algoritmo

Datos de

Procesamiento

Impresión de

Entrada

de los datos

resultados

 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.

Herramientas de programación

9


09/08/2013

Demo uso de PSeInt

 Todo algoritmo en pseudocodigo tiene la siguiente estructura general: Proceso Título acción 1; acción 2; . ..

Forma general de un algoritmo en pseudocodigo

acción n; FinProceso

10


09/08/2013

 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.

Acciones secuenciales

 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.

 Algoritmo básico utilizando las acciones de: asignación, lectura y escritura.

Ejemplo

11


09/08/2013

 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.

Operadores en 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)).

Funciones en PSeInt

12


09/08/2013

ď&#x201A;&#x2013; 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: (đ??´ + đ??ľ)2 3 ď&#x201A;&#x2013; 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.

Ejercicios ď&#x201A;&#x2013; 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. đ?&#x2018;&#x2020;đ?&#x2018;˘đ?&#x2018;?đ?&#x2018;&#x2019;đ?&#x2018;&#x;đ?&#x2018;&#x201C;đ?&#x2018;&#x2013;đ?&#x2018;?đ?&#x2018;&#x2013;đ?&#x2018;&#x2019; = đ?&#x2018;?đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018;&#x2019; â&#x2C6;&#x2014; đ?&#x2018;&#x17D;đ?&#x2018;&#x2122;đ?&#x2018;Ąđ?&#x2018;˘đ?&#x2018;&#x;đ?&#x2018;&#x17D; đ?&#x2018;&#x192;đ?&#x2018;&#x2019;đ?&#x2018;&#x;Ă­đ?&#x2018;&#x161;đ?&#x2018;&#x2019;đ?&#x2018;Ąđ?&#x2018;&#x;đ?&#x2018;&#x153; = 2 (đ?&#x2018;?đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018;&#x2019; + đ?&#x2018;&#x17D;đ?&#x2018;&#x2122;đ?&#x2018;Ąđ?&#x2018;˘đ?&#x2018;&#x;đ?&#x2018;&#x17D;)

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ĂŠ?

13

Clase 5  
Read more
Read more
Similar to
Popular now
Just for you