Oppure

Loading
30/03/09 16:19
Ciao a tutti,
Ho un problema la mia prof di informatica mi da il seguente problema:

Dato un vettore di n componenti dire se gode della seguente proprietà:
1a componente maggiore di quelle successive
2a minore delle successive
3a maggiore delle successive
4a minore delle succesive
ecc

non so come devo fare vi posto il codice che sono riuscito a fare :


codice:

program vent;
uses wincrt;
const n=6;
type vettore=array[1..n]of integer;
var v:vettore;
co:vettore;
i,j,aiuto:integer;
begin
for i:=1 to n do
begin
writeln('inserisci la ',i,'ª componente');
readln(v[i]);
end;
for i:=1 to n do
for j:=2 to n do
begin
if v[i]<v[j] then
begin
aiuto:=v[i];
v[i]:=v[j];
v[j]:=aiuto;
end;
if v[i+1]>v[j] then
begin
aiuto:=v[j];
v[j]:=v[i+1];
v[i+1]:=aiuto;
end;
end;
writeln;
for i:=1 to n do writeln(v[i]);
end.



vi prego aiutatemi mi boccia se non glielo porto domani!!!!!!!!
30/03/09 17:28
Anonymous
Se ho capito bene dovrebbe essere cosi

[EDIT]
a scusa.. non avevo letto l'eccetera... pensavo si fermasse solo al quarto componente... quindi niente si dovrebbe mettere un ciclo..... il programma di seguito controlla solo i primi 4 elementi gli altri no...
cmq ti ho dato una base... dovresti farglielo fare iterativamente con un ciclo)
[/EDIT]

program prova;
uses crt;
const n=9;
var i:integer;
    vettore: array[0..n] of integer;
    soddisfatta:boolean;
begin

 for i:=0 to n do
  begin
   writeln('Inserisci l''elemento numero ',i,' del vettore');
   readln(vettore[i]);
  end;
 soddisfatta:=true;
 for i:=1 to n-1 do
  begin
   if vettore[0]<=vettore[i] then
    soddisfatta:=false;
  end;

  if soddisfatta=true then
   for i:=2 to n-1 do
    begin
     if vettore[1]>=vettore[i] then
      soddisfatta:=false;
    end;

    if soddisfatta=true then
     for i:=3 to n-1 do
      begin
       if vettore[2]<=vettore[i] then
        soddisfatta:=false;
      end;

    if soddisfatta=true then
     for i:=4 to n-1 do
      begin
       if vettore[3]>=vettore[i] then
        soddisfatta:=false;
      end;

    if soddisfatta=true then
     writeln('Il tuo vettore soddisfa la proprieta''')
    else
     writeln("il tuo vettore non soddisfa la proprieta''');

    readln;
end.
Ultima modifica effettuata da Anonymous 30/03/09 17:44
aaa
31/03/09 11:04
gigisoft
Così dovrebbe essere un pò meglio

program prova; 
uses crt; 
const n=9; 
var i, j:integer; 
    vettore: array[1..n] of integer; 
    soddisfatta: array[1..n] of boolean; 
begin 

for i:=1 to n do 
  begin 
   writeln('Inserisci l''elemento numero ',i,' del vettore'); 
   readln(vettore[i]);
   soddisfatta[i] := true;
  end;
   
soddisfatta:=true; 

for i:=1 to n-1 do 
  begin 

    if ((i mod 2) = 0) then
     for j := i + 1 to n do 
       soddisfatta[i] := soddisfatta[i] And (vettore[i] <= vettore[j])
    else
     for j := i + 1 to n do 
       soddisfatta[i] := soddisfatta[i] And (vettore[i] >= vettore[j])

    if soddisfatta[i] then 
       writeln('Il tuo vettore soddisfa la proprieta'' sull''elemento ', i) 
      else 
       writeln("il tuo vettore non soddisfa la proprieta'' sull''elemento ', i'); 

  end;
    
  readln; 
end. 



Luigi :k:
aaa
31/03/09 13:43
Anonymous
si... direi di si ;)
aaa
31/03/09 16:06
Vi ringrazzio siete grandi