cm-218 fundamentos de programacion

Upload: dan

Post on 31-May-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 CM-218 Fundamentos de Programacion

    1/144

    Fundamentos de Programacin

    UANE

    CM-218

    Ing. Daniel De Santiago

  • 8/14/2019 CM-218 Fundamentos de Programacion

    2/144

    Temario

    Conceptos bsicos de programacin Estructura de un programa Elementos bsicos de un lenguaje Estructura de control Clases instanciables

  • 8/14/2019 CM-218 Fundamentos de Programacion

    3/144

    Introduccin

    Todos los das se tienen diferentes situaciones que

    uno debe de resolver. Como trasladarse a la escuela

    Como realizar una exposicion Como solucionar un problema matematico Analizar cuanto pagar por cierto producto y/o servicio

    Para resolver estas interrogantes necesariamente se

    tiene que seguir algun proceso, ya sea formal ointuitivamente

  • 8/14/2019 CM-218 Fundamentos de Programacion

    4/144

    Definicion de Problema

    El diccionario de la Real Academia Espaola lo

    define como: Conjunto de hechos o circunstancias que dificultan la

    consecucion de algun fin Planteamiento de una situacion cuya respuesta

    desconocida debe obtenerse a travez de metodos

    cientificos

    Una necesidad inicial, que tiene un objetivo osolucion a alcanzar mediante una serie de operaciones,

    actividades o metodos bien definidos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    5/144

    Problemas Informaticos

    Cuando hablamos deProblemas Informaticos es

    necesario aplicar procesos de razonamiento, para

    de esta forma asegurar que la solucion obtenida

    sea la mejor. Cuando se tiene unProblema Informatico se debe

    determinar cual es la Salida que se espera obtener

    con respecto a los Datos de Entrada

  • 8/14/2019 CM-218 Fundamentos de Programacion

    6/144

    Problemas Informaticos

    Las computadoras tiene como objetivos la

    Resolucion de problemas por medio de

    programas, por lo que podemos definir que estos

    se construyen a travez de un metodo para la

    solucion de problemas. Debe de quedar muy claro que no todos los

    problemas se pueden solucionar utilizando lacomputadora

  • 8/14/2019 CM-218 Fundamentos de Programacion

    7/144

    Problemas Informaticos

    Ejemplo: Buscar la ruta mas rapida para llegar a un lugar

    desconocido

    La computadora hace los calculos pertinentes y da unasolucion

    El Usuario decidira como transportarse al lugar Carro Bicicleta Camion Caminando

  • 8/14/2019 CM-218 Fundamentos de Programacion

    8/144

    Problemas Informaticos

    Las computadoras basan sus analisis en busquedas

    repetitivas que siempre permanecen en funcion a

    los datos La inteligencia humana es creativa (heuristica) y

    puede encontrar intuitivamente nuevas

    apreciaciones mas alla de los datos presentados

  • 8/14/2019 CM-218 Fundamentos de Programacion

    9/144

    Problemas Informaticos

    Los programas creados para la resolucion de

    problemas tienen un numero definido de

    alternativas de solucion El programador, a partir de la situacion inicial

    debe tener una idea sobre la solucion que se espera

    obtener para resolver determinado problema, y

    sobre el proceso que debera plantearse parasolucionarlo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    10/144

    Hombre vs Maquina

    La muestra de la mayor optimidad del razonamiento intuitivo humano

    (heuristico) frente al analisis repetitivo de una maquina son los

    enfretamientos entre el campeon mundial de ajedrez Garry Kasparov y la

    maquina Deep Blue. En el primer encuentro (1996) el maestro ruso se

    enfrento a una maquina que podia analizar 100,000,000 de posicionesposibles por cada segundo, y Kasparov gano 4 partidas y la maquina 2 con

    dos empates. En el segundo match la nueva version de Deep Blue

    analizaba 220,000,000 posiciones por segundo. La maquina gano 2

    partidas y Kasparov 1 y hubo 4 empates. Al resumir los dos

    enfrentamientos Kasparov gano 5 y la maquina 4, y hubo 6 empates. El

    dato curioso es que Kasparov solo puede analizar 3 posiciones por

    segundo. Como logro ganar entonces? La respuesta es sencilla: porque la

    capacidad intuitiva (heuristica) de Kasparov es muy superior a la de la

    maquina Deep Blue

  • 8/14/2019 CM-218 Fundamentos de Programacion

    11/144

    Definicion de Algoritmo

    Para resolver un problema ya sea de la vida diaria

    o computacional se deben seguir una serie de

    pasos con el fin de llegar a un objetivo A esta serie de pasos se le llama Algoritmo el cual

    se define como: Un conjunto finito de instrucciones o pasos que sirven

    para ejecutar una tarea o resolver un problema El termino Algoritmo proviene del nombre del

    matematico arabe AL-KHOREZMI

  • 8/14/2019 CM-218 Fundamentos de Programacion

    12/144

    Nota Interesante

    MUHAMMAD IBN MUSA ABU DJAFAR AL-

    KHOREZMI Matematico arabe que incorporo el concepto de cero

    creado por la matematica hindu y se propuso realizarlos analisis matematicos de la manera mas simplificada

    posible. De una palabra (al-jabr) de su obraEl libro de

    Igualar y restaurarproviene la palabra algebra y de

    su nombre (Al-Khorezmi) se origino el termino dealgoritmo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    13/144

    Definicion de Algoritmo

    Las caracteristicas fundamentales que debe

    cumplir todo algoritmo: Debe ser Preciso, e indicar el orden de realizacion de

    cada paso Debe ser Definido. Si se sigue un algoritmo dos veces,

    se debe obtener el mismo resultado cada vez. Debe ser Finito. Si se sigue un algoritmo, se debe

    terminar en algn momento ; o sea debe tener unnmero finito de pasos.

  • 8/14/2019 CM-218 Fundamentos de Programacion

    14/144

  • 8/14/2019 CM-218 Fundamentos de Programacion

    15/144

    Definicion de Algoritmo

    Inicio Traer gato Levantar el coche con el gato Aflojar tornillos de las llantas

    Sacar los tornillos de las llantas Quitar la llanta Poner la llanta de repuesto Poner los tornillos Apretar los tornillos Bajar el gato Fin

  • 8/14/2019 CM-218 Fundamentos de Programacion

    16/144

    Algoritmos Cotidianos

    Son aqullos que nos ayudan a resolver problemas

    diarios, y que los hacemos casi sin darnos cuenta

    de que estamos siguiendo una metodologa para

    resolverlos

    Algunos ejemplos son: Un cliente ejecuta un pedido a una fbrica. La fbrica

    examina en su banco de datos la ficha del cliente, si el

    cliente es solvente entonces la empresa acepta el

    pedido, en caso contrario rechazar el pedido.

  • 8/14/2019 CM-218 Fundamentos de Programacion

    17/144

    Algoritmos Cotidianos

    Pasos del algoritmo:

    Inicio

    Leer el pedido Examinar ficha del cliente Si el cliente es solvente aceptar pedido, en caso

    contrario rechazar pedido

    Fin

  • 8/14/2019 CM-218 Fundamentos de Programacion

    18/144

    Algoritmos Cotidianos

    Determinar el mayor de tres nmeros enteros Pasos del algoritmo:

    Inicio Comparar el primero y el segundo entero, deduciendo

    cul es el mayor Comparar el mayor anterior con el tercero y deducir

    cul es el mayor. Este ser el resultadoFin

  • 8/14/2019 CM-218 Fundamentos de Programacion

    19/144

    Algoritmos Cotidianos

    Los pasos anteriores se pueden descomponer en

    otros pasos ms simples en los que se denomina

    Refinamiento del Algoritmo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    20/144

    Algoritmos Cotidianos

    1. Obtener el primer nmero (entrada), denominado NUM1

    2. Obtener el segundo nmero (entrada), denominado NUM2

    3. Compara NUM1 con NUM2 y seleccionar el mayor ; si los

    dos enteros son iguales, seleccionar NUM1. Llamar a este

    nmero MAYOR

    4. Obtener el tercer nmero (entrada), y se denomina NUM3

    5. Compara MAYOR con NUM3 y seleccionar el mayor ; si los

    dos enteros son iguales, seleccionar el MAYOR. Denominar a

    este nmero MAYOR6. Presentar el valor MAYOR (salida)

    7. Fin

  • 8/14/2019 CM-218 Fundamentos de Programacion

    21/144

    Definicion de Lenguajes

    Algoritmicos

    Los algoritmos pueden describirse utilizando

    diversos lenguajes. Cada uno de estos lenguajes

    permiten describir los pasos con mayor o menor

    detalle.

    La clasificacin de los lenguajes para algoritmos

    puede enunciarse de la siguiente manera : Lenguaje Natural Lenguaje de Diagrama de Flujo Lenguaje Natural de Programacin Lenguaje de Programacin de Algoritmos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    22/144

    Definiciones

    Lenguaje Natural Es aqul que describe en espaol, para nuestro caso,

    los pasos a seguir utilizando un vocabulario cotidiano.

    Se le conoce como lenguaje jerga cuando se utilizan

    trminos especializados de una determinadaciencia,profesin o grupo.

    Lenguaje de Diagrama de Flujo Es aqul que se vale de diversos smbolos para

    representar las ideas o acciones a desarrollar. Es tilpara organizar las acciones o pasos de un algoritmo

    pero requiere de etapas posteriores para implementarse

    en un sistema de cmputo.

  • 8/14/2019 CM-218 Fundamentos de Programacion

    23/144

    Definiciones

    Lenguaje Natural de Programacin Son aqullos que estn orientados a la solucin de

    problemas que se definen de una manera precisa.

    Generalmente son aplicados para la elaboracin defrmulas o mtodos cientficos. El lenguaje natural

    tiene las siguientes caractersticas: Evita la ambigedad (algo confuso que se puede interpretar

    de varias maneras) Son precisos y bien definidos Utilizan trminos familiares al sentido comn Elimina instrucciones innecesarias

  • 8/14/2019 CM-218 Fundamentos de Programacion

    24/144

    Definiciones

    Lenguaje de Programacin de Algoritmos Es aqul que se utiliza para introducir en la

    computadora un algoritmo especfico. Se les conoce

    tambin comoLenguaje de Programacin

  • 8/14/2019 CM-218 Fundamentos de Programacion

    25/144

    Lenguajes de Programacion

    El Lenguaje de Programacin es un conjunto de

    palabras, smbolos y reglas sintcticas mediante

    los cuales puede indicarse a la computadora los

    pasos a seguir para resolver un problema. Los lenguajes de programacin pueden clasificarse

    por diversos criterios, siendo el ms comn su

    nivel de semejanza con el lenguaje natural, y su

    capacidad de manejo de niveles internos de la

    mquina.

  • 8/14/2019 CM-218 Fundamentos de Programacion

    26/144

    Lenguajes de Programacion

    Los principales tipos de lenguajes utilizados son

    tres: Lenguaje Mquina.

    Lenguaje de bajo Nivel (ensamblador). Lenguajes de Alto Nivel.

  • 8/14/2019 CM-218 Fundamentos de Programacion

    27/144

  • 8/14/2019 CM-218 Fundamentos de Programacion

    28/144

    Para convertir datos a cadenas de nmeros, las

    computadoras usan el sistema de nmeros

    binarios.Los humanos usamos el sistema de nmeros

    decimales. (deci significa diez)

    El sistema de nmeros binarios funciona de la

    misma manera que el sistema decimal, pero tienesolo dos posibles smbolos (0 y 1) en lugar de

    diez ( 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9).

    En numeros binarios el decimal 8 se representa

    como 1000, esto es 2^3 =8, los terminos 2^2, 2^1

    y 2^0 no se contabilizan porque el bit es 0, esto es

    su valor falso es y no se toman en cuenta.

    Base 10 Base 2

    0 0

    1 1

    2 10

    3 11

    4 100

    5 1016 110

    7 111

    8 1000

    9 1001

    10 1010

  • 8/14/2019 CM-218 Fundamentos de Programacion

    29/144

    1 0 1 1 0 0 1 01 0 0 1 0 0 1 01 0 0 1 0 0 1 11 1 1 1 1 1 1 1

  • 8/14/2019 CM-218 Fundamentos de Programacion

    30/144

    Lenguajes de Programacion

    Ventajas del Lenguaje Mquina Posibilidad de cargar (transferir un programa a la

    memoria) sin necesidad de traduccin posterior, lo que

    supone una velocidad de ejecucin superior a cualquier

    otro lenguaje de programacin Desventajas del Lenguaje Mquina

    Dificultad y lentitud en la codificacin Poca fiabilidad

    Gran dificultad para verificar y poner a punto losprogramas

    Los programas solo son ejecutables en el mismo

    procesador (CPU)

  • 8/14/2019 CM-218 Fundamentos de Programacion

    31/144

    Lenguajes de Programacion

    Lenguajes de Bajo Nivel Son ms fciles de utilizar que los lenguajes mquina,

    pero al igual que ellos, dependen de la mquina en

    particular El lenguaje de bajo nivel por excelencia es el

    ensamblador Las instrucciones en lenguaje ensamblador son

    instrucciones conocidas como nemot

    cnicos Ejemplos:

    ADD, SUB, DIV ADD M, N, P -> 0110 1001 1010 1011

  • 8/14/2019 CM-218 Fundamentos de Programacion

    32/144

    Lenguajes de Programacion

    Ventajas del lenguaje ensamblador frente al

    lenguaje mquina Mayor facilidad de codificacin y, en general, su

    velocidad de clculo

    Desventajas del lenguaje ensamblador Dependencia total de la mquina lo que impide la

    transportabilidad de los programas (El lenguajeensamblador de la PC es distinto del lenguaje

    ensamblador del la Apple)

  • 8/14/2019 CM-218 Fundamentos de Programacion

    33/144

    Lenguajes de Programacion

    La formacin de los programadores es ms compleja

    que la correspondiente a los programadores de alto

    nivel,ya que exige no solo las tcnicas de

    programacin, sino tambin el conocimiento del

    interior de la mquina Los lenguajes ensamblador tienen sus aplicaciones

    muy reducidas, se centran bsicamente en aplicaciones

    de tiempo real, control de procesos y de dispositivos

    electrnicos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    34/144

    Definicion de Problema

    El diccionario de la Real Academia Espaola lo

    define como: Conjunto de hechos o circunstancias que dificultan la

    consecucion de algun fin Planteamiento de una situacion cuya respuesta

    desconocida debe obtenerse a travez de metodos

    cientificos

    Una necesidad inicial, que tiene un objetivo osolucion a alcanzar mediante una serie de operaciones,

    actividades o metodos bien definidos

    Metodologia de Solucion de

  • 8/14/2019 CM-218 Fundamentos de Programacion

    35/144

    Metodologia de Solucion de

    Problemas

    Metodo: El conjunto de operaciones ordenadas

    con que se pretende obtener un resultado Metodologia: es la ciencia que aplica este metodo

    Metodologia de la Investigacion Metodologia de enseanza-aprendizaje Metodologia para resolver calculos matematicos Etc, etc, etc

    En este caso hablaremos especificamente de la

    solucion de problemas que podemos resolver

    mediante el uso de la computadora

  • 8/14/2019 CM-218 Fundamentos de Programacion

    36/144

    Resolucion de Problemas

    La resolucion de Problemas consta de 5 etapas:

    Identificacion del Problema

    Mas Importante Fundamental el analisis de la Informacion Inicial Definir los Datos de Salida

    Planteamiento de Alternativas de Solucion La solucion puede tener varias vias de soluciones

    Eleccion de una Alternativa Elejir la Alternativa mas adecuada tomando en cuenta las

    caracteristicas del Problema y la Solucion

  • 8/14/2019 CM-218 Fundamentos de Programacion

    37/144

  • 8/14/2019 CM-218 Fundamentos de Programacion

    38/144

    Resolucion de Problemas

    Ejercicio1: Encontrar entre 5 numeros cual

    numero es mayor y calcular el promedio de los 5

    numeros

    Identificacion del Problema: De los 5 numeros

    cual numero es el mayor y calcular el promedio Entrada de Informacion

    5 numeros enteros positivos cualesquiera Salida de Informacion

    Numero Mayor Promedio

    R l i d P bl

  • 8/14/2019 CM-218 Fundamentos de Programacion

    39/144

    Resolucion de Problemas

    Alternativas de Solucion: Alternativa 1

    Comparar el primer numeros a los otro 4 para ver si es el

    mayor, en caso de serlo mostrar este numero En caso de no serlo compara el segundo numero a los otros 3

    para ver si es el mayor, en caso de serlo mostrar este numero Asi sucesivamente hasta llegar al ultimo numero

    Alternativa 2

    Ordernar la lista de numeros de menor al mayor, y escojer elultimo numero de la lista. Mostrar el ultimo numero

    R l i d P bl

  • 8/14/2019 CM-218 Fundamentos de Programacion

    40/144

    Resolucion de Problemas

    Alternativa 3 Escojer el primero y segundo numeros, comparar cual es el

    mayor y escojerlo Compararlo con el tercer numero, escojer el mayor

    Compararlo con el cuarto numero, escojer el mayor Compararlo con el quinto numero, escojer el mayor

    Eleccion de una Alternativa

    Se escogio la Alternativa 3 por ser la mas completa,sencilla o mejor segun las necesidades

  • 8/14/2019 CM-218 Fundamentos de Programacion

    41/144

    R l i d P bl

  • 8/14/2019 CM-218 Fundamentos de Programacion

    42/144

    Resolucion de Problemas

    6.Comparar el Numero Mayor obtenido en paso 5 y

    compararlo con el Quinto Numero y escoger cual es el

    Mayor

    7.Mostrar el Numero Mayor

    8.Sumar todos los numeros y dividirlos por 5 para

    obtener el Promedio

    9.Mostrar el Promedio

    10.Fin

    R l i d P bl

  • 8/14/2019 CM-218 Fundamentos de Programacion

    43/144

    Resolucion de Problemas

    Ejercicio2: Si 2 refrescos cuestan $19.50, cuantos podemos

    comprar con $78.00? Usar las 5 etapas de resolucion de problemas y crear el

    programa en Pascal para calcular el resultado

    Estructura de los Algoritmos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    44/144

    Estructura de los Algoritmos

    Las estructuras basicas de los algoritmos son: Secuencial Alternativa Repetitiva

    Secuencial Sigue la secuencia del orden de las instrucciones

    planteadas en el algoritmo por lo que existe un solocamino para obtener el resultado

    Estructura de los Algoritmos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    45/144

    Estructura de los Algoritmos

    Ejemplo: Calcular el importe de un determinado

    numero de articulos del mismo precio

    1. Inicio2. Leer cantidad de articulos (CA)

    3. Leer precio (P)

    4. Importe = CA * P

    5. Mostrar Importe6. Fin

    Estructura de los Algoritmos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    46/144

    Estructura de los Algoritmos

    Alternativa El algoritmo cuenta con 2 alternativas de las cuales se

    selecciona una dependiendo del resultado que se

    obtenga

    Ejemplo: Calcular el importe de un determinado

    numero de articulos. Si el importe es mayor de

    $60.00USD aplicar un descuento de 5%

    Estructura de los Algoritmos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    47/144

    Estructura de los Algoritmos

    1. Inicio

    2. Leer cantidad de articulos (CA)

    3. Leer precio (P)

    4. Importe = CA * P

    5. Si Importe > 60.00 entonces

    i. Descuento = Importe * 0.05

    ii.Total = Importe Descuento

    iii.Mostrar Total

    iv.Contrarioa)Mostrar Importe

    v.Fin de SI

    6. Fin

    Estructura de los Algoritmos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    48/144

    Estructura de los Algoritmos

    Repetitiva: Cuando el algoritmo requiere que un conjunto de

    instrucciones se realice un numero finito de veces,

    siempre y cuando la condicion sea verdadera

    Ejemplo: Calcular el importe de un determinado

    numero de articulos de diferente precios que se

    encuentran en oferta donde el cliente podracomprar un maximo de 5 articulos de oferta

    Estructura de los Algoritmos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    49/144

    Estructura de los Algoritmos

    1.Inicio

    2.Importe = 0; CA = 0

    3.Leer precio (P)

    4.Leer cantidad (CA)5.Mientras CA

  • 8/14/2019 CM-218 Fundamentos de Programacion

    50/144

    Diagramas

    Diagramas Representacion grafica de una sucesion de hechos u

    operaciones en un sistema

    Los Algoritmos se pueden representar utilizando

    diagramas y se utilizan simbolos que representan

    determinada operacion

    Diagramas Entrada-Proceso-

  • 8/14/2019 CM-218 Fundamentos de Programacion

    51/144

    Salidad (EPS)Simbologia Significado

    Entrada/Salida.

    Datos de

    Entrada y

    Resultado

    Proceso.

    Operaciones para

    obtener el resultado

    Lineas de Flujo.

    Indica la

    secuencia de flujo

    de operaciones

    del diagrama

    Diagramas Entrada-Proceso-

  • 8/14/2019 CM-218 Fundamentos de Programacion

    52/144

    Salidad (EPS)

    2 = $19.50$78.00

    PR = 78/19.50RT = PR * 2

    RT = 8

    Diagramas de Flujos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    53/144

    Diagramas de Flujos

    Simbolo

    Inicio/Fin

    Entrada de Teclado.Representa el ingreso de los

    datos al programa

    Proceso. Representa las

    operaciones que se efectuan

    para obtener resultado

    Significado

    Diagramas de Flujos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    54/144

    Diagramas de Flujos

    Simbolo Significado

    Decision. Representa las

    operaciones tipo logico

    Salida de Impresora. Se utiliza

    para obtener el resultado

    Salida por Pantalla. Se utiliza solo

    para mostrar resultado

    Diagramas de Flujos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    55/144

    Diagramas de Flujos

    Simbolo Significado

    Conector. Se utliza para conectar

    bloques del diagrama cuando el

    diagrama es grande y necesario

    divirlo

    Lineas de Flujo. Indica la

    secuencia del flujo

    Diagramas de Flujos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    56/144

    Diagramas de Flujos

    Reglas para el Diseo de Diagramas de Flujos Deben disearse de arriba hacia abajo o de izquierda a

    derecha Los simbolos se unen con lineas de flujo. Las flechas

    determinan el flujo que seguira el programa Las lineas de flujo solo deberan ser horizontales o

    verticales, nunca en diagonal No deben de quedar lineas de flujo sin conectar con

    algun simbolo El texto incluido en los simbolos debera de ser

    concreto, preciso, y de facil leer

    Diagramas de Flujos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    57/144

    Diagramas de Flujos

    El simbolo de decision es el unico que tiene mas de

    una linea de flujo de salida Todos los simbolos, a exepcion del FIN, pueden tener

    mas de una linea de entrada

    Ejemplo: Estructura Secuencial

  • 8/14/2019 CM-218 Fundamentos de Programacion

    58/144

    Ejemplo: Estructura SecuencialInicio

    CA, P

    Importe = CA * P

    Importe

    Fin

    Calcular el importe de un

    determinado numero de

    articulos del mismo

    precio

    CA = Cantidad de

    Articulos

    P = Precio Unitario

    Ejemplo: Estructura Alternativa

  • 8/14/2019 CM-218 Fundamentos de Programacion

    59/144

    j p

    Calcular el importe de undeterminado numero de

    articulos.Si el importe es mayor de$60.00USD aplicar un

    descuentode 5%

    Ejemplo: Estructura Repetitiva

  • 8/14/2019 CM-218 Fundamentos de Programacion

    60/144

    j p p

    Calcular el importe de un

    determinadonumero de articulos de diferenteprecios que se encuentran en

    ofertadonde el cliente podra comprar un

    maximo de 5 articulos de oferta

    Pseudocodigo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    61/144

    g

    El Pseudocodigo es un lenguaje de

    especificaciones de algoritmos que utiliza palabras

    reservadas y exije la indentacion, o sea sangria en

    el margen izquierdo de algunas lineas. Ventajas sobre los Diagramas de Flujo:

    Rapido de crear y modificar Herramienta muy buena para el seguimiento de la

    logica de un algoritmo Facilidad de transformar los algoritmos a programas

    Pseudocodigo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    62/144

    g

    La estructura basica de un algoritmo escrito en

    pseudocodigo es:

    algoritmo

    // declaracion, setencias no ejecutables

    Inicio

    // acciones, sentencias ejecutables tanto simples como

    estructuradas

    Fin

    Pseudocodigo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    63/144

    g Para introducir un valor o serie de valores desde el

    dispositivo estandar y almacenarlos en una ovarias variables utilizaremos

    leer()

    Para imprimir en el dispositivo estandar de salidauna o varias expresiones emplearemos

    escribir () Los elementos lexicos de nuestro pseudocodigo

    son: Comentarios, Palabras reservadas,Identificadores, Operadores y signos de

    puntuacion y Literales

    Pseudocodigo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    64/144

    g

    Comentarios.- Los comentarios sirven para

    documentar el algoritmo y en ellos escriben

    anotaciones generalmente sobre su funcionamiento

    // Comentario de una sola linea

    { Comentario que ocupa mas

    de una linea }

  • 8/14/2019 CM-218 Fundamentos de Programacion

    65/144

    Pseudocodigo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    66/144

    Decision Simple:

    si entonces

    fin_si

    Decision doble:

    si entonces

    si_no

    fin_si

    PseudocodigoD i i l i l

  • 8/14/2019 CM-218 Fundamentos de Programacion

    67/144

    Decision multiples:

    segun_sea hacer

    : ...........

    [si_no //El corchete indica opcionalidad

    ]

    fin_segun

    Repetitivas:

    mientras hacer

    fin_mientras

    repetir

    hasta_que

    desde hasta

    [incremento | decremento ] hacer

    fin_desde

    Pseudocodigo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    68/144

    Identificadores.- son los nombres que dan a lasconstantes simbolicas, variables, funciones,

    procedimientos, u otros objetos que manipulan el

    algoritmo. Las reglas para construir unidentificador establece que: Debe resultar significativo, sugiriendo lo que

    representa

    No podra coincidir con palabras reservadas, propias dellenguaje algoritmicos.

    Comenzara con un caracter alfabetico y los siguientes

    podran ser letras, digitos o simbolo de subrayado

    Pseudocodigo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    69/144

    Operadores y signos de puntuacion Los operadores se utilizan en las expresiones e indican

    las operaciones a efectuar con los operandos, mientras

    que los signos de puntuacion se emplean con el

    objetivo de agrupar o separar, por ejemplo . ; o [ ] Literales

    Los literales son los valores que aparecen directamente

    escritos en el programa y pueden ser literales: logicos,

    enteros, reales, de tipo caracter, de tipo cadena y el

    literalnulo

    Ejercicios

  • 8/14/2019 CM-218 Fundamentos de Programacion

    70/144

    Escribir un algoritmo que lea un valor entero, lo doble, se multiplica por 25

    y visualice el resultado

    Analisis de Problema

    DATOS DE SALIDA: Resultado (es el resultado de realizar las operaciones

    DATOS DE ENTRADA: Numero (el numero que leemos por teclado

    Diseo del Algoritmo

    algoritmo ejercicio_3

    var

    numero, resultado : entero;

    inicioleer (numero);

    numero numero * 2;

    resultado numero * 25;

    escribir (resultado);

    fin.

    EjerciciosDi l it l t i bl l l i i d t

  • 8/14/2019 CM-218 Fundamentos de Programacion

    71/144

    Disear un algoritmo que lea cuatro variables y calcule e imprima su producto, su suma y

    su media aritmetica

    Analisis del Problema

    DATOS DE SALIDA: producto, suma y media

    DATOS DE ENTRADA: a, b, c, d

    Diseo del Algoritmo

    algoritmo ejercicio_4

    var

    a,b,c,d,producto, suma : entero;

    media : real;

    inicio

    leer (a,b,c,d);producto := a * b * c * d;

    suma := a + b + c + d;

    media := suma / 4

    escribir (producto,suma,media);

    fin.

    Tipos de Datos - ENTEROS

  • 8/14/2019 CM-218 Fundamentos de Programacion

    72/144

    Tipos de Datos - REAL

  • 8/14/2019 CM-218 Fundamentos de Programacion

    73/144

    Tipos de Datos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    74/144

    Tipo carcter (Char). El tipo Char depende del cdigo de caracteres

    empleado por la mquina. El ms utilizado es el cdigo

    ASCII. Una variable o constante tipo Char puede

    contener un solo carcter especificado entre apstrofes.Ejem. 'a' 'M'

    Tipo Lgico (Boolean). Pueden tomar dos valores True (verdadero) False

    (falso). El identificador estndar boolean define unavariable de este tipo

    Tipos de Datos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    75/144

    Tipo Cadena (String). Una cadena (string) es una secuencia de caracteres que

    tiene una longitud mxima de 255 caracteres. Los

    caracteres que componen la cadena se delimitan con

    apstrofes. Ejem. 'abcd' longitud de la cadena 4 '' cadena vaca o nula

  • 8/14/2019 CM-218 Fundamentos de Programacion

    76/144

    Tipos de Datos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    77/144

    ConstLonmax 80;

    Type

    Cadena = String[Lonmax];

    VarVarcad: Cadena; {*almacena hasta 80 caracteres*}

    Nombre: String; {*almacena hasta 255 caracteres*}

    Tipos de Datos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    78/144

    Existen dos diferentes tipos de datos simplesdefinidos por el usuario: enumerados y subrago

    Tipos enumerados: Los tipos enumerados secomponen de una lista de identificadores

    encerrados entre parntesis y separados por comas Ejemplo:

    TypeEstaciones = (primavera, verano, otoo, invierno);

    Colores (rojo, amarillo, verde, azul, violeta);

    Tipos de Datos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    79/144

    Los tipos enumerados son ordinales ya que llevanasociado cada uno un nmero entero, empezando por el

    primero, al que se le asigna el 0, al segundo un 1, y as

    sucesivamente, por lo que no es independiente el orden

    de declaracin. Un valor de tipo enumerado no puedepertenecer a dos declaraciones de tipo distintas y no

    pueden leerse desde teclado, ni escribirse en pantalla

  • 8/14/2019 CM-218 Fundamentos de Programacion

    80/144

    Tipos de Datos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    81/144

    Ejem. 2Type

    Fecha= 1..31;

    Var

    Dia: Fecha;

    Los tipos enteros, carcter, booleanos, enumerados y

    subrango se denominan tipos ordinales. Un tipo ordinal

    representa una secuencia ordenada de valores

    individuales, a los que se puede aplicar los conceptos

    de predecesor y sucesor. En cada tipo de datosordinales hay un primer valor y un ltimo valor

    Tipos de Datos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    82/144

    Constantes: Son datos cuyo valor no cambiadurante todo el desarrollo del algoritmo Numericas enteras Numericas reales Logicas Caracter Cadena

    Variable: Una variable es un objeto cuyo valor

    puede cambiar durante el desarrollo del algoritmo.

    Se identifica por su nombre y por su tipo

    Operadores Aritmeticos

  • 8/14/2019 CM-218 Fundamentos de Programacion

    83/144

    Operador Funcin

    + operador binario suma.

    - operador binario resta.

    * operador binario producto.

    / operador binario divisin real.

    div operador binario divisin entera.mod operador binario resto entero.

    Funciones PredefinidasInstruccin Funcin

  • 8/14/2019 CM-218 Fundamentos de Programacion

    84/144

    Abs(x) Proporciona el valor absoluto de una variable numerica x.

    ArcTan(x) El arco cuya tangente es x.

    Chr(x) Devuelve el carcter ASCII de un entero entre O y 255.

    Cos(x) Proporciona el valor del coseno de x.

    Exp(x) La exponencial de x(eX).

    Frac(x) Parte decimal de x.

    Int(x) Parte entera de x.

    Ln(x) Logaritmo neperiano de x.Odd(x) True si x es impar, y false si es par.

    Ord(x) Ordinal de una variable tipo ordinal x.

    Pred(x) Ordinal anterior a la variable ordinal x.

    Round(x) Entero ms prximo al valor x.

    Succ(x) Ordinal siguiente a la variable ordinal x.

    Sin(x) Seno de x.Sqr(x) Cuadrado de x.

    Sqrt(x) Raiz cuadrada de x, para x>=O.

    Trunc(x) Parte entera de x.

    Expresiones

  • 8/14/2019 CM-218 Fundamentos de Programacion

    85/144

    Una expresion es una combinacion de operadoresy operandos. Los operandos podran ser constantes,

    variables u otras expresiones y los operadores de

    cadena, aritmeticos, relacionales o logicos. Las

    expresiones se clasifican, segun el resultado que se

    producen, en: Numericas

    Alfanumericas Booleanas

    Expresiones

  • 8/14/2019 CM-218 Fundamentos de Programacion

    86/144

    El orden de prioridad es el siguiente: Parentesis Exponenciacion Operadores unarios

    Multiplicacion y Division Suma y Resta Operadores de relacion (=, , =, )

    La evaluacion de operadores con la misma

    prioridad se realizara siempre de izquierda aderecha.

    Ejercicios

  • 8/14/2019 CM-218 Fundamentos de Programacion

    87/144

    Escribir un programa que calcule la longitud y elrea de una circunferencia. El radio de la

    circunferencia es igual a 4cm.

    Escribir un programa en Pascal que calcule la

    velocidad de un proyectil que recorre 2 Km en 5

    minutos. Expresar el resultado en metros/segundo.

    Ejercicios

  • 8/14/2019 CM-218 Fundamentos de Programacion

    88/144

    Escribir un programa en Pascal que evale lasiguiente expresin:

    a = 3,b = 6,c = 4 Escribir un programa en Pascal que evale la

    siguiente expresin:

    x = 3,y = 6

    a7c

    b2a2b

    x53

    2yy

    Tecnicas de Diseo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    89/144

    Existen tres tecnicas en el diseo de programacionestructurada: Top down Bottom Up

    WARNIER ORR

    Tecnicas de Diseo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    90/144

    Top Down Tcnica para disear que consiste en tomar el problema

    en forma inicial como una cuestin global y

    descomponerlo sucesivamente en problemas ms

    pequeos y por lo tanto, de solucin ms sencilla. Ladescomposicin del problema original (y de las etapas

    subsecuentes), puede detenerse cuando los problemas

    resultantes alcanzan un nivel de detalle que el

    programador o analista pueden implementarfcilmente.

    Tecnicas de Diseo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    91/144

    Objetivos bsicos del TopDown Simplificacin del problema y de los subprogramas de

    cada descomposicin Las diferentes partes del problema pueden ser

    programadas de modo independiente e incluso pordiferentes personas.

    El programa final queda estructurado en forma de

    bloque o mdulos lo que hace mas sencilla su lectura y

    mantenimiento

    Tecnicas de Diseo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    92/144

    Bottom Up Es conocida tambin como ascendente, la diferencia

    entre el bottom up y el top down es que los mdulos

    son enumerados de forma diferente. En el bottom up se

    enumeran primero los mdulos inferiores hasta llegaral modulo superior

    Tecnicas de Diseo

  • 8/14/2019 CM-218 Fundamentos de Programacion

    93/144

    Warnier Orr Es una tcnica que utiliza una representacin semejante

    a la de cuadros sinpticos para mostrar el

    funcionamiento y organizacin de los elementos que

    conforman el algoritmo. Los diagramas Warnier Orrson tiles porque son compatibles con las tcnicas de

    programacin estructurada ; y adems, son fciles de

    desarrollar. Los diagramas Warnier Orr son fciles de

    leer y modificar y no tienen que completarse antes deser tiles. Se van desarrollando hacia otras salidas del

    sistema

    Datos Estructurados

  • 8/14/2019 CM-218 Fundamentos de Programacion

    94/144

    Una estructura de datos es una coleccion de datosque se caracterizan por su organizacion y las

    operaciones que se defina en ella. Las estructuras se clasifican de acuerdo a varios

    criterios: Respecto al nmero de componentes, las estructuras

    se clasifican en estticas (el nmero de componentes es

    fijo) y dinmicas (el nmero de componentes vara

    durante la ejecucin del programa ya que se pueden

    crear y destruir las variables durante el desarrollo del

    mismo

    Datos Estructurados

  • 8/14/2019 CM-218 Fundamentos de Programacion

    95/144

    Respecto al tipo de componentes las estructuras suelenformarse o bien por combinacin de datos de distinto

    tipo (registros) o bien por la repeticin de datos del

    mismo tipo (arrays,conjuntos archivos, listas, rboles,

    etc.). Dentro de stas el acceso puede hacerse porposicion, ya sea de forma secuencial o bien directa, o

    bien por contenido o clave

    Datos Estructurados

  • 8/14/2019 CM-218 Fundamentos de Programacion

    96/144

    Estructura de datos estaticas Arrays Registros Cadenas

    Conjuntos Archivos

    Estructura de datos dinamicas (no soportada en

    todo los lenguajes) Listas Arboles Grafos

    Arrays

  • 8/14/2019 CM-218 Fundamentos de Programacion

    97/144

    Un Array es una estructura homognea de datos detamao constante accediendo a cada uno de sus

    elementos mediante un identificador comun y uno

    o varios ndices

    Las caracteristicas de un array son: Todos los elementos del array son del mismo tipo

    El n

    mero de ellos no var

    a durante la ejecuci

    n delprograma

    Arrays

  • 8/14/2019 CM-218 Fundamentos de Programacion

    98/144

    Accedemos a un elemento de la estructura mediante unidentificador comn, el nombre del array, y con el

    valor que toman uno o varios indices. Al nmero de

    indices necesarios para designar un elemento del array

    se le denomina dimensin del array El nmero mximo de valores posibles que puede

    tomar cada indice se denomina rango de esa dimensin

    o indice. Los valores han de ser consecutivos, por lo

    que el indice ha de ser de un tipo ordinal

    Arrays

  • 8/14/2019 CM-218 Fundamentos de Programacion

    99/144

    Los Arrays podran ser: Unidimensionales (una dimension), tambien llamados

    vectores Bidimensionales (dos dimensiones), denominados

    tablas o matrices Multidimensionales, con tres o mas dimensiones

    Declaracion de Tipo y VariablesArray

  • 8/14/2019 CM-218 Fundamentos de Programacion

    100/144

    Al ser un tipo estructurado, la declaracion se haraen funcion de otro tipo estandar o previamente

    definido, al que se denominara tipo base, por se

    todos los elementos constituyentes de la estructura

    del mismo tipo La declaracion mas general de un array es la

    siguiente:

    Declaracion de Tipo y VariablesArray

  • 8/14/2019 CM-218 Fundamentos de Programacion

    101/144

    TypeRango1 = tipo_ordinal1;

    Rango2 = tipo_ordinal2;

    ...

    rangoN = tipo_ordinalN;tipobase = (*cualquier predefinido o definido por el usuario*)

    tipoarray = array [rango1,rango2,...,rangoN] of tipobase,

    Ejemplo de Array Unidimensionalprogram Arrays; //almacenar informacion dentro del array a

  • 8/14/2019 CM-218 Fundamentos de Programacion

    102/144

    var a: array[1..5] of Integer;

    begin

    a[1] := 12;

    a[2] := 23;

    a[3] := 34;

    a[4] := 45;

    a[5] := 56;

    end.

    Ejemplo de Array Unidimensional

    program Arrays; //ejemplo de leer 5 numeros

  • 8/14/2019 CM-218 Fundamentos de Programacion

    103/144

    var a: array[1..5] of Integer;

    i: Integer;

    begin

    for i := 1 to 5 do

    Readln(a[i]);

    end.

    Ejemplo de Array Bidimensional

    program Arrays_Bidimensional;

  • 8/14/2019 CM-218 Fundamentos de Programacion

    104/144

    var

    a: array [1..3,1..3] of Integer;

    begin

    end.

    Ejemplo de Array Bidimensional

    A Bidi i l

  • 8/14/2019 CM-218 Fundamentos de Programacion

    105/144

    program Arrays_Bidimensional;

    var

    r, c: Integer;

    a: array [1..3,1..3] of Integer;

    begin

    for r := 1 to 3 do

    for c := 1 to 3 do

    Readln(a[r,c]);

    end.

    Recorrido de todos los elementosdel Array

  • 8/14/2019 CM-218 Fundamentos de Programacion

    106/144

    El recorrido de todos los elementos de un array serealizara utilizando estructuras repetitivas, con las que se

    manejan los subindices del array. Si se trata de un array unidimensional, bastara con una

    estructura repetitiva Para un array bidimensional se necesitaran 2 estructuras

    repetitivas anidadas, una que controle la filas y otra las

    columnas

    Para recorrer los elementos de una matriz de ndimensiones, utilizaremos n estructuras reprtitivas

    anidadas

  • 8/14/2019 CM-218 Fundamentos de Programacion

    107/144

    Ejemplo: Por Fila

  • 8/14/2019 CM-218 Fundamentos de Programacion

    108/144

    Recorrido por Fila

    Desde I 1 hasta F hacer

    desde j 1 hasta C hacer

    escribir (m[i,j]);

    fin_desde

    fin_desde

    Ejemplo: Por Columna

  • 8/14/2019 CM-218 Fundamentos de Programacion

    109/144

    Recorrido por Columna

    desde j hasta C hacer

    desde I hasta F hacer

    escribir (m[i,j]);

    fin_desde

    fin_desde

    Ejercicios

  • 8/14/2019 CM-218 Fundamentos de Programacion

    110/144

    Determinar los valores de los vectoresNyMdespues de la ejecucion de las instrucciones

    siguientes:

    Var

    M, N : array[1..3] of integer;

    Inicio

    M[1] 1

    M[2] 2

    Ejercicios

  • 8/14/2019 CM-218 Fundamentos de Programacion

    111/144

    M[3] 3;N[1] M[1] + M[2];

    N[2] M[1] M[3];

    N[3] M[2] + M[3];

    N[1] M[3] M[1];

    M[2] 2 * N[1] + N[2];

    M[1] N[2] + M[1];

    End

    Ejercicios

  • 8/14/2019 CM-218 Fundamentos de Programacion

    112/144

    M[1] M[2] M[3] N[1] N[2] N[3]

    1 1 - - - - -

    2 1 2 - - - -

    3 1 2 3 - - -

    4 1 2 3 3 - -

    5 1 2 3 3 -2 -

    6 1 2 3 3 -2 5

    7 1 2 3 2 -2 6

    8 1 6 3 2 -2 5

    9 1 6 3 2 -2 5

  • 8/14/2019 CM-218 Fundamentos de Programacion

    113/144

    Operaciones con Cadenas

  • 8/14/2019 CM-218 Fundamentos de Programacion

    114/144

    La funcion concat realiza la misma funcion que eloperador de concatenacion. La sintxis es:

    Function concat (cad1,cad2,...:string): string;

    La cadena vacia o nula se representa con dos

    caracteres apstrofes seguidos ' '. El acceso a los

    elementos de una cadena individualmente se hace

    como si fuera un array

    Operaciones con Cadenas

  • 8/14/2019 CM-218 Fundamentos de Programacion

    115/144

    Ejemplo. Cad1:='ejemplo'; Para referirnos al primer elemento pondriamos cad1[1]

    que seria la letra e

    La funcion Length proporciona la longitud logica

    de una cadena de caracteres. Ejemplo.

    Longitud:=length(cad1); La variable longitud tomaria el valor 7

    Operaciones con Cadenas

  • 8/14/2019 CM-218 Fundamentos de Programacion

    116/144

    Funciones para Cadenas COPY POS DELETE

    INSERT UPCASE STR VAL

    Ejercicios

  • 8/14/2019 CM-218 Fundamentos de Programacion

    117/144

    Escribir un programa en Pascal que calcule el reade un rectngulo: lado1 = 3 lado2 = 4 rea del rectngulo=lado1 * lado2

    Escribir un programa en Pascal que calcule el

    volumen de una esfera: radio = 3 volumen de la esfera = 4/3 * PI * radio 3

    Ejercicios

  • 8/14/2019 CM-218 Fundamentos de Programacion

    118/144

    Escribir un programa en Pascal que calcule lahipotenusa de un tringulo rectngulo cateto 1 = 5 cateto 2 = 5

    Escribir un programa en Pascal que calcula el

    equivalente en grados Fahrenheit o Celsius de las

    siguientes temperaturas. Temperatura 1 = 32o Fahrenheit Temperatura 2 = 10 o Celsius {Regla de 3: Celsius / 5 = (Fahrenheit 32) 9}

  • 8/14/2019 CM-218 Fundamentos de Programacion

    119/144

    Modulos/Rutinas/Subprogramas

  • 8/14/2019 CM-218 Fundamentos de Programacion

    120/144

    Cuando se presenta la necesidad de ejecutar un mismogrupo de sentencias en distintos lugares del programa,

    conviene disponer de algn recurso para no tener que

    escribirlas repetidamente, lo cual resulta tedioso y

    presenta otros inconvenientes. La solucin que se suele ofrecer consiste en agrupar cada

    uno de esos conjuntos de sentencias destacndolos y

    asignndoles un nombre, constituyendo as las llamadas

    RUTINAS o subprogramas. Luego, basta con invocar su

    nombre en cualquier sentencia para conseguir que se

    ejecute todo el conjunto.

    Modulos/Rutinas/Subprogramas

  • 8/14/2019 CM-218 Fundamentos de Programacion

    121/144

    Con ese enfoque, el programa queda organizadoen mdulos que se expresan en forma de rutinas.

    Una recomendacin muy extendida propone que la

    escritura de cada subprograma no sobrepase el

    tamao de un folio para facilitar su lectura ycomprensin

    Modulos/Rutinas/Subprogramas

  • 8/14/2019 CM-218 Fundamentos de Programacion

    122/144

    El diseo modular va dirigido a conseguirprogramas fiables y legibles:

    El esfuerzo de la programacin se concentra finalmente

    en subproblemas pequeos y sencillos Es fcil escribir mdulos pequeos libres de error y

    verificarlos independientemente con datos simulados Los listados pequeos son ms legibles

    Resulta natural la adaptacin al trabajo en equipo. Lastareas de desarrollar los mdulos se pueden repartir

    entre varias personas

    Modulos/Rutinas/Subprogramas

  • 8/14/2019 CM-218 Fundamentos de Programacion

    123/144

    El inters de utilizar subprogramas tambin sejustifica por la construccin de bibliotecas de

    rutinas de utilidad general que puedan ser

    invocadas desde los programas que escribe el

    usuario para resolver casos particulares

    Modulos/Rutinas/Subprogramas

    d j d i d

  • 8/14/2019 CM-218 Fundamentos de Programacion

    124/144

    En PASCAL, se pueden manejar dos tipos derutinas: los PROCEDIMIENTOS y las

    FUNCIONES

    Los Procedimientos y Funciones se deben dedeclarar afuera del programa principal, deben de

    identificarse con nombres unicos y tiene sus

    propios begin y end.

    Modulos/Rutinas/Subprogramas

    L dif i i

  • 8/14/2019 CM-218 Fundamentos de Programacion

    125/144

    La diferencia ms importante entre unprocedimiento y una funcin es el hecho de que

    una funcin es una expresin y como a tal se

    puede emplear dentro de otras expresiones. Un

    procedimiento, en cambio, representa unainstruccin y no puede ser empleada dentro de un

    contexto de expresin.

    Las funciones devuelven siempre un valor de untipo determinado

  • 8/14/2019 CM-218 Fundamentos de Programacion

    126/144

    Funciones (Function) - EjemplosFunction Mayor(a,b,c:Integer):Integer;

    {Funcion nombrada Mayor para calcular cual

    }

  • 8/14/2019 CM-218 Fundamentos de Programacion

    127/144

    numero es mayor}begin

    if a >= b then

    if a > c then

    Mayor := a

    elseMayor := c

    else

    if b >= c then

    Mayor := b

    else

    Mayor := c;

    end; {Fin de la funcion Mayor}

    Funciones (Function) - Ejemplos

    VAR r, radio, circulo, esfera : REAL;

    FUNCTION Potencia ( base:REAL exponente:INTEGER):REAL;

  • 8/14/2019 CM-218 Fundamentos de Programacion

    128/144

    FUNCTION Potencia ( base:REAL, exponente:INTEGER):REAL;VAR i : INTEGER;

    BEGIN

    Potencia := 1;

    FOR i:=1 TO exponente DO Potencia:=Potencia*base

    END;...

    circulo := 3.1416 * Potencia (radio, 2);

    esfera := 4/3 * 3.1416 * Potencia (r, 3);

    Procedimientos (Procedure)

    Los procedimientos se declaran de forma parecida a las

    f i i ifi l ti d lid

  • 8/14/2019 CM-218 Fundamentos de Programacion

    129/144

    funciones pero sin especificar el tipo de salida ya que notienen. Por ejemplo el procedimiento Creditos escribira

    unos crditos en la pantalla :

    procedure Creditos;

    beginWriteln('Fundamento de Programacion'

    Writeln('Prof. Daniel De Santiago');

    end;

    Procedimientos (Procedure)

    L d l i d di i t i l

  • 8/14/2019 CM-218 Fundamentos de Programacion

    130/144

    La declaracin de un procedimiento sigue elmodelo siguiente :

    procedure identificador (lista de parmetros formales);

    Seccin de las declaraciones;begin

    Seccin ejecutable

    end;

    Procedimientos (Procedure)

    Identificador: da nombre a la rutina y se utiliza para

    i l l li i j i S i i d

  • 8/14/2019 CM-218 Fundamentos de Programacion

    131/144

    invocarla al solicitar su ejecucin. Se construye siguiendo

    las mismas reglas que rigen para las constantes y las

    variables. Lista de parmetros formales : especificacin de los

    identificadores que se utilizan para comunicar valores conotros mdulos del programa. Se indican sus tipos y los

    mecanismos para la transferencia.

    Procedimientos (Procedure)

    Seccin de las declaraciones : contiene las declaraciones de

    t d l tid d d fi id l i tili

  • 8/14/2019 CM-218 Fundamentos de Programacion

    132/144

    todas las entidades definidas por el usuario que se utilizan

    dentro de la rutina: etiquetas, constantes, tipos,variables,

    procedimientos, funciones. Son identificadores locales. No

    se admite la inicializacion de variables. No se puede volver

    a declarar los nombres de los parmetros formales. Seccin ejecutable : contiene las sentencias con las que se

    realizan las acciones que constituyen el subprograma.

    Termina con el delimitador END seguido de punto y coma.

    Procedimientos (Procedure)

    Hasta ahora hemos visto que una funci

    n puede

  • 8/14/2019 CM-218 Fundamentos de Programacion

    133/144

    Hasta ahora hemos visto que una funci n puededevolver un valor y que por tanto la podemos

    incluir dentro de una expresin. Muchas veces nos

    puede interesar especificar parmetros que

    implique en un cambio en estos parmetros y estono es posible de implementar en una simple

    funcin.

    Procedimientos (Procedure)

    Supongamos un procedimientos en el cual pasando

  • 8/14/2019 CM-218 Fundamentos de Programacion

    134/144

    Supongamos un procedimientos en el cual pasandodos parmetros de tipo entero queremos que se

    intercambien los valores. Una forma de hacerlo es

    mediante sumas y restas. Nosotros

    implementaremos un caso ms general mediante eluso de una tercera variable temporal.

    Procedimientos (Procedure)

    procedure Intercambiar(var a : integer; var b : integer);

    { Podamos haber escrito como parmetros (var a b :

  • 8/14/2019 CM-218 Fundamentos de Programacion

    135/144

    { Podamos haber escrito como parmetros (var a, b :integer); }

    var

    temporal : integer;

    begin

    temporal := b;

    b := a;

    a := temporal;end;

    Parametros

    Los par

    metros son canales de comunicaci

    n parad b

  • 8/14/2019 CM-218 Fundamentos de Programacion

    136/144

    Los par metros son canales de comunicaci n parapasar datos ente programas y subprogramas en

    ambos sentidos Los parmetros van asociados a variables,

    constantes, expresiones, etc., y por tanto, seindican mediante los correspondientes

    identificadores o expresiones

    Parametros

    Existen 2 tipos de Parametros:P t V l

  • 8/14/2019 CM-218 Fundamentos de Programacion

    137/144

    Existen 2 tipos de Parametros: Parametros por Valor Parametros por Referencia

    Los Parametros por Valor no son nada ms queuna copia de los parmetros originales que se

    crean slo para la funcin o procedimiento. Una

    vez termina esta copia desaparece, por lo que toda

    modificacin que hagamos dentro de la funcin oprocedimiento se perder.

    Parametros

    Los Parametros por Referencia la funci

    n odi i t t t l i i d

  • 8/14/2019 CM-218 Fundamentos de Programacion

    138/144

    Los Parametros por Referencia la funci n oprocedimiento conoce exactamente la posicin de

    memoria del parmetro por lo que las

    modificaciones que hagamos dentro de la funcin

    o procedimiento permanecern despus de lallamada. Para indicar que un parmetro es por

    referencia incluiremos la palabra reservada Var

    delante del parmetro

    Estructura de Pascal

    Ver la figura siguiente de como seria la estructurad P l

  • 8/14/2019 CM-218 Fundamentos de Programacion

    139/144

    Ver la figura siguiente de como seria la estructurade Pascal

  • 8/14/2019 CM-218 Fundamentos de Programacion

    140/144

  • 8/14/2019 CM-218 Fundamentos de Programacion

    141/144

    Ejercicios

    Escribir un programa en Pascal que calcule elfactorial de un nmero

  • 8/14/2019 CM-218 Fundamentos de Programacion

    142/144

    Escribir un programa en Pascal que calcule elfactorial de un nmero

    A partir de las cadenas de caracteres 70809207 y

    Q, construir y visualizar en la pantalla la cadena70809207-Q

    Escribir un programa en Pascal que rellene un

    array con diez nmeros enteros consecutivos y

    haga una copia de ese array en otro

    Ejercicios

    Escribir un programa en Pascal que calcule elsalario neto semanal de un trabajador en funcin

  • 8/14/2019 CM-218 Fundamentos de Programacion

    143/144

    sc b u p og a a e asca que ca cu e esalario neto semanal de un trabajador en funcin

    del nmero de horas trabajadas y la tasa de

    impuestos de acuerdo a las siguientes hiptesis.

    Las primeras 35 horas se pagan a tarifa normal Las horas que pasen de 35 se pagan 1.5 veces la tarifa

    normal Las tasas de impuestos son:

    a: Los primeros 50 d

    lares son libres de impuestos b: Los siguientes 40 dlares tienen un 25% de impuestos c: Los restantes de 45% de impuestos

    Ejercicios

    Escribir un programa en Pascal que sume los elementos de

    cada una de las filas y de las columnas de la siguiente

  • 8/14/2019 CM-218 Fundamentos de Programacion

    144/144

    cada una de las filas y de las columnas de la siguiente

    matriz; el resultado de cada suma se almacenar en la

    ltima posicin de la fila o columna correspondiente.

    Adems la suma total de todos los elementos de la matriz

    se almacenar en el elemento de la esquina inferior

    derecha de la matriz:

    1 7 0

    5 6 0

    6 4 07 3 0

    0 0 0