dijous, 14 d’abril del 2011

vectors

vectors

taules i matrius

Una taula o vector està constituïda per elements del mateix tipus, als quals s’accedeix amb un índex. Per definir una taula o una matriu s’utilitza la paraula reservada ARRAY

La diferencia entre una taula i una matriu és que la primera té un sol índex amb un valor inicial i un final, mentre la matriu en té dos d’index un per les files i un per les columnes tots dos amb els seus corresponents valors inicial i final.

Declaració d’una Variable Taula:

Var nom_taula:ARRAY[valor_inicial_index..valor_final_index] OF Tipus;

Molt sovint es necessari passar com a paràmetre aquesta variable, en aquests casos cal que la taula es declari com un nou tipus de variable.

Declaració d’un Tipus Taula:

Type mensual=array[1..12]of Real;

Var imports:mensual;

Declaració d’un Tipus Matriu:

Type

fila=1..10;
Columna=1..12’;
nom_matriu=ARRAY[fila,columna] OF Tipus;

exemple 5.1 el següent programa entra en un vector les despeses de cada mes i després calcula la suma.

program taules;

uses crt

Type mensual=array[1..12]of Real;

Var imports:mensual;

mes:byte;

suma:Real;

procedure Entrada(var despesa:mensual);

begin

for mes:=1 to 12 do

begin

Write('Despesa del mes ', mes,’....’);

Readln(despesa[mes]);

end;

end;

procedure Calcul( Var total:Real; despesa:mensual);

Begin

for mes:=1 to 12 do

total:=total+despesa[mes];

end;

begin

clrscr;

Writeln('calcul despesa anual');

Entrada(imports);

calcul(suma,imports);

Write('Total anual',suma:10:2);

Readln;

end.

exemple 5.2 calcula la suma de 2 matrius

Program suma_de_matrius;

Const MAX = 10;

Type tmatriu = array[1::MAX, 1::MAX] of real;

Var t1, t2, suma: tmatriu;

Procedure suma(m1,m2:tmatriu; var resultat:tmatriu);

Var i, j: integer;

Begin

For i:=1 To MAX Do
For j:=1 To MAX Do
resultat[i,j] := m1[i,j] + m2[i,j]

End;

Begin

llegir(t1,t2)
suma(t1,t2)
escriure(suma)

End


Exercicis sobre taules i matrius

Els següents exercicis s’han de realitzar utilitzant mòduls.

5.1.- Escriviu un programa que permeti entra 10 valors numèriques dins un vector i que calculi i escrigui per pantalla el valor màxim, el mínim i la mitja dels valors continguts en el vector.

5.2.- Escriviu un programa que realitzi la fusió (merge) de dos vectors ordenats, de forma que obtinguem un nou vector també ordenat. Suposeu que els 2 vectors són de 10 posicions, podeu omplir els vectors cada cop en l’execució del programa o recomanable inicialitzar-los dins del programa.

5.3.- El tractament dels string és igual que el d’una taula de caràcters. Per tal de practicar el string realitzeu un programa que entrat un caràcter reconti el nombre de vegades que apareix en una frase. Si es vol la frase pot ser sempre la mateixa.

5.4.- llegiu una paraula i escriviu-la en sentit contrari.

5.5.- Escriviu un programa en Pascal que permeti omplir una matriu amb valors numèrics, introduïts pel teclat.

5.6.- Escriviu un programa que sumi dos matrius de 3 x 3. Els valors de les matrius són introduïts per l’usuari.

5.7.- Utilitzem una matriu de 20*5 per emmagatzemar les notes dels alumnes. Les files corresponent als alumnes i les columnes als diferents parcials. Realitzeu els següents càlculs:

Doneu la mitja de cada alumne.

Doneu la mitja de cada parcial.

Doneu la mitja de l’assignatura.

Cap comentari:

Publica un comentari a l'entrada