Logica de Programacion de La Upemor

41
UNIDAD 2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS 2.1 Fórmulas matemáticas 2.2 Tipos de datos 2.3 Identificadores, constantes y variables.

Transcript of Logica de Programacion de La Upemor

Page 1: Logica de Programacion de La Upemor

UNIDAD 2.ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

2.1 Fórmulas matemáticas

2.2 Tipos de datos

2.3 Identificadores, constantes y variables.

Page 2: Logica de Programacion de La Upemor

2.1 Fórmulas matemáticas

Expresiones: son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales. Ejemplo:

A+(b+3)/cCada expresión toma un valor que se determina tomando los valores de variables y constantes implicadas y la ejecución de las operaciones indicadas.Una expresión consta de operadores y operandos.

Operadores: son signos que nos permiten expresar relaciones entre variables y/o constantes, relaciones de las cuales normalmente se desprende un resultado.Según sea el tipo de datos que manipulan las expresiones, se clasifican en:

AritméticasRelacionalesLógicas

Page 3: Logica de Programacion de La Upemor

2.2 Tipos de datos

Simples: su principal característica es que ocupan sólo una casilla de memoria, por lo tanto, una variable simple hace referencia a un único valor a la vez. Tipos de datos simples

EnterosRealesCaracteresBooleanosEnumerados*Subrangos*

* No existen en algunos lenguajes de programación.

Page 4: Logica de Programacion de La Upemor

2.2 Tipos de datos

Estructurados: se caracterizan por el hecho de que con un nombre (identificador de variable estructurada) se hace referencia a un grupo de casillas de memoria. Es decir, un dato estructurado tiene varios componentes. Cada uno de los componentes puede ser a su vez un dato simple o estructurado. Sin embargo, los componentes básicos (de nivel más bajo) de cualquier tipo estructurado son datos simples.

ArreglosCadena de caracteresRegistrosConjuntos

Page 5: Logica de Programacion de La Upemor

2.2 Tipos de datos

a). Datos simples

b). Datos estructurados

Identificador

Identificador

Page 6: Logica de Programacion de La Upemor

2.2.1 Tipos de datos simples

Numéricos: dentro de este tipo de dato se encuentran los enteros y los reales.

Enteros: son números que pueden estar precedidos del signo + (más) o – (menos), y que no tienen parte decimal. Ejemplos:

128 1538 -756.

Reales: son números que pueden estar precedidos por el signo + o -, y que tienen una parte decimal. Ejemplos:

7.5 128.0 -74.98 -18.0

Page 7: Logica de Programacion de La Upemor

2.2.1 Tipos de datos simples

Alfanuméricos: es una secuencia de caracteres alfanuméricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es posible representar números como alfanuméricos, pero éstos pierden su propiedad matemática, es decir, no se pueden hacer operaciones con ellos. Este tipo de datos se representan encerrados entre paréntesis. Ejemplos:

“Universidad Politécnica de Morelos”“01777-3091283”“65890”

Page 8: Logica de Programacion de La Upemor

2.2.1 Tipos de datos simple

Lógicos: dentro de este tipo de datos se encuentran los booleanos. Los datos booleanos solo pueden tomar dos valores: verdadero (true) o falso (false). Representan el resultado de comparación entre dos datos.

Page 9: Logica de Programacion de La Upemor

2.3 IDENTIFICADORES, CONSTANTES Y VARIABLES

Identificador: es una secuencia de caracteres que sirve para identificar una posición en la memoria de la computadora, que nos permite acceder a su contenido. Ejemplo: nombre, num_horas y calif2.

Reglas para formar un identificadorEl primer carácter que forma un identificador debe ser una letra (mayúscula o minúscula).

Los demás caracteres pueden ser letras, dígitos o el símbolo _ (guión bajo).

Page 10: Logica de Programacion de La Upemor

2.3 IDENTIFICADORES, CONSTANTES Y VARIABLES

Constante: son datos que no cambian durante la ejecución de un programa. Para nombrar las constantes se utilizan los identificadores. Los tipos de constantes son de los tipos de datos, por lo tanto puede haber constantes enteras, reales, carácter, cadena de caracteres, booleanas, etc.Variable: es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambiar durante la ejecución del programa. Los nombres de las variables deben ser representativas de la función que cumplen en el programa.

Page 11: Logica de Programacion de La Upemor

2.3 IDENTIFICADORES, CONSTANTES Y VARIABLES

Ejemplo:

area = pi * radio ^ radio

Variables: area y radio.Constante: pi.

Las variables son como cajitas de diferentes tamaños y por tal motivo se deben declarar previamente para que el computador las dimensione de acuerdo a las necesidades. Existen tipos de variables como tipos de datos existentes.

Page 12: Logica de Programacion de La Upemor

2.3.1Clasificación de variables

Tipo de variable según su contenidoNuméricasLógicasAlfanuméricas

Tipo de variable según su usoVariables de trabajo: son variables que reciben el resultado de una operación matemática completa y que se usan normalmente dentro de un programa.Contadores: se utilizan para llevar el control del número de ocasiones en que se realiza una operación o se cumple una cierta condición. Pueden incrementar o decrementar su valor.Acumuladores: forma que toma una variable y que sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o calculando progresivamente.

Page 13: Logica de Programacion de La Upemor

UNIDAD 3. TÉCNICAS DE DISEÑO

3.1 Técnicas de diseño TOP-DOWN.

3.2 Técnicas de diseño BOTTOM-UP.

Page 14: Logica de Programacion de La Upemor

INTRODUCCIÓN

La forma en que se plantea un problema, es fundamental para alcanzar una solución satisfactoria del mismo.En esta unidad se plantean dos técnicas de diseño para el planteamiento de problemas.

1. Técnicas de diseño Top-Down.2. Técnicas de diseño Bottom-Up.

Page 15: Logica de Programacion de La Upemor

3.1 Técnicas de diseño TOP-DOWN (ascendente, arriba-abajo)

Este diseño consiste en una serie de descomposiciones sucesivas del problema inicial, que recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte del programa.

Objetivos básicosSimplificación del problema y de los subprogramas de cada descomposición.Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por diferentes personas.El programa final queda estructurado en forma de bloque o módulos lo que hace más sencilla su lectura y mantenimiento.

Page 16: Logica de Programacion de La Upemor

3.1 Técnicas de diseño BOTTOM-UP (ascendente)

Este diseño se refiere a la identificación de aquellos procesos que necesitan computarizarse conforme vayan apareciendo, su análisis como sistema y su codificación, o bien, la adquisición de paquetes de software para satisfacer el problema inmediato.Diseño ascendente o “bottom-up”:

Primero se hace una planificación de los módulos de bajo nivel que se vayan a necesitar.Se desarrollan las partes más detalladas y con mayor nivel de dificultad en primer lugar.Se realiza el diseño del resto del sistema, acomodando los diseños previos, hasta llegar finalmente al diseño del sistema final.Puede resultar una estructura de control inadecuada.

Page 17: Logica de Programacion de La Upemor

UNIDAD 4. TÉCNICAS PARA LA

FORMULACIÓN DE ALGORITMOS

4.1 Programación estructurada4.2 Diagrama de flujo4.3 Pseudocódigo4.4 Diagramas estructurados (Nassi- Schneiderman)

Page 18: Logica de Programacion de La Upemor

INTRODUCCIÓN

El proceso de desarrollo de algoritmos y diagramas de flujo es fundamental dentro de la creación de programas de computadora en la parte de programación estructurada. Por ello, es necsario conocer y manejar la terminología que se utiliza dentro de estas herramientas de desarrollo de la programación.

Page 19: Logica de Programacion de La Upemor

4.1 Programación estructurada

Es una forma de escribir programas de forma clara, para ello utiliza únicamente tres estructuras:

Secuencial

Selectiva

Iterativa

Siendo innecesario y no permitiéndose el uso de la instrucción o instrucciones de transferencia incondicional ( GOTO ).

Page 20: Logica de Programacion de La Upemor

4.1.1 Surgimiento de la programación estructurada

A fines de los años sesenta.Un famoso Teorema de Dijkstra, demostrado por Edsger Dijkstra en los años sesenta, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:

Secuencial de instrucciones. Instrucción condicional. Iteración, o bucle de instrucciones.

Solamente con estas tres estructuras se puede hacer un programa informático.

Page 21: Logica de Programacion de La Upemor

4.1.2 Secuencias estructuradas (estructuras de control)

ESTRUCTURA SECUENCIAL: una estructura de programa es secuencial si se ejecutan una tras otra a modo de secuencia.

Ejemplo:auxiliar:= x x:= y y:= auxiliar

Esta secuencia de instrucciones permuta los valores de x e y, con ayuda de una variable auxiliar, intermedia. PASOS

1º Guardamos una copia del valor de x en auxiliar. 2º Guardamos el valor de y en x, se pierde el valor anterior de x pero no

importa porque tenemos una copia en auxiliar. 3º Guardamos en y el valor de auxiliar, que es el valor inicial de x.

El resultado es el intercambio de los valores de x e y, en tres operaciones secuenciales.

Page 22: Logica de Programacion de La Upemor

4.1.2 Secuencias estructuradas (estructuras de control)

ESTRUCTURA SELECTIVA: La estructura selectiva permite la realización de una instrucción u otra según un criterio, solo una de estas instrucciones se ejecutará.Ejemplo:

si a > b entonces Escribir a es mayor que b

si_no Escribir a no es mayor que b

fsi

si señala el comienzo de la instrucción condicional, y se espera que después esté la condición de control de la instrucción. entonces señala el fin de la condición, y después estará la instrucción a realizar si la condición es cierta. si_no separa la instrucción que se ejecutará si la condición es cierta de la que se ejecutará si es falsa. fsi indica que la instrucción condicional finaliza y el programa seguirá su curso.

Page 23: Logica de Programacion de La Upemor

4.1.2 Secuencias estructuradas (estructuras de control)

ESTRUCTURA ITERATIVA: un bucle iterativo o iteración de una secuencia de instrucciones, hace que se repitan mientras se cumpla una condición, en un principio el número de iteraciones no tiene porque estar determinado.

Ejemplo:a:= 0 b:= 7

mientras b > a hacer Escribir a a:= a + 1

mientras

Esta instrucción tiene tres palabras reservadas mientras, hacer y fmientras.mientras: señala el comienzo del bucle y después de esta palabra se espera la condición de repetición, si la condición es cierta se pasa al cuerpo del bucle, si no al final de la instrucción mientras. hacer: señala el final de la condición, lo que esté después será el cuerpo del bucle. fmientras: señala el final del cuerpo del bucle y de la instrucción mientras. El bucle mientras, se repite mientras la condición sea cierta, esta condición se comprueba al principio por lo que el cuerpo del bucle puede que no se ejecute nunca, cuando la condición es falsa en un principio, o que se repita tantas veces como sea necesario, mientras la condición sea cierta.

Page 24: Logica de Programacion de La Upemor

4.1.2 Secuencias estructuradas (estructuras de control): Iterativa

En el ejemplo tenemos dos variables a y b que al iniciarse el bucle tienen los valores a=0 y b=7.La condición del bucle es b > a.Cuando a=0 y b=7. la condición es cierta, en el cuerpo del bucle se escribe el valor de a en pantalla y se incrementa a en una unidad. Entonces a=1 y b=7. ... ... Cuando a=6 y b=7. la condición es cierta, se escribe el valor de a en pantalla y se incrementa en una unidad. Resultando que a=7 y b=7. Entonces la condición es falsa y la instrucción mientras finaliza. La salida por pantalla de este ejemplo seria 0 1 2 3 4 5 6 Algunos lenguajes ofrecen un modelo de estructuras iterativas algo diferente donde la condición puede variar en cada iteración.

Page 25: Logica de Programacion de La Upemor

4.1.3 Anidamiento

El cuerpo de cualquier estructura puede ser una instrucción simple u otra estructura, que a su vez puede anidar a otra.Ejemplo:si a > b entonces

auxiliar:=a a:= b b:= auxiliar

si_no nada

fsi escribir a y b

Page 26: Logica de Programacion de La Upemor

4.1.4 Ventajas de la programación estructurada1. Los programas son más fáciles de entender. Un programa

estructurado puede ser leído en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lógica, lo cual es típico de otros estilos de programación. La estructura del programa es más clara puesto que las instrucciones están más ligadas o relacionadas entre sí, por lo que es más fácil comprender lo que hace cada función.

2. Reducción del esfuerzo en las pruebas. El programa se puede tener listo para producción normal en un tiempo menor del tradicional; por otro lado, el seguimiento de las fallas("debugging") se facilita debido a la lógica más visible, de tal forma que los errores se pueden detectar y corregir más fácilmente.

3. Reducción de los costos de mantenimiento.4. Programas más sencillos y más rápidos.5. Aumento de la productividad del programador.6. Se facilita la utilización de las otras técnicas para el

mejoramiento de la productividad en programación.7. Los programas quedan mejor documentados internamente.

Page 27: Logica de Programacion de La Upemor

4.1.5 Desventajas de la programación estructurada

El principal inconveniente de este método de programación, es que se obtiene un único bloque de programa, que cuando se hace demasiado grande puede resultar problemático su manejo, esto se resuelve empleando la programación modular, definiendo módulos interdependientes programados y compilados por separado, cada uno de los cuales ha podido ser desarrollado con programación estructurada.

Page 28: Logica de Programacion de La Upemor

4.2 Diagramas de flujo (flujogramas)

Es la representación gráfica de un algoritmo.Es la representación detallada en forma gráfica de cómo deben realizarse los pasos en la computadora para producir resultados.Está representación gráfica se da, cuando se relacionan entre sí varios símbolos mediante líneas que indican el orden en que se deben ejecutar los procesos.Si el diagrama de flujo está completo y correcto, el paso del mismo a un lenguaje de programación es relativamente simple y directo.

Page 29: Logica de Programacion de La Upemor

4.2.1 Características de los diagramas de flujo

Según Gómez Cejas, Guillermo. Año 1.997:1. Sintética: La representación que se haga de un

sistema o un proceso deberá quedar resumido en pocas hojas, de preferencia en una sola. Los diagramas extensivos dificultan su comprensión y asimilación, por tanto dejan de ser prácticos.

2. Simbolizada: La aplicación de la simbología adecuada a los diagramas de sistemas y procedimientos evita a los analistas anotaciones excesivas, repetitivas y confusas en su interpretación.

3. De forma visible a un sistema o un proceso: Los diagramas nos permiten observar todos los pasos de un sistema o proceso sin necesidad de leer notas extensas.

Page 30: Logica de Programacion de La Upemor

4.2.2 Símbolos de los diagramas de flujo (flujogramas)

Representa el Inicio o el Fin del diagrama de flujo (algoritmo).

Símbolo utilizado para introducir los datos de entrada. Expresa lectura.

Representa un proceso. Indica la asignación de un valor de memoria y/o la ejecución de una operación aritmética.

Page 31: Logica de Programacion de La Upemor

4.2.2 Símbolos de los diagramas de flujo (flujogramas)

Representa una decisión.

En su interior se almacena una condición, y dependiendo del resultado de la evaluación de la misma se sigue por una de las ramas, Si o No.

Se utiliza en la estructura selectiva si entonces y si entonces/sino y en las estructuras repetitivas repetir y mientras.

Representa una decisión múltiple.

En su interior se almacena un selector, y dependiendo del valor de dicho selector se sigue por una de las ramas.

Se utiliza en la estructura selectiva si múltiple.

Page 32: Logica de Programacion de La Upemor

4.2.2 Símbolos de los diagramas de flujo (flujogramas)

Representa la escritura (impresión) de un resultado.

Se utilizan para expresar la dirección del flujo del diagrama.

Conector lógico dentro de una página.

Representa la continuidad del diagrama dentro de la misma página.

Conector lógico fuera de la página.

Representa la continuidad del diagrama en otra página.

Page 33: Logica de Programacion de La Upemor

4.2.2 Símbolos de los diagramas de flujo (flujogramas)

Representa la salida de datos en la pantalla o monitor.

Representa los subprogramas.

Representa una entrada de datos utilizando el teclado.

Lo que se escribe en su interior es el nombre de la variable(s) en que se almacenará el dato que entra en el teclado.

Page 34: Logica de Programacion de La Upemor

Etapas en la construcción de un diagrama de flujo

Inicio

Lectura de datos

Procesamiento de datos

Impresión de resultados

Fin

ENTRADA

PROCESO

SALIDA

Proceso de información en la

computadora

Page 35: Logica de Programacion de La Upemor

4.2.3 Reglas para el diseño de diagramas de flujo

Todo diagrama de flujo debe tener un inicio y un fin.Las líneas utilizadas para indicar la dirección del flujo del diagrama deben ser rectas, verticales y horizontales. Se debe evitar el cruce de líneas.Todas las líneas utilizadas para indicar la dirección del flujo del diagrama deben estar conectadas. La conección puede ser un símbolo que exprese lectura, proceso, decisión, impresión, conexión o fin de diagrama.Los conectores solo se deben usar cuando sea necesario.El diagrama de flujo debe estar construido de arriba hacia abajo (top-down) y de izquierda a derecha.La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de programación.Si el diagrama de flujo requiere más de una hoja, utilizar conectores adecuados y enumerar las páginas convenientemente.Un símbolo no puede llevar más de una línea.Todo texto escrito dentro de un símbolo debe estar escrito claramente, evitando el uso de muchas palabras.

Page 36: Logica de Programacion de La Upemor

Ejemplos

NO VÁLIDOS

VÁLIDOS

Page 37: Logica de Programacion de La Upemor

4.3 Pseudocódigo

Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. Es una mezcla de lenguaje de programación y español (o inglés o cualquier otro idioma) que se emplea dentro de la programación estructurada para realizar el diseño de un programa.No hay ningún compilador o intérprete de pseudocódigo informático, y por tanto no puede ser ejecutado en una computadora, pero las similitudes con la mayoría de los lenguajes informáticos lo hacen fácilmente convertible.

Page 38: Logica de Programacion de La Upemor

4.3.1 Estructuras de control en pseudocódigo

SecuencialInstrucción 1Instrucción 2……Instrucción n

Selectivasi (condición) entonces

Instrucción 1si_no

Instrucción2fsi

Iterativamientras (condición) hacer

Instrucciónfmientras

Page 39: Logica de Programacion de La Upemor

4.3.2 Ventajas de pseudocódigo a un diagrama de flujo

Ocupa menos espacio en una hoja de papel.Permite representar en forma fácil operaciones repetitivas complejas.Es muy fácil pasar de pseudocódigo a un programa en algún lenguaje de programación.Si se siguen las reglas se puede observar claramente los niveles que tiene cada operación.

Page 40: Logica de Programacion de La Upemor

4.4 Diagramas estructurados (Nassi-Schneiderman)

El diagrama estructurado N-S también conocido como Diagrama de Chapín es como un diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas.

Las acciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo, se pueden escribir diferentes acciones en una caja.

Page 41: Logica de Programacion de La Upemor

4.4 Diagramas estructurados (Nassi-Schneiderman)

Inicio

Accion1

Accion2

. . .

Fin

Inicio

Leer Nombre, Hrs, Precio

Calcular Salario= Hrs*Precio

Calcular Imp = Salario * 0.15

Calcular Neto = Salario + Imp

Escribir Nombre, Imp, Neto

Fin