programacion_1

32
UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA FACULTAD DE INGENIERÍA INGENIERÍA AEROESPACIAL PROGRAMACIÓN

Upload: lluvia-najera

Post on 05-Dec-2014

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: programacion_1

UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA FACULTAD DE INGENIERÍA

INGENIERÍA AEROESPACIAL

PROGRAMACIÓN

Page 2: programacion_1

La programación estructurada es una forma de escribir programas de computadora de manera clara.

Se escribe de acuerdo a las siguientes reglas:

Tiene diseño modular

Los módulos son diseñados de modo descendente

Cada módulo se codifica utilizando las tres estructuras de control básicas: secuencia, selección y repetición.

Page 3: programacion_1

Es el conjunto de técnicas que incorporan: Recursos abstractos: descomponer una

determinada acción compleja en términos de un número de acciones más simples.

Diseño descendente (top-down): proceso en el cual un problema se descompone en una serie de niveles o pasos sucesivos.

Estructuras de control: son métodos de especificar el orden en que las instrucciones de un algoritmo se ejecutarán.

Page 4: programacion_1

El teorema de Böhm‐Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres estructuras de control siguientes: i. Secuencia ii. Instrucción condicional. iii. Iteración (bucle de instrucciones) con condición al

principio. Solamente con estas tres estructuras se pueden

escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un

mayor repertorio de estructuras de control, éstas pueden ser construidas mediante las tres básicas.

Page 5: programacion_1

Estructura secuencial. Una estructura de programa es secuencial si se

ejecutan instrucciones una tras otra a modo de secuencia, es decir que una instrucción no se ejecuta hasta que finaliza la anterior.

Acción 1

Acción 2

Acción n

Page 6: programacion_1

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

Page 7: programacion_1

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.

Page 8: programacion_1

Ventajas: 1. Los programas son más fáciles de entender, ya que

pueden ser leídos de forma secuencial. Sin necesidad de hacer seguimiento a saltos de línea (GOTO)

dentro de los bloques de código para entender la lógica.

2. La estructura del programa es clara, puesto que las instrucciones están más ligadas o relacionadas entre sí.

3. Reducción del esfuerzo en las pruebas. El seguimiento de los fallos o errores del programa

("debugging") se facilita debido a la estructura más visible, por lo que los errores se pueden detectar y corregir más fácilmente.

Page 9: programacion_1

4. Reducción de los costos de mantenimiento de los programas.

5. Programas más sencillos y más rápidos (ya que es más fácil su optimización).

6. Los bloques de código son auto explicativos, lo que facilita la documentación.

7. Un programa escrito de acuerdo a estos principios no solamente tendrá una mejor estructura sino también una excelente presentación.

Page 10: programacion_1

Inconvenientes: 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.

Page 11: programacion_1

Un algoritmo se puede definir como:

Serie de pasos organizados, que describe el proceso que se debe seguir para dar solución a un problema especifico.

Secuencia finita de instrucciones cada una de las cuales tiene un significado claro y puede ser efectuada con una cantidad de esfuerzo en una longitud de tiempo también finito.

Page 12: programacion_1

Los pasos para la resolución de un problema son:

Diseño del algoritmo, que describe la secuencia ordenada de pasos que conducen a la solución de problema dado (análisis del problema y desarrollo del algoritmo)

Expresar el algoritmo como un programa en un lenguaje de programación adecuado (fase de codificación)

Ejecución y validación del programa por la computadora.

Page 13: programacion_1

Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo.

Los algoritmos son independientes tanto del lenguaje de programación como de la computadora que los ejecuta.

Page 14: programacion_1

Características.

Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.

Un algoritmo debe estar definido. Si se sigue el algoritmo dos veces, se debe obtener el mismo resultado cada vez.

Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea, debe tener un numero finito de pasos.

Page 15: programacion_1

La definición de un algoritmo debe describir tres partes: entrada, proceso y salida.

Page 16: programacion_1

Ejemplo:

Se desea diseñar un algoritmo para saber si un numero es primo o no.

Page 17: programacion_1

▪ Inicio

▪ Poner X igual a 2 ( X=2, X variable que representa a los divisores del numero que se busca N)

▪ Dividir N por X (N/X)

▪ Si el resultado de X/N es entero, entonces N no es un numero primo y bifurcar al punto 7; en caso contrario, continuar el proceso.

▪ Suma 1 a X (X<- X+1)

▪ Si X es igual a N, entonces N es un numero primo; en caso contrario bifurcar al punto 3.

▪ Fin

Page 18: programacion_1

Realizar la suma de todos los números pares entre 2 y 1000.

Page 19: programacion_1

Inicio

Establecer SUMA a 0

Establecer NUMERO a 2

Sumar NUMERO a SUMA, el resultado será el nuevo valor de SUMA

Incrementar NUMERO en 2

Si NUMERO =< 1000, bifurcar al paso 4; en caso contrario, escribir el ultimo valor de SUMA y terminar el proceso

Fin

Page 20: programacion_1

Identificador, constantes y variables.

Los datos simples o estructurados deben ser almacenados en casillas de memoria para su posterior utilización. Estas celdas tienen un nombre que permite su identificación, este es el identificador.

Las constantes son datos que no cambian durante la ejecución de un programa. Para nombrarlas, utilizamos identificadores.

Existen tipos de constantes como tipos de datos (reales, enteros, carácter, cadenas de caracteres, etc).

Page 21: programacion_1

Las variables son objetos que pueden cambiar su valor durante la ejecución de un programa. Para nombrarlas se utilizan identificadores.

Al igual que las constantes, existen tantos tipos de ellas, como tipos de datos.

Los nombres de las variables deben ser representativas de la función que cumplen en el programa.

Page 22: programacion_1

Operaciones aritméticas. Estas requieren de operadores aritméticos para

realizarse. Al evaluar expresiones que contiene dichos

operadores, debemos respetar la jerarquía en el orden de aplicación y un par de reglas:

1. Si una expresión contiene subexpresiones entre paréntesis, éstas últimas serán evaluadas primero.

2. Si las subexpresiones se encuentran anidadas por paréntesis, primero se evalúan las subexpresiones que se encuentran en el último nivel de anidamiento.

Page 23: programacion_1

Operador aritmetico Operación Ejemplo Resultado

** Potencia 4**3 64

* ultiplicación 8.25*7 57.75

/ División 15/4 3.75

+ Suma 200+62 262

- Resta 100-30 70

mod Modulo (residuo) 15 mod 2 1

div Division entera 17 div 3 5

Operadores aritmeticos

Page 24: programacion_1

Operador Jerarquia Operación

** (mayor) Potencia

*, /, mod, div Multiplicación, división, módulo, división entera

+, - (menor) Suma, resta

Jerarquia de los operadores aritmeticos

Page 25: programacion_1

EXPRESIONES LÓGICAS. Llamadas también booleanas, están constituidas

por números, contantes o variables y operadores lógicos o relacionales.

El valor que pueden tomar estas expresiones es verdadero o falso.

Se utilizan en estructuras selectivas (el resultado determina el camino a seguir) y en las repetitivas (el resultado dicta si se sigue el ciclo o se interrumpe).

Page 26: programacion_1

Operador Operación Ejemplo Resultado

= Igual que 'hola' = 'lola'

< > Diferente a a' < > 'b'

< Menor que 7 < 5

> Mayor que 7 > 5

<= Menor o igual que 15 <= 22

>= Mayor o igual que 55 >= 20

Operaciones relacionales

Page 27: programacion_1

Operador lógico Jerarquía Expresión lógica Significado

(mayor) No P

No es cierto que P

Es falso que P

P ^ Q

P sin embargo Q

P o Q

o P o Q o ambos

(menor) Mínimo P o Q

Operadoradores lógicos

NO

Y

O P o Q

P y Q

No P

Page 28: programacion_1

P Q ~P ~Q P o Q P ̂Q

VERDADERO VERDADERO

VERDADERO FALSO

FALSO VERDADERO

FALSO FALSO

Tabla de verdad de los operadores lógicos

Page 29: programacion_1

Operadores Jerarquía

( ) (mayor)

**

*, /, div, mod

=, < >, <, >, <=, >=

NO

Y

O (menor)

Jerarquía de los operadores

Page 30: programacion_1

Notas: Cuando se utilizan los operadores de relación con

operandos lógicos, falso es menor que verdadero.

El operador ( ) es un operador asociativo que tiene la prioridad mas alta en cualquier lenguaje.

En ciertos lenguajes, las prioridades de los operadores se manejan en forma diferente.

No se puede resolver la comparación entre un valor lógico y un numérico, utilizando un operador relacional.

Page 31: programacion_1

Escribir las siguientes expresiones algebraicas como expresiones algorítmicas:

a)𝑀

𝑁+ 𝑃

b) 𝑀 +𝑁

𝑃−𝑄

c)𝑀+

𝑁

𝑃

𝑄−𝑅

5

d)−𝑏+ 𝑏2−4𝑎𝑐

2𝑎

e)𝑥2+𝑦2

𝑧2

Page 32: programacion_1

Ejercicios 1. 7+5-6 2. 9+7*8-36/5 3. 7*5**3/4div3 4. 7*8*(160mod3**3)div5*13-28 5. 15/2*(7+(68-15*33+(45**2/16)/3)/15)+19 6. Si A=5 y B=16; (A**2)>(B*2) 7. Si X=6 y B = 7.8; (X*5+B**3/4)<=(X**3divB) 8. ((1580mod6*2**7)>(7+8*3**4))>((15*2)=(60*2/4)) 9. NO(15>=7**2)O(43-8*2div4<>3*2div2) 10. (15>=7*3**2Y 8>3Y 15>6) O NO(7*3<5+12*2div3**2) 11. NO((7*3div2*4)>(15/2*6>=15*2/17=15))