Soluzioni esercizi proposti il 28 e 30/11/2006
Esercizio 1
program Esercizio1;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
n=10;
type
Vettore= array[1..n] of integer;
var
i: integer;
v: vettore;
function testavettore(X: vettore): boolean;
var
i:integer;
trovato: boolean;
begin
i:=1;
trovato:=false;
while (v[i]<i) and (trovato=false)and (i<n) do
begin
if v[i]=i then trovato:=true
else
i:=i+1
end;
testavettore:=trovato;
end;
begin
writeln('inserisci il vettore');
for i:= 1 to n do
readln(V[i]);
writeln('hai finito..smettila..');
writeln(testavettore(v));
readln;
end.
Esercizio 2
program Esercizio2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const n=3;
type
Vettore=array[1..n] of integer;
Matrice=array[1..n,1..n] of integer;
var
M:Matrice;
Procedure RiempiMatriceMan(var MM:matrice);
var
AA: integer;
BB: integer;
begin
Writeln('Inserisci ',n*n, ' elementi della matrice');
for AA:=1 to n do
for BB:=1 to n do
readln(MM[AA,BB]);
end;
Procedure StampaMatrice(MM: matrice);
var
ii: integer;
jj: integer;
begin
Writeln('Hai inserito ',n*n, ' elementi');
for ii:=1 to n do
begin
for jj:=1 to n do
write(MM[ii,jj]:2,' ');
writeln;
end;
end;
function TestaDispari(M: matrice): integer;
var
jj: integer;
ii: integer;
pari: boolean;
ColonneDispari:integer;
begin
ColonneDispari:=0;
pari:=false;
for jj:=1 to n do
begin
ii:=1;
pari:=false;
repeat
if (not odd(M[ii,jj])) then pari:=true;
ii:=ii+1;
until (pari=true) or (ii>n);
if pari=false then ColonneDispari:=ColonneDispari+1;
end;
TestaDispari:=ColonneDispari;
end;
{***************main**************}
begin
riempimatriceman(M);
stampamatrice(M);
writeln('Le colonne dispari sono: ',Testadispari(m));
readln;
end.
Esercizio 3
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
n=3;
type
Matrice=array[1..n,1..n] of integer;
var
M:matrice;
x: integer;
i,j: integer;
Procedure StampaMatrice(MM: matrice);
var
ii: integer;
jj: integer;
begin
Writeln('Hai inserito ',n*n, ' elementi');
for ii:=1 to n do
begin
for jj:=1 to n do
write(MM[ii,jj]:2,' ');
writeln;
end;
end;
begin
Writeln('Inserisci il valore della posizione 1,1');
readln(M[1,1]);
for j:=2 to n do {sistemo la prima riga}
M[i,j]:=M[i,j-1]+3;
for i:=2 to n do
begin
M[i,1]:=M[i-1,1]+2;
for j:=2 to n do
M[i,j]:=M[i,j-1]+3;
end;
stampamatrice(m);
readln;
end.
Esercizio 4
program Esercizio4;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
n=10;
type
vettore=Array[1..n] of integer;
var
X,V:vettore;
split,i,AUX: integer;
begin
writeln('Inserisci tutti e ',n,' gli elementi');
for i:=1 to n do
readln(V[i]);
for i:=1 to n do
write(V[i],' ');
writeln;
Writeln('inserisci un numero compreso tra 1 e ',n);
readln(split);
{sposto la metà del vettore dopo lo split nella prima parte del nuovo vettore}
for i:=split to n do
X[i-split+1]:= V[i];
Writeln('Situazione dopo la prima parte di sostituzioni.');
for i:=1 to n do
write(X[i],' ');
writeln;
{sposto la restante parte del vettore, nelle caselle ancora libere}
for i:=1 to split-1 do
X[n+1-split+i]:=V[i];
for i:=1 to n do
write(X[i],' ');
readln;
end.
Esercizio 5
Coming soon.
Esercizio 6
program Esercizio6;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
n=20;
type
matrice=array[1..n,1..n]of integer;
var
M:matrice;
{Richiede "matrice" dichiarato come type e "n" come const}
Procedure RiempiMatriceRandom(var MM:matrice);
var
ii: integer;
jj: integer;
begin
randomize;
Writeln('Ho inserito ',n*n, ' elementi random nella matrice');
for ii:=1 to n do
for jj:=1 to n do
MM[ii,jj]:=random(50);
end;
Procedure StampaMatrice(MM: matrice);
var
ii: integer;
jj: integer;
begin
Writeln('Matrice di ',n*n, ' elementi');
for ii:=1 to n do
begin
for jj:=1 to n do
write(MM[ii,jj]:2,' ');
writeln;
end;
end;
Function ContaNere(MM:matrice):integer;
var
ii,jj,somma:integer;
begin
somma:=0;
for ii:=1 to n do
for jj:=1 to n do
if (odd(ii) xor odd(jj)) then somma:=somma+MM[ii,jj];
Contanere:=somma;
end;
Function ContaBianche(MM:matrice):integer;
var
ii,jj,somma:integer;
begin
somma:=0;
for ii:=1 to n do
for jj:=1 to n do
if (odd(ii) xor (not odd(jj))) then somma:=somma+MM[ii,jj];
Contabianche:=somma;
end;
begin
riempimatricerandom(m);
stampamatrice(m);
writeln('La somma delle caselle nere: ',contanere(m));
writeln('La somma delle caselle bianche: ',contabianche(m));
if contanere(m)>contabianche(m) then
writeln('La somma delle caselle nere e'' maggiore')
else
writeln('La somma delle nere e'' minore o uguale a quelle bianche');
readln;
end.
Torna a Programmazione e Lab.
Non ci sono commenti in questa pagina. [Scrivi commento]