Professional Documents
Culture Documents
Met Programacion PDF
Met Programacion PDF
Ejemplos:
1) Organigrama de una aplicación que realiza un listado por impresora de los alumnos
de un centro que están almacenados en un disco llamado ALUMNOS.
Ejemplo 1 Ejemplo 2
U.T .
U.T.
LIST AD O DE
LISTADO DE ALUMNOS VISUALIZ ACIÓN
ERRO RES DE DAT OS
Es la representación gráfica del algoritmo. Debe ser amplia y ordenada y no contener errores.
En el ordinograma vendrá reflejado: El principio del proceso, las operaciones que se van a realizar, en
el orden que se haya establecido, y el final del proceso.
Organigramas:
DATOS CAN 1
D AT OS BASE Y
ALTU RA Y CAN 2
PR OCESO
PROCESO
R ESULTADO
RESULTA DO
Ordinogramas:
Ejercicio 1 Ejercicio 2
INICIO INICIO
FIN FIN
procedure
definiciones de procedimientos;
function
definiciones de funciones;
begin
sentencias; {cuerpo del programa}
end.
Donde:
• nombre de programa : Es el identificador por el que se designa al programa.
• lista de librerías: Aquí se pondrán los nombres de las librerías que utiliza el
programa. Por ejemplo en la librería crt están definidas todas las operaciones
relacionadas con el teclado y la pantalla.
• definición de constantes : Aquí se pondrán aquellos datos que se utilizan en el
programa pero que no alteran su valor en ningún momento.
• declaración de tipos de datos definidos por el usuario : Aquí se definen otros tipos
de datos.
• declaración de variables: Aquí se encuentran las variables del programa, su
identificador y su tipo.
• En definiciones de procedimientos y definiciones de funciones: se definen los
subprogramas que tendrá nuestro programa.
• sentencias : Aquí se pondrán las operaciones que realiza el programa.
/* Estructura de un programa C */
#include ... /*directivas archivos de cabecera */
• Las directivas las utilizamos para indicar los archivos de cabecera, que contienen las funciones del
lenguaje, que se utilizan en los programas.
• Una función Principal llamada main. Es la función que se ejecuta en primer lugar.
• El código de main()
• Las llamadas a funciones desde main.
• Desarrollo de las funciones declaradas por el usuario.
DECLARACIONES
PROGRAMA
Entrada de datos
INSTRUCCIONES Proceso o algoritmo
Salida de resultados
2.2.1 Entrada.
La constituyen todas las instrucciones que toman los datos de entrada desde un
dispositivo externo y los almacenan en la memoria central para que puedan ser
procesados.
2.2.2 Proceso.
Está formado por las instrucciones que modifican los objetos a partir de su estado
inicial (datos de entrada) hasta el estado final (resultados), dejando los objetos que lo
contienen disponibles en la memoria central.
2.2.3 Salida.
2.3.1 De declaración.
En C En seudocódigo
/*constantes*/
#define VERDADERO 1 Declaraciones
#define CIEN 100 Constantes
#define IVA 0.17 VERDADERO = 1
CIEN = 100
/*variables*/ IVA=0.17
char car1, car2, car3; Variables
int m, n; carácter car1, car2, car3
float x, y; enteras m, n
reales x, y
2.3.2 Primitivas.
Son aquellas que ejecuta el procesador de modo inmediato. Pueden ser: de entrada,
de asignación o de salida.
2.3.2.1 De entrada
Su misión consiste en tomar uno o varios datos desde un dispositivo de entrada y
almacenarlos en la memoria central en los objetos cuyos identificadores aparecen en
la propia instrucción.
EN C:
Nombre
scanf("control", campo);
scanf("%s", nombre);
scanf("%d", &Num);
2.3.2.2 De asignación
Nos permite realizar cálculos evaluando una expresión y depositando su valor final en
un objeto o realizar movimientos de datos de un objeto a otro.
EN C:
variable = expresión;
su m a= 0
suma = 0;
suma = suma + 100; su m a= su m a+1 00
contador = contador + 1;
2.3.2.3 De salida.
Su misión consiste en enviar datos a un dispositivo externo, bien tomándolos de
objetos depositados en la memoria central o definidos de alguna forma en la propia
instrucción. Ejemplos en Pascal:
EN C:
printf(Control,campo1,campo2,....);
2.3.3 De control.
2.3.3.1 Alternativas.
Son aquellas que controlan la ejecución de uno o varios bloques de instrucciones,
dependiendo del cumplimiento o no de alguna condición o del valor final de una
expresión. Existen 3 modelos típicos de instrucciones alternativas: alternativa simple,
doble y múltiple.
En seudocódigo:
Si expresión_lógica entonces
Acción1
Acción2
..........
Fin-si
SI
CONDICION
En C:
NO ACCIONES
Una sola sentencia
if (expresión) sentencia_v;
Varias sentencias
if (expresión)
{
sentencia1;
sentencia2;
.............
sentencian;
}
NO SI
CONDICION
AC CIO NF ACCIO NV
En seudocódigo:
Si expresión_lógica entonces
Acción_v1
Acción_v2
..........
Si no
Acción_f1
Acción_f2
............
Fin-si
En C:
Varias sentencias
if (expresión)
{
sentencia_v1;
sentencia_v2;
.............
sentencia_vn;
}
else
{
sentencia_f1;
sentencia_f2;
.............
sentencia_fn;
}
EXP RESIÓN
EN LENGUAJE C EN SEUDOCÓDIGO
switch (expresión) Según sea (expresión)
{ Valor1:
case constante1: Instrucción1
secuencia de sentencias; Instrucción2
break; ...........
case constante2: Valor2:
secuencia de sentencias; Instrucción1
break; Instrucción2
case constante3: .............
secuencia de sentencias; ............
break; Otros:
. Instrucción1
. Instrucción2
default: ..............
secuencia de sentencias; Fin-según-sea
2.3.3.2 Repetitivas
Son aquellas que controlan la repetición de un conjunto de instrucciones denominado rango
mediante la evaluación de una condición que se realiza cada nueva repetición o por medio de un
contador asociado.
En C:
En seudocódigo:
while (expresión_condición)
Mientras (condición)
Una_sentencia;
sentencia1
sentencia2
while (expresión_condición)
.........
{
Fin-mientras
sentencia(s);
}
NO
CONDICION
SI
ACCION ES
En seudocódigo: En C:
do
Repetir {
sentencia1 sentencias;
sentencia2 ...........
......... } while (condición);
Mientras (condición)
A CCI ONE S
SI
CO ND ICION
NO
Controla la ejecución del conjunto de instrucciones que configuran su rango, de tal forma que
éstas se ejecutan un número determinado de veces que queda definido en lo que se denomina la
cabecera del bucle. En ella se define un identificador de variable que va a actuar como contador
asociado y que se denomina variable de control del bucle, definiéndose al mismo tiempo su valor
inicial, su valor final y el incremento que esta variable de control va a adquirir en cada definición.
VC = Variable de control
VI = Valor inicial
VF = Valor final
IN = Incremento
En seudocódigo: En C:
VC = VI
SI
VC > V F
NO
ACCIONES
VC = VC + IN
2.3.4 Compuestas.
2.3.5 Comentarios.
2.4.1 Contadores.
Un contador es un objeto que se utiliza para contar cualquier evento que pueda ocurrir dentro
de un programa. En general suelen contar de forma natural desde 0 y de 1 en 1, aunque se pueden
realizar otros tipos de cuenta necesarios en algunos procesos.
C1 = 0;
CP = 2;
• Contabilización o incremento: Cada vez que aparece el evento a contar se ha de
incrementar el contador en 1 si se realiza cuenta natural o en otro valor si se realiza
otro tipo de cuenta.
C1 = C1 + 1;
CP = CP + 2;
2.4.2 Acumuladores.
Son objetos que se utilizan en un programa para acumular elementos sucesivos con una misma
operación. En general se utilizan para calcular sumas y productos, sin descartar otros posibles tipos de
acumulación.
Un máximo es una variable que guarda el máximo valor de un conjunto de valores. El máximo
se inicializa a un valor muy pequeño para que tengamos la seguridad de que el primer valor que se
almacene en esta variable sea el mayor.
Un mínimo es similar al máximo solo que coge el valor más pequeño de una serie de valores. El
mínimo se inicializa a un valor máximo.
2.4.4 Switches.
Son objetos que se utilizan en un programa y sólo pueden tomar dos valores (true y false , 0 y
1) realizando la función de transmitir información de un punto a otro dentro del programa. Se utilizan
iniciándolos con un valor y en los puntos en que corresponda se cambian al valor contrario.
3 TÉCNICAS DE PROGRAMACIÓN
Los diagramas de flujo fueron la primera representación gráfica utilizada para el diseño de algoritmos
y programas. Este tipo de herramienta constituye el fundamento de la programación convencional
clásica y es de utilidad para la solución de problemas de pequeña y mediana complejidad. Sin embargo,
para problemas complejos el diseño de algoritmos implica un aumento considerable de la
representación gráfica y una reducción de la legibilidad del algoritmo. Para evitar estos inconvenientes
se utilizan otras técnicas de programación que veremos en los siguientes puntos.
DISEÑO
TOP
PROBLEMA INICIAL
Primer
refinamiento
1.1 2 3 1 2 3 1 2 3
• Recursos abstractos.
• Estructuras básicas.
En mayo de 1966 Böhm y Jacopini demostraron que un programa propio puede ser escrito
utilizando solamente tres tipos de estructuras de control:
- secuenciales
- selectivas
- repetitivas
- Posee un solo punto de entrada y uno de salida o fin para control del programa.
- Existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan por
todas las partes del programa.
- Todas las instrucciones son ejecutables y no existen lazos o bucles infinitos (sin fin).
INICIO
Acción 1 Acción 1
Acción 2
Acción 3
FIN
Acción 2
<
Acción 3
Ordinograma
INICIO INICIO
N UMERO N UMERO
FIN FIN
1) 2)
Programa CuadradoYCubo; Programa Minutos;
Declaraciones Declaraciones
Enteras numero, cuad, cubo Enteras numero, minutos, segundos
Inicio Inicio
Visualiza(“Teclea un número:”) Visualiza(“Teclea un número:”)
Leer numero Leer(numero)
cuad = numero * numero minutos = numero / 60
cubo = cuad * numero segundos = numero % 60
visualiza(“El cuadrado es : “, cuad) Visualiza (“Los minutos son : “, minutos)
visualiza(“El cubo es : “, cubo) Visualiza (“Los segundos : “, segundos)
Fin Fin.
2) Programa que intercambie los valores de dos números enteros leídos de teclado si no están en orden
creciente y no hacer nada si están ordenados.
N U ME R O1 ,
N U ME R O
N U M ER O2
NO SI NO
N U ME R O N U ME R O1 >
> 0 N U M ER O2
SI
N U ME R O ,
N UM ER O ,
"E S NE GA TIVO
"E S P OSITIV O" A U X=N U M ER O1
O CE RO"
N U ME R O1 =N U ME R O2
N U M ER O2 =A UX
FIN
FIN
NO SI
CON D1
NO SI
COND2 ACCIONES1
NO SI
COND3 ACC IONES2
ACCIONES4 ACCIONES3
SI (condición1) entonces
<ACCIONES1>
si no
Si (condición2) entonces
<ACCIONES2>
si no
Si (condición3) entonces
<ACCIONES3>
si no
<ACCIONES4>
Fin_si
Fin_si
Fin_si
1) Programa que lea tres números enteros de teclado y visualice el mayor (los tres números se
suponen distintos).
INICIO
A, B, C
NO SI
A>B
NO SI NO SI
B>C A>C
"MAYOR ES =",
MAYOR
FIN
Programa Mayor
Declaraciones
Enteras A, B, C, MAYOR
Inicio
Visualiza “Teclea tres números enteros:”
Leer A,B,C
Si (A > B) entonces
Si (A > C) entonces
MAYOR = A
si no
MAYOR = C
Fin-si
si no
Si (B > C) entonces
MAYOR = B
Si no
MAYOR = C
Fin-si
Fin-si
Visualiza “El número mayor es : “,MAYOR
Fin
2) Programa que lea tres números enteros de teclado y visualice el mayor, el intermedio y el
INICIO
A, B, C
NO SI
A >B
NO SI NO SI
C >B A >C
MAYOR=C MAYOR=C
MAYOR=B INTER=B INTER=A MAYOR=A
MENOR =A MENOR=B
NO SI NO SI
A >C B> C
MAYOR,
INTER,
MENOR
FIN
INICIO
NUMERO
NUMERO
5 6 7
1 2 3 4
FIN
Programa Diassemana
Declaraciones
Entera NUMERO
Inicio
Leer NUMERO
Según sea NUMERO
1 : Visualiza “Lunes”
2 : Visualiza “Martes”
3 : Visualiza “Miércoles”
4 : Visualiza “Jueves”
5 : Visualiza “Viernes”
6 : Visualiza “Sábado”
7 : Visualiza ”Domingo”
Otros Visualiza “DÍA NO VALIDO”
Fin-Según-sea
End.
2) Programa que lea dos números enteros de teclado (suponemos que son > 0) y, a continuación, pida
la operación aritmética a realizar con estos dos números (+ , - , *, /), realice la operación pedida y
visualice el resultado. Controlar que la operación tecleada no sea correcta
INICIO
N1, N2
'Teclea +, - ,
* , /'
OPERA
OPERA
/ OTRO
+ - *
'OPERACION
RESUL =N1+N2 RESUL=N1-N2 RESUL=N1*N2 RESUL=N1/N2
INCORRECTA'
FIN
Es una estructura con una entrada y una salida en la cual se repite una acción un número
determinado o indeterminado de veces, dependiendo en este caso del cumplimiento de una condición.
While condición do
Sentencia-simple;
While condición do
begin NO
acción-1;
CONDICION
acción-2;
................. SI
acción-n
end;
ACCIONES
Ejemplos en Pascal:
1) Programa para leer un número entero de teclado y decir si es primo o no lo es. ( Un número es primo
si sólo es divisible por sí mismo y la unidad; entonces hay que dividirlo entre todos los números
menores que él, hasta el 2 y ver si con alguno da resto 0; en ese caso no es primo.).
INICIO
PRIMO=TRUE
DIVISOR=2
NUME
NO
DIVISOR<NUME
AND PRIMO =TRUE
SI
NO NO SI
NUMERO MOD
PRIMO=TRUE
DIVISOR = 0
SI
FIN
DIVISOR=DIVIDOR+1
programa Primo
declaraciones
enteras Primo, Nume, Divisor
Inicio
Primo=0
Divisor=2
Visualiza “Teclea un nº > 0:'”
Leer Nume
mientras (Divisor < Nume) y (Primo=0)
Si (Nume % Divisor =0) entonces
Primo=1
Fin-si
Divisor=Divisor+1
Fin-mientras
Si (Primo =0)
Entonces Visualiza Nume ,”Es Primo”
Si no Visualiza Nume ,”NO es Primo”
Fin-si
Fin-programa
2) Escribir un programa que encuentre el primer valor N para el cual la siguiente suma exceda a 10000 :
1 + 2 + 3 + 4 + 5 + ......... + N.
INICIO
Programa suma10000
Declaraciones SUMA=0
N=0
N, Suma : integer;
Inicio
Suma=0
N=0
mientras (Suma <= 10000)
N=N+1
Suma=Suma +N SUMA<= NO
Fin-mientras 10000
'VALOR DE N',
N=N+1
N
SUMA=SUMA+N FIN
3) Leer números enteros de teclado y contar la cantidad de números positivos y negativos leídos. El
programa termina cuando leamos el 0.
INICIO
POSI=0
NEGA=0
Programa contarnumeros
Declaraciones N
Enteras N, Posi, Nega
Inicio
Posi=0
Nega=0
Leer N NO
Mientras (N !=0) N <> 0
Si (N > 0)
entonces Posi=Posi +1
SI
si no Nega=Nega+1 NO SI
'POSITIVOS',POSI
Fin-si N> 0
'NEGATIVOS', NEGA
Leer N
Fin-mientras
Visualiza “Positivos “, Posi NEGA=NEGA + 1 POSI = POSI + 1 FIN
Repetir
acción-1
acción-2
ACCIONES
..................
acción-n
Mientras condición SI
CONDICION
NO
leer nºs de teclado hasta leer el 100 Visualiza “ Leer Nombre y Edad de alumnos “
respuesta='s'
Repetir suma=0
Visualiza “Teclea número : “ contador=0
Leer numero Repetir
Mientras (numero != 100) Visualiza “Teclea el Nombre : “
Leer (nombre);
Visualiza “Teclea la Edad : “
Visualiza potencias de 2 hasta que sea > 100 Leer edad
Visualiza “ Potencias de dos “ suma=suma+edad
potencia=1 contador=contador+1
Repetir Visualiza “Teclea N para terminar “
Visualiza potencia Leer respuesta
potencia = potencia * 2 Mientras (respuesta!='n') y (respuesta !='N')
mientras (potencia <= 100) media=suma/contador
Visualiza “Edad media = “, media
1) Realizar un programa para obtener la suma de la serie 1 + 1/2 + 1/3 + ... + 1/N hasta que la suma
sea mayor de 3. Visualiza el valor de N.
INICIO
programa sumaserie
Declaraciones S UMA=0
Enteras N N=0
Real Suma
Inicio
N=0
Suma=0
repetir
N=N+1 N=N +1
Suma =Suma + 1/N SUM A=SU MA +1/N
SI
SU MA,
N
F IN
2) Hacer un entrada de datos de alumnos pidiendo por teclado los datos: NOMBRE, CURSO y SEXO;
validando el curso con un valor de 1 a 3, y el sexo con los valores "H" o "M". El proceso terminará
cuando se responda ‘N’ o ‘n’ a la pregunta: “¿Quieres teclear más datos?.” . Visualizar el nº de
hombres y el nº de mujeres tecleados.
IN ICIO
C H=0
Programa Datosalumnos CM =0
Declaraciones
Enteras CURSO, CH, CM
Carácter SEXO, MAS
Cadena NOMBRE NOMBR E
Inicio
CH=0. CM=0
repetir
Visualiza “Teclea Nombre.” SEXO
Leer NOMBRE
Repetir
Visualiza “Teclea Sexo.” SI
CH=CH+1
Fin si NO
Leer MAS
S EXO='H'
MAS
NO SI
MAS ='N' CH , CM FIN
Ejemplos en seudocódigo:
1) Escribir un programa que calcule la suma : 1 + 1/2 + 1/3 + 1/4 + .... + 1/N, donde N se debe leer de
teclado, comprobar que n sea distinto de 0 para realizar la suma.
IN ICIO
Programa Sumaserie N
Declaraciones
Enteras I, N
Real SUM NO
Si (N <> 0) entonces
SUM=0
S UM = 0
Fin-para
Visualiza “LA SUMA ES:”, SUM
Si no
Visualiza ” el valor de N es 0”
Fin-si
NO
'S UM A' ,
I <= N
S UM A
Fin
SI
SU M = SU M + 1 / I
I =I + 1
2) Escribir un programa para leer el nombre, la edad y el curso de los 100 alumnos de un centro y
visualizar : la edad media , el número de alumnos de 2º curso y la edad media de los alumnos de 3º
curso.
INICIO
AE=C=0
AE3=C3=C2=0
programa Alumnos
Declaraciones
Enteras I, AE, C, AE3, C3, C2 , CUR, EDAD I=1
Cadena NOM
Real M, M3
Inicio
AE=0, C=0 NO
AE3=0, C3=0, C2=0 I <= 100
M = AE / C
M3 = AE3 /C3
Para I=1 hasta 100 hacer
Leer NOM, EDAD, CUR SI
AE=AE+EDAD
C=C+1 NOM, EDAD,
CUR
M, M3, C2
Si (CUR = 2) entonces
C2=C2+1
Fin-si FIN
Si (CUR = 3) entonces AE=AE+EDAD
C=C+1
C3=C3+1
AE3=AE3+EDAD
Fin-si
SI
Fin-para CUR = 2 C2 = C2 + 1
M = AE/C
M3=AE3/C3
NOI
NO
I=I+1
3) Realiza un programa que lea 10 números enteros de teclado y visualize el mayor y el menor de los
números leídos.
INIC IO
SI
NO
SI
N < MIN MIN = N
NO
I =I+ 1
RECUERDA: Para poder calcular el máximo y el mínimo necesitamos dos variables auxiliares que irán
guardando estos valores. Cada número tecleado se comparará con estas variables. Si el número
tecleado es mayor que el máximo entonces el nuevo máximo será ahora el valor tecleado. Si el número
tecleado es menor que el mínimo entonces el nuevo mínimo será ahora el valor tecleado.
Ejemplo 1 : Leer las temperaturas horarias de cada uno de los días del año en Guadalajara:
INICIO
DIAS = 1
programa Temperaturas
Declaraciones
Enteras Días, Horas, Temperatura NO
DIAS <=
Inicio 365
FIN
Días=1
Mientras (Días<= 365) SI
Horas=1
Mientras (Horas <= 24) HORAS = 1
Leer Temperatura
Horas = Horas+1
Fin-mientras
Días=Dias+1
Fin-mientras
NO
HORAS
Fin. <= 24
SI
TEMPERATURA
HORAS=HORAS+1
DIAS = DIAS + 1
Ejemplo 2: Leer las 5 asignaturas y notas en cada una de las tres evaluaciones de un alumno, y calcular
la nota de cada evaluación:
INICIO
EVAL = 1
programa Evaluaciones
Declaraciones
Integer EVAL, Sum, nota, I NO
Real NotaEva EVAL <= 3 FIN
Cadena asignatura
Inicio SI
Para EVAL = 1 hasta 3 hacer
Sum:=0;
Para I = 1 hasta 5 hacer
SUM=0
Leer asignatura
Leer nota I =1
Sum=Sum+nota
Fin-para
NotaEva=Sum/3
Visualiza(Eval,' Evaluación = ', NotaEva) NO
Fin-para
Fin I <= 5
SI
ASIGNATURA,
NOTA
NOTAEVA=SUM/3
SUM = SUM+NOTA
EVAL ,
NOTAEVA
I= I+ 1
EVAL = EVAL+1
Cada programa contiene un módulo que se llama programa principal que controla todo lo que
sucede; se transfiere el control a submódulos (subprogramas) , de modo que ellos puedan ejecutar sus
funciones; sin embargo cada submódulo devuelve el control al programa principal cuando se haya
completado su tarea. Si la tarea asignada a cada submódulo es demasiado compleja, éste deberá
romperse en otros módulos más pequeños. Dado que los módulos son independientes, diferentes
programadores pueden trabajar simultáneamente en diferentes partes del mismo programa.
RAÍZ
MOD11
MOD 2.1 MOD 2.2 MOD 3.1 MOD4.2 MOD 4.1
Aunque no exista una regla fija que permita definir el tamaño estándar del módulo, una buena
aproximación es considerar módulos del tamaño físico de una página ( 30 o 40 líneas de instrucciones).
• Ejemplo:
Módulo Principal :
Llamada a submódulo "Impresion de cabeceras"
Llamada a submódulo "Proceso de datos"
Llamada a submódulo "Impresion de totales"
Fin de proceso.
Lectura de datos.
Ejecución de cálculos.
Impresión detallada de líneas.
Retorno al módulo principal.
• Representación gráfica:
Módulo
Principal
La programación modular se implanta utilizando módulos que toman diferentes nombres según
el lenguaje de programación: subprogramas, procedimientos, funciones.
Se considera subprograma interno a aquél que está junto al programa principal de nuestro
trabajo, y se llama externo al que no lo está.
Un procedimiento es un subprograma que realiza una tarea específica. Puede recibir 0 o más
valores del programa que llama y devolver cero o más valores a dicho programa llamador. Un
procedimiento está compuesto de un grupo de sentencias a las que se asigna un nombre (identificador)
y constituye una unidad de programa. La tarea asignada al procedimiento se ejecuta siempre que se
encuentre el nombre del procedimiento.
Los procedimientos deben estar declarados antes de que puedan ser referenciados en el
cuerpo del programa.
3.3.2.1.1 Representación.
SUBPROGRAMA
(Parámetros)
FORMATO 1 : FORMATO 2 :
EJEMPLO:
Programa Mensaje
INICIO
INICIO
AS TERISCOS
ASTERISCOS
Fin
3.3.2.1.2 Parámetros.
Los subprogramas nos permiten realizar varias veces una serie de acciones; estas acciones
pueden ser ejecutadas siempre sobre los mismos o diferentes datos. Para que un subprograma pueda
utilizar diferentes variables, se utilizan los parámetros.
• Parámetros por referencia : Son aquellos que van a ser modificados por el
subprograma y su valor modificado va a ser devuelto al programa. Para
distinguirlos de los pasados por valor, se les colocará delante, en la
declaración del subprograma la palabra VAR.
Una variable local es aquella que está declarada y definida dentro de un subprograma, y es
distinta de las variables con el mismo nombre declaradas en cualquier parte del programa principal.
Una variable global es aquella que está declarada para el programa o algoritmo completo.
Programa Ejemplovariables
Declaraciones
Cadena a , b , c {a, b, c, i, j son variables globales, las puede usar cq procedimiento}
Enteras i , j
Procedimiento SUBPROGRAMA1
Declaraciones { a, b, i son variables locales al procedimiento, cualquier modificación de estas }
{ variables no afecta a las variables globales}
Cadena a , b
Enteras i
Inicio
{Instrucciones}
Fin-procedimiento
Procedimiento SUBPROGRAMA2
Declaraciones { a, c, i , j son variables locales al procedimiento}
Cadena a , c
Enteras i , j
Inicio
{Instrucciones}
Fin-procedimiento
3.3.2.2 Funciones.
Cuando un subprograma sólo devuelve un valor, se le puede considerar dentro de una variedad
de subprogramas denominados funciones, y que se declaran de la siguiente forma:
PROGRAMA calcularmedia
VAR
Enteras n1, n2
Real resul
** MENÚ DE OPCIONES **
1 - NUMEROS PRIMOS.
2 - DIBUJO.
3 - TABLA DE MULTIPLICAR.
4 - FIN.
Teclea opción:
- Opción 1: Programa que calcule e imprima los N primeros números primos. N es un valor entero
que se leerá de teclado. Deberá ser > 0.
- Opción 2: Utilizando bucles anidados realiza un programa que visualize este triángulo tantas veces
como indique N, un valor entero leído de teclado. Por ejemplo si N = 6, la salida será:
$
$$
$$$
$$$$ Validar la entrada de N de 1 a 20.
$$$$$
$$$$$$
- Opción 3: Realiza un programa que lea un número entero de teclado y visualize la tabla de
multiplicar. Por ejemplo tecleo 5 la salida será:
5*1=5
5 * 2 = 10
5 * 3 = 15
.......
5 * 10 = 50
PROGRAMA PRINCIPAL
INI CIO
PINTARMENU
O PCIO N
O PCIO N
1 2 3
SI O PCIO N
!= 4
NO
FIN
INICIO
PRIMOS
SUBPROGRAMA SUBPROGRAMA
PINTARMENU '**CALCULAR PRIMOS
PRIMOS**'
INICIO
PINTARMENU
FIN
I=1
PINTARMENU
NO
FIN
I <= N TECLA
PRIMOS
SI
PRIMO=
VERPRIMO(I)
SI
P RIMO
=1
NO
I, 'ES PRIMO'
I = I +1
INICIO
FUNCION VERPRIMO
VERPRIMO:
PRI = 1
DIVISOR = 2
DIVISOR < X NO
FIN
y RETORNA PRI
VERPRIMO
PRI = 1
SI
SI
X % DIVISOR
=0
PRI = 0
NO
DIVISOR = DIVISOR + 1
INICIO
TECLA
TECLA:
C
FIN
TECLA
INICIO
TABLAMULT
SUBPROGRAMA
TABLAMULT:
'TABLA DE
MULTIPLICAR'
'************** ****'
I =1
NO
I <= 10
SI
N,'*',I,'=',
TECLA
PRODUC
FIN
I =I + 1 TABLAMULT
INICIO
DIBUJO
SUBPROGRAMA
'*DIBUJO DE DIBUJO
TRIANGULO*'
SI
N <1
0 N>20
NO
I =1
NO FIN
I <= N TECLA DIBUJO
SI
J =1
NO
J <= I
SI
'$'
J =J +1
Salto de
I = I +1
línea
Declaraciones
Enteras opcion
Inicio
Repetir
PintarMenu
Leer opcion
Según sea opción
1 : Primos
2 : Dibujo
3 : TablaMult
Fin-según-sea
Mientras (opción != 4)
Fin.
{Fin de programa}
***********************************************************************
{PINTA EL MENÚ EN LA PANTALLA}
Procedimiento Pintarmenu
Inicio
{Borrar pantalla}
Visualiza ” **MENÚ DE OPCIONES** “
Visualiza “1. NUMEROS PRIMOS.”
Visualiza “2. DIBUJO.”
Visualiza “3. TABLA DE MULTIPLICAR.”
Visualiza “4. FIN.”
Visualiza “ Teclea opción: “
Fin-Procedimiento-Pintarmenu
4 EJERCICIOS PROPUESTOS.
1) Escribir un programa que determine si un año leído de teclado es bisiesto. Un año es bisiesto si es múltiplo de 4
(por ejemplo 1996). Los años múltiplos de 100 no son bisiestos, salvo si ellos son también múltiplos de 400 (2000 es
bisiesto, 1800 no lo es).
2) Escribir un programa que calcule la suma de los 100 primeros términos de esta serie :
1/2 + 2/22 + 3/23 + 4/24 + .... + 100/2100 .
5) Escribe un programa que visualize el número más grande, el más pequeño y la media de una serie de N números
leídos de teclado. N se leerá al principio y debe ser > 0 para realizar el proceso.
6) Diseñar una función que calcule potencias de la forma XN y un programa que haga uso de la misma, para
distintos valores X y N. X y N se leerán de teclado. N debe ser > 0
XN = X * X * X * X *..... * X N Veces
7) El valor de ex se puede aproximar por la suma : 1+ x + x2/2! + x3/3! + .... + xn/N!. Escribe un programa que
tome el valor de x como entrada y visualice la suma para N = 10.
8) Programa que calcule el número de combinaciones de M elementos tomados de N en N. (M y N deben ser > 0).
No existen factoriales de números negativos. El Factorial de 0 es 1.
;;;;;-;;;;;
;;;;---;;;;
;;;-----;;; Los caracteres del rombo ( ; - ) se
;;-------;; pedirán por teclado.
;---------;
-----------
;---------;
;;-------;;
;;;-----;;;
;;;;---;;;;
;;;;;-;;;;;
11) Realiza un programa que escriba los N primeros números de la sucesión de Fibonacci: