CM-218 Fundamentos de Programacion
Transcript of CM-218 Fundamentos de Programacion
-
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