Metodología de la Programación Sesión 1

Post on 19-Jun-2015

1.259 views 0 download

description

Sesión 1:Algoritmos, Diagramas de flujo y Programashttp://fime-tech.vacau.comdescargar video y diapositivahttp://fime-tech.vacau.com/index.php?option=com_content&view=article&id=102&Itemid=100

Transcript of Metodología de la Programación Sesión 1

METODOLOGÍA DE LA

PROGRAMACIÓN Sesión 1:Algoritmos, Diagramas de

flujo y Programas

LUIS E. FUNESFIME-UANL

1.1 PROBLEMAS Y ALGORITMOS

Formalmente definimos un algoritmo como un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema

No existen reglas especificas que nos permitan resolver un problema. Sin embargo se puede creer que se puede ofrecer un conjunto de técnicas y herramientas metodológicas que permitan flexibilidad y estructura al razonamiento utilizado en la solución de un problema. Esto provocara finalmente la construcción de algoritmos eficientes.

Ejemplo 1.1Construya un algoritmo para preparar pechugas de pollo en salsa de elote y chile poblanoIngredientes (para 6 personas)3 pechugas deshuesadas, sin piel y partidas a la

mitad1 diente de ajo4 gramos de pimienta negraSal6 cucharadas de aceite5 chiles poblanos asados y limpios½ taza de leche¼ taza de crema ligera1 lata de crema de elote

Algoritmo (preparación)Muela el ajo, la pimienta y un poco de sal y

únteselo a las pechugasCaliente el aceite y dore las pechugasLicue los chiles con la leche y la crema, y

mézclelos con la crema de eloteEn una fuente coloque las pechugas y báñelas

con la mezcla anteriorCubra el platón con papel aluminio y hornee a

200°C durante 15 minutos

Nota: El algoritmo fue repetido varias veces y siempre arrojo el mismo resultado: un platillo exquisito

Podemos observar las etapas que debemos seguir para la solución de un problema.

Problema

Etapa 1Análisis

profundo del problema

Etapa 2Construcción del algoritmo

Etapa 3Verificación del

Algoritmo

Nota: por verificación del algoritmo entendemos el seguimiento del mismo con datos que sean representativos del problema que

queremos resolver

Las características a seguir en el algoritmo deben que deben reunir son las siguientes:

Precisión: Los pasos a seguir en el algoritmo deben ser precisados claramente.

Determinismo: El algoritmo, dado un conjunto de datos idénticos de entrada, siempre deben arrojar los mismos resultados.

Finitud: El algoritmo, independientemente de la complejidad del mismo, siempre debe ser longitud finita

Por otra parte, un algoritmo consta de tres secciones módulos principales

Algoritmo

Datos de

entrada

Procesamiento de los datos

Impresión de resultados

1.2 DIAGRAMAS DE FLUJORepresenta la esquematización grafica

de un algoritmo. Realmente muestra los pasos o procesos a seguir para alcanzar una solución de un problema. Su correcta construcción es sumamente importante por que a partir del mismo se escribe un programa en algún lenguaje de programación. Si el diagrama de flujo esta completo y correcto, el paso del mismo a un lenguaje de programación es relativamente simple y directo

1.2.1 REGLAS PARA LA CONSTRUCCIÓN DEL DIAGRAMA DE FLUJO

Los símbolos presentados , colocados adecuadamente permiten crear una estructura grafica flexible que ilustra los pasos a seguir para alcanzar un resultado especifico. El diagrama de flujo facilita mas adelante la escritura del programa en algún lenguaje de programación.

Representación del Símbolo

Explicación del símbolo

Se utiliza para marcar el inicio y el fin del diagrama de flujo

Para introducir los datos de entrada. Expresa Lectura

Representa un proceso. Se expresan asignaciones, operaciones aritméticas, cambios de valor de celdas en memoria, etc.

Representa una decisión. Almacena una condición y dependiendo de l resultado de la evaluación, sigue por una de las ramas . Se usa en la estructura selectiva si entonces y en las estructuras repetitivas

Representa la estructura selectiva sobre si entonces/si no . Almacena una condición es verdadera continua por la izquierda si es falsa continua por la derecha

No

Si

Si No

Representación del Símbolo

Explicación del símbolo

Se representa para una decisión múltiple. Se almacena un selector, y dependiendo del valor de dicho selector se sigue por una de las ramas. Se utiliza para estructura selectiva si múltiple

Se utiliza para representar la impresión de un resultado. Expresa escritura

Expresa la dirección del flujo

Expresa conexión dentro de una misma pagina

Expresa conexión entre paginas diferentes

Expresa un modulo de un problema. Para continuar con el flujo normal, primero hay que resolver el su problema.

Inicio

Lectura de

datos

Procesamiento de datos

Impresión de

resultados

Fin

Nota:Se debe observar que estas fases se presentan en la mayoría de los diagramas de flujo, aunque a veces en orden diferente o repitiéndose algunas de ellas. También es frecuente tener que realizar toma de decisiones y repetir una serie de pasos un numero determinado o no de veces.

1.- todo diagrama debe de tener un inicio y un fin

Inicio

Fin

2.- las líneas que indican el flujo deben de ser rectas, verticales y horizontales

Mal Mal

Bien

3.- todas las líneas deben estar conectadas, la conexión puede ser un símbolo que exprese lectura, proceso, decisión, etc.

4.- El diagrama se debe de construir de arriba hacia abajo y de izquierda a derecha.5.- La notación del diagrama debe ser independiente del lenguaje de programación.6.- Es conveniente que cuando realizamos una tarea compleja, poner comentarios.7.- Si el diagrama requiere mas de una hoja, se debe usar los conectores adecuados y enumerar las paginas.8.- No puede llegar mas de una línea a un símbolo

Mal

Mal

Bien

Bien

1.3 CONCEPTOS FUNDAMENTALES

Se trataran conceptos fundamentales para la construcción de algoritmos, diagramas de flujo y programas. Primero se analizara los tipos de datos, luego estudiaremos los conceptos de identificador, constantes y variables, después se analizara las operaciones aritméticas y expresiones lógicas. Y al final los bloques de asignación

1.3.1 TIPOS DE DATOSLos datos a procesar por una

computadora pueden clasificarse en: Simples (solo ocupan una sola casilla) Estructurados (ocupan varias casillas

siendo esto un grupo de datos simples como una cadena de cadena de caracteres)

Datos simplesNuméricos: se encuentran los enteros y los

reales, que son los números con decimalAlfanuméricos: pueden ser letras del alfabeto,

dígitos, o caracteres especiales (#,$,%,&,?,¡,*,+…etc.)

Tipo cadena: contiene un conjunto de caracteres y se escribe entre comillas

Datos lógicos: son los datos encontrados entre los booleanos. Solo toma dos valores Verdadero (true) o falso (false)

1.3.2 IDENTIFICADORES, CONSTANTES Y VARIABLES

Identificadoresse le llamara identificador al nombre

que se le da a las casillas de memoria. Se forma de acuerdo a ciertas reglas(pueden tener alguna variantes dependiendo del lenguaje de programación):

El primer carácter debe ser una letra. Los demás caracteres pueden ser letras,

dígitos el siguiente símbolo especial: _ La Longitud del identificador es igual a 7 en

la mayoría de los lenguajes de programación

Constantes:no cambian en la ejecución de un programa. Para nombrar la constante se utiliza los identificadores. Existen tipos de constantes como tipos de datos, así que hay de tipo entero, real, caracteres, cadena de caracteres, NREAL y NUMREA son de tipo real y RESU de tipo cadena de caracteres. Es muy importante que los nombres de las constantes sean representativas de la función que tiene las mismas en el programa

Variables:Estos pueden cambiar su valor durante la ejecución de un programa. También se utilizan identificadores para nombrar las variables e igual los tipos de variables son como los anteriores

1.3.3 OPERACIONES ARITMÉTICAS

Estos operadores aritméticos nos permiten realizar operaciones entre operandos: numéricos, constantes o variables y su resultado será un numero

1.3.4 EXPRESIONES LÓGICAS

Las expresiones lógicas o booleanas, están constituidas por números, constantes o variables y operadores lógicos o relacionales. El valor que pueden tomar son los de verdadero o falso. Se utiliza en las estructuras selectivas y en estructuras repetitivas

Operadores RelacionalesSon operadores que permiten comparar dos operando. Pueden ser números, alfanuméricos, constantes o variables. Y estos dos a su vez pueden ser de tipo entero, real, carácter o cadena de caracteres. Su resultado es verdadero o falso

Operador operación

= igual que

< > Diferente a

< Menor que

> Mayor que

<= Menor o igual que

>= Mayor igual que

Operadores LógicosSon operadores es permiten formular

condiciones complejas a partir condiciones simples. Estos son de conjunción , disyunción (o) y negación (no).

Operador lógico Expresión lógica significado

No (Not) ¬P No es cierto que P. es falso que P

Y (And) P^Q P sin embargo Q

O (Or) P v Q O P o Q o ambas

1.3.5 BLOQUE DE ASIGNACIÓN

Se utiliza para la asignación de valores o expresiones a una variable. La do el nuevo valor. La asignación es una operación destructiva. Esto significa que si la variable tenia asignado un valor, este se destruye, y conserva el nuevo valor. El formato de la asignación es

Variable Expresión o valor

Donde: expresión puede ser aritmética o lógica, o una constante o variable

1.4 CONSTRUCCIÓN DE

DIAGRAMAS DE FLUJO

Ejemplo 1.4.1Construya un diagrama de flujo tal que dado los datos A, B, C y D que representan números enteros, escriba los mismos en orden inverso

Inicio

A,B,C,D

D,C,B,A

Fin

Ejemplo 1.4.2Construya un diagrama de flujo tal que dado los datos enteros A y B, escriban el resultado de la siguiente expresión

((A+B)**2)/3

Inicio

A,B

Res (A+B)**2/3

RES

Fin

Ejemplo 1.4.3Construya un diagrama de flujo tal que dado como datos la base y la altura De un rectángulo, calcule el perímetro y la superficie del mismo

Superficie= base*alturaPerímetro= 2*(base + altura)

Inicio

BASE,ALTU

SUP BASE*ALTUPER 2*(BASE+ALTU)

SUP,PER

Fin

1.5 PROGRAMASUn programa, concepto desarrollado por

Von Neumann en 1946, es un conjunto de instrucciones que sigue la computadora para alcanzar un resultado especifico. El programa se escribe en un lenguaje de programación a partir de un diagrama de flujo diseñado con anterioridad.Un lenguaje de programación, por otra parte esta constituido por un conjunto de reglas sintácticas (especifica la formación de instrucciones validad) y semánticas(especifica el significado de estas instrucciones), que hacen posibles escribir un programa.

En este curso nos enfocaremos sobre el tipo de lenguaje de programación estructurada. En este enfoque los programas se diseñan de arriba hacia abajo jerárquicamente, usando solo un conjunto restringido de estructuras de conjunto restringido de estructuras de control de cada nivel, instrucciones secuenciales, estructuras selectivas y estructuras repetitivas.

Ejemplo 1.5.1 Considerando el ejemplo 1.4.1 el de los números invertidos el programa escrito en el lenguaje algorítmico seria el siguiente

INVIERTE_DATOS{el programa dado un conjunto de datos de entrada invierte el orden de los mismos cuando los imprime}{A,B,C y D son variables de tipo entero}1. Leer A,B,C,D2. Escribir D,C,B,A

Nota: escribir un programa es muy sencillo, conociendo las instrucciones correspondientes. La tarea intelectual, creativa, radica en la construcción del diagrama de flujo

Ejemplo 1.5.2

CALCULA{el programa, dados como datos los enteros A y B, calcula el resultado de una expresión}{A y B son variables de tipo entero. RES es una variables de tipo real}

1. Leer A,B2. Hacer RES (A+B)**2/33. Escribir RES

Ejemplo 1.5.3

PERIMETRO_SUPERFICIE_RECTANGULO{el programa, dado como datos la base y la altura de un rectángulo, calcula su perímetro y superficie}

{BASE,ALTU,SUP Y PER son variables de tipo real}1. Leer BASE, ALTU2. Hacer SUP BASE*ALTU y PER

2*(BASE+ALTU)3. Escribir SUP y PER

CONTACTOhttp://fime-tech.vacau.com

¡Muchas Gracias!