Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Programmazione
 programma Pascal: sotto-sequenze in un arrray

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
Sinkler Inserito il - 09/07/2005 : 16:26:01
Qualcuno ha fatto questo esercizio:
"Scrivere un programma Pascal che avendo in input un vettore di numeri interi calcoli la lunghezza massima tra le sotto-sequenze di elementi contigui uguali e visualizzi il risultato.
ES: Dato [1,2,2,2,4,2,1,1] il risultato sarà 3 relativo alla sequenza [2,2,2]"

mi serve solo la procedura per calcolare la sottosequenza
8   U L T I M E    R I S P O S T E    (in alto le più recenti)
Chilavert Inserito il - 10/07/2005 : 19:02:51
brava Sinka
Sinkler Inserito il - 10/07/2005 : 16:50:06
Citazione:
Messaggio inserito da genius

x sinkler: nella tua procedura crea_vett c'è un errore:

for i:= 1 to n <- deve essere fino a n-1 altrimenti ti da index out of bound perkè fai A[i] = A[i+1] e quindi all'ultima iterata hai A[n] = A[n+1]



ah ho capito, ma è la procedura calcola nn crea_vett, cmq grazie siccome mi usciva nn c'avevo fatto caso!
riscrivo tutto:

////////////////////////////////////////////////////////////
program SottoSequenza(input,output);
const size=50;
type interi=array[1..size] of integer;
var
vettA : interi;
num : integer;

(*Crea vettore di interi*)
procedure crea_vett(var A:interi; K:integer);
var i:integer;
begin
_for i:=1 to K do
__begin
___writeln;
___writeln('Inserisci un numero intero nella posizione n.',i,':');
___readln(A[i]);
__end;
end;

(* Stampa vettore *)
procedure stampa(var A:interi; K:integer);
var i:integer;
begin
_write('[');
__for i:=1 to K do
___begin
____write(' ',A[i],' ');
___end;
__write(']');
end;

(* Calcosa la massima sottosequenza *)
procedure calcola(var A:interi; K:integer);
var i,seq,max:integer;
begin
seq:=1;
max:=0;
_for i:=1 to K-1 do
___begin
_____if (A[i]=A[i+1]) then
_________begin
___________seq:=seq+1;
_________end
_____else
_______if (max<seq) then
________begin
_________max:=seq;
_________seq:=1;
________end;
___end;
__if (max<seq) then
___max:=seq;
_writeln('La lunghezza della sottosequenza e'':',max);
end;

(* MAIN *)
begin
writeln('Quanti elementi vuoi inserire nel vettore?');
read(num);
crea_vett(vettA,num);
writeln;
writeln('Vettore in ingresso:');
stampa(vettA,num);
writeln;
writeln;
calcola(vettA,num);
readln;
end.
////////////////////////////////////////////////////////////
prova6.zip

nella funzione di Chila manca un if alla fine:

function sottoseq(var a: vettore; k: integer): integer;
var
___i, l, x, max: integer;
begin
___l:= 1;
___x:= a[1];
___max:= 0;
___for i:= 2 to k do
______if (x = a[i]) then
_________l:= l + 1
______else begin
_________if (max < l) then
____________max:= l;
_________l:= 1;
_________x:= a[i]
______end;
___if (max<seq) then
____max:=seq;
___sottoseq:= max;
end;
genius Inserito il - 10/07/2005 : 13:20:01
x sinkler: nella tua procedura crea_vett c'è un errore:

for i:= 1 to n <- deve essere fino a n-1 altrimenti ti da index out of bound perkè fai A[i] = A[i+1] e quindi all'ultima iterata hai A[n] = A[n+1]
Chilavert Inserito il - 09/07/2005 : 17:32:22
sottoseq.zip

program sottosequenza;
const DIM = 100;
type vettore = array[1..DIM] of integer;
var
___k: integer;
___a: vettore;

procedure insvett(var a: vettore; k: integer);
var
___i, x: integer;
begin
___writeln('Inserimento vettore');
___writeln;
___for i:=1 to k do
______begin
______write('Inserisci elemento ', i, ': ');
______readln(x);
______a[i]:= x
___end
end;

function sottoseq(var a: vettore; k: integer): integer;
var
___i, l, x, max: integer;
begin
___l:= 1;
___x:= a[1];
___max:= 0;
___for i:= 2 to k do
______if (x = a[i]) then
_________l:= l + 1
______else begin
_________if (max < l) then
____________max:= l;
_________l:= 1;
_________x:= a[i]
______end;
___sottoseq:= max;
end;

begin
___write('Lunghezza del vettore: ');
___readln(k);
___insvett(a, k);
___writeln;
___writeln('La sottosequenza piu'' lunga e'' di ', sottoseq(a,k), ' elementi');
___readln
end.
Sinkler Inserito il - 09/07/2005 : 17:13:43
si è quello però nn funziona bene quella procedura che cerco io
cmq grazie mille cerco di aggiustarlo
tremenda Inserito il - 09/07/2005 : 17:11:36
Forse è questo!Vedi se funziona xkè nn ho il pascal e nn mi ricordo!



Allegato: appgennaio02.zip
1,07 KB
Sinkler Inserito il - 09/07/2005 : 17:08:41
magari!
è l'appello del 14/01/2004
tremenda Inserito il - 09/07/2005 : 17:07:30
Ti ricordi l'appello?Forse ce l'ho io!

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,06 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000