Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ho appena iniziato il mio percorso di informatica all'ITIS,
abbiamo cominciato a parlare dei vettori array e qui mi son bloccato!!!
Non riesco a capirli!!!
vi do un esercizio che non riesco a svolgere anche se a voi sarà facile:
riempire il vettore così:
[0,0,1,1,2,2,3,3,4,4,5,5...ecc].
Ho appena iniziato il mio percorso di informatica all'ITIS,
abbiamo cominciato a parlare dei vettori array e qui mi son bloccato!!!
Non riesco a capirli!!!
vi do un esercizio che non riesco a svolgere anche se a voi sarà facile:
riempire il vettore così:
[0,0,1,1,2,2,3,3,4,4,5,5...ecc].
Aspetto con ansia un vostro aiuto!!
Grazie.
ciao...
beh... i vettori non sono altro che dei contenitori di variabili.
Prima di fare i vettori avrete visto che esistono diversi tipi di variabili no??
ad esempio integer, real, boolean ecc
ecco, quindi quando a te ti serve un elemento da trattare, puoi dichiarare una variabile di un certo tipo che ti serve e poi lavorarci, ma se per esempio a te servissero molti più elementi?? come potresti fare???
ecco che entrano in gioco i vettori..
perché non sono altro che dei contenitori di variabili che praticamente al loro interno contengono tanti elementi diversi di un certo tipo
un esempio pratico è:
tu sei uno studente, giusto?
ecco... tu studente rappresenti una singola variabile, mentre la classe in cui stai rappresenta il vettore perché la tua classe è composta, oltre da te, da tanti altri studenti (i tuoi compagni di classe appunto) ognuno raggiungibile tramite il proprio nome e cognome..
nel caso dei vettori in pascal, tu puoi accedere ai diversi elementi tramite un indice, che in questo caso è rappresentato dal nome e cognome
e quando i professori fanno l'appello, non fanno altro che scandire ogni elemento del vettore come in pascal si fa usando un ciclo...
per gestire i vettori si usa solitamente il ciclo for poichè anche questo ciclo ha bisogno di un indice che sale di volta in volta.. e tu lo puoi sfruttare per scandire tutti gli elementi di un array
detto questo, sei in grado di fare da solo l'esercizio o vuoi che ti dia una dritta?
Ultima modifica effettuata da Anonymous il 09/12/2009 alle 21:47
grazie per la tua risposta,
provo a fare da solo l'esercizio concentrandomi molto di più e poi ti inserisco l'esercizio per vedere se è giusto.
grazie ciao
allora.. prima di tutto devi partire con l'idea di quello che devi fare... per poi sapere quello che ti serve...
quindi..
tu devi riuscire a riempire un vettore (dunque ti serve un vettore e allora per forza anche un ciclo per scandire gli elementi), con una determinata sequenza data...
analizzando la sequenza ti accorgi che praticamente quando la posizione dell'array è dispari, allora l'elemento da inserire viene copiato dal precendente... giusto??
benissimo, si inizia quindi con il dichiarare le variabili... abbiamo detto serve un vettore e allora:
Codice sorgente - presumibilmente Plain Text
v:array[0..n-1]of integer;
dove n sarà un numero che indica quanto deve essere lungo il vettore, e glie lo si darà a priori come costante
N.B. c'è n-1 perché se guardi bene facciamo partire il vettore da 0, dunque se noi vogliamo che abbia dimensione n, se parte da 0, dovrà arrivare a n-1.. non so se mi son spiegato..
cmq
detto questo, siccome n abbiamo detto che deve essere una costante, prima del vettore, dobbiamo dichiarare anche questo e avremo dunque:
Codice sorgente - presumibilmente Pascal
const n =20;
var v:array[0..n-1]ofinteger;
perfetto... ma non è finito...
abbiamo anche parlato di ciclo, e per gli array e vettori, il più adatto è il for.. ma cmq sia ci servirà quindi anche un indice i per poter usare nel for..
e poi servirà un contatore che servirà a contare tutte le volte che incontriamo un indice pari...
quindi la dichiarazione delle variabili sarà in fine cosi:
Codice sorgente - presumibilmente Pascal
const n =20;
var i, conta:integer; v:array[0..n-1]ofinteger;
perfetto...
ora buttiamo giù il codice...
Codice sorgente - presumibilmente Delphi
conta:=-1;
for i:=0 to n-1 do
begin
ifnotodd(i)then
conta:=conta+1;
v[i]:= conta;
writeln(v[i]);
end;
readln()
cosa fa?? praticamente inizia con impostare a -1 il valore del contatore
dopodiché parte il ciclo for che per ogni i che va da 0 a n-1 controlla se quella i è pari o dispari (la funzione odd(numero) restituisce true se il numero è dispari, quindi not(numero) ti dice se il numero è pari)
quindi ogni volta che incontra un indice pari, incrementa di 1 la variabile conta
e dopo la inserisce nel vettore
puoi notare che se l'indice è dispari, dentro all'if non ci entra mai, e quindi inserirà dentro al vettore la variabile conta non aggiornata, che sarà quindi uguale a quella precendete...
in definitiva il programma dovrebeb essere cosi:
Codice sorgente - presumibilmente Delphi
program prova;
uses crt;
const n =20;
var i, conta:integer; v:array[0..n-1]ofinteger;
begin
conta:=-1;
for i:=0 to n-1 do
begin
ifnotodd(i)then
conta:=conta+1;
v[i]:= conta;
writeln(v[i]);
end;
readln()
end.
Ultima modifica effettuata da Anonymous il 09/12/2009 alle 21:49