You are on page 1of 13

09/08/2013

Universidad Catlica de El Salvador Facultad de Ingeniera y Arquitectura Programacin I, Seccin A Docente: Ma. Ing. Giovanni Acosta

Objetivo: definir el concepto, uso y creacin de algoritmos.

Una persona piensa y se comporta obedeciendo a un secuencial lgico, por ejemplo para realizar actividades cotidianas, como: baarse, vestirse, conducir el automvil, etc.

Usos de la programacin

Una computadora realiza tareas y maneja datos en memoria obedeciendo a una secuencia de pasos lgicos 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 rpida.

09/08/2013

Se puede definir un lenguaje de programacin como un conjunto de reglas o normas, smbolos y palabras especiales utilizadas para construir un programa y con l, darle solucin a un problema determinado. El lenguaje de programacin es el encargado de que la computadora realice paso a paso las tareas que el programador a diseado en el algoritmo.

Qu es un lenguaje de programacin?

Se puede decir que un lenguaje de programacin es el intermediario entre la mquina y el usuario (programador) para que este ltimo pueda resolver problemas a travs de la computadora haciendo uso de palabras (comandos o instrucciones) que le traducen dicho programa a la computadora para la realizacin 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 programacin se pueden clasificar de la siguiente manera:

Lenguaje de mquina Las primeras computadoras se programaban en cdigo de mquina. Se puede decir que los programas eran diseados en cdigo binario. Eran difciles de leer, difciles de entender y por su puesto difciles de corregir. Los programas se caracterizaban por ser pequeos. Ej. 55 89 e5 53 83 ec 04 f0 e8 31...

Lenguajes de Bajo Nivel Para dar solucin a lo difcil que era programar en cdigo mquina, se desarroll un lenguaje conocido como lenguaje ensamblador. Este lenguaje era encargado de tomar algunas palabras comunes a una persona y traducirlas al cdigo mquina. Lo anterior facilitara 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 (espaol, ingles, francs, etc.), se desarrollaron lenguajes de programacin 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 mquina, en los lenguajes de alto nivel esa operacin la realiza el compilador

Niveles de los lenguajes de programacin

09/08/2013

Un paradigma de programacin provee (y determina) la visin y mtodos de un programador en la construccin de un programa:


Paradigma Imperativo
Describe la programacin como una secuencia de instrucciones o comandos que cambian el estado de un programa. El cdigo mquina 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. No se basa en el cmo se hace algo (cmo se logra un objetivo paso a paso), sino que describe (declara) cmo es algo. Se enfoca en describir las propiedades de la solucin buscada, dejando indeterminado el algoritmo (conjunto de instrucciones) usado para encontrar esa solucin. Ej. SQL, etc. La programacin se divide en bloques (procedimientos y funciones) que pueden o no comunicarse entre s. Adems la programacin se controla con secuencia, seleccin e iteracin. Permite reutilizar cdigo programado y otorga una mejor compresin de la programacin. Ej. Algol, Ada, Pascal, etc. Est basado en la idea de encapsular estado y operaciones en objetos. En general, la programacin se resuelve comunicando dichos objetos a travs de mensajes. Se puede incluir dentro de este paradigma, el paradigma basado en objetos. Ej. Java, Smalltalk, VB .NET, etc. Este paradigma concibe a la computacin como la evaluacin de funciones matemticas y evita declarar y cambiar datos. En otras palabras, hace hincapi en la aplicacin de las funciones y composicin entre ellas, ms que en los cambios de estados y la ejecucin secuencial de comandos. Ej. Scheme, Lisp, etc. Se basa en la definicin de reglas lgicas para luego, a travs de un motor de inferencias lgicas, responder preguntas planteadas al sistema y as resolver los problemas. Ej. Prolog, etc. Paradigma orientado al sujeto, paradigma reflectante, programacin basada en reglas, paradigma basado en restricciones, programacin basada en prototipos, paradigma orientado a aspectos, etc.

Paradigma Declarativo

Paradigma Estructurado

Tipos de programacin

Paradigma Orientado a Objetos

Paradigma Funcional

Paradigma Lgico Otros paradigmas y subparadigmas

1- Anlisis del problema


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

2- Diseo del algoritmo


Se disea una solucin que conducir a un algoritmo que resuelva el problema.

3- Codificacin
La solucin se escribe en la sintaxis del lenguaje de programacin. Ejemplo: Visual Basic, C, C++, C#, etc.

Fases en la resolucin de problemas con computadora

4- Compilacin y ejecucin
El programa fuente se convierte a cdigo de maquina y se ejecuta el programa.

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

6- Depuracin
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 cumplan las nuevas necesidades.

8- Documentacin
Es la escritura de las diferentes fases del ciclo de vida del software, especialmente: el anlisis, diseo y codificacin, entre otros manuales.

09/08/2013

La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Un algoritmo es un mtodo para resolver un

Qu es un algoritmo?

problema mediante una serie de pasos precisos, definidos y finitos.

Caractersticas de un algoritmo: 1. 2. 3. Preciso (indica el orden de realizacin en cada paso) Definido (si se sigue dos veces, obtiene el mismo resultado cada vez) Finito (tiene fin; un nmero determinado de pasos)

Cualitativos son aquellos en los que describen los pasos utilizando palabras

Cuantitativos son aquellos en los que se utilizan clculos numricos 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 para preparar Pechugas de pollo en salsa de elote y chile poblano 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. Algoritmo (preparacin) 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 mzclelos con la crema de elote. 4. En una fuente coloque las pechugas y beselas con la mezcal anterior. 5. Cubra el platn con papel de aluminio y hornee a 200 C, durante 15 minutos.

Tipos de algoritmos

FinProceso

09/08/2013

PROBLEMA 1: elaborar un algoritmo para preparar una tasa de caf instantneo, teniendo un recipiente con agua caliente, un bote de caf, la tasa, azcar y cuchara; listos.

PROBLEMA 2: elaborar un algoritmo para cambiar la llanta pinchada de un carro, teniendo un gato mecnico en buen estado, una llanta de repuesto y una llave cruz; listos.

Ejercicios

1. 2.

Lenguaje Natural: es el lenguaje comn (coloquial). Lenguaje Estructurado: Es un lenguaje ms limitado que el anterior, con reglas de sintaxis y semntica definidas, esto quiere decir que consiste en crear programas con instrucciones agrupadas en un estricto orden secuencial, el cual es imprescindible conservar para la resolucin de un problema. a. Pseudocdigo: lenguaje universal para comunicarse entre programadores, esto quiere decir que es un conjunto de instrucciones en lenguaje natural, como el castellano o el ingls, de acuerdo a la persona que desarrollar un algoritmo basado en dicho lenguaje natural, en conclusin, es elaborar el algoritmo usando palabras y frases que se comprendan fcilmente. Cdigo: 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 programacin especifico que se escriben en orden secuencial y se almacenan en un archivo al que se denomina programa, cuando el programa es pequeo se le denomina miniprograma o con el nombre de macro (en ingls se le denomina Script)

Los algoritmos pueden ser:


b.

09/08/2013

Algoritmo (en pseudocdigo) para un juego de adivinar un nmero:

Ejemplo seudocdigo

Cdigo (en C++) para un juego de adivinar un nmero:

Ejemplo Cdigo

09/08/2013

3.

Lenguaje Simblico: es una representacin que usa smbolos predefinidos para diagramar un algoritmo, con el fin de que sea fcil de seguir la lgica de la solucin 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 grficamente un algoritmo. Se basan en la utilizacin de diversos smbolos para representar operaciones especficas. Se les llama diagramas de flujo porque los smbolos utilizados se conectan por medio de flechas para indicar la secuencia de operacin. Carta N-S: el diagrama N-S (Nassi Schneiderman) o tambin conocido como diagrama de Chapn es una tcnica de especificacin de algoritmos que combina la descripcin textual, propia del pseudocdigo, con la representacin grfica del diagrama de flujo.

Los algoritmos pueden ser: (cont)

b.

Diagrama de flujo para un juego de adivinar un nmero:

Ejemplo diagrama de flujo

09/08/2013

Diagrama Nassi Schneiderman para un juego de adivinar un nmero:

Ejemplo diagrama N-S

Problema

Etapas a seguir para solucionar un problema a travs de Algoritmos

Anlisis Profundo del problema

Construccin del Algoritmo

Verificacin del Algoritmo

09/08/2013

Algoritmo

Datos de

Procesamiento de los datos

Impresin de resultados

Mdulos o secciones de un Algoritmo

Entrada

Para la elaboracin de Algoritmos en pseudocdigo, diagramas de flujo y diagramas N-S se utilizar el programa PSeInt el cual es un software interprete de pseudocdigo y generador de diagramas.

Herramientas de programacin

09/08/2013

Demo uso de PSeInt

Todo algoritmo en pseudocodigo tiene la siguiente estructura general: Proceso Ttulo accin 1; accin 2; . .. accin n; FinProceso

Forma general de un algoritmo en pseudocodigo

10

09/08/2013

Asignacin: la instruccin de asignacin permite almacenar un valor en una variable.


Sintaxis: <variable> <- <expresin> Ejemplo: edad <- 20

Lectura: la instruccin Leer permite ingresar informacin desde el teclado.

Acciones secuenciales

Sintaxis: Leer <variablel> , <variable2> , ... ,<variableN> Ejemplo: Leer nombre

Escritura: la instruccin Escribir permite mostrar valores en la pantalla de salida.


Sintaxis: Escribir <exprl> , <expr2> , ... , <exprN> Ejemplo: Escribir Buenos das: , nombre Observaciones: se puede utilizar las palabras "SIN SALTAR" o "SIN BAJAR" para evitar el salto de lnea. Tambin puede utilizarse indistintamente las palabras Imprimir y Mostrar en lugar de Escribir.

Algoritmo bsico utilizando las acciones de: asignacin, lectura y escritura.

Ejemplo

11

09/08/2013

Este pseudolenguaje dispone de un conjunto bsico de operadores que pueden ser utilizados para la construccin de expresiones ms o menos complejas.

Operadores en PSeInt

Las funciones en el pseudocdigo se utilizan de forma similar a otros lenguajes. Se coloca su nombre seguido de los argumentos para la misma encerrados entre parntesis (por ejemplo trunc(x)).

Funciones en PSeInt

12

09/08/2013

PROBLEMA 1: construya un algoritmo en pseudocdigo que lea los datos enteros A y B. luego escriba el resultado de la siguiente expresin: ( + )2 3 PROBLEMA 2: escriba un algoritmo en pseudocdigo que permita calcular e imprimir el cuadrado y el cubo de un nmero entero positivo capturado por teclado.

Ejercicios
PROBLEMA 3: construya un algoritmo en pseudocdigo que lea los datos de base y altura de un rectngulo, calcule e imprima el permetro y la superficie del mismo. = = 2 ( + )

Tarea

Responder las siguientes preguntas en el foro sobre la importancia de aprender programacin: 1. Cul es la importancia de aprender a programar hoy en da? 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

You might also like