Sei sulla pagina 1di 16

Buenas.

A continuacin os voy a poner una serie de ejercicios en Pascal. Son de nivel bsico. Irn
clasificados por bloques, y mas o menos lo que se usa en cada bloque(est claro que por
ejemplo, los ejercicios del bloque tres, implicarn cosas del bloque dos y uno a la fuerza).
No son de mi creacin, y yo hasta la fecha, solamente e resuelto hasta el bloque 6, y alguno
del bloque 7 (con ayuda de algn miembro de este foro, no lo nombro as directamente, que
si no lo abrasis fijo xD). Por circunstancias no puedo nombrar la fuente de los ejercicios.
Empezamos

BLOQUE 1.- PRIMER PROGRAMA EN PASCAL


En este bloque se pretende usar las sentencias bsica de escritura (write) y de lecuta
(read), y codificar el cuerpo de un programa pascal (begin-end..).
Ejercicio1:
Partiendo de este cdigo:
Cdigo:
Program Bienvenido;
Var
nombre: string[40];
Const
HOLA='Bienvenido al mundo';
begin
write('Introduzca su nombre: ');
readln(nombre);
writeln(HOLA,' ', nombre);
end.
Se solicitita que se le aada:
- Sentencias para que, adems del nombre solicite al usuario el aula dnde se ha
matriculado, su direccin y que todo eso se presente por pantalla, llamando tambin a la
constante HOLA.
El resultado tiene que ser similar a esto:
Introduzca su nombre: pepe
Introduzca su aula: 7
Introduzca su direccin: C/Las peras
Bienvenido alumno pepe
Te conectas desde el aula numero: 7
Tu direccin es: C/Las peras

BLOQUE 2.- TIPOS Y SENTENCIAS.


En este bloque se manejan los tipos de datos que tiene pascal, as como alguna de las
expresiones bsicas (en este caso aritmticas).
Ejercicio1:
Codificar un programa que solicite al usuario dos valores numricos y calcule el valor medio,
que es la suma de ambos dividida por dos.

El resultado debe ser similar a esto:


Introduce el primer valor numerico: 5
Introduce el segundo valor numerico: 2
La media de ambos numero es: 3,50
Ejercicio2:
Realizar un programa que calcule un valor de tipo numrico que nos indicar el peso relativo
de una persona. El programa solicitar al usuario sus datos personales (nombre y edad), su
altura y su peso (el peso relativo se calcula dividiendo el peso por el cuadrado de la altura.
El resultado debe ser similar a esto:
Introduzca
Introduzca
Introduzca
Introduzca

su
su
su
su

nombre: pepe
edad: 20
altura en m: 1.70
peso en Kg: 80

Hola pepe
Tu edad es 20, tu peso 80 y tu altura 1.70.
Tu peso relativo es: 27.68.
Ejercicio 3:
Codificar un programa que solicite al usuario una cantidad en pesetas y calcule y presente
por pantalla el equivalente en euros.
El resultado debe ser similar a esto:
Introduzca una cantidad en pesetas: 2000
Son 12.02 euros.

BLOQUE 3.- ESTRUCTURAS DE CONTROL


En este bloque es necesario usar las estructuras de control que disponemos en pascal
(sentencias selectivas y bucles).
Ejercicio1:
Realizar un programa que utilizando una estructura repetitiva (bucle) presente por pantalla
los nmeros del 1 al 10 separados por un guin.
El resultado debe ser similar a esto:
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 Ejercicio2:
Modifique el programa previo para que solicite al usuario desde y hasta que nmero quiere
presentar por pantalla.
El resultado debe ser similar a esto:
Introduzca valor inicial: 6
Introduzca valor final: 14
6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 Ejercicio3:

Utilizando la estructura selectiva mltiple (case) realizar un programa que solicite al usuario
una vocal, y presente por pantalla un mensaje indicando el orden de la vocal y la vocal
pulsada. Si pulsamos a, deber indicar que es la primera vocal, e la segunda, i la tercera,
etc.
El resultado debe ser similar a esto:
Introduzca una letra: e
Ha pulsado la segunda vocal, e
Ejercico4:
Se propone, utilizando sentencias selectivas, modificar el ejercicio del 2 del BLOQUE2.
Deber, en funcin del valor del peso relativo, indicar si estamos en un peso adecuado, por
encima o por debajo. Puede suponer que el peso relativo deber estar entre dos valores que
pueden definir como constantes, PESOMIN y PESOMAX, que sern inicialmente 20 y 26.
El resultado deber ser similar a:
Introduzca su nombre: pepe
Introduzca su edad: 19
Introduzca su altura en m: 1.70
Introduzca su peso en kg: 80
Hola pepe.
Tu edad es 19, tu peso 80 y tu altura 1.70.
Tu peso relativo es: 27.68.
Peso por encima de lo recomendado
------------------------------------------------------------------(ejemplo de resultado con otro peso y otra altura)
Introduzca su nombre: pepe
Introduzca su edad: 19
Introduzca su altura en m: 1.70
Introduzca su peso en kg: 70
Hola pepe.
Tu edad es 19, tu peso 70 y tu altura 1.70.
Tu peso relativo es: 24.22.
Peso correcto.
----------------------------------------------------------------(otro ejemplo con otro peso y otra altura)
Introduzca su nombre: pepe
Introduzca su edad: 19
Introduzca su altura en m: 1.70
Introduzca su peso en kg: 40
Hola pepe.
Tu edad es 19, tu peso 40 y tu altura 1.70.
Tu peso relativo es: 13.84.
Peso por debajo de lo recomendado.
Ejercicio5:
Se propone modificar el ejercicio anterior. El programa deber solicitar al usuario si desea
repetir todo el proceso de peticin de datos y clculo de resultados.
El resultado debe ser similar a esto:

Introduzca su nombre: Arturo


Introduzca su edad: 26
Introduzca su peso en Kg.: 66
Introduzca su altura en m: 1.70
Hola Arturo
Tu edad es 26, tu peso 66.00 y tu altura 1.70
Tu peso relativo es 22.84
Peso correcto.
Desea continuar (S/N): S

Introduzca su nombre: Alice


Introduzca su edad: 24
Introduzca su peso en Kg.: 54
Introduzca su altura en m: 1.6
Hola Alice
Tu edad es 24, tu peso 54.00 y tu altura 1.60
Tu peso relativo es 21.09
Peso correcto.
Desea continuar (S/N): n
Ejercicio6:
Suponga que desea saber que "perfil" tienen sus llamadas telefnicas. Para ello realizar un
programa que solicite la duracin de las llamadas y calcule:
la duracin total de sus llamadas
el valor medio
el nmero total de llamadas
y los presente por pantalla.
El resultado debe ser similar a esto:
Duracin
Duracin
Duracin
Duracin
Duracin

de
de
de
de
de

la
la
la
la
la

llamada
llamada
llamada
llamada
llamada

(0
(0
(0
(0
(0

para
para
para
para
para

terminar):
terminar):
terminar):
terminar):
terminar):

5
10
15
20
0

> Numero de llamadas: 4


> Duracin total: 50.0
> Duracin media: 12.5
Ejercicio7:
Aadir al programa anterior lo necesario para que clasifique las llamadas en Nacionales (N),
Provinciales (P) y Locales (L) y realizar los mismo clculos que antes para cada tipo de
llamada (duracin y numero de llamadas Nacionales, duracin y numero de llamadas
Provinciales y duracin y numero de llamadas Locales). El programa tambin debe solicitar,
despus de presentar los resultados, si se desea realizar de nuevo todo el proceso anterior.
El resultado debe ser similar a esto:
Introduzca la duracin de la llamada en minutos (0 para terminar): 5
Introduzca el tipo de llamada. N:Nacional, P:Provincial, L:Local: p
Introduzca la duracin de la llamada en minutos (0 para terminar): 15
Introduzca el tipo de llamada. N:Nacional, P:Provincial, L:Local: n
Introduzca la duracin de la llamada en minutos (0 para terminar): 20
Introduzca el tipo de llamada. N:Nacional, P:Provincial, L:Local: l

Introduzca la duracin de la llamada en minutos (0 para terminar): 40


Introduzca el tipo de llamada. N:Nacional, P:Provincial, L:Local: p
Introduzca la duracin de la llamada en minutos (0 para terminar): 0

-Especificacin llamadas Nacionales, Provinciales y LocalesEl numero de llamadas nacionales a sido: 1 y su duracin: 15.00 minutos.
El numero de llamadas provinciales a sido: 2 y su duracin: 45.00 minutos.
El numero de llamadas locales a sido: 1 y su duracin: 20.00 minutos.
-TotalesNumero de llamadas: 4
Duracin total: 80.00 minutos.
Duracin media: 20.00 minutos.
Desea continuar para realizar otra lista de llamadas? S/N: n

BLOQUE 4.- SUBPROGRAMAS (Procedimientos y Funciones)


En este bloque, para la resolucin de los problemas se solicita el uso de procedimientos y
funciones.
Ejercicio1:
Cree una funcin de nombre peso_relativo que calcule el peso relativo de una persona. Esta
funcin recibir como parmetros por valor el peso y la altura de la persona. Devolver como
resultado de la funcin el valor del peso relativo. Pude usar el programa del bloque2
ejercicio2 para definir y utilizar esta funcin.
El resultado debe ser similar a esto:
Introduzca su nombre: Arturo
Introduzca su edad: 26
Introduzca su peso en Kg: 66
Introduzca su altura en m: 1.70
Hola Arturo
Tu edad es 26, tu peso 66.00 y tu altura 1.70
Tu peso relativo es 22.84
Ejercico2:
Codificar un conversor de pesetas a euros, y de euros a pesetas. Para ello se exige
programar dos funciones que se llamarn Funcin calcula_euros y Funcin calcula_pesetas.
El resultado ser similar a esto:
Para convertir:
1. Pasar de pesetas a euros.
2. Pasar de euros a pesetas.
Opcion: 2
Introduzca cantidad en euros: 30
Son 4992 pesetas.

Ejercico3:
Codificar un programa, que solicite dos nmeros y presente por pantalla la suma de ambos.
El calculo de la suma deber realizarse dentro de un procedimiento de nombre calculo, y los
resultados se debern presentar invocando a otro procedimientos de nombre
presenta_resultados (este ultimo procedimiento no debe recibir como parmetros ni el
primer, ni el segundo numero.)
El resultado ser similar a esto:
Introduzca el primer numero:
3
Introduzca el segundo numero:
6
El resultado de la suma es: 9.00
Ejercicio4:
A partir del programa anterior cree otro, que presente adems del resultado de la suma
tambin el de la resta, multiplicacin y divisin. Deber modificar los procedimientos calculo
y presenta_resultados como sea necesario, pero sin introducir ningn procedimiento ni
funcin adicional. Recuerde que la impresin de los resultados hay que hacerla en el
procedimiento presenta_resultados, y que este no debe recibir como parmetros ni el primer
numero, ni el segundo numero)
El resultado debe ser similar a esto:
Introduzca el primer numero:
6
Introduzca el segundo numero:
3
El resultado de la suma es: 9.00
El resultado de la resta es: 3.00
El resultado de la multiplicacion es: 18.00
El resultado de la division es: 2.00
Ejercicio5:
Cree un programa con un procedimiento que imprima una lnea de una cierta longitud
compuesta por un determinado carcter.
Para ello el procedimiento, de nombre lnea, recibir dos parmetros: el carcter a imprimir y
la longitud.
El resultado debe ser similar a esto:
Introduzca longitud de la lnea: 20
Introduzca carcter: *
********************
Ejercicio6:
Crear un programa que imprima un tringulo.
El resultado debe ser similar a esto:
Introduzca altura del triangulo: 7
Introduzca letra: +
+
++
+++

++++
+++++
++++++
+++++++

BLOQUE 5.-TABLAS (o arrays)


Uso de tablas, arrays o matrices.
Ejercicio1:
Cree un programa que utilice una tabla donde se almacenarn los precios de una coleccin
de cuadros. Para ello ser necesario:
Definir una constante de nombre TAMCOLECCION que representa el nmero de cuadros que
tendrn las colecciones. Puede comenzar definiendo esta constante con un valor de 4.
Un tipo de datos de nombre coleccin que ser una tabla de tamao TAMCOLECCION. Cada
elemento almacena el precio de un cuadro, y el nmero del cuadro coincide con su posicin
en la tabla.
Adems se deber codificar en este primer ejercicio:
Un procedimiento de nombre lee_tabla que solicite al usuario que introduzca los precios de la
coleccin de cuadros. Este procedimiento debe recibir como parmetros la tabla donde
almacenar los precios, y el nmero de cuadros a leer.
Un procedimiento de nombre imprime_tabla que presente por pantalla los precios de la
coleccin de cuadros, junto al nmero de cuadro. Este procedimiento, de forma similar al
anterior, recibe como parmetros la tabla y el nmero de cuadros.
El resultado debe ser similar a esto:
Introduzca los precios
Cuadro 1: 1200
Cuadro 2: 2400
Cuadro 3: 500
Cuadro 4: 850
> Precio cuadro 1: 1200.00
> Precio cuadro 2: 2400.00
> Precio cuadro 3: 500.00
> Precio cuadro 4: 850.00
Ejercicio2:
Partiendo del programa anterior, aada una funcin de nombre suma_coleccion que recorra
la tabla y devuelva como resultado de la funcin el valor total de la coleccin de cuadros.
Modifique a continuacin el programa principal para que despus de leer e imprimir la tabla,
calcule la suma de la coleccin utilizando esta funcin, y la imprima por pantalla.
El resultado debe ser similar a esto:
Introduzca los precios
Cuadro 1: 125
Cuadro 2: 250
Cuadro 3: 375
Cuadro 4: 450
> Precio cuadro 1: 125.00
> Precio cuadro 2: 250.00
> Precio cuadro 3: 375.00
> Precio cuadro 4: 450.00
> Valor coleccion: 1200.00

Ejercicio3:
Ahora se propone al alumno que realice un procedimiento de nombre busca_minimo que
busque dentro de una coleccin de cuadros el cuadro ms barato, e imprima por pantalla el
nmero de ese cuadro y su precio. Este procedimiento, como los previos, recibe la tabla de
precios y el nmero de cuadros.
El resultado debe ser similar a esto:
Introduzca los precios
Cuadro 1: 100
Cuadro 2: 200
Cuadro 3: 300
Cuadro 4: 85
> Precio cuadro 1: 100.00
> Precio cuadro 2: 200.00
> Precio cuadro 3: 300.00
> Precio cuadro 4: 85.00
> Valor coleccion: 685.00
> El precio del cuadro 4 es el minimo y cuesta 85.00
Ejercicio4:
Introduzca al ejercicio anterior un procedimiento de nombre limites que devolver como
parmetros por referencia el mximo y el mnimo de la coleccin.
El resultado debe ser similar a esto:
Introduzca los precios
Cuadro 1: 400
Cuadro 2: 275
Cuadro 3: 225
Cuadro 4: 350
> Precio cuadro 1: 400.00
> Precio cuadro 2: 275.00
> Precio cuadro 3: 225.00
> Precio cuadro 4: 350.00
El maximo es 400.0 y el minimo 225.0
Ejercicio5:
Deber codificar un procedimiento de nombre busca_precio para un cliente que desea gastar
una cantidad exacta . Este procedimiento recibe como parmetro la cantidad a buscar en la
tabla. Presentar por pantalla un mensaje cada vez que al recorrer la tabla encuentre un
cuadro con el precio buscado, indicando su precio y su nmero. Si no encuentra ningn libro,
deber presentar un nico mensaje al final del procedimiento indicando tal circunstancia.
Adems se deber incluir la peticin de bsqueda en un bucle que solicite la peticin del
precio a buscar hasta que el usuario introduzca el valor cero.
El resultado debe ser similar a esto:
Cuadro 1: 150
Cuadro 2: 200
Cuadro 3: 150
Cuadro 4: 400
> Precio cuadro 1: 150.00
> Precio cuadro 2: 200.00
> Precio cuadro 3: 150.00
> Precio cuadro 4: 400.00
El maximo es 400.0 y el minimo 150.0
Introduzca el precio a buscar en la tabla (cero para terminar): 200
> Encontrado precio 200.0 en cuadro 2
Introduzca el precio a buscar en la tabla (cero para terminar): 100

> Precio 100.0 no encontrado.


Introduzca el precio a buscar en la tabla (cero para terminar): 150
> Encontrado precio 150.0 en cuadro 1
> Encontrado precio 150.0 en cuadro 3
Introduzca el precio a buscar en la tabla (cero para terminar): 0
> Precio 0.0 no encontrado.
Ejercicio6:
Modificar el ejercicio 4 para que el procedimiento lmites adems devuelva como parmetros
por referencia la posicin en la tabla (el nmero del cuadro) donde se producen el mximo y
el mnimo.
El resultado debe ser similar a esto:
Introduzca los precios
Cuadro 1: 350
Cuadro 2: 175
Cuadro 3: 650
Cuadro 4: 400
> Precio cuadro 1: 350.00
> Precio cuadro 2: 175.00
> Precio cuadro 3: 650.00
> Precio cuadro 4: 400.00
El maximo es 650.0 en la posicion 3
El minimo es 175.0 en la posicion 2
Ejercicio7:
Codificar ahora un programa que gestione 2 colecciones de cuadros. Usando las funciones y
procedimientos de los ejercicios previos deber:
Solicitar los datos de las dos colecciones.
Presentar un mensaje por pantalla indicando que coleccin vale ms dinero.
Buscar un cuadro de un precio determinado en las dos colecciones.
No se podr codificar funciones ni procedimientos adicionales, y por lo tanto slo se podr
modificar el programa principal y la seccin de variables globales.
El resultado debe ser similar a esto:
Coleccion 1:
Introduzca los precios
Cuadro 1: 100
Cuadro 2: 200
Cuadro 3: 300
Cuadro 4: 400
Coleccion 2:
Introduzca los precios
Cuadro 1: 300
Cuadro 2: 500
Cuadro 3: 600
Cuadro 4: 1000
Coleccion 2 vale mas que coleccion 1
Introduzca el precio a buscar en las tablas (cero para terminar): 200
Coleccion 1:
> Encontrado precio 200.0 en cuadro 2
Coleccion 2:
> Precio 200.0 no encontrado.
Introduzca el precio a buscar en las tablas (cero para terminar): 600
Coleccion 1:
> Precio 600.0 no encontrado.
Coleccion 2:
> Encontrado precio 600.0 en cuadro 3
Introduzca el precio a buscar en las tablas (cero para terminar): 300

Coleccion 1:
> Encontrado precio 300.0 en cuadro 3
Coleccion 2:
> Encontrado precio 300.0 en cuadro 1
Introduzca el precio a buscar en las tablas (cero para terminar): 50
Coleccion 1:
> Precio 50.0 no encontrado.
Coleccion 2:
> Precio 50.0 no encontrado.
Introduzca el precio a buscar en las tablas (cero para terminar): 0
Coleccion 1:
> Precio 0.0 no encontrado.
Coleccion 2:
> Precio 0.0 no encontrado.
Ejercicio8:
Tendr que completar el siguiente programa principal heredado de los ejercicios previos:
Cdigo:
(*-- Programa Principal -- *)
Begin
lee_tabla(precios1, TAMCOLECCION);
writeln('La suma de los tres primeros es ',
writeln('La suma desde el segundo hasta el ultimo es ',
);
End.

);

Haciendo uso de las funciones previas, complete (y compruebe) esta expresin para que
imprima el valor de la suma de los tres primeros cuadros de una coleccin:
Cdigo:
writeln('La suma de los tres primeros es

',

);

Haciendo uso de las funciones previas, complete (y compruebe) esta expresin para que
imprima el valor de la suma de los cuadros desde el segundo hasta el ltimo:
Cdigo:
writeln('La suma desde el segundo hasta el ultimo es ',
);
El resultado debe ser similar a esto:
Introduzca los precios
Cuadro 1: 20
Cuadro 2: 30
Cuadro 3: 40
Cuadro 4: 50
La suma de los tres primeros es 90.0
La suma desde el segundo hasta el ultimo es 120.0

BLOQUE 6.-REGISTROS
En este bloque se nos solicitar usar registros.
Ejercicio1:
Crear un programa que utilice un registro para almacenar la informacin de un cuadro. Ser
necesario:
Definir un tipo de datos Tcuadro, registro cuyos campos almacenen la informacin necesaria
de un cuadro:

Nmero del cuadro


Ttulo
Autor
Precio
Un procedimiento de nombre lee_cuadro que solicite al usuario que introduzca los datos de
un cuadro, y los almacene en los campos de un registro que recibe el procedimiento como
parmetro.
Un procedimiento de nombre imprime_cuadro que presente por pantalla los datos de un
cuadro que recibe como parmetro. Tendr la particularidad de que si el precio es cero
significa que el cuadro no est en venta, y as deber indicarse:
Deber incluirlo todo en un programa que solicite los datos de dos cuadros y los imprima por
pantalla (utilizando los procedimientos previos). Adems deber presentar por pantalla la
suma de los precios de los dos cuadros
El resultado debe ser similar a esto:
>Datos primer cuadro
Numero: 1
Titulo: Alambradas
Autor: Raul Etam
Precio: 0
>Datos segundo cuadro
Numero: 2
Titulo: Tentativas
Autor: Felicia Aller
Precio: 1100
>Datos de los cuadros
1: Alambradas
Autor: Raul Etam
Precio: No en venta
--2: Tentativas
Autor: Felicia Aller
Precio: 1100
--> La suma es: 1100.00
Ejercicio2:
Basndonos en el ejercicio anterior, este se mejora utilizando una tabla de registros para
almacenar la informacin de una coleccin de cuadros.
Se deber codificar:
Un tipo de datos de nombre Tcoleccion que representar una tabla de registros Tcuadro. El
tamao de la tabla se representar por una constante de nombre TAMCOLECCION, que
inicialmente puede valer 3.
Un procedimiento de nombre lee_coleccion que, utilizando el procedimiento lee_cuadro,
solicite al usuario que introduzca los datos de la coleccin de cuadros.
Un procedimiento de nombre imprime_coleccion que, utilizando el procedimiento
imprime_cuadro presente por pantalla los datos de la coleccin de cuadros.
Tambin se solicita aadir al programa anterior una funcin de nombre suma_coleccion. Esta
funcin devuelve como resultado de la funcin el valor total de la coleccin. Pero como es
posible que algunos cuadros no estn a la venta, esta funcin adems devolver como
parmetro por referencia el nmero de cuadros que no estn en venta.
El resultado debe ser similar a esto:
>Datos primera coleccion
Numero: 1

Titulo: Primavera
Autor: P. Freire
Precio: 1200
Numero: 2
Titulo: Verano
Autor: Jose Artes
Precio: 2345
Numero: 3
Titulo: Invierno
Autor: Alma Blanca
Precio: 0
>Datos de los cuadros
1: Primavera
Autor: P. Freire
Precio: 1200
--2: Verano
Autor: Jose Artes
Precio: 2345
--3: Invierno
Autor: Alma Blanca
Precio: No en venta
--> La suma es: 3545.00
> Y hay 1 cuadro no en venta
Ejercicio3:
Crear un procedimiento busca_autor que recorra la tabla buscando los cuadros de un
determinado autor. El nombre se solicita al usuario en el programa principal, y ese nombre lo
recibe el procedimiento como parmetro.
Cada vez que encuentre una cuadro del autor deber presentar en pantalla los datos del
cuadro. Si no encuentra ningn cuadro de ese artista, deber presentar un nico mensaje
indicando tal circunstancia.
La peticin de autor a buscar y bsqueda se deber incluir en un bucle que permita la
repeticin de la bsqueda.
El resultado debe ser similar a esto:
Datos primera coleccion
Numero: 1
Titulo: Invierno
Autor: Laimez
Precio: 1200
Numero: 2
Titulo: Verano
Autor: Lambier
Precio: 2300
Numero: 3
Titulo: Primavera
Autor: Lopez
Precio: 10500
Autor a buscar? (RC para terminar) Goya
Autor Goya no encontrado.
Autor a buscar? (RC para terminar)Laimez
1: Invierno
Autor: Laimez
Precio: 1200
--Autor a buscar? (RC para terminar)

Autor no encontrado.
Ejercicio4:
Aadir al programa anterior un procedimiento de nombre calcula_estadisticas. Este
procedimiento deber devolver como informacin (ya sea como resultado de la funcin o
mediante parmetros):
El valor total de la coleccin.
El nmero de cuadros que no estn a la venta.
El valor del cuadro de mayor precio
El valor del cuadro de menor precio (exceptuando los que no estn a la venta, que "valen"
cero).
El resultado debe ser similar a esto:
>Datos primera coleccion
Numero: 1
Titulo: La Luna
Autor: Pelaez
Precio: 3500
Numero: 2
Titulo: Fisgando
Autor: Clara Lima
Precio: 2500
Numero: 3
Titulo: Carcel
Autor: Luis Sanz
Precio: 500
> La suma es: 6500.00
> Y hay 0 cuadro no en venta
> Maximo: 3500. Minimo: 500
Ejercicio5:
Modificar el ejercicio anterior para:
Modificar la constante TAMCOLECCION para que valga 10
Utilizar dos colecciones de cuadros , coleccion1 y coleccion2.
En vez de tener tamaos fijos, se solicitar por pantalla al usuario que indique el tamao de
cada una de las colecciones: numcuadros1 y numcuadros2, que debern ser distintos.
Utilice los procedimientos previos teniendo en cuenta esta circunstancia.

BLOQUE 7.- FICHEROS


Pues eso... Usar ficheros xD.
Ejercicio1:
Partiendo de los ejercicios del tema anterior, los mejoraremos para poder guardar los datos
en un fichero una vez que termine la ejecucin del programa. Esto permitir que en una
ejecucin posterior del programa podamos recuperar esos datos, y no tener que teclearlos de
nuevo.
Para esta labor vamos a necesitar:
Definir un fichero binario, cuyo tipo base ser el tipo de los registros que almacenan la
informacin de un cuadro, Tcuadro.
Definir un procedimiento de nombre graba_fichero que reciba como parmetros:
El nombre de un fichero
La coleccin o tabla de cuadros
El nmero de cuadros de la coleccin.

Este procedimiento deber abrir el fichero para escritura, y mediante un bucle recorrer la
tabla e ir "escribiendo" cada registro de la coleccin en el fichero.
Definir un procedimiento de nombre lee_fichero que reciba como parmetros:
El nombre de un fichero
La tabla de cuadros o coleccin
El nmero de cuadros de la coleccin.
Este procedimiento abrir el fichero para lectura, ir leyendo los datos del fichero registro a
registro y los ir almacenando en la tabla coleccin.
Para probar estos procedimientos deber crear un programa principal que presente al usuario
dos opciones:
Leer del teclado: Se solicitar que se introduzcan los datos de la coleccin y posteriormente
se guardarn eso datos en un fichero, cuyo nombre se solicitar al usuario.
Leer de un fichero: Se solicitar el nombre de un fichero (donde previamente se han
guardado los datos de una coleccin) y presentar por pantalla los datos ledos del fichero.
El resultado debe ser similar a esto:
Introducir por teclado (T) o leer de fichero(F)? T
Numero de cuadros ? 2
>Datos primera coleccion
Numero: 1
Titulo: Amanece
Autor: Jose Luis
Precio: 2000
Numero: 2
Titulo: Verano
Autor: Marina
Precio: 1250
> Nombre Fichero donde guardar
coleccion.dat
---------------------------------------------------(una vez que con la primera ejecucin se a ledo la coleccin por teclado y guardado en un
fichero, probamos a leer desde fichero)
Introducir por teclado (T) o leer de fichero(F)? F
> Nombre Fichero donde leer
coleccion.dat
>Datos primera coleccion
1: Amanece
Autor: Jose Luis
Precio: 2000
--2: Verano
Autor: Marina
Precio: 1250
--Ejercicio2:
Contar el nmero de lneas y el nmero de caracteres de un fichero de texto.
Realizar un programa que abra un fichero de texto para lectura, y lo vaya leyendo lnea a
lnea. Deber presentar como resultado final el nombre del fichero, el nmero de lneas y el
nmero de caracteres.
El resultado debe ser similar a esto:
(usamos un fichero de prueba, prueba.txt)

C:\cursopro>type prueba.txt
Linea 1
Linea 2
Linea 3 y ltima
------------------------------(ejecutamos el programa para ver si funciona)
C:\cursopro>nombre_programa-ejercicio2
Nombre Fichero origen: prueba.txt
Fichero: prueba.txt 3 30
Ejercicio3:
Se propone realizar un programa que abra un fichero de texto, cree una copia del mismo y
aada al final de la copia una cadena de caracteres.
El programa deber:
Solicitar el nombre del fichero de entrada, y abrirlo para lectura.
Solicitar el nombre del fichero destino, comprobar que es distinto del nombre del fichero de
entrada, y si es as abrirlo para escritura.
Leer lnea a lnea el fichero de entrada: En cada iteracin del bucle leer una lnea del
fichero de entrada y escribir esa misma lnea en el fichero destino.
Una vez alcanzado el final del fichero origen, se cerrar el mismo y a continuacin se
aadir una lnea adicional al fichero destino. Tras aadir esta lnea se cerrar tambin el
fichero destino.
Para probar el programa se a usado el fichero de texto prueba.txt.
El resultado debe ser similar a esto:
C:\cursopro>nombre_programa-ejercicio2
Nombre Fichero origen: prueba.txt
Nombre Fichero destino: copia.txt
Linea adicional: Esta es la nueva lnea
----------------------------------------------------(ejecutamos copia.txt para comprobar si funciona)
C:\cursopro>type copia.txt
Linea 1
Linea 2
Linea 3 y ltima
Esta es la nueva lnea

Fin de ejercicios.
Pues nada ms... Estos son los ejercicios, quiero recalcar que no son mos, pero por
circunstancias no puedo nombrar la fuente... Tambin reiterar que yo solo e resuelto hasta el
bloque6 y alguno del bloque7.
Si no consiguen sacar la solucin de alguno... Pues ya saben, pregunten en este mismo
subforo sus dudas.
Espero que les valgan para algo.

Salu2.

Potrebbero piacerti anche