Finestre.  Virus.  I Quaderni.  Internet.  ufficio.  Utilità.  Autisti

Lezione dalla serie: " Linguaggio di programmazione Pascal»

Una volta dichiarato un array, puoi lavorarci sopra. Ad esempio, assegnando valori agli elementi dell'array e generalmente trattandoli come normali variabili. Per accedere a un elemento specifico, è necessario specificare l'identificatore dell'array (nome) e l'indice dell'elemento tra parentesi quadre.

Ad esempio, la notazione Mas, A consente di accedere al secondo elemento dell'array MAS e al decimo elemento dell'array A. Quando si lavora con un array bidimensionale, vengono indicati due indici, con un array n-dimensionale, n indici.

Ad esempio, la voce Matr rende disponibile per l'elaborazione il valore dell'elemento situato nella quarta riga della quarta colonna dell'array M.

Gli elementi dell'array indicizzato sono chiamati variabili indicizzate. È impossibile andare oltre i confini dell'array. Cioè, se ci sono cinque elementi nell'array Mas, l'accesso al sesto o all'ottavo elemento genererà un errore.

Considera le operazioni tipiche che sorgono quando si lavora con array unidimensionali.

Riempimento di una matrice unidimensionale con valori

Riempimento e produzione di un array può essere fatto solo elemento per elemento, cioè puoi prima assegnare un valore al primo elemento, poi al secondo e così via, la stessa cosa con la visualizzazione sullo schermo - visualizziamo il primo, secondo, terzo e così via fino all'ultimo.

Pascal non ha mezzi di input-output di elementi dell'array contemporaneamente, quindi input e valori vengono eseguiti elemento per elemento. I valori possono essere assegnati a un elemento dell'array utilizzando l'operatore di assegnazione o immessi dalla tastiera utilizzando Leggi le dichiarazioni o leggi. È molto conveniente iterare su tutti gli elementi di un array in un ciclo for.

Modi per riempire array unidimensionali:

  1. Immissione di un valore dalla tastiera.
  2. Impostazione dei valori in un'istruzione di assegnazione utilizzando un generatore di numeri casuali. Questo metodo è più conveniente quando ci sono molti elementi nell'array (ci vuole molto tempo per inserire i loro valori dalla tastiera).
  3. Impostazione dei valori per formula.
  4. Inserimento di elementi di matrice da un file

1. Immissione dei valori degli elementi dell'array dalla tastiera. A causa del fatto che è stata utilizzata l'istruzione Readln, ogni valore verrà inserito su una nuova riga.

2. Riempimento di un array numeri generati casualmente dall'intervallo . Colleghiamo il generatore di numeri casuali - la funzione casuale.

3. Riempimento vettore secondo la formula. Ad ogni elemento dell'array viene assegnato il valore calcolato dalla formula. Se ogni elemento dell'array è uguale a tre volte il valore del suo numero seriale (indice), la procedura sarà simile a questa:

4. Leggere i numeri da un file. È necessario creare in anticipo un file di testo, in cui annotare diverse righe, ciascuna delle quali contiene 30 numeri.

Visualizzazione dei valori degli elementi dell'array sullo schermo

Conclusione valori degli elementi vettore sullo schermo viene eseguito, come input, elemento per elemento in un ciclo. Per l'output, useremo le istruzioni Write o Writeln. Come parametri di input, passeremo alla procedura non solo un array, ma anche il numero di elementi da visualizzare, partendo dal primo (ne avremo bisogno quando rimuoveremo e aggiungeremo elementi nell'array).

Esempio 1 Riempi l'array dalla tastiera e visualizzalo sullo schermo.

Soluzione.

Il programma utilizzerà due procedure: la procedura Init1 (riempimento dell'array dalla tastiera) e la procedura Print (emissione dell'array sullo schermo).

Esempio 2 Riempi matrice da file di testo e visualizzare sullo schermo. Ci sono diverse righe in un file di testo, ogni riga contiene 30 numeri.

Hai imparato come riempire un array unidimensionale e visualizzarlo sullo schermo.

Nella prossima lezione, continueremo a familiarizzare con gli algoritmi per l'elaborazione di array unidimensionali.

Sezioni: Informatica

Obiettivi:

  1. Introdurre gli studenti alla possibilità di riempire ed elaborare un array.
  2. Crea un'interfaccia grafica per un progetto per riempire un array e calcolare la somma degli elementi in un determinato array.
  3. Sviluppare l'interesse cognitivo per l'argomento
  4. Coltivare un atteggiamento responsabile nei confronti dell'apprendimento

DURANTE LE CLASSI

1. Aggiornamento della lezione

Organizzazione del tempo

Indagine frontale sul tema precedente “Il concetto di matrice. Array unidimensionale”

2. Formazione di abilità e abilità

Spiegazione del nuovo materiale

Dichiarazione di matrice

Un array è dichiarato allo stesso modo di una dichiarazione di variabile, è solo necessario specificare l'intervallo della modifica dell'indice. Ad esempio, un array intero unidimensionale contenente 10 elementi viene dichiarato come segue:

A: matrice di numeri interi;

Attività di base quando si lavora con gli array

1. Formazione (riempimento) di un array

1.1. secondo le formule For i:=1 to 10 do a[i]:= i*i;

1.2. genera casualmente For i:=1 to 10 do a[i]:= random(20):

La funzione integrata RANDOM(MAX), restituisce un numero intero casuale uniformemente distribuito nell'intervallo da 0 a MAX - 1 (MAX è il parametro di inversione)

1.3. entra dalla tastiera For i:=1 to 10 do read(a[i]);

2. Ordina l'array (crescente, decrescente);

3. Ricerca di elementi in un array;

4. Selezione di elementi da un array per condizione;

Riempire un array in modo casuale.

Per iniziare a lavorare con un array, deve essere riempito, ad es. assegnare agli elementi dell'array determinati valori. Per generare una sequenza di numeri casuali, utilizzare la funzione Casuale(100). Quando si esegue il programma, questa funzione visualizzerà una sequenza pseudo-casuale di numeri interi nell'intervallo da 0 a 100.

Per generare sequenze di numeri casuali diversi tra loro, si consiglia di utilizzare l'operatore Randomize

Azioni con array unidimensionali

1. Calcolo della somma degli elementi

For I:= 1 To 10 Do s:=s+ a[i]; (solito accumulo di somma in s)

2. Calcolo del prodotto

For I:= 1 To 10 Do p:=p* a[i]; (usuale accumulo di prodotto in p)

3. Cerca un elemento con un dato valore

3. Nota cambiare abilità e abilità nella pratica

Progetto “Somma di elementi in un array”. Sviluppiamo il progetto "Somma di elementi in un array", che riempirà l'array con numeri casuali e calcolerà la somma di questi numeri

Innanzitutto, creiamo una procedura di riempimento dell'array.

1.Avviare il sistema di programmazione Delphi.

2. Il lavoro sul progetto inizia con la creazione GUI, per questo nella finestra Costruttore di moduli i controlli vengono posizionati sul modulo. Per creare un'interfaccia grafica per il progetto, posizioneremo nel form due campi di testo per la visualizzazione dei dati numerici (uno per il riempimento dell'array, l'altro per la visualizzazione dell'importo) e due pulsanti per l'implementazione delle procedure evento: riempimento dell'array e sum

3. Utilizzo Barre degli strumenti posizionare un campo di testo Editl e un pulsante di comando Buttonl sul form Forml

Il passaggio successivo consiste nel codificare le procedure di evento. Facendo doppio clic sul pulsante per il quale si desidera creare il codice del programma, viene visualizzata la finestra Codice del programma con uno stub di procedura evento vuoto.

4. Fare doppio clic sul pulsante Buttonl, apparirà uno stub della procedura evento TForml.ButtonlClick: Dichiara un array UN e descrizione delle variabili È nella sezione dichiarazione var

A:array di numeri interi;

procedura TForm1.Button1Click(Sender: TObject);

Per I:= da 1 a 10 Do

A[I] := Casuale(10);

Edit1.Text:= Edit1.Text +" " + IntToStr(a[i]);

5. Salva progetto con nome

6. Compilazione del progetto (Progetto - Compila)

Ora creiamo una procedura per calcolare la somma degli elementi nell'array pieno

Usando Barre degli strumenti pag Posizioniamo il pulsante Button2 e il campo di testo Edit2 sul form Forml. Facendo doppio clic sul pulsante Button2 per il quale si desidera creare il codice del programma, viene visualizzata la finestra Codice del programma con uno stub di procedura evento vuoto.

procedura TForm1.Button2Click(Sender: TObject);

Per I:= da 1 a 10 Do

Edit2.Text:= Edit2.Text +" " + IntToStr(s)

Salvataggio del progetto dell'intero progetto (Save Project).

Compiliamo il progetto (premendo il tasto F9).

Fare clic sui pulsanti Riempi matrice e Somma.

Il campo di testo visualizzerà i risultati delle somme per varie opzioni di riempimento.

4. Riassumendo

5. Compiti a casa: creare un progetto "Il prodotto degli elementi dell'array", che prevede il riempimento dell'array numeri casuali e la possibilità di visualizzare il prodotto di tutti gli elementi dell'array nel campo di testo.

Impariamo il concetto di array, i modi per organizzare gli array in algoritmi e programmi, i modi per riempire gli array, i tipi e le dimensioni degli array. Impariamo a risolvere i compiti più semplici, compiti per trovare elementi che soddisfano la condizione.

Lo scopo della lezione: dare il concetto di un array, modi per organizzare gli array in algoritmi e programmi, modi per riempire array, tipi e dimensioni di array, imparare a risolvere problemi semplici, compiti per trovare elementi che soddisfano una condizione, mostrare la soluzione di problemi per array di ordinamento.

Durante le lezioni:

1. Spiegazione del nuovo materiale:

Per risolvere i problemi di accumulo ed elaborazione dei dati in un computer, un ruolo importante è svolto dagli array di dati e dalle sequenze inserite memoria ad accesso casuale o su supporti magnetici.

Un array è una regione di memoria che può contenere raccolte di dati di un certo tipo.

Gli indici devono essere specificati per designare i singoli elementi nelle matrici.

Descrizione degli array:

  • Tipo (ripetizione di tipi di variabili, analogia con gli array: reale, intero %, carattere $, logico)
  • Dimensioni dell'array (lineare unidimensionale, rettangolare bidimensionale, ecc.)

Poiché gli array memorizzano aggregati di dati, vengono elaborati utilizzando cicli.

alg"Tabellina"
Presto
da K=1 Prima 9 ciclo
da L=1 Prima 9 ciclo
V=K*L
kciclo
kciclo
con

T - array bidimensionale (loop all'interno di un loop)
Righe a forma di L - anello interno
k-cambia l'indice di riga

alg"output della tabella di moltiplicazione"
Presto
da K=1 Prima 9 ciclo
da L=1 Prima 9 ciclo
terminale t
Kciclo
Uscita (nuova riga)
kciclo
con

il ciclo interno organizza l'output delle stringhe
esterno - forma una tabella (colonne)

Modi per popolare gli array

  1. dalla tastiera
  2. riscrittura delle informazioni memorizzate su MHD
  3. formula
  4. generatore di numeri casuali
  5. dati, leggi

Valori della tabella

Un array unidimensionale corrisponde a una lista, un array bidimensionale corrisponde a una tabella. Prima di utilizzarli nel programma, è necessario specificare la macchina in modo che prenda un posto in anticipo

Dim (dimensione)

Dim(8) Dim(8, 15)

La dimensione viene contata da zero.

Dim è posizionato all'inizio del programma.

Modi per popolare gli array

1. dalla tastiera

dimA(3,4)
per I=1 a 3
per j=1 a 4
ingressoA(I,J)
successivo J,I

2. formula

dimA(3)
per I=1 a 3
A(I)=cos(I)
prossimo io

3. generatore di numeri casuali

dimB(7)
per I=da 0 a 7
A(I)=int(rnd(1)*100+1)
prossimo io

4. dati, leggi

dimA$(4)
per I=1 a 4
leggi A$(I)
? A$(io)
prossimo io
dati Lena, Olya, Katya, Kolya

d/h: abstract

Sezioni: Informatica

Soggetto: Array bidimensionali. Riempimento di un array bidimensionale secondo una data regola.

Obiettivi: sviluppare abilità nel lavorare con elementi di un array bidimensionale, imparare a riempire array bidimensionali secondo una data regola, imparare a derivare una relazione tra un numero di riga e un numero di colonna; sviluppo del pensiero logico degli studenti.

PROCESSO DI STUDIO

1. Aggiornamento delle conoscenze

Gli array, la posizione degli elementi in cui è descritta da due indici, sono chiamati bidimensionali. La struttura di un tale array può essere rappresentata da una matrice rettangolare. Ogni elemento della matrice è identificato univocamente indicando i numeri di riga e di colonna, il numero di riga è i, il numero di colonna è j.
Consideriamo una matrice A di dimensione n*m:

un 11 un 12 un 13 un 14
un 21 un 22 un 23 un 24
un 31 un 32 un 33 un 34

Matrice con 3 righe e 4 colonne, numero di righe n=3, numero di colonne m=4. Ogni elemento ha il proprio numero, che consiste di due numeri: il numero della riga in cui si trova l'elemento e il numero della colonna. Ad esempio, a23 è l'elemento nella seconda riga e nella terza colonna.
Un array bidimensionale in Turbo Pascal può essere descritto in diversi modi. Per descrivere un array bidimensionale, è necessario determinare di che tipo sono i suoi elementi e come sono numerati (che tipo è il suo indice). Esistono diversi modi per descrivere un array bidimensionale.

Costante maxN=…; (Valori di riga massimi)
massimoM=…; (valori massimi di conteggio colonne)

1 modo

Tipo Mas = matrice di<тип элементов>; (matrice unidimensionale)
Tipo TMas = matrice di Mas; (Matrice unidimensionale i cui elementi sono matrici unidimensionali)

2 vie

Digita TMas = matrice di matrice di<тип элементов>;
(Matrice unidimensionale i cui elementi sono matrici unidimensionali)

3 vie

tipo<имя типа>= matrice di<тип элементов>; (array bidimensionale)

Viene data preferenza al terzo modo di descrivere un array bidimensionale.

Per esempio:

CostanteN=3; M=4;
Digitare TMas= matrice di interi; (array bidimensionale di numeri interi)

La formazione di un array bidimensionale può avvenire in quattro modi: input da tastiera, attraverso un generatore di numeri casuali, secondo una data regola, o utilizzando un file.

1) Formazione di un array bidimensionale utilizzando l'input da tastiera e l'algoritmo per l'output riga per riga degli elementi della matrice.

Cost N=10;M=10;
Digita Tmas= matrice di interi;
VarA:Tmas; i,j:intero;
Inizio
(Inserimento degli elementi della matrice)
Per i:=1 a N fare
Per j:=1 a M fare
Leggi un);
(Output degli elementi della matrice)
Per i:=1 a N inizia
Per j:=1 a M fare
Scrivi(A:4); (Prima riga stampata)
Scrivi (Nuova riga)
FINE;
FINE.

2) Un frammento del programma per la generazione di un array bidimensionale tramite un generatore di numeri casuali.

Inizio
rendi casuale; (Inizializzazione del generatore di numeri casuali)
(Inserimento degli elementi della matrice)
Per i:=1 a N fare
Per j:=1 a M fare
A:=casuale(45)-22;

2. Imparare nuovo materiale. Riempimento di un array secondo una regola

Consideriamo diversi frammenti di programmi per riempire un array bidimensionale secondo una certa legge. Per fare ciò, è necessario derivare una regola di riempimento.

1. Ad esempio, riempire l'array A con la dimensione n*m ​​come segue

1 2 3 4 5 6 7 8
16 15 14 13 12 11 10 9
17 18 19 20 21 22 23 24
32 31 30 29 28 27 26 25
33 34 35 36 37 38 39 40
48 47 46 45 44 43 42 41

L'array viene riempito secondo il principio del "serpente". Regola di riempimento: se il numero di riga è un numero dispari, allora A=(i-1)*m+j, altrimenti A=i*m-j+1.

programma M1A;

n,m,i,j: numero intero;
inizio
readln(n,m);
per i:=1 an iniziare
per j:=1 a m fare
inizio
se io mod 2 = 1 allora
LA=(i-1)*m+j
altro
A=i*m-j+1;
scrivere(A:3);
FINE;
scrivere;
FINE;
leggere;
FINE.

Ecco un esempio di un programma di un altro modo di riempire secondo una data regola:

programma M1B;
varA:array di numeri interi;
n,m,i,j: numero intero;
c: numero intero;
inizio
readln(n,m);
c:=1;
per i:=1 an do
inizio
per j:=1 a m fare
inizio
LA:=c;
se (i mod 2 = 0) e (j<>m) allora
dec(c)
altro
Inc(c);
scrivere(A:3);
FINE;
do:=do+m-1;
scrivere;
FINE;
leggere;
FINE.

2. Riempire l'array A secondo il seguente principio:

1 0 2 0 3 0 4
0 5 0 6 0 7 0
8 0 9 0 10 0 11
0 12 0 13 0 14 0

programma M2;
varA:array di numeri interi;
n,m,i,j: numero intero;
c: numero intero;
inizio
readln(n,m);
c:=0;
per i:=1 an do
inizio
per j:=1 a m fare
inizio
se (i-1+j) mod 2 = 0 allora
R:=0
altro
inizio
Inc(c);
LA:=c;
FINE;
scrivere(A:5);
FINE;
scrivere;
FINE;
leggere;
FINE.

3. Compila l'array A secondo il seguente principio:

1 12 13 24 25 36
2 11 14 23 26 35
3 10 15 22 27 34
4 9 16 21 28 33
5 8 17 20 29 32
6 7 18 19 30 31

varA:array di numeri interi;
n,m,i,j: numero intero;
c: numero intero;
inizio
readln(n,m);
c:=1;
per j:=1 a m fare
inizio
per i:=1 an do
inizio
LA:=c;
se (j mod 2 = 0) e (i<>n) allora
dec(c)
altro
Inc(c);
FINE;
c:=c+n-1;
FINE;
per i:=1 an do
inizio
per j:=1 a m fare
scrivere(A:5);
scrivere;
FINE;
leggere;
FINE.

4. Compila l'array A secondo il seguente principio:

1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4

var i,j,m,c,d: numero intero;

inizio
c:=1;
readln(m);
per j:=1 a m fare
inizio
io:=c;
g:=1;
ripetere
LA:=d;
inc(i);
se sono allora
io:=1;
inc(d);
fino a i=c;
dec(c);
se c<= 0 then
c:=m-c;
FINE;
per i:=1 to m do
inizio
per j:=1 a m fare
scrivere(A:2);
scrivere;
FINE;
FINE.

5. Riempire l'array A secondo il seguente principio:

1 0 0 0 1
0 1 0 1 0
0 0 1 0 0
0 1 0 1 0
1 0 0 0 1

var m,i,j: numero intero;
A:array di numeri interi;
inizio
readln(m);
per i:=1 to m do
inizio
per j:=1 a m fare
inizio
se (i=j) o (m-i+1=j) allora
R:=1
altro
R:=0;
scrivere(A:2);
FINE;
scrivere;
FINE;
FINE.

3. Compiti per soluzione indipendente

6 5 4 3 2 1
7 8 9 10 11 12
18 17 16 15 14 13
19 20 21 22 23 24
30 29 28 27 26 25
31 32 33 34 35 36

36 25 24 13 12 1
35 26 23 14 11 2
34 27 22 15 10 3
33 28 21 16 9 4
32 29 20 17 8 5
31 30 19 18 7 6

0 1 1 1 0
1 0 1 0 1
1 1 0 1 1
1 0 1 0 1
0 1 1 1 0

4) Riempire l'array secondo il seguente principio:

31 32 33 34 35 36
25 26 27 28 29 30
19 20 21 22 23 24
13 14 15 16 17 18
7 8 9 10 11 12
1 2 3 4 5 6

5) Compilare l'array secondo il seguente principio:

31 25 19 13 7 1
32 26 20 14 8 2
33 27 21 15 9 3
34 28 22 16 10 4
35 29 23 17 11 5
36 30 24 18 12 6

Compiti a casa:

1) Riempi l'array secondo il seguente principio:

6 7 18 19 30 31
5 8 17 20 29 32
4 9 16 21 28 33
3 10 15 22 27 34
2 11 14 23 26 35
1 12 13 24 25 36

2) Riempire l'array secondo il seguente principio:

31 32 33 34 35 36
30 29 28 27 26 25
19 20 21 22 23 24
18 17 16 15 14 13
7 8 9 10 11 12
6 5 4 3 2 1

3) Riempire l'array secondo il seguente principio:

0 1 1 1 0
1 0 1 0 1
1 1 0 1 1
1 0 1 0 1
0 1 1 1 0

Finora abbiamo lavorato con tipi di dati semplici: logici (booleani), interi (integer , word , byte , longint), real (real), character (char). Qualsiasi algoritmo può essere programmato utilizzando questi quattro tipi di base. Ma l'elaborazione delle informazioni sul variegato mondo reale richiede dati con una struttura più complessa. Tali costruzioni complesse basate sui tipi scalari più semplici sono chiamate strutture. Una struttura è un tipo di dati composito costituito da tipi di dati scalari di base. Se la struttura non cambia la sua struttura durante l'esecuzione del programma in cui è descritta, tale struttura viene chiamata statica.

Un array è una raccolta omogenea di elementi

La struttura più comune implementata in quasi tutti i linguaggi di programmazione è un array.

Gli array sono costituiti da un numero limitato di componenti e tutti i componenti dell'array sono dello stesso tipo, chiamato tipo di base. La struttura di un array è sempre omogenea. Un array può contenere elementi di tipo integer , real o char o altri elementi dello stesso tipo. Tuttavia, non si dovrebbe concludere da ciò che i componenti dell'array possono avere solo un tipo scalare.

Un'altra caratteristica di un array è che è possibile accedere arbitrariamente a qualsiasi suo componente. Cosa significa? Il programma può ottenere immediatamente l'elemento di cui ha bisogno tramite il suo numero di serie (indice).

Indice matrice

Viene chiamato il numero dell'elemento dell'array indice. Un indice è un valore di un tipo ordinale definito come tipo di indice matrice data. Molto spesso si tratta di un tipo intero (integer , word o byte), ma può essere sia logico che di carattere.

Descrizione di un array in Pascal. In Pascal, il tipo di un array è specificato usando una parola speciale vettore(inglese - array), e la sua dichiarazione nel programma è la seguente:

tipo< имя _ типа >= matrice [ I ] di T;

dove I è il tipo dell'indice dell'array, T è il tipo dei suoi elementi.

È possibile descrivere immediatamente le variabili di tipo array, ad es. nella sezione dichiarazione variabili:

Var a,b: matrice [ I ] di T;

Tipicamente, un tipo di indice è caratterizzato da un certo intervallo di valori di qualsiasi tipo ordinale: I 1 .. I n . Ad esempio, gli indici possono variare nell'intervallo 1..20 o " a ".." n ".

La lunghezza dell'array Pascal è caratterizzata dall'espressione:

ord (I n)- ord (I 1)+1.

Ad esempio, ecco una dichiarazione di due tipi: vettore come matrice Pascal di 10 numeri interi e stroka come matrice di 256 caratteri:

tipo
Vettore=array di interi;
stringa=array di caratteri;

Usando un indice di array, puoi accedere ai singoli elementi di qualsiasi array come una normale variabile: puoi ottenere il valore di questo elemento, assegnargli separatamente un valore, usarlo nelle espressioni.

Descriviamo le variabili di tipo vettore e stringa:

Calcolo dell'indice dell'array Pascal

Un indice di array in Pascal non ha bisogno di essere impostato esplicitamente. Come indice di un array, puoi utilizzare una variabile o un'espressione corrispondente al tipo di indice. In altre parole, gli indici possono essere calcolati.

Questo meccanismo è uno strumento di programmazione molto potente. Ma genera un errore comune: il risultato del calcolo potrebbe essere al di fuori dell'intervallo di valori di indice consentiti, ovvero si cercherà di fare riferimento a un elemento che non esiste. Questo errore comune è chiamato "array fuori dai limiti".

Programma di esempio con errore di matrice Pascal

Programma primer _ errore ;
tipo
vettore=array di parole;
var
n: intero
a:vettore;
inizio
n:=45;
a:=25;
FINE.

Sebbene questo programma corrisponde completamente alla sintassi del linguaggio e il traduttore lo "salta", in fase di esecuzione si verificherà un errore di superamento dei limiti dell'array Pascal. Per n =45, l'espressione n *2=90, il computer tenterà di accedere all'elemento dell'array a , ma tale elemento non esiste, poiché viene descritto un array di 80 dimensioni.

Lo assumeremo buon programma dovrebbe emettere un messaggio di avviso se si tenta di accedere a elementi dell'array inesistenti. Non sarebbe superfluo verificare l'eventuale uscita sia per il limite destro che per quello sinistro dell'array, perché è possibile che come risultato del calcolo del valore dell'espressione si ottenga un numero che si trova a sinistra del Pascal confine della matrice.

Da tutto ciò possiamo concludere che il programmatore deve stare molto attento quando lavora con gli indici degli array.

Operazioni di base con array Pascal

Come sapete, definire un tipo di dati significa limitare l'intervallo di valori consentiti, la rappresentazione interna nel computer, nonché l'insieme delle operazioni consentite su dati di questo tipo. Abbiamo definito il tipo di dati come un array Pascal. Quali operazioni sono definite su questo tipo di dati? L'unica azione che può essere eseguita su interi array, e solo se gli array sono dello stesso tipo, è l'assegnazione. Se il programma dichiara due variabili dello stesso tipo, ad esempio,

Var
a , b: matrice di real ;

allora puoi cambiare UN assegnare un valore a una variabile B(a:=b). In questo caso, ogni elemento dell'array UN verrà assegnato il valore corrispondente dall'array B. Tutte le altre operazioni sugli array Pascal vengono eseguite elemento per elemento. (è importante!) .

Ingresso matrice Pascal

Per inserire i valori degli elementi dell'array, è necessario modificare in sequenza il valore dell'indice, partendo dal primo all'ultimo, e inserire l'elemento corrispondente. Per implementare queste azioni, è conveniente utilizzare un ciclo con un determinato numero di ripetizioni, ad es. un semplice ciclo aritmetico, dove il parametro del ciclo sarà una variabile - l'indice dell'array Pascal. I valori degli elementi possono essere inseriti dalla tastiera o definiti utilizzando un operatore di assegnazione.

Esempio Frammento di programma di input di array Pascal

Var
A: matrice di numeri interi ;
Inizio
Per i:=da 1 a 10 do
readln(a[i]); (l'elemento i-esimo si inserisce da tastiera)

Consideriamo ora il caso in cui l'array Pascal viene automaticamente riempito con numeri casuali, per questo useremo la funzione casuale(N).

Un esempio di un frammento di programma per riempire un array Pascal con numeri casuali

Var
io: byte (la variabile I viene inserita come indice dell'array)
Inizio
Per i:=da 1 a 10 do
A[i]:= casuale(10); (All'elemento i-esimo dell'array viene assegnato un numero intero "casuale" nell'intervallo da 0 a 10)

Uscita dell'array Pascal

Anche l'output di un array in Pascal viene eseguito elemento per elemento, in un ciclo, dove l'indice dell'array funge da parametro, prendendo successivamente tutti i valori dal primo all'ultimo.

Esempio Frammento del programma di output dell'array Pascal

Var
A: matrice di numeri interi;
io: byte (la variabile I viene inserita come indice dell'array)
Inizio
Per i:=da 1 a 10 do
Scrivi(a[i]," "); (l'output dell'array viene eseguito in una stringa, viene stampato uno spazio dopo ogni elemento)

La conclusione può anche essere fatta in una colonna che indica l'indice corrispondente. Ma in questo caso, è necessario tenere conto del fatto che con una dimensione dell'array di grandi dimensioni, tutti gli elementi potrebbero non adattarsi allo schermo e si verificherà lo scorrimento, ad es. quando tutte le linee dello schermo sono piene, verrà stampato l'elemento successivo e quello superiore uscirà dallo schermo.

Un programma di esempio per visualizzare un array Pascal in una colonna

Var
A: matrice di numeri interi;
io: byte (la variabile I viene inserita come indice dell'array)
Inizio
Per i:=da 1 a 10 do
WriteIn("a[", i,"]=", a[i]); (elementi dell'array di output in una colonna)

Sullo schermo vedremo, ad esempio, i seguenti valori:

un=2
un=4
un = 1 ecc.

Un esempio di risoluzione di un problema utilizzando gli array Pascal

Compito: dati due vettori n-dimensionali. Trova la somma di questi vettori.

La soluzione del problema:

  • L'input per questo problema saranno due array unidimensionali. La dimensione di questi array può essere arbitraria, ma certa. Quelli. possiamo descrivere un array deliberatamente grande e nel programma determinare quanti elementi verranno effettivamente utilizzati. Gli elementi di questi array possono essere numeri interi. Quindi la descrizione sarà simile a questa:

    var a , b: matrice di interi ;

  • L'output saranno gli elementi dell'array risultante, chiamiamolo c . Anche il tipo dell'array risultante deve essere un numero intero.
  • Oltre a tre array, abbiamo bisogno di una variabile: un parametro di ciclo e un indice di array, chiamiamolo i , nonché una variabile n per determinare il numero di elementi in ciascun array.

Avanzamento della risoluzione del problema:

  • determinare il numero di elementi (dimensione) degli array, inserire il valore n ;
  • inseriamo un array a ;
  • inserisci l'array b ;
  • in un ciclo, ordinando i valori dell'indice i da 1 a n , calcoliamo in sequenza i valori degli elementi dell'array c secondo la formula:

    c[i]= a[i]+ b[i];

  • visualizzare l'array risultante.

Testo del programma:

Un programma di esempio per sommare vettori

somma del programma;
Var
a, b, c: matrice di numeri interi;
io, n: byte;
Inizio
Write("Inserisci la dimensione dell'array:");
readln(n);
Per i:=1 an do
readln(a[i]); (ingresso matrice a)
Per i:=1 an do
readln(b[i]); (ingresso matrice b)
Per i:=1 an do
C[i]:=a[i]+b[i]; (calcolo della somma degli array)
Per i:=1 an do
scrivere(c[i]," "); ( output dell'array con )
FINE.

Se noti un errore, seleziona una parte di testo e premi Ctrl + Invio
CONDIVIDERE: