PDA

View Full Version : [REZOLVAT] Problema Pascal...



petryca
12-06-2012, 06:46 PM
Se da o matrice patratica cu n linii si n coloane.Sa se scrie si sa se afiseze un program care sa calculeze numerele prime din matrice,afisandu-le intr-un vector.
Eu am facut astfel:

program nr_prime;
uses wincrt;
var n,i,j,k:integer;ok:boolean;
v:array[1..10,1..10] of integer;
a:array[1..10] of integer;
begin
write('Introdu dimensiunea matricii ');
readln(n);
for i :=1 to n do
for j :=1 to n do
begin
write('v[',i,',',j,']=');
readln(v[i,j]);
end;
ok:=True;

for i:=1 to n do
begin
for j:=1 to n do
for k:=2 to n-1 do
begin
if v[i,j] mod k=0 then
ok:=False;
if ok=true then
a[k]:=v[i,j];
end;
end;
writeln('Numerele prime sunt: ',a[k]);
read(a[k]);
end.
Astept pareri si....
:ass:

Tiger
12-06-2012, 09:49 PM
Sa-ti alergi booleanul ... mi-a dat ceva batai de cap ... am inlocuit booleanul cu clasicul 0 si 1...


program nr_prime;
uses wincrt;
var n,i,j,k,m,ok ,sp:integer;
v:array[1..10,1..10] of integer;
a:array[1..10] of integer;
begin
sp:= 0;
m := 0;
ok := 0;
write('Introdu dimensiunea matricii: ');
readln(n);

// Citirea matricii
for i :=1 to n do
for j :=1 to n do
begin
write('v[',i,',',j,']=');
readln(v[i,j]);
end;

// new line
writeln;

// Afisarea matricii
writeln('Matricea este:');
for i :=1 to n do
begin
for j :=1 to n do
write(v[i,j], ' ');
writeln();
end;

// new line
writeln;

// rezolvare problema > "capturarea" nr. prime intr-un vector
// > adunarea nr. prime
for i:=1 to n do
for j:=1 to n do
begin
for k:=2 to (v[i,j] div 2)-1 AND ok do
if v[i,j] mod k = 0 then ok:=1;
if ok = 0 then
begin
m:= m+1;
a[m]:=v[i,j];
sp := sp + v[i,j];
end;
ok:=0;
end;
// Afisarea sumei nr. prime:
writeln('Suma numerelor prime este: ',sp);
writeln;

// Afisarea nr. prime:
for i:=1 to m do
write(a[i], ' ');

readln;
end.

petryca
12-06-2012, 10:10 PM
Bravo butule;).
Multumesc mult;)
:ass:

Tiger
12-06-2012, 10:15 PM
Nu ai pentru ce, but :P

TC.