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!
Top Related