Clase 2
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