Clase 2

Post on 04-Jul-2015

237 views 0 download

Transcript of Clase 2

RESOLUCIÓN DE PROBLEMAS CON M A A AM N ACOMPUTADORA Y HERRAMIENTAS

DE PROGRAMACIÓN

Contenido Contenido

Fases en la resolución de un problemapHerramientas de programaciónEjemplosEjemplosProgramación modularEstructuras de controlEstructuras de controlResumen

Fases en la resolución de un problema Fases en la resolución de un problema Análisis del problemaDiseño del algoritmoCodificaciónCompilación y ejecuciónVerificaciónD ióDepuraciónMantenimientoDocumentaciónDocumentación

ContCont…Análisis.- el problema se analiza teniendo presente lasespecificaciones de los requisitos dados por el cliente o laempresa que encarga el programaDi ñ li d l bl di ñDiseño.- una vez analizado el problema se diseña unasolución que conducirá a un algoritmo que resuelva elproblemapCodificación (implementación).- la solución se escribe en lasintaxis del lenguaje de alto nivel (por ejemplo C) y seb iobtiene un programa

ContCont…Compilación, ejecución y verificación.- El programa seejecuta, se comprueba rigurosamente y se eliminan todos loserrores que puedan aparecerD ió t i i t l liDepuración y mantenimiento.- el programa se analiza ymodifica cada vez que sea necesario, de modo que secumplan todas las necesidades de cambio de sus usuariospDocumentación.- escritura de las diferentes fases del ciclode vida del software, esencialmente el análisis, diseño y

difi ió id l d i d f icodificación, unidos a manuales de usuario y de referencia

Algoritmo Algoritmo

Algoritmo.- es un método para resolver un problemag p pmediante una serie de pasos precisos definidos y finitosCaracterísticas de un algoritmo

Preciso (indicar el orden de realización en cada paso)Definido (si se sigue dos veces se obtiene el mismo resultado cadavez)Finito (tiene fin; un numero determinado de pasos)

Herramientas de programación Herramientas de programación Las dos herramientas mas utilizadas comúnmente para diseñarpalgoritmos son; diagramas de flujo y pseudocódigos

Diagramas de flujo.- es una representación grafica de unalgoritmo. Los símbolos utilizados están normalizados por elANSI

P d ódi h d ó lPseudocódigo.- es una herramienta de programación en laque las instrucciones se escriben en palabras similares al ingleso español, que facilitan tanto la escritura como la lectura deo español, que facilitan tanto la escritura como la lectura deprogramas

Símbolos mas utilizados en diagramas de flujo Símbolos mas utilizados en diagramas de flujo

Símbolos de diagrama de flujoSímbolos de diagrama de flujoTerminal, (representa el inicio y el final de , ( p yun programa, también puede representar una parada o interrupción programada que sea necesario realizar)Entrada/salida, (cualquier tipo de i d ió d d l i d d introducción de datos en la memoria desde los periféricos o registro de la información procesada en los periféricos)

Salida

procesada en los periféricos)

Símbolos de diagrama de flujoSímbolos de diagrama de flujoProceso, (cualquier tipo de operación que , ( q p p qpueda originar cambio de valor, formato o posición de la información almacenada,

foperaciones aritméticas, transferencia, etc.)Decisión, (indica operaciones lógicas o de

ió d f ió d l comparación entre datos, y en función del resultado se determina cual de los distintos caminos el programa debe seguircaminos el programa debe seguir

Ejemplo 1 Ejemplo 1 Calcular la paga neta Algoritmo p gde un trabajador conociendo el numero

Algoritmo Leer Horas, Tarifa, tasa

Calcular Paga bruta=Horas * Tarifade horas trabajadas, la tarifa horaria y la tasa de impuestos

g

Calcular impuestos=Paga Bruta * Tasa

Calcular paga Neta=Paga Bruta –tasa de impuestos impuestos

Visualizar Paga bruta, Impuestos, Paga NetaNeta

Ejemplo 2; Suma o producto Ejemplo 2; Suma o producto //Algoritmo que lee 3 números y si el primero es positivo, calcula el producto de los otros dos y en otro caso calcula la //suma. Se usan 3 variable enteras num1, num2 y num3, en las que se leen los datos, y otras dos en las que se calcula el // d l //producto o la suma.

Proceso Suma_o_Producto

Escribir "Introduce 3 números";

Leer num1, num2,num3;

Si num1>0 Entonces

producto<-num2*num3;

Escribir "El producto de los dos últimos números es: ",producto;

SinoSino

suma<-num2+num3;

Escribir "La suma de los dos últimos números es: ",suma;

FinSi

FinProceso

Ejemplo; Suma o producto Ejemplo; Suma o producto

Ejemplos para la clase Ejemplos para la clase

Calcular el valor de la Dados 3 números Calcular el valor de la suma 1+2+3..+100Realizar la suma de

determinar si la suma de cualquier pareja de ellos

Realizar la suma de todos los números

t 2 1000

es igual al tercer numero. Si se cumple esta condición escribir pares entre 2 y 1000 condición, escribir “iguales” y , en caso contario escribir “distintos”

Deber Deber

Ejercicios, capitulo 2Ejercicios, capitulo 22.22 32.32.6

Codificación de un programa Codificación de un programa

Codificación es la escritura de un lenguaje de programacióng j p gde la representación del algoritmo desarrollada en lasetapas precedentes. Dado que el diseño de un algoritmo esindependiente del lenguaje de programación utilizado parasu implementación, el código puede ser escrito con igualfacilidad en un lenguaje o en otrofacilidad en un lenguaje o en otro

Programación modular Programación modular La descomposición de un programa en módulos independientes mas simples se conoce como “divide y yvencerás”. Se diseña cada modulo con independencia de los demás hasta la de los demás hasta la descomposición del problema en módulos en forma jerárquicaforma jerárquica

Programación estructuradaProgramación estructuradaSe refiere a un conjunto de técnicas que aumentan

id bl l d i id d d l d i d lconsiderablemente la productividad del programa reduciendo eltiempo requerido para escribir, verificar, depurar y mantener losprogramas. La programación estructurada utiliza un numerolimitado de estructuras de control que minimizan la complejidadlimitado de estructuras de control que minimizan la complejidadde los programas y reducen los erroresLa programación estructurada es el conjunto de técnicas queiincorpora;

Recursos abstractosDiseño descendenteEstructuras básicas

Estructuras de control Estructuras de control

Las estructuras de control de un lenguaje de programación,g j p g ,son métodos de especificar el orden en que las instruccionesde un algoritmo se ejecutaran. El orden de ejecución de lassentencias o instrucciones determinan el flujo de controlLas estructuras de control básico son

SecuenciaSelección

i iórepetición

Resumen Resumen El sistema mas idóneo para resolver un problema esd l ód l ill l didescomponerlo en módulos mas sencillos, y luego mediantediseños descendentes y refinamiento sucesivo, llegar a módulosfácilmente codificables. Estos módulos se deben codificar con lasestructuras de control de programación estructuradaestructuras de control de programación estructuradaSecuenciales.- las instrucciones se ejecutan sucesivamenteRepetitivas.- una serie de instrucciones se repiten una y otra vezp p yhasta que se cumpla una cierta condiciónSelectivas.- permite elegir entre dos alternativas dependiendo deuna condición determinada

ESTRUCTURA GENERAL DE UN ESTRUCTURA GENERAL DE UN PROGRAMA

Contenido Contenido Partes constitutivas de un programaInstrucciones y tipos de instruccionesElementos básicos de un programaDatos, tipos de datos ExpresionesLa operación de asignación Estructura de algoritmoE l Ejemplos

Partes constitutivas de un programa Partes constitutivas de un programa

Conceptualmente un programa puede ser considerad comop p g puna caja negra. La caja negra o el algoritmo de resolución,en realidad es el conjunto de códigos que transforman lasentradas del programa (datos) en salidas (resultados)

Instrucciones y tipos de instrucciones Instrucciones y tipos de instrucciones El proceso de diseño del algoritmo o posteriormente decodificación del programa consiste en definir las acciones oinstrucciones que resolverán el problemaTipos de instruccionesTipos de instrucciones

Instrucciones de inicio/ finInstrucciones de asignaciónInstrucciones de lecturaInstrucciones de escrituraInstrucciones de bifurcaciónInstrucciones de bifurcación

Instrucciones de asignación Instrucciones de asignación

A 80 la variable A toma el valor de 80A 80 la variable A toma el valor de 80Cual será el valor que tomara la variable C tras la ejecución de las siguientes instruccionesejecución de las siguientes instruccionesA 80B AC DC D

Instrucciones de lectura y escrituraInstrucciones de lectura y escrituraEsta instrucción lee datos de un dispositivo de entradaEsta instrucción lee datos de un dispositivo de entrada

leer (A,B,C)Leer (num1)Leer (num1)

Estas instrucciones se escriben en un dispositivo de salidasalida

escribir (A,B,C)Escribir (n m1)Escribir (num1)

Instrucciones de bifurcaciónInstrucciones de bifurcación

El desarrollo lineal de un programa se interrumpeEl desarrollo lineal de un programa se interrumpecuando se ejecuta una bifurcación. Las bifurcacionespueden ser según el punto del programa a dondepueden ser, según el punto del programa a dondese bifurca, hacia adelante o hacia atrásL bif i l fl j dLas bifurcaciones en el flujo de un programa serealizan de modo condicional en función del

l d d l l ió l di ióresultado de la evaluación e la condición

Elementos básicos de un programa Elementos básicos de un programa Los elementos básicos constitutivos de un programa o algoritmo son;

Palabras reservadas (inicio, fin, si-entonces..etc.)identificadores (nombres de variables procedimientos etc )identificadores (nombres de variables, procedimientos..etc.)Caracteres especiales (coma, apostrofe, etc.)ConstantesVariablesExpresionesInstrucciones Instrucciones

ContCont…Además de estos elementos básicos, existen otros elementos quef d l ió f i iforman parte de los programas, cuya comprensión y funcionamientoserá vital para el correcto diseño de un algoritmo y la codificacióndel programa

lBucles AcumuladoresInterruptoresEstructuras

SecuencialesSelectivasRepetitivas

Datos tipos de datosDatos, tipos de datos

Los distintos tipos de datos se representan en Los distintos tipos de datos se representan en diferentes formas en la computadora. Los tipos de datos simple son los siguientes;datos simple son los siguientes;

Numéricos (integer, real)Ló i (b l )Lógicos (boolean)Carácter (chart, string)

Datos numéricos Datos numéricos

El tipo numérico es el conjunto de los valores El tipo numérico es el conjunto de los valores numéricos. Estos pueden representarse en dos formas distintas;formas distintas;

Tipo numérico entero (integer)5 15 20 65, -15, 20, 6

Tipo numérico real (real)0 8 8 12 3 17 5 0 1240 230.8, -8.12, 3.17, 5.0, 1240.23

Datos booleanos y tipo carácterDatos booleanos y tipo carácterEl tipo lógico es aquel dato que solo puede tomar uno dedos valores;

Verdadero (true)Faso (false)Faso (false)

El tipo carácter es el conjunto finito ordenado de caracteresque la computadora reconoce (A,B,C,a,b,c,1,2,3,+,-,*)Una cadena (string) de caracteres es una sucesión decaracteres que se encuentran delimitados por una comilla‘hola buen día’hola buen día

Constantes y variables Constantes y variables Los programas de computadora contienen ciertosvalores que no deben cambiar durante al ejecución delprograma. Tales valores se llaman constantesD i l f i t t l biDe igual forma existen otros valores que cambiarandurante la ejecución de del programa; a estos valoresse les llama variablesUna constante es una partida de datos que pertenecensin cambios durante todo el desarrollo del algoritmo od t l j ió d ldurante la ejecución del programa

Expresiones Expresiones Las expresiones son combinaciones de constantes,variables símbolos de operación, paréntesis y nombresde funciones especiales; por ejemplo; a+(b+3)+√3L i l ifiLas expresiones se clasifican en;

AritméticasRelacionalesRelacionalesLógicasCarácter

Expresiones aritméticas Expresiones aritméticas Las expresiones aritméticas son análogas a las formulas matemáticas

+ suma- resta- resta* multiplicación/ división**, ^ exponenciacióndiv división enteramod modulo (resto) mod modulo (resto)

Reglas de prioridad Reglas de prioridad Las operaciones aritméticas dentro de una pexpresión suelen seguir el siguiente orden de prioridad;

Operador exponecial (^, **)Operadores *,/p /Operadores div y modOperadores +,-p ,

Ejemplos Ejemplos -4*7+2^3/4-58+7*3+4*6Que se obtiene en las variables A, B, C después de ejecutar l i t i i i tlas instrucciones siguientes

A 3B 20C A+BB A+BA B CA B-C

Expresiones lógicas (booleanas)Expresiones lógicas (booleanas)Un segundo tipo de expresiones es la expresión lógica obooleana, cuyo valor es siempre verdadero o falsoOperadores de relación

< menor que< menor que> mayor que= igual que<= menor o igual que>= mayor o igual que<> distinto de <> distinto de

Operadores lógicos Operadores lógicos

Los operadores lógicos o booleanos básicos son; notLos operadores lógicos o booleanos básicos son; not(no), and (y) y or (o)

AND OR NOTAND OR NOT

Funciones internas Funciones internas Las operaciones que se requieren en losprogramas exigen en numerosasocasiones un numero determinado deoperadores especiales que sep p qdenominan funciones internas

La operación de asignación La operación de asignación La operación de asignación es el modo de almacenar valores p ga una variable. La operación de asignación se representa con el símbolo u operador

A 5X Y+2N N+1N 8<5

Entrada y salida de información Entrada y salida de información Los cálculos que realizan las computadoras requieren para serq p q pútiles la entrada de datos necesarios para ejecutar lasoperaciones que posteriormente se convertirán en resultados,es decir, salidaLeer (A, B, C)Escribir (‘hola a todos’)

Estructura de algoritmoEstructura de algoritmoUn algoritmo constara de dos componentes; una cabecera de

bl l i L b dprograma y un bloque algoritmo. La cabecera de programa es unaacción simple que comienza con la palabra algoritmo. Esta palabraestará seguida por el nombre asignado al programa. El bloquealgoritmo es el resto del programa y consta de dos componentes oalgoritmo es el resto del programa y consta de dos componentes osecciones; las acciones de declaración y las acciones ejecutables

AlgoritmoC b d lCabecera del programaSección de declaraciónSección de acciones

ContCont…Cabecera del programa o algoritmo

Todos los programas deben comenzar con una cabecera en la que se exprese elidentificador o nombre correspondiente

Declaración de variablesEn esta sección se declaran o describen todas las variables utilizadas en elalgoritmo

Declaración de constantesEn esta sección se declaran todas las constantes que tengan nombre

Comentarios La documentación del programa es el conjunto de información interna externa

l f l al programa que facilita su posterior mantenimiento

Ejemplos Ejemplos

Escriba un algoritmo que acepte 3 números enteros Escriba un algoritmo que acepte 3 números enteros e imprima el mayor de ellosDiseñar un algoritmo para resolver una ecuación de Diseñar un algoritmo para resolver una ecuación de segundo orden AX2+BX+C=0Escribir un algoritmo que calcule el producto de los n primeros números naturales

Deber Deber

Ejercicios, capitulo 3Ejercicios, capitulo 33.123 163.163.21

Patrón de prueba de pantalla panorámica (16:9)

Prueba de la relación de

aspecto

(Debe parecer circular)

16x9

4x3