69
Introducción a la Programación Adriana Lizette Ramírez Franco

Programacion Estructurada

Embed Size (px)

Citation preview

Introducción a la Programación

Adriana Lizette Ramírez Franco

Sistema de símbolos y reglas que permiten la construcción de programas con los que la computadora puede operar, así como resolver problemas de manera eficaz.

Adriana Lizette Ramírez Franco

Lenguaje Máquina. o Son aquellos cuyas instrucciones son

directamente entendibles por la computadora y no necesitan traducción posterior.

o Las instrucciones se expresan en términos de la unidad de memoria más pequeña, el bit (dígito binario 0 ó 1).

Adriana Lizette Ramírez Franco

Lenguaje de Bajo Nivel (Ensamblador)o En este lenguaje las instrucciones se escriben

en códigos alfabéticos conocidos como nemotécnicos para las operaciones y direcciones simbólicas.

Adriana Lizette Ramírez Franco

Lenguajes de Alto Nivel.o Son aquellos en que las instrucciones o

sentencias a la computadora son escritas con palabras similares a los lenguajes humanos, lo que facilita la escritura y comprensión del programa.

Adriana Lizette Ramírez Franco

Se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX.

La solución a cualquier problema de cómputo involucra la ejecución de una serie de acciones en orden específico, en términos de:Las acciones a ejecutarse.El orden el cual las acciones se ejecutan.

Adriana Lizette Ramírez Franco

Secuencia de instrucciones mediante las cuales se ejecutan diferentes acciones de acuerdo con los datos que se están procesando.

Es un algoritmo desarrollado para ser utilizado por la computadora.

Expresión de un algoritmo en un lenguaje preciso que puede llegar a entender una máquina de cómputo.

Adriana Lizette Ramírez Franco

1. Definición del problema. Está dada por el enunciado del problema, el cual requiere una definición clara y precisa.

2. Análisis del problema. Una vez que se ha comprendido lo que se desea que la computadora haga, es necesario definir:

a) Datos de entrada.b) Información que se desea producir (salida).c) Métodos y fórmulas que se necesitan para

procesar los datos.

Adriana Lizette Ramírez Franco

3. Diseño del algoritmo. Las características de un buen algoritmo son:

Debe tener un inicio y un fin. Debe estar bien definido, no debe permitir

dobles interpretaciones. Debe ser general, soportar la mayoría de las

variantes que se puedan presentar en el problema.

Debe ser finito en tamaño y tiempo de ejecución.

Adriana Lizette Ramírez Franco

4. Codificación. Es la operación de escribir la solución del problema en una serie de instrucciones detalladas, en un código reconocible por la computadora (lenguaje de alto nivel), a esto se le conoce como código fuente.

5. Prueba y Depuración. El proceso de identificar y eliminar errores, para dar paso a una solución sin errores se le llama depuración. La prueba consiste en la captura de datos, hasta que el programa no presente errores (los más comunes son los sintácticos y lógicos.)

Adriana Lizette Ramírez Franco

6. Documentación. Es la guía o comunicación escrita en varias formas, ya sean enunciados, procedimientos, dibujos o diagramas.La documentación sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones.

Adriana Lizette Ramírez Franco

7. Mantenimiento. Se lleva acabo después de terminado el programa, cuando se detecta que es necesario hacer algún cambio, ajuste o complementación al programa para que siga trabajando de manera correcta.Todos los programas tienen actualizaciones, por lo que surgen versiones diferentes.

Adriana Lizette Ramírez Franco

Introducción a la Programación

Adriana Lizette Ramírez Franco

Representan objetos de un programa (constantes, variables, funciones, etc.).

Un identificador es una secuencia de caracteres que pueden ser de cualquier longitud.

Cada lenguaje de programación tiene sus propias características de tamaño.

Adriana Lizette Ramírez Franco

Debe comenzar con una letra, mayúsculas o minúsculas, y no puede contener espacios en blanco.

Letras, dígitos y caracteres de subrayado están permitidos después del primer carácter.

No se puede utilizar una palabra reservada como identificador, sin embargo, los identificador estándar se pueden redefinir.

Adriana Lizette Ramírez Franco

Los diferentes objetos de información con los que un programa trabaja se conocen colectivamente como datos.

Todos los datos tienen un tipo asociado con ellos, los tipos de datos son los valores que una variable puede tomar.

La asignación de tipos a los datos tiene dos objetivos principales:

1. Detectar errores de operaciones en programas.

2. Determinar como ejecutar las operaciones.Adriana Lizette Ramírez Franco

EnteroRealCaracterescadenas

Adriana Lizette Ramírez Franco

Las variables son objetos del programa cuyo valor puede cambiar en tiempo de ejecución.

Todas las variables deben ser declaradas Todas las variables deben ser declaradas antes de usarlas.antes de usarlas.

Cuando una variable se declara se reserva espacio en memoria.

Adriana Lizette Ramírez Franco

Formatotipo_dato variable(s)

Ejemploentero i, j, k

real numcaracter x

caracter nom[25]

Adriana Lizette Ramírez Franco

Formatotipo_dato variablevalor

Ejemploentero i0

real num 3.8caracter x ’d’

caracter nom[] “Hola mundo”

Adriana Lizette Ramírez Franco

Identificadores del programa cuyo valor no cambia en tiempo de ejecución.

Valores fijos que no pueden ser alterados por el usuario.

Adriana Lizette Ramírez Franco

Formatoconstante IDconstantevalor

Ejemploconstante MAX100constante PI 3.14constante CAR ’d’

constante NOM “Hola mundo”

Adriana Lizette Ramírez Franco

Pueden ser utilizados con tipos enteros o reales.

Si ambos son enteros, el resultado es entero.Si uno es real y el otro es entero, el resultado

es real.

Adriana Lizette Ramírez Franco

Por ejemplo: a15, b 3

Adriana Lizette Ramírez Franco

OperadorOperador SignificadSignificadoo

EjemploEjemplo ResultadoResultado

+ Suma a + b 18

- Resta a – b 12

* Multiiplicación

a * b 45

/ División a / b 5

mod Residuo a mod b 0

Adriana Lizette Ramírez Franco

1. Todas las expresiones entre paréntesis se evalúan primero.

I. Las expresiones con paréntesis anidados se evalúan de adentro hacia afuera.

II. El paréntesis más interno se evalúa primero.2. Dentro de una misma expresión, los

operadores se evalúan en el siguiente orden.

Adriana Lizette Ramírez Franco

Operador Orden* , /, mod Primero

+ , - último

3. Los operadores en una misma expresión con igual nivel de prioridad, se evalúan de izquierda a derecha.

Adriana Lizette Ramírez Franco

x - ( A + B mod 2 ) + y * z

_+

mod *

+

Se utilizan para expresar condiciones y describen una relación entre 2 valores.

Adriana Lizette Ramírez Franco

Pseudocódigo Significado Código C> Mayor que >< Menor que <= Igual que ==

>= Mayor o igual que

>=

<= Menor o igual que

<=

<> Diferente que !=

El resultado de una expresión lógica es un valor de tipo booleano: verdadero (1) o falso (0).

Adriana Lizette Ramírez Franco

7.7 < 6.8 F 0

-124 < 0.003 V 1

8 = 8.0 V 1

‘A’ > ‘B’ F 0

‘z’ > ‘h’ V 1

Las expresiones lógicas pueden combinarse para formar expresiones más complejas utilizando los operadores lógicos: y (&&), ó (||), no (!).

Estos se utilizan con constantes lógicas de forma similar al modo en que los operadores aritméticos se utilizan con las constantes numéricas.

Estos operadores trabajan con operandos que son expresiones lógicas.

Adriana Lizette Ramírez Franco

Son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.

Cada expresión toma un valor que se determina tomando los valores de variables y constantes implicadas y la ejecución de las operaciones indicadas.

Según el tipo de datos que se manipulen, una expresión puede ser:Aritmética.Relacional.Lógica.

Adriana Lizette Ramírez Franco

Son palabras que tienen un significado especial para el lenguaje y no se pueden utilizar como identificadores.

Las más utilizadas son:

Adriana Lizette Ramírez Franco

PSEUDOCÓDIGO LENGUAJE C SIGNIFICADOleer scanf Lee un dato en una

variableImprimir printf Imprime en

pantallaLeercad gets Lee una cadena de

caracteresEscribircad puts Imprime una

cadena de caracteres

Raizcuad() sqrt() Realiza la raiz cuadrada

potencia() pow() Eleva un número a una potencia

Inicio { Inicio de función o bloque

Fin } Fin de función o bloque

Adriana Lizette Ramírez Franco

Adriana Lizette Ramírez Franco

PSEUDOCÓDIGO LENGUAJE C SIGNIFICADOsi if Estructura

selectivaSino else Parte falsa de la

estructura selectiva

Según_sea switch Estructura selectiva múltiple

Otro_caso default Ninguna opción de la selectiva

múltipleCaso case Opción de la

selectiva múltipleDesde for Estructura

repetitivaMientras while Estructura

repetitivahacer do Estructura

repetitiva

Adriana Lizette Ramírez Franco

PSEUDOCÓDIGO LENGUAJE C SIGNIFICADO

Entero int Tipo de dato entero

Real float Tipo de dato real

caracter char Tipo de dato carácter

Pueden aparecer en cualquier parte del programa, mientras estén situados entre los delimitadores /*comentario*/.

Son útiles para identificar los elementos principales de un programa o para explicar la lógica de estos.

Adriana Lizette Ramírez Franco

Introducción a la Programación

Adriana Lizette Ramírez Franco

Un diagrama de flujo 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.

Esto se da cuando varios símbolos se relacionan entre sí mediante líneas que indican el orden en que se deben ejecutar los procesos.

Adriana Lizette Ramírez Franco

Símbolo DescripciónIndica el inicio y fin del

diagrama de flujo.

Indica la entrada y salida de datos.

Indica la realización de una comparación de valores

(condición)Símbolo de proceso, nos

indica la asignación de un valor en memoria y/o

ejecución de una operación aritmética.

Adriana Lizette Ramírez Franco

Adriana Lizette Ramírez Franco

Símbolo DescripciónLíneas de flujo de dirección. Indican la secuencia en que se realizan las operaciones.Repetitiva desde, numero de iteraciones o repeticiones.

Impresión.

Diagrama de flujo

Todo diagrama debe tener un inicio y un fin.No se especifica la declaración de variables.No se agregan las líneas de impresión de

etiquetas.Se deben utilizar líneas de flujo horizontal y/o

verticales.Se debe evitar el cruce de líneas utilizando

conectores.

Adriana Lizette Ramírez Franco

Se deben usar conectores solo cuando sea necesario.

No deben quedar líneas de flujo sin conectar.Los diagramas se harán de tal forma que se

deben leer de arriba – abajo y de izquierda – derecha.

Evitar terminología de un lenguaje de programación.

Adriana Lizette Ramírez Franco

Es una mezcla de lenguaje de programación y español (o inglés), que se emplea dentro de la programación estructurada, para realizar el diseño de un algoritmo.

Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado.

Adriana Lizette Ramírez Franco

Introducción a la Programación

Adriana Lizette Ramírez Franco

Es el conjunto de técnicas para desarrollar programas fáciles de escribir, verificar, leer (por el usuario) y mantener (modificar).

La programación estructurada incluye:Estructuras de datosEstructuras de controlDiseño descendente (Top-Down)Programación Modular

Adriana Lizette Ramírez Franco

Son una colección de datos cuya organización se caracteriza por las funciones de acceso que se usan para almacenar y acceder a elementos individuales de datos.

Adriana Lizette Ramírez Franco

1. Pueden descomponerse en los elementos que las forman.

2. La manera que se colocan los elementos dentro de la estructura afectará la forma en que se realicen los accesos a cada elemento.

3. La colocación de los elementos y la manera en que se accede a ellos puede ser encapsulada.

Adriana Lizette Ramírez Franco

Controlan como se ejecutan los programas, es decir, el orden de las instrucciones.

Tienen un solo punto de entrada y de salida.Existen 3 tipos de estructuras de control:

1. Secuencial2. Selectiva3. Repetitiva

Adriana Lizette Ramírez Franco

Adriana Lizette Ramírez Franco

Declaración de constantesPrincipal inicio declaración de variables locales cuerpo del programa (estructuras de control) fin

Adriana Lizette Ramírez Franco

Adriana Lizette Ramírez Franco

Principal inicio inst1 inst2 . instN fin

Diagrama de Flujo

inst 1

inst 2

inst n

Todo pseudocódigo inicia con la palabra reservada Principal para especificar la función denominada main() en lenguaje C.

Toda función debe contener un inicio y un fin que delimita las instrucciones del programa.

Adriana Lizette Ramírez Franco

Adriana Lizette Ramírez Franco

Principal inicio entero n1, n2, suma leer n1 leer n2 suman1+n2 imprimir “La suma

es”, suma fin

Diagrama de flujo

n1

n2

suma ← n1+ n2

suma

DATOS DE ENTRADA: n1, n2DATOS DE SALIDA: sumaFÓRMULA: suma n1 + n2

El nombre de las variables, se recomienda que haga referencia a lo solicitado o calculado.

Adriana Lizette Ramírez Franco

Adriana Lizette Ramírez Franco

constante PI 3.14

Principal inicio real radio, area, volumen leer radio areaPI *radio * radio volumen4/3*PI*potencia(radio,3) imprimir “El radio es”, radio imprimir “El volumen es”,

volumen fin

Diagrama

radio

area= PI * radio * radio *RADIO

área

Volumen = 4/3 * PI * radio * radio *radio

volumen

Es aquella en que el programa sólo pasa por una o más instrucciones según una condición u opción.

Adriana Lizette Ramírez Franco

Adriana Lizette Ramírez Franco

si(condición) instrucción

si(condición) inicio inst1 inst2 instN fin

Diagrama

Inst 1Inst 2Inst 3

Cond

f v

Adriana Lizette Ramírez Franco

si(condición) inicio inst1 inst2 instN finsino inicio inst1 inst2 inst3 fin

Diagrama

Inst 1Inst 2

Inst 3Inst 4

Cond

vf

Adriana Lizette Ramírez Franco

Principal inicio real cal leer cal si(cal>=60) imprimir

“Aprobado” fin

Diagrama

aprobada

cal>=60

cal

vf

Adriana Lizette Ramírez Franco

Principal inicio real cal leer cal si(cal>=60) imprimir “Aprobado” sino imprimir

“Reprobado” fin

Diagrama

Cal>=60

reprobada

aprobada

cal

Cuando existen más de 2 opciones se puede utilizar la estructura selectiva múltiple, solo que no acepta condiciones, sólo números enteros o caracteres para entrar a la opción.

NO DEPENDE DE UNA CONDICIÓN, SINO DE UN VALOR ESPECÍFICO.

Adriana Lizette Ramírez Franco

Adriana Lizette Ramírez Franco

segun_sea (expresión) inicio caso 1 : inst1 salir caso 2 : inst2 salir - - caso n : inst n salir

caso contrario: inst 4

fin

Diagrama de Flujo

opción

Inst 1 Inst 2 Inst n Inst 4

Adriana Lizette Ramírez Franco

Principal inicio entero num leer num según_sea(num) inicio caso 1: imprimir “lunes” salir caso 2: imprimir “Martes” salir - - caso 7: imprimir “Domingo” salir finfin

Diagrama

num

num

lunes

martes

miércoles

jueves

viernes

sábado

domingo

El día no existe en la semana

Adriana Lizette Ramírez Franco

Se basa en una expresión lógica cuyo resultado debe ser V ó F, y se repite el bloque de instrucciones si ésta se cumple.

En esta estructura no se conoce necesariamente el número de veces que se entrará al ciclo.

Adriana Lizette Ramírez Franco

Adriana Lizette Ramírez Franco

mientras(condición) inicio inst 1 inst 2 - - inst N fin

Código

condición

Inst 1

-

-

Inst n

vf

La condición se evalúa antes del bloque de instrucciones. Si la condición es verdadera se ejecuta el bloque de instrucciones y si es falsa el control pasa a la instrucción siguiente del bloque.

Si existe una sola instrucción no necesita las palabras reservadas inicio y fin.

Si existe más de una instrucción se necesitan las palabras reservadas inicio y fin para delimitar el bloque de instrucciones.

Adriana Lizette Ramírez Franco

Adriana Lizette Ramírez Franco

Principal inicio entero m m ←7 mientras ( m < 150 ) inicio imprimir m m ← m + 7 fin fin

Diagrama de flujo

m < 150

Imprimir m

m ← m + 7

v

f

m ←7

Adriana Lizette Ramírez Franco

Principal inicio entero n, sum sum ←0

mientras ( sum < = 100 ) inicio imprimir “Dame un numero”

leern sum ← sum + n fin

imprimir “La suma es: ” , sum fin