Clase 2

47
RESOLUCIÓN DE PROBLEMAS CON M A A AM N A COMPUT ADORA Y HERRAMIENT AS DE PROGRAMACIÓN

Transcript of Clase 2

Page 1: Clase 2

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

DE PROGRAMACIÓN

Page 2: Clase 2

Contenido Contenido

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

Page 3: Clase 2

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

Page 4: Clase 2

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

Page 5: Clase 2

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

Page 6: Clase 2

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)

Page 7: Clase 2

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

Page 8: Clase 2

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

Page 9: Clase 2

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)

Page 10: Clase 2

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

Page 11: Clase 2

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

Page 12: Clase 2

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

Page 13: Clase 2

Ejemplo; Suma o producto Ejemplo; Suma o producto

Page 14: Clase 2

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”

Page 15: Clase 2

Deber Deber

Ejercicios, capitulo 2Ejercicios, capitulo 22.22 32.32.6

Page 16: Clase 2

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

Page 17: Clase 2

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

Page 18: Clase 2

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

Page 19: Clase 2

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

Page 20: Clase 2

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

Page 21: Clase 2

ESTRUCTURA GENERAL DE UN ESTRUCTURA GENERAL DE UN PROGRAMA

Page 22: Clase 2

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

Page 23: Clase 2

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)

Page 24: Clase 2

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

Page 25: Clase 2

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

Page 26: Clase 2

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)

Page 27: Clase 2

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

Page 28: Clase 2

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

Page 29: Clase 2

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

Page 30: Clase 2

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)

Page 31: Clase 2

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

Page 32: Clase 2

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

Page 33: Clase 2

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

Page 34: Clase 2

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

Page 35: Clase 2

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)

Page 36: Clase 2

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 ,

Page 37: Clase 2

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

Page 38: Clase 2

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

Page 39: Clase 2

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

Page 40: Clase 2

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

Page 41: Clase 2

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

Page 42: Clase 2

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’)

Page 43: Clase 2

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

Page 44: Clase 2

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

Page 45: Clase 2

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

Page 46: Clase 2

Deber Deber

Ejercicios, capitulo 3Ejercicios, capitulo 33.123 163.163.21

Page 47: Clase 2

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

Prueba de la relación de

aspecto

(Debe parecer circular)

16x9

4x3