A ver si me pueden ayudar con estos programas en Pascal.
P2] Dado un entero “x” y enteros “a1,a2,,,an”, los cuales están ordenados,
encontrar el índice “i” tal que “ai=x”, o devolver “i=0”, si “x” no está en la
entrada.
a) Utilizar un for que recorra el vector de izda a dcha.
b) Utilizar el algoritmo de búsqueda binaria.
c) Utilizar fichero para cargar el vector (vec1.dat)
Formato de fichero (dos líneas)
n {1ª línea = nº de celdas del vector)
a1 a2 a3 .... an {2ª línea=los n enteros ordenados, separados por un espacio}
Nota: no utilizar variables globales.



P3] Implementar el algoritmo de Euclides para calcular el máximo común
divisor.
a) Sin utilizar fichero
b) Utilizar un fichero para cargar los pares de enteros (pares.dat) y otro
fichero para guardar los resultados (mcd.dat)
Formato del fichero pares.dat (se desconoce el nº de líneas)
a1 a2
b1 b2
......
w1 z1,
Formato del fichero mcd.dat
El mcd (a1,a2)= c
El mcd(b1,b2)= d
............................
El cmd(w1,z1)=x
Nota: no utilizar variables globales.

Esta ultima es la que mas me interesa.
El objetivo de esta práctica es familiarizarse con el uso de las unidades y de los ficheros
de texto del pascal, para ello realizaremos esta práctica sin utilizar variables globales,
con el fin de realizarla lo más modular posible. Además el programa debe funcionar
independientemente del tamaño del fichero.
Realizar un programa que presente en pantalla un menú (dentro de un procedure) como
el siguiente:
1.- Entrada de datos:
a) por fichero.
b) por teclado.
2.- Cálculo del número de vocales “a” y “o”
3.- Ver fichero de salida
4.- Salir.
Para la codificación del programa se deberá cumplir las siguientes condiciones:
Opción 1: Utilizar un subprograma que nos devuelva una frase leída del
fichero/teclado.
Opción 2: Utilizar un subprograma que reciba como parámetro una frase y una
vocal y nos devuelva el número de veces que aparece la vocal en la frase.
Opción 3: Utilizar un subprograma que reciba como parámetro un fichero de texto y
muestre en pantalla su contenido.
Opción 4: Salir.
El programa principal será :
Begin
Menu;
End.
El formato del fichero de entrada es: El formato fichero de salida es:
Frase 1 Frase 1, a=34, o=35
………. ……………….
Frase n Frase n, a=2, o=5
Nota: No Utilizar Variables Globales

Muchísimas gracias!!!