Ciao a tutti,
ho un problema.. Sono ormai 3 mesi che sto lavorando su un problema di matematica da fare nel linguaggio Turbo Pascal ma mi sono bloccata a un punto.
Il testo del problema parla delle assegnazioni e consiste:
1. Caricare una matrice n*n
2. Cercare il numero minore di ogni riga
3. Sottrarlo alla matrice originaria e visualizzare la nuova matrice
fin qui tutto ok
4. Vedere se all'interno di TUTTE le colonne c'č almeno uno zero (ho chiamato la procedura, che DOVREBBE fare questo, ricerca)
Qui mi sono bloccata e sono ormai 3 mesi che mi scervello quindi stanotte ho pensato a voi!
Non č che per favore potreste darmi una mano?? Vi inserisco il programma fatto da me..
Grazie in anticipo.. Ciao ciao
Ecco il programma:
program matrici;
uses crt;
const n=10;
m=10;
type vett=array[1..n,1..m]of integer;
vett1=array[1..n]of integer;
var i,j,l,d,min,sott,x,w:integer;
v,v1:vett;
v2:vett1;
procedure intestazione;
begin
gotoxy (30,1);
writeln ('RICERCA OPERATIVA');
writeln;
end;
procedure carica_matrice;
begin
write('Nų dei lavori ');
readln(l);
write('Nų delle ditte ');
readln(d);
for i:=1 to l do
for j:=1 to d do
begin
write(j,'ų numero ', i,'ų riga ');
readln(v[i,j]);
end;
end;
procedure visualizza;
begin
clrscr;
gotoxy (25,1);
writeln ('ASSEGNAZIONE DEI LAVORI');
for i:=1 to l do
begin
writeln;
for j:=1 to d do
begin
write(v[i,j]:4);
end;
end;
readln;
end;
procedure visualizza1;
begin
for i:=1 to l do
begin
writeln;
for j:=1 to d do
begin
write(v1[i,j]:4);
end;
end;
readln;
end;
procedure sottrazione (var a:integer);
begin
for i:=1 to l do
for j:=1 to d do
begin
v1[i,j]:=v[i,j]-v2[i];
end;
visualizza1;
end;
procedure minimo;
var a:integer;
begin
writeln;
x:=1;
for i:=1 to l do
begin
a:=v[i,x];
for j:=1 to (d-1) do
begin
if a>v[i,j+1]
then
begin
a:=v[i,j+1];
end;
v2[i]:=a;
end;
write ('Numero minore della ',i,'ų riga ',a);
readln;
end;
sottrazione (a);
end;
procedure avanti;
begin
writeln ('C''č 1 zero per colonna');
readln;
end;
procedure indietro;
begin
writeln ('Non c''č 1 zero per colonna');
readln;
end;
procedure ricerca;
var trovato:boolean;
conta:integer;
begin
conta:=0;
for j:=1 to d do
trovato:=false;
i:=0;
repeat
i:=i+1;
if v1[i,j]=0
then
begin
trovato:=true;
conta:=conta+1;
end;
until (i=1) or (trovato);
if conta=d
then
avanti
else
indietro;
end;
procedure cerchia;
begin
end;
begin
clrscr;
intestazione;
carica_matrice;
visualizza;
minimo;
ricerca;
end.
Ps. scusatemi se ve l'ho messo qui ma non conosco altri modi![]()