LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam

Agenzia federale per l'educazione

astratto

"TIPI DI DATI IN PASCAL"

1. Tipi di dati

Qualsiasi dato, ad es. costanti, variabili, proprietà, valori di funzione o espressioni sono caratterizzati dai loro tipi. Un tipo definisce l'insieme di valori validi che un oggetto può avere, nonché l'insieme di operazioni valide che si applicano ad esso. Inoltre, il tipo determina anche il formato della rappresentazione interna dei dati nella memoria del PC.

In generale, il linguaggio Object Pascal è caratterizzato da una struttura ramificata di tipi di dati (Fig. 1.1). Il linguaggio fornisce un meccanismo per la creazione di nuovi tipi, in modo che il numero totale di tipi utilizzati nel programma possa essere arbitrariamente elevato.

I dati elaborati nel programma sono divisi in variabili, costanti e letterali:

costanti rappresentano i dati i cui valori sono impostati nella sezione dichiarazione delle costanti e non cambiano durante l'esecuzione del programma.

variabili sono dichiarati nella sezione di dichiarazione delle variabili, ma a differenza delle costanti, ottengono i loro valori già nel processo di esecuzione del programma e la modifica di questi valori è consentita. Costanti e variabili sono accessibili per nome.

Letterale non ha un identificatore ed è rappresentato direttamente nel testo del programma in base al valore.

Un tipo definisce l'insieme di valori che gli elementi di dati possono assumere e l'insieme di operazioni consentito su di essi.

Questo e i prossimi quattro capitoli prevedono descrizione dettagliata tutti i tipi.

1.1 Tipi semplici

I tipi semplici includono i tipi ordinali, reali e il tipo di data e ora.

Tipi ordinali differiscono per il fatto che ognuno di essi ha un numero finito di possibili valori. Questi valori possono essere ordinati in un certo modo (da qui il nome dei tipi) e, quindi, a ciascuno di essi è possibile associare un certo numero intero - il numero seriale del valore.

Tipi reali in senso stretto, hanno anche un numero finito di valori, che è determinato dal formato della rappresentazione interna di un numero reale. Tuttavia, il numero di possibili valori di tipi reali è così grande che non è possibile confrontare un intero (il suo numero) con ciascuno di essi.

Digita data-ora Progettato per memorizzare data e ora. In effetti, a questo scopo, utilizza un formato materiale.

1.1.1 Tipi ordinali

I tipi ordinali includono (vedi Fig. 1.1) intero, logico, carattere, enumerato e intervallo-tipo. La funzione Ord (x) è applicabile a ciascuno di essi, che restituisce il numero seriale del valore dell'espressione X.


Figura. 1.1 - Struttura dei tipi di dati

Per totale di tipi, la funzione ord (x) restituisce il valore di x stesso, ovvero Ord (X) \u003d x per x appartenente a qualsiasi totale genere. Applicando Ord (x) a logico , carattere ed elencato tipi fornisce un numero intero positivo compreso tra 0 e 1 ( tipo booleano), da 0 a 255 ( simbolico), da 0 a 65535 ( enumerabile). Tipo di intervallo mantiene tutte le proprietà della base tipo ordinale, quindi, il risultato dell'applicazione della funzione ord (x) dipende dalle proprietà di questo tipo.

Puoi anche applicare funzioni ai tipi ordinali:

pred (x) - restituisce il valore precedente del tipo ordinale (un valore che corrisponde al numero ordinale ord (x) -1, ovvero ord (рred (x)) \u003d ord (x) - 1;

succ (x) - restituisce il valore successivo del tipo ordinale, che corrisponde al numero ordinale ord (x) +1, ovvero ord (Succ (x)) \u003d ord (x) + 1.

Ad esempio, se un programma definisce una variabile

quindi la funzione PRED (c) restituirà il carattere “4” e la funzione SUCC (c) restituirà il carattere “6”.

Se immaginiamo qualsiasi tipo ordinale come un insieme ordinato di valori che aumenta da sinistra a destra e occupa un certo segmento sull'asse numerico, allora la funzione pred (x) non è definita per la sinistra e succ (x) per l'estremità destra di questo segmento.

Interi tipi . L'intervallo dei possibili valori di tipi interi dipende dalla loro rappresentazione interna, che può occupare uno, due, quattro o otto byte. Sul tavolo. 1.1 vengono indicati i nomi dei tipi interi, la lunghezza della loro rappresentazione interna in byte e l'intervallo dei possibili valori.

Tabella 1.1 - Tipi di numeri interi

Nome Lunghezza, byte Intervallo di valori
Cardinale 4 0. .. 2 147 483 647
Byte 1 0...255
Shortint 1 -128...+127
smallint 2 -32 768...+32 767
parola 2 0...65 535
Numero intero 4
longint 4 -2 147 483 648...+2 147 483 647
Int64 8 -9*1018...+9*1018
longword 4 0. . .4 294 967 295

tipi longword e Int64 introdotto per la prima volta nella versione 4 e tipi smallint e Cardinale mancante in Delphi 1. Digitare numero intero per questa versione richiede 2 byte e ha un intervallo di valori compreso tra -32768 e +32767, ovvero corrisponde smallint .

Quando si utilizzano procedure e funzioni con parametri interi, si dovrebbe essere guidati dalla "nidificazione" dei tipi, ad es. ovunque possa essere usato parola permesso Byte (ma non viceversa) in longint "Accedere" smallint che, a sua volta, include Shortint .

Elenco delle procedure e funzioni applicabili a tipi interiè riportato in tabella. 1.2. Le lettere b, s, w, i, l indicano rispettivamente espressioni di tipo Byte , Shortint, Word, Integer e Longint ,

x è un'espressione di uno di questi tipi; le lettere vb, vs, vw, vi, vl, vx indicano le variabili dei tipi corrispondenti. Un parametro opzionale è indicato tra parentesi quadre.

Tabella 1.2 - Procedure standard e funzioni applicabili ai tipi interi

Appello Tipo di risultato atto
abs (x) x Restituisce il modulo x
chr (b) carbonizzare Restituisce un carattere con il suo codice
dec (vx [, i]) - Diminuisce vx di i e, in assenza di i, di 1
inc (vx [, i]) - Aumenta vx di i e, in assenza di i, di 1
Ciao (w) Byte Restituisce l'arco superiore dell'argomento
Ciao (i) Anche Restituisce il terzo byte di fila
Lo (i) Restituisce il byte basso dell'argomento
Basso) Anche
dispari (l) booleano Restituisce True se l'argomento è un numero dispari.
Casuale (w) Come parametro Restituisce un numero pseudo-casuale distribuito uniformemente nell'intervallo 0 ... (w-l)
sqr (x) X Restituisce il quadrato dell'argomento
scambiare (i) Numero intero Scambia i byte in una parola
scambiare (w) parola Anche

Nelle operazioni con numeri interi, il tipo di risultato corrisponderà al tipo di operandi e se gli operandi sono di tipi interi diversi, un tipo generale che include entrambi gli operandi. Ad esempio, con shortint e parola il tipo sarà comune numero intero . Nell'impostazione standard, il compilatore Delphi non produce codice che controlla l'eventuale verifica del valore al di fuori dell'intervallo accettabile, il che può portare a fraintendimenti.

Tipi booleani . I tipi logici includono Boolean, ByteBool, Bool, wordBool e LongBool . In Pascal standard, viene definito solo il tipo booleano , altri tipi logici introdotti in Object Pascal per la compatibilità con Windows: tipi booleano e ByteBool occupare un byte ciascuno, Bool e WordBool - 2 byte ciascuno LongBool - 4 byte. I valori booleani possono essere una delle costanti precedentemente dichiarate False (false) o True (true).

Poiché il tipo booleano è un tipo ordinale, può essere utilizzato in un operatore loop di tipo numerabile. In Delphi 32 per booleano valore

Ord (Vero) \u003d +1, mentre per altri tipi ( Bool, WordBool eccetera.)

Ord (True) \u003d -1, quindi questo tipo di operatori dovrebbe essere usato con cautela! Ad esempio, per Delphi 6, l'istruzione eseguibile showMessage ("---") nel ciclo successivo per non verrà mai eseguito:

per L: \u003d False to True do

ShowMessage ("-);

Se sostituiamo il tipo del parametro loop L nell'esempio precedente con booleano , il ciclo funzionerà e il messaggio apparirà due volte sullo schermo. [Per le versioni 1 e 2 di Delphi ord (Vero) \u003d + 1 per qualsiasi tipo booleano.]

Tipo di carattere . I valori del tipo di carattere sono l'insieme di tutti i caratteri del PC. A ciascun carattere viene assegnato un numero intero nell'intervallo 0 ... 255. Questo numero funge da codice per la rappresentazione interna del personaggio; viene restituito dalla funzione ord.

Per la codifica in Windows, viene utilizzato il codice ANSI (chiamato per l'American National Standard Institute - l'American Institute of Standardization, che ha proposto questo codice). La prima metà dei caratteri PC con i codici 0 ... 127 corrisponde alla tabella 1.3. La seconda metà dei caratteri con i codici 128 ... 255 varia a seconda del tipo di carattere. I caratteri standard di Windows Arial Cyr, Courier New Cyr e Times New Roman usano gli ultimi 64 codici (da 192 a 256) per rappresentare i caratteri cirillici (senza le lettere “ё” e “ё”): “A” ... “I” sono codificati valori 192..223, “a” ... “I” - 224 ... 255. I simboli “ё” e “ё” hanno i codici 168 e 184, rispettivamente.

Tabella 1.3 - Codifica dei caratteri secondo lo standard ANSI

Codice Simbolo Codice. Simbolo Codice. Simbolo Codice Simbolo
0 nul 32 BL 64 @ 96 "
1 ZON 33 ! 65 E 97 e
2 STX 34 66 NEL 98 b
3 ETX 35 # 67 A PARTIRE DAL 99 a partire dal
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f
7 Bel 39 " 71 sol 103 d
8" BS 40 ( 72 N 104 h
9 Ht 41 ) 73 io 105 io
10 lf 42 * 74 J 106 j
11 VT 43 + 75 PER 107 k
12 Ff 44 F 76 L 108 1
13 CR 45 - 77 M 109 m
14 COSÌ 46 78 N 110 n
15 SI 47 / 79 0 111 di
16 DEL 48 0 80 R 112 P
17 DC1 49 1 81 Q 113 q
18 DC2 50 2 82 R 114 r
19 DC3 51 3 83 S 115 s
20 DC 4 52 4 84 T 116 t
21 Nak 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 ETB 55 7 87 W 119 W
24 PUÒ 56 8 88 x 120 x
25 EM 57 9 89 Y 121 A
26 SUB 58 : 90 Z .122 z
27 Esc 59 ; 91 t 123 {
28 FS 60 < 92 \ 124 1
29 GS 61 = 93 ] 125 }
30 RS 62 > 94 L 126 ~
31 NOI 63 F 95 127 r

I simboli con i codici 0 ... 31 si riferiscono ai codici di servizio. Se questi codici vengono utilizzati nel testo simbolico del programma, vengono considerati spazi.

Digitare carbonizzare sono applicabili le operazioni di relazione e le funzioni integrate:

Char (c) - digitare la funzione carbonizzare ; converte un'espressione in tipo Byte in un personaggio e lo restituisce con il suo valore;

UpCase (CH) - digitare la funzione carbonizzare ; restituisce una lettera maiuscola, se sn è una lettera latina minuscola, altrimenti restituisce il personaggio sn stesso (per il cirillico restituisce il carattere originale).

Tipo enumerato . Un tipo enumerato viene specificato elencando i valori che può ricevere. Ogni valore è nominato da un determinato identificatore e si trova in un elenco circondato da parentesi, ad esempio:

colori \u003d (rosso, bianco, blu);

L'uso dei tipi enumerati rende i programmi più visivi.

La corrispondenza tra i valori del tipo enumerato e i numeri seriali di questi valori è stabilita dall'ordine di quotazione: il primo valore nell'elenco ottiene il numero seriale 0, il secondo - 1, ecc. La potenza massima del tipo enumerato è 65536 valori, quindi il tipo enumerato effettivo definisce un sottoinsieme del tipo intero parola e può essere considerato come una dichiarazione compatta immediatamente di un gruppo di costanti intere con valori 0, 1, ecc.

L'uso dei tipi enumerati aumenta l'affidabilità dei programmi grazie alla capacità di controllare i valori che ricevono le variabili corrispondenti. L'oggetto Pascal consente trasformazioni inverse: qualsiasi espressione di tipo parola può essere convertito in un valore di un tipo enumerato, a meno che il valore dell'espressione intera non superi la potenza di questo tipo. Tale conversione si ottiene utilizzando una funzione dichiarata automaticamente con il nome di un tipo elencato.

Tipo di intervallo . Un tipo di intervallo è un sottoinsieme del suo tipo di base, che può essere qualsiasi tipo ordinale, ad eccezione di un tipo di intervallo.

L'intervallo di tipi è impostato dai limiti dei suoi valori all'interno del tipo di base:

<мин.знач.>..<макс.знач.>

Qui<мин. знач. > - il valore minimo dell'intervallo di tipi;<макс. знач. > - il suo valore massimo.

Non è necessario che l'intervallo di tipi sia descritto nella sezione del tipo, ma può essere specificato direttamente quando si dichiara una variabile.

Nel determinare l'intervallo di tipi, si dovrebbe essere guidati dalle seguenti regole:

due caratteri ".." sono considerati come un solo carattere, quindi gli spazi non sono consentiti tra loro; il bordo sinistro dell'intervallo non deve superare il bordo destro.

Un intervallo di tipi eredita tutte le proprietà del suo tipo di base, ma con limitazioni associate alla sua potenza inferiore. In particolare, se viene definita una variabile.

La libreria standard Object Pascal include due funzioni che supportano l'utilizzo dei tipi di intervallo:

Alta (x) - restituisce il valore massimo dell'intervallo di tipi a cui appartiene la variabile x;

Basso (x) - restituisce il valore minimo del tipo di intervallo.

1.1.2 Tipi reali

A differenza dei tipi ordinali, i cui valori sono sempre confrontati con una serie di numeri interi e, quindi, sono rappresentati nel PC in modo assolutamente preciso, i valori dei tipi reali determinano un numero arbitrario con solo una certa precisione finita, a seconda del formato interno del numero reale.

Tabella 1.4 - tipi reali

NEL versione precedente Delphi 1 ... 3 tipo Vero occupava 6 byte e aveva un intervallo di valori compreso tra 2,9 * 10-39 e 1,7 * 1038. Nelle versioni 4 e 5, questo tipo è equivalente al tipo Doppio . Se necessario (per motivi di compatibilità), utilizzare 6 byte Vero , è necessario specificare la direttiva del compilatore (SREALCOMPATIBILITY ON).

Come si può vedere dalla tabella. 1.4, un numero reale in Object Pascal prende da 4 a 10 byte adiacenti e ha la seguente struttura nella memoria del PC.

Qui s è la cifra del segno del numero; e è la parte esponenziale; contiene ordine binario; m è la mantissa del numero.

mantissa m ha una lunghezza di 23 (per singolo) a 63 (per estesa) cifre binarie, che garantisce la precisione di 7 ... 8 per singolo e 19 ... 20 per estesa cifre decimali. Il punto decimale (virgola) è implicito prima della cifra sinistra (più alta) della mantissa, ma quando agisce con un numero, la sua posizione viene spostata a sinistra o a destra in base all'ordine binario del numero memorizzato nella parte esponenziale, quindi le azioni sui numeri reali sono chiamate virgola mobile (aritmetica) .

Si noti che il coprocessore aritmetico elabora sempre i numeri nel formato estesa e altri tre tipi reali in questo caso si ottengono semplicemente troncando i risultati alle dimensioni desiderate e vengono utilizzati principalmente per risparmiare memoria.

L'oggetto Pascal ha un posto speciale nei tipi comp e Moneta , che sono trattati come numeri reali con parti frazionarie di lunghezza fissa: in comp la parte frazionaria ha una lunghezza di 0 cifre, cioè è semplicemente assente, in moneta lunghezza frazionaria -4 decimali. In effetti, entrambi i tipi definiscono un grande numero con segno che memorizza 19 ... 20 cifre decimali significative (nella rappresentazione interna occupano 8 byte adiacenti). Allo stesso tempo nelle espressioni comp e moneta sono pienamente compatibili con qualsiasi altro tipo reale: tutte le operazioni materiali sono definite su di esse, possono essere utilizzate come argomenti di funzioni matematiche, ecc. L'area di applicazione più adatta per questi tipi è la contabilità.

1.1.3 Digitare data-ora

Il tipo di data e ora è determinato dall'identificatore standard TDateTime ed è destinato alla memorizzazione simultanea di data e ora. Nella rappresentazione interna, sono necessari 8 byte e simili moneta rappresenta un numero reale con una parte frazionaria fissa: la data viene memorizzata nella parte intera del numero e l'ora è nella parte frazionaria. La data viene definita come il numero di giorni trascorsi dal 30 dicembre 1899 e il tempo come parte del giorno trascorso da 0 ore, quindi il valore 36444.837 corrisponde alla data 11.10.1999 e alle ore 20:05. Il numero di giorni può essere negativo, tuttavia i valori inferiori a -693594 (corrispondente alla data 00.00.0000 dalla Natività di Cristo) sono ignorati dalle funzioni di conversione della data in un tipo di stringa.

Oltre il tipo di dati TDateTime le stesse operazioni sono definite come su numeri reali e costanti e variabili di tipo intero e reale possono partecipare a espressioni di questo tipo.

Dal momento che il tipo TDateTime compatibile con il formato dei numeri reali, puoi facilmente determinare la data che è qualche giorno avanti o indietro: basta aggiungere il numero intero desiderato alla data specificata o sottrarre da esso.

1.2 Tipi strutturati

Qualsiasi tipo strutturato (e in Object Pascal ce ne sono quattro: array, record, set e file) è caratterizzato da una pluralità di elementi che formano questo tipo. Ogni elemento, a sua volta, può appartenere a un tipo strutturato, che ci consente di parlare del possibile nidificazione dei tipi. Object Pascal consente la profondità di nidificazione arbitraria dei tipi, tuttavia, la lunghezza totale di uno di essi nella rappresentazione interna non deve superare i 2 GB.

Per compatibilità con lo standard Pascal in Object Pascal è consentito mettere una parola riservata prima della descrizione di un tipo strutturato confezionato , indicando al compilatore di risparmiare quanta più memoria possibile allocata per oggetti di tipo strutturato; ma il compilatore in realtà ignora questa indicazione: "impacchettare" i dati in Object Pascal viene fatto automaticamente ovunque sia possibile.

1.2.1 Matrici

Le matrici in Object Pascal sono molto simili a tipi di dati simili in altri linguaggi di programmazione. Una caratteristica distintiva degli array è che tutti i loro componenti sono dati dello stesso tipo (possibilmente strutturati). Questi componenti possono essere facilmente ordinati e forniti con accesso a ciascuno di essi semplicemente indicandone il numero di serie.

Una descrizione del tipo di array è definita come segue:

<имя типа> \u003d array [<сп.инд.типов> ] di<тип>;

Qui<имя типа> - l'identificatore corretto; matrice, di - parole riservate (array di);<сп.инд.типов> - un elenco di uno o più tipi di indice, separati da virgole; le parentesi quadre che circondano l'elenco sono requisiti di sintassi;<тип> - qualsiasi tipo di oggetto Pascal.

Come tipi di indice in Object Pascal, puoi utilizzare qualsiasi tipo ordinale che abbia una capacità non superiore a 2 GB (ad esempio, tranne longword e Int64)

La profondità di annidamento dei tipi strutturati in generale e, di conseguenza, degli array è arbitraria, pertanto il numero di elementi nell'elenco dei tipi di indice (dimensione dell'array) non è limitato, tuttavia, la lunghezza totale della rappresentazione interna di qualsiasi array non può essere superiore a 2 GB. Nella memoria del PC, gli elementi dell'array si susseguono in modo tale che quando si passa dagli indirizzi più bassi a quelli più alti, l'indice più a destra dell'array cambia più rapidamente.

In Object Pascal, è possibile trasferire tutti gli elementi di un array su un altro array dello stesso tipo con un operatore di assegnazione.

1.2.2 Voci

Disco è una struttura di dati costituita da un numero fisso di componenti chiamati campi record. A differenza di una matrice di componenti (campi) i record possono essere di vari tipi. Per poter fare riferimento a uno o un altro componente del record, i campi vengono denominati.

La struttura di una dichiarazione di tipo di posta è la seguente:

<имятипа> \u003d record<сп.полей> fine;

Qui<имя типа> - l'identificatore corretto; registrazione / fine - parole riservate (registrazione, fine);<сп.полей> - elenco dei campi; rappresenta una sequenza di sezioni di un record tra cui viene inserito un punto e virgola.

Ogni sezione del record è costituita da uno o più identificatori di campo, separati da virgole.

Frase caso di aprendo la parte variante, esternamente assomiglia al corrispondente operatore di selezione, ma in realtà svolge solo il ruolo di una sorta di parola di servizio che indica l'inizio della parte variante. Questo è il motivo per cui non si dovrebbe mettere alla fine della parte variante fine come una coppia a caso di . (Poiché la parte della variante è sempre l'ultima nel record, ha ancora una fine, ma solo come coppia da registrare). Tasto di selezione dell'offerta caso di effettivamente ignorato dal compilatore: l'unico requisito per esso in Object Pascal è che la chiave definisce un tipo ordinale standard o precedentemente dichiarato.

I nomi dei campi devono essere univoci all'interno del record in cui sono dichiarati, tuttavia, se i record contengono campi record, ovvero sono nidificati l'uno nell'altro, i nomi possono essere ripetuti a diversi livelli di annidamento.

1.2.3 Set

Molti - Si tratta di insiemi di oggetti dello stesso tipo, logicamente collegati tra loro. La natura delle relazioni tra oggetti è implicita solo dal programmatore e non è controllata in alcun modo da Object Pascal. Il numero di elementi in un set può variare da 0 a 256 (un set che non contiene elementi è chiamato vuoto). È l'incostanza del numero dei suoi elementi che imposta differisce da array e record.

Due insiemi sono considerati equivalenti se e solo se tutti i loro elementi sono uguali e l'ordine degli elementi nell'insieme è indifferente. Se tutti gli elementi di un set sono inclusi anche in un altro, dicono che il primo set è incluso nel secondo. Un set vuoto è incluso in ogni altro.

La descrizione del tipo di set ha la forma:

<имя типа> \u003d set di<базовый тип>;

Qui<имя типа> - l'identificatore corretto; set, di - parole riservate (set, out);<базовый тип> - il tipo base di elementi dell'insieme, che può essere utilizzato come qualsiasi tipo ordinale, tranne Parola, intero, longint, int64 .

Per specificare un set, viene utilizzato il cosiddetto costruttore di set: un elenco di specifiche degli elementi dell'insieme separati da virgole; l'elenco è racchiuso tra parentesi quadre. Le specifiche dell'elemento possono essere costanti o espressioni di un tipo di base, nonché un tipo di intervallo dello stesso tipo di base.

La struttura interna dell'insieme è tale che ciascuno dei suoi elementi è associato a un bit binario (un bit); se un elemento è incluso in un set, il bit corrispondente ha un valore di 1, altrimenti - 0. Allo stesso tempo, l'unità minima di memoria è un byte contenente 8 bit, quindi il compilatore ha assegnato un byte ai set e, di conseguenza, la potenza di ciascuno di essi diventa 8 elementi La potenza massima del set è di 256 elementi. Per tali insiemi, il compilatore alloca 16 byte contigui.

E un altro esperimento: modifica l'intervallo del tipo di base in 1..256. Sebbene la potenza di questo tipo sia di 256 elementi, quando si tenta di compilare un programma, il compilatore segnalerà un errore: I set possono contenere al massimo 256 elementi, poiché la numerazione degli elementi in un set inizia da zero, indipendentemente dal limite inferiore dichiarato nel programma . Il compilatore consente di utilizzare un intervallo di tipi interi con un limite minimo di 0 e un massimo di 255 o qualsiasi tipo elencato con non più di 256 elementi come tipo base (la potenza massima del tipo elencato è 65536 elementi).

1.3 Righe

L'oggetto Pascal utilizza i seguenti tipi di elaborazione del testo:

linea corta shortString o stringa [n] dove n<= 255;

stringa lunga corda ;

linea larga WideString ;

stringa terminale nulla pChar .

Comune a questi tipi è che ogni riga è trattata come una matrice unidimensionale di caratteri, il numero di caratteri in cui può cambiare in un programma in esecuzione: per stringa [n], la lunghezza della stringa varia da 0 a n, per corda e pChar - da 0 a 2 GB.

Lo standard Pascal utilizza solo stringhe brevi String [n] . In memoria, a tale stringa vengono allocati n + i byte, il primo byte contiene la lunghezza corrente della stringa e i caratteri stessi si trovano a partire dal secondo byte. Poiché in questo caso viene assegnato un byte per la lunghezza della stringa, la lunghezza massima della stringa breve non può superare 255 caratteri. Il tipo standard viene utilizzato per dichiarare una stringa corta di lunghezza massima. ShortString (equivalente Corda).

Windows utilizza ampiamente stringhe null-terminal, che sono stringhe di caratteri delimitate dal carattere # o. La lunghezza massima di tale stringa è limitata solo dalla memoria disponibile e può essere molto grande.

Un nuovo tipo introdotto nelle versioni a 32 bit di Delphi corda combinando i comfort di entrambi i tipi. Quando si lavora con questo tipo, la memoria viene allocata secondo necessità (in modo dinamico) e limitata dalla memoria del programma disponibile.

1.4 Puntatori e memoria dinamica

1.4.1 Memoria dinamica

Memoria dinamica - Questa è la memoria ad accesso casuale del PC fornita al programma durante il suo funzionamento. Allocazione dinamica dei dati significa l'uso della memoria dinamica direttamente durante il funzionamento del programma. Al contrario, l'allocazione statica viene eseguita dal compilatore Object Pascal durante la compilazione del programma. Con l'allocazione dinamica, né il tipo né la quantità di dati posizionati sono noti in anticipo.

1.4.2 Puntatori

PC RAM è una raccolta di celle per la memorizzazione di informazioni - byte, ognuna delle quali ha il proprio numero. Questi numeri sono chiamati indirizzi e consentono di accedere a qualsiasi byte di memoria. Object Pascal fornisce al programmatore un mezzo flessibile per gestire la memoria dinamica, i cosiddetti puntatori. Un puntatore è una variabile che contiene l'indirizzo di un byte di memoria come valore. Utilizzando i puntatori, è possibile posizionare nella memoria dinamica uno qualsiasi dei tipi di dati noti in Object Pascal. Solo alcuni di essi ( Byte, Char, ShortInt, Boolean) occupa un byte nella rappresentazione interna, il resto - diversi adiacenti. Pertanto, in effetti, il puntatore indirizza solo il primo byte di dati.

In genere, un puntatore è associato a un tipo di dati. Tali puntatori saranno chiamati digitati. Per dichiarare un puntatore digitato, utilizzare l'icona ^, che si trova davanti al tipo corrispondente.

In Object Pascal, è possibile dichiarare un puntatore e non associarlo a un particolare tipo di dati. Per questo viene utilizzato il tipo standard. pointer , per esempio:

Puntatori di questo tipo saranno chiamati non tipizzati. Poiché i puntatori non tipizzati non sono associati a un tipo specifico, è conveniente posizionare dinamicamente i dati con il loro aiuto, la struttura e il tipo di questi cambiano durante il programma.

Come già accennato, i valori dei puntatori sono gli indirizzi delle variabili in memoria, quindi ci si aspetterebbe che il valore di un puntatore possa essere passato a un altro. In realtà, questo non è vero. L'oggetto Pascal può solo passare valori tra puntatori associati allo stesso tipo di dati.

1.4.3 Allocazione e rilascio di memoria dinamica

Tutta la memoria dinamica in Object Pascal viene trattata come una matrice solida di byte chiamata heap.

La memoria per qualsiasi variabile allocata dinamicamente è allocata dalla Nuova procedura. Il parametro per accedere a questa procedura è un puntatore digitato. Come risultato della chiamata, il puntatore acquisisce un valore corrispondente all'indirizzo dal quale possono essere inseriti i dati. Il valore a cui punta il puntatore, ovvero i dati effettivi posizionati nell'heap, è indicato dal segno ^, che viene posizionato immediatamente dopo il puntatore. Se non è presente alcun segno ^ dietro il puntatore, significa che l'indirizzo è il luogo in cui sono collocati i dati. Ancora una volta ha senso pensare a ciò che è stato appena detto: il valore di qualsiasi puntatore è un indirizzo e indicare che non si tratta di un indirizzo, ma dei dati che si trovano a questo indirizzo, ^ è posto dietro il puntatore (a volte viene indicato come dereferenziazione puntatore).

I dati allocati dinamicamente possono essere utilizzati in qualsiasi parte del programma dove è consentito per costanti e variabili del tipo corrispondente

La memoria dinamica non può solo essere prelevata dall'heap, ma anche restituita. Per fare ciò, utilizzare la procedura di smaltimento. Ad esempio, operatori

Smaltire (pJ);

Smaltire (pR);

restituiranno all'heap la memoria precedentemente assegnata ai puntatori pJ e pR (vedi sopra).

Prendo atto che la procedura Dispose (pPtr) non modifica il valore del puntatore pPtr, ma restituisce all'heap solo la memoria precedentemente associata a questo puntatore. Tuttavia, riapplicare la procedura a un puntatore libero comporterà un errore del periodo di esecuzione. Il programmatore può contrassegnare il puntatore vuoto con la parola riservata zero.

1.5 Alias \u200b\u200bdi tipo

Per qualsiasi tipo, puoi dichiarare tutti gli alias che desideri. Per esempio:

TMyInteger \u003d Integer;

In futuro, l'alias può essere utilizzato allo stesso modo del tipo di base:

Mylnt: TMyInteger;

Mylnt: \u003d 2 * Round (pi);

Questi tipi di alias vengono comunemente utilizzati per migliorare la visibilità del codice del programma. Tuttavia, in Object Pascal, è possibile dichiarare alias fortemente tipizzati aggiungendo il tipo di parola riservata prima del nome del tipo di base:

TMyIntegerType \u003d type Integer;

MylntVar: TMyIntegerType;

Dal punto di vista del compilatore, gli alias tipizzati sono compatibili con il tipo di base in vari tipi di espressioni, ma in realtà dichiarano un nuovo tipo di dati, pertanto non possono essere utilizzati come parametri formali per accedere alle routine anziché al tipo di base. Se, ad esempio, viene dichiarata una procedura

funzione MylntFunc (APar: intero): intero;

quindi un tale appello a lei

MylntFunc (MylntVar)

sarà considerato dal compilatore come errato.

Gli alias tipizzati in modo rigoroso obbligano il compilatore a generare informazioni sul tipo per la fase di esecuzione del programma (RTTI - Informazioni sul tipo di run-time). Queste informazioni vengono solitamente utilizzate dall'ambiente Delphi per garantire il funzionamento di vari tipi di editor.

Nozioni di base di programmazione
Ogni professionista era una volta un bollitore. Sicuramente hai familiarità con uno stato in cui "non sai come iniziare a pensare, a pensare a una cosa del genere". Sicuramente ti trovi di fronte a una situazione in cui semplicemente non sai da dove cominciare. Questo libro si rivolge specificamente a tali persone che vorrebbero diventare programmatori, ma non sanno assolutamente come iniziare questo percorso. ...

Quasi tutti i tipi di dati interi sono relativi a. Questi tipi di dati rappresentano numeri interi in un intervallo specifico. I nomi specifici di tipi interi e intervalli di valori dipendono dal particolare linguaggio di programmazione, dal compilatore e dalla modalità di compilazione. Ulteriori informazioni al riguardo nella documentazione del compilatore.

Ad esempio, un tipo di dati Numero intero a Delfi ha un intervallo di -2147483648 ... 2147483647, mentre in Turbo Pascal il tipo di dati è Numero intero rappresenta i numeri nell'intervallo -35768 ... 32767. Free Pascal ha una gamma di valori di tipo Numero intero determinato dalla modalità selezionata.

Poiché Lazarus utilizza il compilatore Free Pascal, tutto ciò che viene detto sui tipi di dati rispetto a Free Pascal è vero anche per Lazarus.

Pertanto, i tipi di dati interi di Free Pascal sono elencati nella Tabella 13.1.

Tabella 13.1 Tipi di dati interi Free Pascal (Lazarus).

Un tipo Dimensione, byte Intervallo di valori
Byte 1 0…255
Shortint 1 -128…127
smallint 2 -35768…32767
parola 2 0…65535
Numero intero 2 o 4 Dipende dalla modalità di compilazione
Cardinale 4 0…4294967295
longint 4 -2147483648…2147483647
longword 4 0...4294967295
Int64 8 -9223372036854775808...9223372036854775807
QWord 8 0...18446744073709551615

NOTA
In Free Pascal Tipi Int64 e QWord non sono! Ciò significa che non è possibile utilizzarli, ad esempio, per le variabili di indice nei loop. Tuttavia, li ho portati qui, in modo da non descrivere separatamente in futuro e raccogliere in un unico posto tutti i tipi interi di Free Pascal. Se non capisci alcune parole, non aver paura. A tempo debito parlerò di tutto in modo più dettagliato.

E ora alcune spiegazioni al tavolo.

In una colonna UN TIPO vengono forniti identificatori dei tipi di dati (parole chiave che indicano al compilatore a quale tipo appartengono questi o quei dati). Imparerai come utilizzare questi identificatori nelle seguenti lezioni.

In una colonna LA DIMENSIONE È indicata la dimensione del tipo di dati nella memoria del computer. Ad esempio, un numero intero positivo può essere rappresentato da diversi tipi: Byte, parola, Cardinale ecc. Tuttavia, il numero del tipo Cardinale occuperà 4 byte in memoria, mentre un numero di tipo Byte - solo 1 byte. Pertanto, se sai per certo che il numero con cui lavori non avrà mai un valore maggiore di 255, è meglio definirlo come un tipo Byte, poiché ciò risparmierà spazio nella memoria del computer. Anche se questo non è così semplice (le sfumature di allocazione della memoria e di altre risorse del computer vanno oltre lo scopo).

In una colonna GAMMA viene specificato l'intervallo di valori specificato dal tipo di dati. Ad esempio, un numero come Byte può assumere valori compresi tra 0 e 255.

E ora pratica. Scriveremo un programma che visualizza gli intervalli di valori di tutti i tipi di dati interi. Il codice sorgente per questo programma è mostrato di seguito:

Listato 13.1. Un programma per la visualizzazione di intervalli di numeri interi. programma td; ($ mode objfpc) ($ H +) usa ($ IFDEF UNIX) ($ IFDEF UseCThreads) cthreads, ($ ENDIF) ($ ENDIF) Classi (puoi aggiungere unità dopo questo); iniziare Writeln ("Byte:", Low (Byte), "..", High (Byte)); Writeln ("Shortint:", Low (Shortint), "..", High (Shortint)); Writeln ("Smallint:", Low (Smallint), "..", High (Smallint)); Writeln ("Word:", Low (Word), "..", High (Word)); Writeln ("Numero intero:", Basso (numero intero), "..", Alto (numero intero)); Writeln ("Cardinale:", Basso (Cardinale), "..", Alto (Cardinale)); Writeln ("Longint:", Low (Longint), "..", High (Longint)); Writeln ("Longword:", Low (Longword), "..", High (Longword)); Writeln ("Int64:", Basso (Int64), "..", Alto (Int64)); Writeln ("QWord:", Low (QWord), "..", High (QWord)); readln fine.

Funzione standard Basso definisce il valore minimo del tipo di dati. Funtsia alto definisce il valore massimo. Con funzionalità writeln e readln sai già un po '. Parleremo di più dei sottoprogrammi (procedure e funzioni) nella sezione corrispondente.

Alla fine, dirò come i dati interi sono scritti nel programma. Sì, così come ovunque: basta scrivere un numero, senza virgolette e senza caratteri aggiuntivi. Ad esempio, così

10
178
35278

È vero, questo vale per i numeri nel sistema decimale. Sicuramente sai già che ci sono altri sistemi. I più comuni sistemi numerici binari, decimali ed esadecimali.

Free Pascal supporta quattro formati di registrazione interi:

  1. Record decimale. Solo un numero, come 10.
  2. Notazione esadecimale. Un numero con prefisso $. Ad esempio, il numero esadecimale $ 10 è uguale al decimale 16.
  3. Record ottale. Un numero con il prefisso &. Ad esempio, il numero ottale e 10 è il numero decimale 8.
  4. Record binario. Numero preceduto da%. Ad esempio, il numero binario% 10 è decimale 2.

Compiti a casa:

Crea un programma che visualizzi intervalli di valori interi (Listato 13.1). Compilare il programma ed eseguirlo. Assicurarsi che questi valori siano indicati nella tabella 13.1.

Nel codice sorgente del programma, trova la riga che imposta la modalità di compilazione:

($ mode objfpc) ($ H +)

In questa riga, invece della parola objfpc scrivi la parola tp. Cioè, la riga finale dovrebbe apparire così:

($ mode tp) ($ H +)

Esegui il programma. Vedi la gamma di valori di tipo Numero intero. Trarre conclusioni.

Impara a pensare come un programmatore, cioè logicamente. Nessuno ti masticherà tutti fino alla pensione, come faccio ora. Devi abituarti a pensare da solo. Altrimenti, entrerai nel "principio scimmia dell'apprendimento", e quindi le tue possibilità di diventare un programmatore interessante si avvicineranno allo zero. Per aiutarti a non scivolare nel livello di "stipare", periodicamente lascerò delle lacune nel tuo allenamento in modo da provare a pensare ad alcune cose da solo.

Molto meglio se pensi a te stesso decisione sbagliata, troverai l'errore tu stesso e lo correggerai tu stesso, che userai sempre le soluzioni corrette di qualcun altro e lo copi stupidamente.

In qualsiasi programma, è necessario determinare il tipo e il tipo di quantità che verranno utilizzate per risolvere il problema. In apparenza, le quantità semplici (nella programmazione sono tutte chiamate dati) sono divise in costanti e variabili.

costanti- si tratta di dati i cui valori durante l'esecuzione del programma non possono essere modificati. Sono inseriti nel blocco const.

In generale, una descrizione di una semplice costante non tipizzata viene fatta in questo modo:

Const constant_name \u003d espressione;

Le costanti tipizzate sono descritte come:

Const constant_name: type \u003d espressione;

Nelle espressioni può essere utilizzato:

· Numeri o un set di caratteri negli apostrofi;

· Operazioni matematiche;

· Operazioni di relazione e operazioni logiche;

Funzioni abs (x), round (x), trunc (x);

Funzioni chr (x), ord (x), pred (x), succ (x) e altri.

Formato di descrizione costante:

identificatore \u003d valore;

1. Numeri interi - sono determinati da numeri scritti in formato decimale o esadecimale, non contenenti un punto decimale.

2. Reale: sono determinati da numeri registrati in formato dati decimale.

3. Simboli: questo è qualsiasi personaggio di un personal computer, racchiuso in apostrofi.

4. Stringa: sono determinate da una sequenza di caratteri arbitrari racchiusi in apostrofi.

5. I booleani sono falsi o veri.

Il tipo di costante non viene specificato, ma viene determinato automaticamente durante la compilazione: i valori delle espressioni vengono immediatamente calcolati e successivamente sostituiti solo con i nomi.

variabili - Questi sono dati che possono cambiare durante l'esecuzione del programma. Ogni variabile ha le proprie celle denominate. Coloro. una variabile è un tipo di contenitore in cui è possibile inserire alcuni dati e archiviarli lì. Le variabili hanno un nome, un tipo e un valore.

Nome della variabile: deve necessariamente iniziare con una lettera, non può contenere spazi e può contenere solo:

· Lettere dell'alfabeto latino;

Sottolineare.

Esempi: A, A_1, AA, i, j, x, y, ecc. Nomi non validi: My 1, 1A. Il nome della variabile può contenere fino a 126 caratteri, quindi prova a prendere nomi di variabili significativi. Tuttavia, il compilatore distingue i primi 63 caratteri nei nomi. Ma non distingue tra lettere minuscole e maiuscole, sia nei nomi delle variabili che negli identificatori dei servizi di scrittura.

Tipo di variabile - deve essere definito nel blocco di descrizione della variabile VAR. Il valore della variabile è una costante dello stesso tipo.

Ogni programma funziona con i dati. I dati sono, in senso lato, oggetti che un programma elabora. Il tipo di dati è la sua caratteristica. Dipende dal tipo:

· In quale forma verranno archiviati questi dati,

· Quante celle di memoria verranno allocate per la sua archiviazione,

· Quale valore minimo e massimo può assumere,

· Quali operazioni possono essere eseguite con esso.

Alcuni semplici tipi di dati Pascal:

1. Tipi di numeri interi (ShortInt, Integer, LongInt, Byte, Word).

2. Tipi reali (reali, singoli, doppi, estesi, comp).

3. Logico (booleano).

4. Carattere (carattere).

5. Tipi di stringa (String, String [n]).

9. Operatori incondizionati in Pascal. Descrizione e utilizzo.

Vista operatore

vai a<метка>;

Scopo: trasferimento del controllo nel programma a un operatore contrassegnato da un'etichetta<метка>. Un'etichetta può essere un nome (scritto secondo le regole per i nomi delle lingue) o un numero intero senza segno descritto nell'operatore di descrizione dell'etichetta dell'etichetta e preceduto da un operatore contrassegnato, ma solo in un punto del programma. L'etichetta è separata dall'operatore dal simbolo “:". La transizione all'etichetta può avvenire più volte nel blocco, ma l'etichetta stessa - solo una volta. Se non è presente alcun trasferimento di controllo su alcuna etichetta, non si verificherà alcun errore.

L'operatore di salto incondizionato, in generale, non è consentito nella programmazione strutturale. Sebbene ti permetta di abbreviare il testo del programma, il suo uso in pascal è limitato da una serie di regole e raccomandazioni. È vietato entrare all'interno di un'istruzione composta, all'interno o all'inizio di un sottoprogramma e uscire dal sottoprogramma nel programma che lo ha causato. Non è consigliabile andare oltre la pagina (schermata) del testo del programma, ad eccezione del passaggio alle istruzioni finali del programma. Tutto ciò è collegato alla capacità di saltare importanti operatori per il corretto funzionamento del programma. Di solito, l'operatore di salto incondizionato viene utilizzato solo per tornare all'inizio del corpo del ciclo se il ciclo è costruito utilizzando operatori condizionali e incondizionati.

Notare che anche l'istruzione che segue goto deve essere contrassegnata con un'etichetta diversa (se goto non è l'ultimo nel gruppo di istruzioni). Altrimenti, l'operatore successivo non può arrivare a quello successivo.

10. Operatori di filiale a Pascal. Descrizione e utilizzo.

Gli operatori che consentono di selezionare solo una delle diverse opzioni possibili per l'esecuzione di un programma (rami) includono

Coloro. questi operatori consentono di modificare l'ordine naturale di esecuzione delle istruzioni del programma.

se<условие> poi< оператор 1 >

altro<оператор 2> ;

se a\u003e \u003d b allora Max: \u003d a else Max: \u003d b;

Nell'istruzione if, è possibile eseguire una sola istruzione su entrambi i rami (allora e altro)!

Un esempio di compito per gli operatori di diramazione in pascal. Immettere due numeri interi e visualizzarne il più grande.

L'idea della soluzione: è necessario visualizzare il primo numero se è maggiore del secondo, oppure il secondo se è maggiore del primo.

Caratteristica: le azioni del contraente dipendono da determinate condizioni (se ... altrimenti ...).

var a, b, max: intero;

writeln ("Inserisci due numeri interi");

se a\u003e b allora max: \u003d a else max: \u003d b;

writeln ("Il maggior numero", max);

Condizioni difficili

Una condizione complessa è una condizione costituita da diverse condizioni semplici (relazioni) connesse con l'aiuto del logico

operazioni:

Not - NOT (negazione, inversione)

E - E (moltiplicazione logica, congiunzione,

adempimento simultaneo delle condizioni)

Oppure - OR (aggiunta logica, disgiunzione,

adempimento di almeno una delle condizioni)

Xor - OR esclusivo (solo esecuzione

una delle due condizioni, ma non entrambe)

Condizioni semplici (relazioni)

< <= > >= = <>

Ordine di esecuzione (priorità \u003d anzianità)

Espressioni tra parentesi

<, <=, >, >=, =, <>

Caratteristica: ciascuna delle condizioni semplici deve essere racchiusa tra parentesi.

Dichiarazione di selezione del caso

L'istruzione case consente di scegliere tra diverse opzioni.

Operatore variante è costituito

Øda un'espressione chiamata selettore,

Øe un elenco di operatori, ognuno dei quali è contrassegnato da una costante dello stesso tipo del selettore.

Il selettore dovrebbe essere solo un tipo di dati ordinale, non un tipo longint.

Il selettore può essere una variabile o un'espressione.

L'elenco delle costanti può essere specificato come enumerazione esplicita, nonché come intervallo o loro combinazione. La ripetizione delle costanti non lo è

permesso.

Il tipo di interruttore e i tipi di tutte le costanti devono essere compatibili.

Astuccio< выражение {селектор}> di

<список констант 1> : < оператор 1>;

< список констант K> : < оператор K>;

L'istruzione case viene eseguita come segue:

1) viene calcolato il valore del selettore;

2) il risultato ottenuto viene verificato per l'appartenenza a un particolare elenco di costanti;

3) se viene trovato un tale elenco, non vengono più eseguiti ulteriori controlli e l'operatore corrispondente

ramo selezionato, dopo il quale il controllo viene trasferito all'operatore seguente parola chiave fine che chiude tutto

costrutto del caso

4) se non esiste un elenco adatto di costanti, viene eseguito l'operatore dietro la parola chiave else; se non c'è nessun altro ramo,

allora non si fa nulla.

Nel caso dell'operatore di filiale, è possibile eseguire una sola istruzione su tutte le filiali!

Se è necessario eseguire multipli, è necessario utilizzare parentesi operatore di inizio-fine.

indice caso mod 4 di

1: x: \u003d y * y - 2 * y;

11.Operatore di opzione (scelta) in Pascal. Descrizione e utilizzo.

L'operatore di selezione (opzione, interruttore) implementa la selezione di una delle possibili alternative, ad es. opzioni per continuare il programma.

Formato di registrazione:

Caso - scelta, opzione;

S - selettore, espressione di tipo ordinale;

Ki - costanti di scelta, una costante, il cui tipo coincide con il tipo di selettore;

OPi - qualsiasi operatore incluso vuoto;

L'operatore di selezione implementa la seguente costruzione:

Operazione dell'operatore di selezione Pascal: viene calcolata l'espressione del selettore. Il valore calcolato viene confrontato in sequenza con le costanti di alternative e il controllo viene trasferito all'operatore, la costante di scelta, che coincide con il valore calcolato del selettore. L'operatore viene eseguito e il controllo viene trasferito all'esterno dell'operatore di selezione. Se il valore calcolato del selettore non coincide con nessuna delle costanti, il controllo viene trasferito al ramo Else, la cui presenza, non necessariamente in questo caso, viene trasferita all'esterno dell'operatore di selezione.

Schema a blocchi dell'operatore di selezione.

La struttura dell'operatore di selezione può essere implementata usando nidificati dichiarazioni condizionali, ma compromette la visibilità del programma. Si raccomandano non più di 2-3 livelli di investimento.

12. Tipi di operatori di ciclo in Pascal, il loro scopo.

5. Costruzione algoritmica di cicli. Tipi di cicli.

Esistono tre tipi di algoritmi ciclici: un ciclo con un parametro (che si chiama ciclo aritmetico), un ciclo con una precondizione e un ciclo con una postcondizione (sono chiamati iterativi).

12.13 Ciclo aritmetico.In un ciclo aritmetico, il numero dei suoi passaggi (ripetizioni) è determinato in modo univoco dalla regola per modificare il parametro, che viene impostato utilizzando i valori iniziale (N) e finale (K) del parametro e il passaggio (h) per modificarlo. Cioè, nella prima fase del ciclo, il valore del parametro è N, al secondo - N + h, al terzo - N + 2h, ecc. Nell'ultima fase del ciclo, il valore del parametro non è maggiore di K, ma tale che la sua ulteriore modifica porterà a un valore maggiore di K.

I loop con un contatore vengono utilizzati quando la parte ciclica del programma deve essere ripetuta un numero fisso di volte. In tali loop, esiste una variabile di tipo intero chiamata contatore loop.

Se è necessario che il frammento del programma venga ripetuto un determinato numero di volte, viene utilizzata la costruzione:

PER<имя счетчика цикла> = <начальное значение> PER<конечное значение> FARE<оператор>;

FOR, TO, DO - parole riservate (inglese: for, to, execute);

<счетчик (параметр) цикла> - una variabile di tipo INTEGER, che cambia nell'intervallo da<начального значения>, aumentando di uno alla fine di ogni passaggio del ciclo;

<оператор> - qualsiasi operatore (spesso composito).

C'è un'altra forma di questa affermazione:

PER<имя счетчика цикла>:= <начальное значение> GIÙ VERSO<конечное значение> FARE<оператор> :

La sostituzione di TO con DOWNTO (inglese: in basso a) significa che la fase di modifica del parametro del ciclo è -1, ovvero il contatore viene ridotto in modo incrementale di uno.

12.14 Loop con una condizione preliminare. Il numero di fasi del ciclo non è predefinito e dipende dai dati di input dell'attività. In questa struttura ciclica, il valore dell'espressione condizionale (condizione) viene prima verificato prima di eseguire il passaggio successivo del ciclo. Se il valore dell'espressione condizionale è vero, viene eseguito il corpo del ciclo. Successivamente, il controllo viene nuovamente trasferito per verificare le condizioni, ecc. Queste azioni vengono ripetute fino a quando l'espressione condizionale assume il valore FALSE. Alla prima inosservanza delle condizioni, il ciclo termina.

Questo operatore di ripetizione più comunemente usato è:

MENTRE<условие> FARE<оператор>;

WHILE, DO - parole riservate (inglese: per ora, do);

<условие> - un'espressione di tipo logico;

<оператор> è un operatore arbitrario (possibilmente composito).

Una particolarità di un ciclo con una precondizione è che se l'espressione condizionale è inizialmente falsa, il corpo del ciclo non verrà mai eseguito.

I loop precondizionati vengono utilizzati quando l'esecuzione del loop è associata a una condizione logica. L'operatore del ciclo con una condizione preliminare ha due parti: la condizione per eseguire il ciclo e il corpo del ciclo.

12.15 Loop con postcondition (loop iterativo). Come in un ciclo con una precondizione, in una costruzione ciclica con una postcondizione, il numero di ripetizioni del corpo del ciclo non è predeterminato, dipende dai dati di input del problema. A differenza di un ciclo con una precondizione, il corpo di un ciclo con una postcondizione verrà sempre eseguito almeno una volta, dopo di che viene verificata la condizione. In questo costrutto, il corpo del loop verrà eseguito finché il valore dell'espressione condizionale è falso. Non appena diventa vero, l'esecuzione del comando viene interrotta.

Questo operatore ha la forma:

RIPETERE<тело цикла> FINO A<условие>:

RIPETI, FINO A - parole riservate (inglese: ripeti, non ancora);

<условие> - un'espressione di tipo logico, se il suo valore è vero, il ciclo viene chiuso.

Va notato che in questa costruzione la sequenza di istruzioni che definiscono il corpo del loop non è racchiusa tra parentesi le istruzioni BEGIN ... END, poiché sono la coppia REPEAT ... UNTIL.

I cicli con un postcondizionamento sono simili ai cicli con un presupposto, ma in essi la condizione si trova dopo il corpo del ciclo.

A differenza di un ciclo con una condizione preliminare che può terminare il lavoro senza mai eseguire il corpo del ciclo (se la condizione di adempimento è falsa al primo passaggio del ciclo), il corpo del ciclo con la postcondizione deve essere eseguito almeno una volta, dopo di che viene verificata la condizione.

Uno degli operatori del corpo del loop deve influenzare il valore della condizione di esecuzione del loop, altrimenti il \u200b\u200bloop verrà ripetuto un numero infinito di volte.

Se la condizione è vera, il loop viene chiuso, altrimenti gli operatori di loop vengono ripetuti.

16. Vettore- Questo è un insieme di elementi dello stesso tipo, uniti da un nome comune e che occupano una certa area di memoria in un computer. Il numero di elementi nell'array è sempre finito. Nel caso generale, un array è un tipo di dati strutturato costituito da un numero fisso di elementi aventi lo stesso tipo. Gli array hanno ottenuto il nome di tipo normale (o serie) perché combinano lo stesso tipo di elementi (logicamente omogenei), ordinati (risolti) da indici che determinano la posizione di ciascun elemento nell'array. Qualsiasi tipo di dati può essere utilizzato come elemento array, pertanto l'esistenza di array di record, array di puntatori, array di stringhe, array, ecc. È abbastanza legittima Gli elementi dell'array possono essere qualsiasi tipo di dati, compresi quelli strutturati. Il tipo di elementi dell'array è definito di base. La particolarità del linguaggio Pascal è che il numero di elementi dell'array è fisso durante la descrizione e non cambia durante l'esecuzione del programma. Gli elementi che compongono l'array sono ordinati in modo tale che ogni elemento corrisponda a un insieme di numeri (indici) che determinano la sua posizione nella sequenza generale. L'accesso a ogni singolo elemento viene effettuato indicizzando gli elementi dell'array. Gli indici sono espressioni di qualsiasi tipo scalare (di solito l'intero), ad eccezione di quello reale. Un tipo di indice definisce i limiti per la modifica dei valori di indice. Per descrivere l'array, si intende l'array di frasi di (array di).

Un array è chiamato raccolta di dati che svolgono funzioni simili ed è indicato con un nome. Se a ciascun elemento dell'array viene assegnato un solo numero seriale, tale array viene chiamato lineare o monodimensionale.

17. Matrice unidimensionale- questo è un numero fisso di elementi dello stesso tipo, uniti da un nome, e ogni elemento ha il suo numero univoco e i numeri degli elementi sono in una riga.

Per descrivere tali oggetti nella programmazione, è necessario prima immettere il tipo appropriato nella sezione di descrizione del tipo.

Un tipo di array è descritto come segue:

Tipo nome \u003d matrice [tipo di indice / i] di tipo di elementi;

Nome variabile: digitare il nome;

Una variabile di tipo array può essere descritta immediatamente nella sezione Descrizione della variabile Var:

Var Nome della variabile: array [tipo di indice (i)] Di tipo di elementi;

Array - una parola di servizio (tradotta dall'inglese significa "array");

Di - una parola di servizio (tradotta dall'inglese significa "da").

Tipo di indice - qualsiasi tipo ordinale, ad eccezione dei tipi interi, longint.

Il tipo degli elementi stessi può essere diverso dal tipo di file.

Il numero di elementi in un array è chiamato la sua dimensione. È facile calcolare che nell'ultimo modo di descrivere un insieme di indici, la dimensione dell'array è: valore indice massimo - valore indice minimo + 1.

Per esempio:

mas \u003d matrice di reale;

Array X - monodimensionale, composto da venti elementi tipo di materiale. Gli elementi dell'array vengono archiviati nella memoria del computer in sequenza uno dopo l'altro.

Quando si usano le variabili per indicare un indice, i loro valori dovrebbero essere determinati al momento dell'uso e, nel caso delle espressioni aritmetiche, il loro risultato non dovrebbe andare oltre i valori minimo e massimo degli indici dell'array.

Gli indici degli elementi dell'array possono iniziare con qualsiasi numero intero, incluso negativo, ad esempio:

Digitare bb \u003d Array [-5..3] di booleano;

Array di questo tipo conterrà 9 variabili logiche numerate da -5 a 3.

18. Massiccio bidimensionale in Pascal trattato come un array monodimensionale, il cui tipo di elementi è anche un array (array di array). La posizione degli elementi negli array Pascal bidimensionali è descritta da due indici. Possono essere rappresentati come una tabella o matrice rettangolare.

Considera un array Pascal bidimensionale di dimensione 3 * 3, ovvero avrà tre righe e ogni riga avrà tre elementi:

Ogni elemento ha il suo numero, come nelle matrici unidimensionali, ma ora il numero è già composto da due numeri: il numero di riga in cui si trova l'elemento e il numero di colonna. Pertanto, il numero dell'elemento è determinato dall'intersezione della riga e della colonna. Ad esempio, un 21 è un elemento nella seconda riga e nella prima colonna.

Descrizione dell'array Pascal bidimensionale.

Esistono diversi modi per dichiarare un array Pascal bidimensionale.

Sappiamo già come descrivere matrici unidimensionali, i cui elementi possono essere di qualsiasi tipo e, quindi, gli elementi stessi possono essere matrici. Considera la seguente descrizione di tipi e variabili:

Azioni di base con array bidimensionali Pascal

Tutto ciò che è stato detto sulle azioni di base con array unidimensionali è vero anche per le matrici. L'unica azione che può essere eseguita sullo stesso tipo di matrici nel suo insieme è l'assegnazione. Cioè, se nel programma abbiamo descritto due matrici dello stesso tipo, ad esempio,

matrice \u003d matrice di numero intero;

quindi durante l'esecuzione del programma, è possibile assegnare la matrice a al valore della matrice b (a: \u003d b). Tutte le altre azioni vengono eseguite in termini di elementi, mentre sugli elementi è possibile eseguire tutte le operazioni valide definite per il tipo di dati degli elementi dell'array. Ciò significa che se una matrice è composta da numeri interi, allora le operazioni definite per i numeri interi possono essere eseguite sui suoi elementi; se la matrice è composta da caratteri, le operazioni definite per lavorare con i caratteri sono applicabili a questi.

21. Tecnologie per lavorare con documenti di testo. Editor e processori di testo: scopo e caratteristiche.

editor di testo più avanzati (ad es. Microsoft Word e OpenOffice.org Writer), a volte chiamati word processor, hanno una vasta gamma di possibilità per la creazione di documenti (inserimento di elenchi e tabelle, controlli ortografici, salvataggio di correzioni, ecc.).

Per preparare la pubblicazione di libri, riviste e giornali nel processo di layout editoriale, vengono utilizzati potenti programmi di elaborazione testi: sistemi di desktop publishing (ad esempio Adobe PageMaker, Microsoft Office Publisher).

Applicazioni specializzate (come Microsoft FrontPage) vengono utilizzate per preparare pagine Web e siti Web per la pubblicazione su Internet.

Gli editor di testo sono programmi per la creazione, la modifica, la formattazione, il salvataggio e la stampa di documenti. Un documento moderno può contenere, oltre al testo, altri oggetti (tabelle, diagrammi, figure, ecc.).

Modifica: una trasformazione che consente l'aggiunta, l'eliminazione, lo spostamento o la correzione dei contenuti di un documento. La modifica di un documento viene generalmente eseguita aggiungendo, eliminando o spostando caratteri o frammenti di testo.

La formattazione è la progettazione del testo. Oltre ai caratteri di testo, il testo formattato contiene speciali codici invisibili che indicano al programma come visualizzarlo sullo schermo e stamparlo sulla stampante: quale carattere usare, quale stile e dimensione del carattere dovrebbero essere, come vengono disegnati i paragrafi e le intestazioni.

I testi formattati e non formattati sono di natura leggermente diversa. Questa differenza deve essere compresa. Nel testo formattato, tutto è importante: la dimensione delle lettere, la loro immagine e dove finisce una riga e ne inizia un'altra. Cioè, il testo formattato è indissolubilmente collegato ai parametri del foglio di carta su cui è stampato.

Quando si elaborano documenti di testo, è spesso necessario aggiungere elementi o oggetti non di testo al documento. Gli editor di testo avanzati ti consentono di farlo: hanno ampie opportunità di inserire disegni, diagrammi, formule e così via nel testo.

Documenti cartacei ed elettronici. I documenti possono essere cartacei o elettronici. I documenti cartacei vengono creati e formattati per fornire la migliore presentazione quando si stampa su una stampante. I documenti elettronici vengono creati e formattati per la migliore presentazione sullo schermo del monitor. Lo spostamento graduale del flusso di lavoro elettronico della carta - una delle tendenze di sviluppo tecnologie informatiche. La riduzione del consumo di carta ha un effetto benefico sul risparmio di risorse naturali e sulla riduzione dell'inquinamento ambientale.

La formattazione di documenti cartacei ed elettronici può variare in modo significativo. Per i documenti cartacei, viene accettata la cosiddetta formattazione assoluta. Un documento stampato è sempre formattato per un foglio stampato di dimensioni note (formato). Ad esempio, la larghezza della linea di un documento dipende dalla larghezza di un foglio di carta. Se il documento è stato progettato per la stampa su fogli di grande formato, non può essere stampato su fogli di piccole dimensioni: parte del documento non si adatta a essi. In una parola, la formattazione di un documento stampato richiede sempre la prima selezione di un foglio di carta con successiva rilegatura a questo foglio. Per un documento stampato, puoi sempre nominare con precisione (in qualsiasi unità di misura) dimensioni del carattere, margini, spaziatura tra linee o paragrafi, ecc.

Per i documenti elettronici, viene accettata la cosiddetta formattazione relativa. L'autore del documento non può prevedere in anticipo su quale computer, con quale dimensione dello schermo verrà visualizzato il documento. Inoltre, anche se le dimensioni degli schermi erano note in anticipo, è ancora impossibile prevedere quale sarà la dimensione della finestra in cui il lettore vede il documento. Pertanto, i documenti elettronici vengono creati per adattarsi alle dimensioni della finestra corrente e formattati "al volo".

L'autore del documento elettronico, inoltre, non sa quali caratteri siano presenti sul computer del futuro lettore, e quindi non può indicare rigidamente quale carattere il testo e le intestazioni dovrebbero essere visualizzati. Ma può specificare una formattazione in cui le intestazioni su qualsiasi computer appariranno più grandi del testo.

La formattazione relativa viene utilizzata per creare documenti Internet elettronici (le cosiddette pagine Web) e la formattazione assoluta viene utilizzata per creare documenti stampati negli elaboratori di testi.

22. Il principale elementi strutturali documento di testo. Caratteri, stili, formati.

Formattazione dei caratteri.

I simboli sono lettere, numeri, spazi, punteggiatura, caratteri speciali. I simboli possono essere formattati (cambiarli aspetto) Tra le principali proprietà dei simboli, si possono distinguere: carattere, dimensioni, stile e colore.

Un font è un set completo di caratteri di uno stile particolare. Ogni font ha il suo nome, ad esempio Times New Roman, Arial, Comic Sans MS. L'unità di carattere è l'elemento (1 pt \u003d 0,367 mm). Le dimensioni dei caratteri possono essere modificate entro ampi limiti. Oltre allo stile di carattere normale (normale), vengono generalmente utilizzati grassetto, corsivo e grassetto corsivo.

I caratteri raster e vettoriali si distinguono per il modo in cui sono rappresentati su un computer. I metodi vengono utilizzati per rappresentare i caratteri bitmap. grafica raster, i caratteri dei caratteri sono gruppi di pixel. I caratteri bitmap possono essere ridimensionati solo con fattori specifici.

Nei caratteri vettoriali, i simboli sono descritti da formule matematiche ed è possibile il loro ridimensionamento arbitrario. Tra i caratteri vettoriali, i caratteri TrueType sono i più utilizzati.

Puoi anche installare opzioni extra formattazione dei caratteri: sottolineatura di caratteri con diversi tipi di linee, modifica dell'aspetto dei caratteri (apice e pedice, barrato), modifica della distanza tra i caratteri.

Se si prevede di stampare un documento a colori, è possibile impostare colori diversi per diversi gruppi di caratteri.

Per controllare l'ortografia e la sintassi, vengono utilizzati moduli di programma speciali, che di solito sono inclusi negli elaboratori di testi e nei sistemi di pubblicazione. Tali sistemi contengono dizionari e regole grammaticali per diverse lingue, che consente di correggere errori in documenti multilingue.

24. Banca dati - Questo è un modello informativo che consente di archiviare in modo ordinato dati su un gruppo di oggetti con lo stesso insieme di proprietà.

Ce ne sono diversi vari tipi Database: tabulari (relazionali), gerarchici e di rete.

Database di tabelle

Un database di tabelle contiene un elenco di oggetti dello stesso tipo, ovvero oggetti con lo stesso set di proprietà. È conveniente presentare un tale database sotto forma di una tabella bidimensionale.

Nei database relazionali, tutti i dati sono presentati sotto forma di semplici tabelle, divise in righe e colonne, all'intersezione in cui si trovano i dati. Le query su tali tabelle restituiscono tabelle che a loro volta possono diventare oggetto di ulteriori query. Ogni database può includere diverse tabelle.

Il vantaggio principale delle tabelle è la loro comprensibilità. Ci occupiamo di informazioni tabulari quasi ogni giorno. Dai un'occhiata, ad esempio, al tuo diario: il programma delle lezioni è presentato in forma tabellare. Quando arriviamo alla stazione, guardiamo l'orario dei treni. Che tipo ha? Questo è un tavolo! E c'è un tavolo del campionato di calcio. E anche il diario dell'insegnante, dove ti dà dei voti, è un tavolo.

In breve, le funzionalità di un database relazionale possono essere formulate come segue:

1. I dati sono memorizzati in tabelle costituite da colonne ("attributi", "campi") e righe ("record");

2. All'intersezione di ciascuna colonna e riga c'è esattamente un valore;

3. Ogni colonna ha il suo nome, che funge da nome, e tutti i valori in una colonna sono dello stesso tipo.

4. Le query al database restituiscono il risultato sotto forma di tabelle, che possono anche fungere da oggetto query.

5. Le righe nel database relazionale non sono ordinate - l'ordinamento viene eseguito al momento della formazione della risposta alla richiesta.

6. In generale, le informazioni nei database non sono archiviate in una tabella, ma in diverse interconnesse.

Nei database relazionali viene chiamata una riga di tabella registrazionee la colonna è dal campo. Ogni campo della tabella ha un nome.

campi - queste sono varie caratteristiche (a volte dicono - attributi) di un oggetto. I valori dei campi in una riga si riferiscono a un oggetto.

Chiave primaria nel database viene chiamato un campo (o un insieme di campi), il cui valore non viene ripetuto per record diversi.

Ogni campo ha un'altra proprietà molto importante: tipo di campo. Un tipo di campo definisce l'insieme di valori che un determinato campo può assumere in vari record.

I database relazionali utilizzano quattro tipi di campi di base:

Numerico;

Carattere

Logico.

25. Sistemi di gestione dei database e principi di lavoro con essi. Cerca, elimina e ordina i dati nel database. Condizioni di ricerca (espressioni logiche); ordina e ordina le chiavi.

Database Management Systems (DBMS).

Per creare database, nonché eseguire operazioni di ricerca e ordinamento dei dati sono previsti programmi speciali - sistema di gestione del database (DBMS).

Pertanto, è necessario distinguere tra il database effettivo (DB) - set di dati ordinati e i sistemi di gestione del database (DBMS) - programmi che gestiscono la memorizzazione e l'elaborazione dei dati. Ad esempio, l'applicazione di accesso inclusa nella suite per ufficio programmi Microsoft Office è un sistema di gestione di database che consente all'utente di creare ed elaborare database di tabelle.

Un database relazionale è essenzialmente una tabella bidimensionale. Per voce qui si intende una riga di una tabella bidimensionale, i cui elementi formano le colonne della tabella. A seconda del tipo di dati, le colonne possono essere numeriche, testuali o contenere una data. Le righe della tabella sono numerate.

Il lavoro con il DBMS inizia con la creazione della struttura del database, ovvero con la definizione di:

numero di colonne

nomi di colonna

tipi di colonna (testo / numero / data);

larghezze di colonna.

Le principali funzioni del DBMS:

Gestione dei dati durante memoria esterna (su dischi);

Gestione dei dati in memoria ad accesso casuale;

Registro delle modifiche e ripristino del database dopo errori;

Manutenzione delle lingue del database (linguaggio di definizione dei dati, linguaggio di manipolazione dei dati).

Nei comandi DBMS, la condizione di selezione è scritta sotto forma di un'espressione logica.

Espressione logica, come un'espressione matematica, viene eseguita (calcolata), ma il risultato non è un numero, ma un valore logico: vero (vero) o falso (falso).

Un'espressione consistente in una quantità logica o una relazione verrà chiamata semplice espressione logica.

Spesso ci sono compiti in cui non vengono utilizzate condizioni separate, ma un insieme di condizioni interconnesse (relazioni). Ad esempio, è necessario selezionare studenti il \u200b\u200bcui peso sia superiore a 60 e altezza inferiore a 168.

Un'espressione contenente operazioni logiche verrà chiamata espressione logica complessa.

La combinazione di due (o più) istruzioni in una che usa l'unione "e" è chiamata operazione o congiunzione di moltiplicazione logica.

Il risultato della moltiplicazione logica (congiunzione) è vero se tutte le espressioni logiche sono vere.

La combinazione di due (o più) dichiarazioni con l'aiuto dell'unione "o" è chiamata operazione di aggiunta logica o disgiunzione.

Il risultato dell'aggiunta logica (disgiunzione) è vero se almeno un'espressione logica è vera.

Associare una particella "non" a un'istruzione è chiamata operazione di negazione logica o inversione.

27. Fogli di calcolo, scopo e funzioni principali.

foglio elettronico è un programma di elaborazione di dati numerici che memorizza ed elabora i dati in tabelle rettangolari.

Un foglio di calcolo è composto da colonne e righe. Le intestazioni di colonna sono indicate da lettere o combinazioni di lettere (A, G, AB, ecc.), Le intestazioni di riga sono indicate da numeri (1, 16, 278, ecc.). Una cella è l'intersezione di una colonna e una riga.

Ogni cella della tabella ha il suo indirizzo. L'indirizzo di cella del foglio di calcolo è composto dall'intestazione di colonna e dall'intestazione di riga, ad esempio: A1, F123, R1. La cella con la quale vengono eseguite alcune azioni viene evidenziata con una cornice e viene chiamata attiva.

Tipi di dati. I fogli di calcolo ti consentono di lavorare con tre tipi principali di dati: numero, testo e formula.

Numeri in formato elettronico fogli di calcolo Excel può essere scritto nel solito formato numerico o esponenziale, ad esempio: 195.2 o 1.952E + 02. Per impostazione predefinita, i numeri sono allineati nella cella a destra. Questo perché quando si posizionano i numeri uno sotto l'altro (nella colonna della tabella) è conveniente avere un allineamento per cifre (unità sotto unità, decine sotto decine, ecc.).

La formula deve iniziare con un segno di uguale e può includere numeri, nomi di celle, funzioni (matematica, statistica, finanziaria, data e ora, ecc.) E segni di operazioni matematiche. Ad esempio, la formula "\u003d A1 + B2" fornisce l'aggiunta di numeri memorizzati nelle celle A1 e B2 e la formula "\u003d A1 * B" moltiplica il numero memorizzato nella cella A1 per 5. Quando si inserisce la formula, la formula stessa non viene visualizzata, e il risultato dei calcoli con questa formula. Quando si modificano i valori iniziali inclusi nella formula, il risultato viene ricalcolato immediatamente.

Link assoluti e relativi. Le formule usano riferimenti agli indirizzi di cella. Esistono due tipi principali di collegamenti: relativo e assoluto. Le differenze tra loro appaiono quando si copia una formula da una cella attiva a un'altra cella.

Il collegamento relativo nella formula viene utilizzato per indicare l'indirizzo della cella, calcolato in relazione alla cella in cui si trova la formula. Quando sposti o copi una formula dalla cella attiva, i collegamenti relativi vengono automaticamente aggiornati in base alla nuova posizione della formula. I collegamenti relativi sono i seguenti: A1, BZ.

Se il simbolo del dollaro è prima della lettera (ad esempio: $ A1), le coordinate della colonna sono assolute e le righe sono relative. Se il simbolo del dollaro precede il numero (ad esempio, A $ 1), al contrario, le coordinate della colonna sono relative e le righe sono assolute. Tali collegamenti sono chiamati misti.

Supponiamo, ad esempio, nella cella C1 che sia scritta la formula \u003d A $ 1 + $ J31, che una volta copiata nella cella D2 diventa \u003d B $ 1 + $ B2. I collegamenti relativi durante la copia sono cambiati, ma quelli assoluti no.

Ordina e cerca i dati. I fogli di calcolo consentono di ordinare i dati. I dati nei fogli di calcolo sono ordinati in ordine crescente o decrescente. Durante l'ordinamento, i dati sono disposti in un determinato ordine. È possibile eseguire ordinamenti nidificati, ovvero ordinare i dati in base a più colonne e viene assegnata una sequenza di ordinamento delle colonne.

Nei fogli di calcolo, è possibile cercare dati in base alle condizioni specificate - filtri. I filtri vengono definiti utilizzando le condizioni di ricerca (più, meno, uguale, ecc.) E i valori (100, 10, ecc.). Ad esempio, più di 100. Come risultato della ricerca, verranno trovate quelle celle che contengono dati che soddisfano il filtro specificato.

Costruire diagrammi e grafici. I fogli di calcolo consentono di rappresentare dati numerici sotto forma di grafici o grafici. I grafici sono di vari tipi (colonnare, circolare, ecc.); La scelta del tipo di grafico dipende dalla natura dei dati.

28. Tecnologia di elaborazione delle informazioni in fogli di calcolo (ET). La struttura del foglio di calcolo.

Un foglio di calcolo è un programma di elaborazione di dati numerici che memorizza ed elabora i dati in tabelle rettangolari. Un foglio di calcolo è composto da colonne e righe. Le intestazioni di colonna sono indicate da lettere o combinazioni di lettere (A, G, AB, ecc.), Le intestazioni di riga sono indicate da numeri (1, 16, 278, ecc.). Una cella è l'intersezione di una colonna e una riga. Ogni cella della tabella ha il suo indirizzo. L'indirizzo di cella del foglio di calcolo è composto dall'intestazione di colonna e dall'intestazione di riga, ad esempio: Al, B5, E7. La cella con la quale vengono eseguite alcune azioni viene evidenziata con una cornice e viene chiamata attiva. I fogli di calcolo con cui l'utente lavora nell'applicazione sono chiamati fogli di lavoro. È possibile inserire e modificare i dati su più fogli di lavoro contemporaneamente, nonché eseguire calcoli basati sui dati di più fogli. I documenti di foglio di calcolo possono includere più fogli di lavoro e sono chiamati cartelle di lavoro.

29. Tipi di dati nei fogli di calcolo (ET): numeri, formule, testo. Regole per la scrittura di formule.

Tipi di dati.

I fogli di calcolo ti consentono di lavorare con tre tipi principali di dati: numero, testo e formula.

I numeri nei fogli di calcolo Excel possono essere scritti nel solito formato numerico o esponenziale, ad esempio: 195.2 o 1.952Е + 02. Per impostazione predefinita, i numeri sono allineati nella cella a destra. Questo perché quando si posizionano i numeri uno sotto l'altro (nella colonna della tabella) è conveniente avere un allineamento per cifre (unità sotto unità, decine sotto decine, ecc.).

Il testo nei fogli di calcolo di Excel è una sequenza di caratteri costituita da lettere, numeri e spazi, ad esempio la voce "32 MB" è testo. Per impostazione predefinita, il testo è allineato a sinistra nella cella. Questo è spiegato nel modo tradizionale di scrivere (da sinistra a destra).

La formula dovrebbe iniziare con un segno di uguale e può includere numeri, nomi di celle, funzioni (matematica, statistica, finanziaria, data e ora, ecc.) E segni di operazioni matematiche. Ad esempio, la formula "\u003d A1 + B2" fornisce l'aggiunta dei numeri memorizzati nelle celle A1 e B2 e la formula "\u003d A1 * 5" moltiplica il numero memorizzato nella cella A1 per 5. Quando inserisci la formula, la formula stessa non viene visualizzata, e il risultato dei calcoli con questa formula. Quando si modificano i valori iniziali inclusi nella formula, il risultato viene ricalcolato immediatamente.

Regole per la scrittura di formule nei fogli di calcolo

1. Le formule contengono numeri, nomi di celle, segni operativi, parentesi, nomi di funzioni

2. Operazioni aritmetiche e loro segni:

Nome dell'operazione Segno Combinazione di tasti

aggiunta + (Maiusc + + \u003d) o (+) sulla tastiera aggiuntiva

sottrazione - (-)

moltiplicazione * (Maiusc + 8) o (*) sulla tastiera aggiuntiva

divisione di / (Maiusc + | \\) o (/) sulla tastiera aggiuntiva

esponenziazione ^ (Maiusc + 6) in inglese

3. La formula è scritta in una riga, i caratteri sono disposti in sequenza uno dopo l'altro, tutti i segni delle operazioni sono apposti; vengono utilizzate le parentesi.

4. Prima di tutto, le operazioni vengono eseguite tra parentesi, se non ci sono parentesi, l'ordine di esecuzione è determinato dalla precedenza delle operazioni. In ordine decrescente di anzianità, le operazioni sono organizzate in questo ordine:

1. esponenziazione

2. moltiplicazione, divisione

3. addizione, sottrazione

Le operazioni della stessa anzianità vengono eseguite nell'ordine in cui sono scritte da sinistra a destra.

5. Le formule possono essere inserite nella modalità di visualizzazione dei calcoli, ad es. l'utente inizia a scrivere la formula nella cella corrente con il segno \u003d e dopo aver premuto il tasto Invio, il risultato del calcolo con la formula viene visualizzato nella cella.

6. Le formule possono essere inserite nella modalità di visualizzazione delle formule, ad es. l'utente scrive la formula unsigned \u003d nella cella corrente e la formula viene visualizzata nella cella dopo aver premuto il tasto Invio.

30. Le principali funzioni integrate. Riferimenti assoluti e relativi in \u200b\u200bfogli elettronici (ET).

Il collegamento relativo nella formula viene utilizzato per indicare l'indirizzo della cella, calcolato in relazione alla cella in cui si trova la formula. Quando sposti o copi una formula dalla cella attiva, i collegamenti relativi vengono automaticamente aggiornati in base alla nuova posizione della formula. I collegamenti relativi sono i seguenti: A1, OT.

Un riferimento assoluto in una formula viene utilizzato per indicare un indirizzo di cella fisso. Quando sposti o copi la formula, i collegamenti assoluti non cambiano. Nei collegamenti assoluti, un segno di dollaro (ad esempio $ A $ 1) è preceduto da un valore di indirizzo di cella invariato.

Se il simbolo del dollaro è prima della lettera (ad esempio: $ A1), le coordinate della colonna sono assolute e le righe sono relative. Se il simbolo del dollaro precede il numero (ad esempio, A $ 1), al contrario, le coordinate della colonna sono relative e le righe sono assolute. Tali collegamenti sono chiamati misti. Supponiamo, ad esempio, nella cella C1 che sia scritta la formula \u003d A $ 1 + $ B1, che una volta copiata nella cella D2 diventa \u003d B $ 1 + $ B2. I collegamenti relativi durante la copia sono cambiati, ma quelli assoluti no.

La lezione spiegherà l'algoritmo per la creazione di tipi di dati utente in Pascal (Tipo). Gli esempi verranno analizzati.

I tipi di dati di Pascal sono divisi in semplici e complessi.

I tipi semplici includono standard, elencato e limitato.

Per tipi complessi - array, set, record, file. Gli elementi di tipi complessi possono essere tipi semplici e complessi. Impareremo di più su tipi di dati complessi in seguito.

Uno dei tipi più comuni è il tipo standard ordinale.
Tipo standard ordinario indica un insieme di valori lineare finito. Di solito è indicato come tipi interi, byte, carattere e logici.

Nuovi tipi di dati (personalizzati) necessario principalmente per chiarezza e convenienza:

Esempio: È stata specificata una matrice 10 x 50. Eseguire la descrizione della matrice utilizzando un tipo di dati personalizzato

procedura p (a: array di Integer);

Ma dovrebbe creare un tipo di dati e scrivilo così:

1 2 type vector \u003d array [1 .. 10] di numero intero; var procedura p (a: vector);

type vector \u003d array of integer; var procedura p (a: vector);

Esempi di descrizione di array usando nuovi tipi

type vector \u003d array of integer; matritsa \u003d matrice di vettore;

  • 1 tipo matritsa \u003d array [1 .. 8] di array [1 .. 10] di numero intero;

    tipo matritsa \u003d array di array di numeri interi;

  • 1 tipo matritsa \u003d array [1 .. 8, 1 .. 10] di numero intero;

    tipo matritsa \u003d array di numeri interi;

  • Nel seguente esempio, variabili c e d descritto allo stesso modo:

    1 2 3 4 5 6 type vector \u003d array [1 .. 10] di numero intero; matritsa \u003d array [1 .. 8] del vettore; var a, b: vector; c: matritsa; d: array [1 .. 8] del vettore;

    type vector \u003d array of integer; matritsa \u003d matrice di vettore; var a, b: vector; c: matritsa; d: matrice di vettore;

    Tipo 1: Vengono fornite le matrici a, bec. Trova la media aritmetica degli elementi minimi dell'array (usa la formazione dell'array e).
    Nel descrivere le procedure, utilizzare tipi personalizzati dati

    Tipo enumerato e tipo di intervallo in Pascal

    Tipo enumerato

    Nel programma, è possibile utilizzare variabili di un tipo che non corrispondono a nessuno dei tipi standard.

    Quindi, un tipo può essere specificato enumerando i valori quando dichiarato; una variabile di questo tipo può assumere uno di questi valori.

    Questi valori non possono essere stringhe, non possono essere stampate e non possono essere inserite in un computer utilizzando gli operatori di lettura e scrittura.

    Considera un esempio di creazione di un tipo elencato in Pascal:

    digitare pt \u003d (parola1, parola2, ... parola N); var w: pt;

    digitare pt \u003d (parola1, parola2, ... parola N); var w: pt;

  • identificatore di tipo pt (arbitrario),
  • word1, word2 ... - valori specifici che può assumere una variabile w appartenente al tipo pt
  • valori di questo tipo sono considerati ordinati, ad es. la descrizione del tipo introduce contemporaneamente l'ordinamento word1.
  • Tipo di intervallo

    Tipo di intervallo definisce un sottoinsieme specifico dei valori che può assumere una determinata variabile. Viene creato impostando i valori più piccoli e più grandi del tipo ordinale.. Come costanti (valori minimo e massimo), è possibile utilizzare i valori di qualsiasi tipo semplice ad eccezione dei tipi reali.

    Considera un esempio di una dichiarazione del tipo di intervallo:

    a: min .. max;
  • un' - intervallo variabile
  • min - Linea di fondo
  • max - limite superiore del sottoinsieme
  • i bordi dell'intervallo sono separati da due punti
  • confine mindovrebbe sempre essere di meno max
  • costanti mine maxdeve appartenere allo stesso tipo. Determinano il tipo di base della variabile. un'.
  • Tipi condivisi ed enumerati

    Una variabile di tipo intervallo può essere impostata con una base su un tipo elencato di base. Considera un esempio:

    Esempio: Se la variabile b può assumere uno dei valori rosso, giallo, verde, quindi questa variabile può essere descritta in questo modo: b: red..green; tipo di base per b è un tipo colore:

    type color \u003d (rosso, giallo, verde, blu); var b: rosso .. verde; inizio b: \u003d rosso; writeln (b); b: \u003d giallo; writeln (b); b: \u003d verde; writeln (b); fine readln.

    type color \u003d (rosso, giallo, verde, blu); var b: rosso..verde; inizio b: \u003d rosso; writeln (b); b: \u003d giallo; writeln (b); b: \u003d verde; writeln (b); fine readln.

    NEL questo esempio tipo colore - è la base. La variabile b del tipo di intervallo viene definita utilizzando il tipo enumerato di base.

    Esempio: Si sa quanti giorni in ogni mese dell'anno. Quanti giorni d'estate?
    31,28,31,30,31,30,31,31,30,31,30,31

    Una delle opzioni per risolvere questo problema è simile alla seguente:

      Mostra soluzione:

      1 2 3 4 5 6 7 8 const dni: array [1 .. 12] di byte \u003d (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); var s, i: intero; inizio s: \u003d 0; per i: \u003d 6 a 8 do s: \u003d s + dni [i]; (mesi estivi - 6, 7, 8) writeln (s) end.

      const dni: array di byte \u003d (31,28,31,30,31,30,31,31,30,31,30,31); var s, i: intero; inizio s: \u003d 0; per i: \u003d 6 a 8 do s: \u003d s + dni [i]; (mesi estivi - 6, 7, 8) fine writeln (s).

      Il codice di questa soluzione non ha la migliore visibilità, inoltre, devi calcolare tu stesso i numeri dei mesi di inizio e fine dell'estate (6 e 8).
      La convenienza e la visibilità di tali programmi possono essere migliorate come segue:

      Mostra soluzione:

      1 2 3 4 5 6 7 8 9 TIPO mes \u003d (gennaio, febbraio, marzo, aprile, maggio, giugno, luglio, agosto, settembre, ottobre, novembre, dicembre); CONST dni: array [gennaio .. dicembre] di Byte \u003d (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); VAR s: intero; i: mes; (la variabile contatore contatore i è impostata su mes, non su intero) INIZIA s: \u003d 0; per i: \u003d giugno ad agosto fai s: \u003d s + dni [i]; WriteLn (s) END.

      TIPO mes \u003d (gennaio, febbraio, marzo, aprile, maggio, giugno, luglio, agosto, settembre, ottobre, novembre, dicembre); CONST dni: array di byte \u003d (31,28,31,30,31,30,31,31,30,31,30,31); VAR s: intero; i: mes; (la variabile del contatore di loop i è impostata su mes, non su Integer) BEGIN s: \u003d 0; per i: \u003d giugno ad agosto fai s: \u003d s + dni [i]; WriteLn (s) END.

    Tipo 2: Determina con il nome del giorno della settimana se si tratta di una vacanza o di un giorno lavorativo.

  • Definire un tipo enumerato con i valori del giorno della settimana ( mon, mar, sposare, thu, fri, sat, sole).
  • Nel programma, assegnare un valore a una variabile (dai valori del tipo, ad esempio, mon).
  • Controlla la variabile: se il valore è sabato o domenica, invia un messaggio "Produzione!"altrimenti "Stiamo lavorando!".
  • Tipo 3: A seconda del mese dell'anno, emettere un messaggio "freddo" - se il mese invernale e "Calorosamente" - se estate.

  • Definire un tipo enumerato con i nomi dei mesi dell'anno.
  • Dichiarare una variabile di questo tipo.
  • Nel programma, assegnare un valore a una variabile (dai valori di tipo).
  • Controlla la variabile: se il valore si riferisce al mese invernale, invia un messaggio "freddo" altrimenti - "Calorosamente".
  • Implementare in diversi modi.
  • Writeln (pribitie) end.

    var otpravlenie, pribitie: byte; inizia otpravlenie: \u003d 22; pribitie: \u003d otpravlenie + 10; writeln (pribitie) end.

    invece della risposta "8" il programma stamperà la risposta "32".
    L'introduzione di un tipo a intervallo limitato evita il risultato errato, ma il compilatore genererà comunque un errore:

    1 2 3 4 5 6 var otpravlenie, pribitie: 0 .. 24; inizia otpravlenie: \u003d 22; pribitie: \u003d otpravlenie + 10; writeln (pribitiedeva); var a: znak; inizia a: \u003d lev; se una<= strelets then writeln ("огонь" ) ; if (a>\u003d vesi) e (a<= bliznetsi) then writeln ("воздух" ) ; if (a>\u003d rak) e (a<= ribi) then writeln ("вода" ) ; if (a>\u003d kozerog) e (a<= deva) then writeln ("земля" ) ; end .

    tipo znak \u003d (forno, lev, strelet, vesi, vodoley, bliznetsi, rak, skorpion, ribi, kozerog, telets, deva); var a: znak; inizia a: \u003d lev; se una<=strelets then writeln("огонь"); if (a>\u003d vesi) e (a<=bliznetsi) then writeln ("воздух"); if (a>\u003d rak) e (a<=ribi) then writeln ("вода"); if (a>\u003d kozerog) e (a<=deva) then writeln ("земля"); end.

    Tipo 5: A seconda del nome del fiore, pubblica a quale stagione dell'anno si riferisce:

  • Primavera: bucaneve, iris, narcisi
  • Estate: camomilla, dente di leone, papavero
  • Autunno: aster, crisantemo, flox
  • Quando si descrive una variabile, è necessario specificarne il tipo. Un tipo di variabile descrive l'insieme di valori che può assumere e le azioni che possono essere eseguite su di esso. Una descrizione del tipo definisce un identificatore che designa un tipo.

    I tipi semplici sono divisi in standard (ordinali) ed enumerati (limitati).

    {!LANG-9a8539da0149016440b901e01017b3ac!}

    {!LANG-430e39bc7bcbcbac9a433d014b57b5a2!}

    {!LANG-76bbf44ce9538192801da1aa059fff51!}

    {!LANG-5f37ec87af4edcc2f76af90f37707c82!}

    {!LANG-b3d0e2aa84871b5bff774205913c08a9!}

    {!LANG-9d1bfffeb6ea5544009f55f385c10dda!}

    {!LANG-d93fea3eab240f1261dd752825556a29!}

    {!LANG-15a4750846fde8d5e2aae750be68188a!}

    {!LANG-fde3efe3bde4e1d3d57a09b2ff1947b1!}

    2147483648 +2147483647

    {!LANG-7124acfe8c809d463d514a454686a55e!}

    {!LANG-44a8e995fedcd1845ba0e76e6e447954!}

    {!LANG-6731b2b15f1c12107570035ce733d253!}

    {!LANG-796df03ad45f1106b72dcdda30b665e2!}

    1. {!LANG-81e702807760890abd252ff850741525!}
    2. {!LANG-5b410405b0d9c5b03b6f9d7953d5aba0!}
    3. {!LANG-5c21a159828918e65ccbd96902061624!}

    {!LANG-3a093ba441150758f7bc1f6654ac6da4!}

    {!LANG-b9dd46cce04ade26a74da0180eb17c11!}

    {!LANG-3ab41f6d5dfb64ec26b2334092f4fe80!}

    {!LANG-af8a627c27de1333ac8822cb1e416c9c!}

    {!LANG-acaf48bbf98f583495a097256b3a5126!}

    {!LANG-e1f3d1593bf06467d8cf502c71d02b2d!}

    {!LANG-ce910165b939dfcbde974f7fcafd5c51!}

    {!LANG-8d32d8ba71cc6c5f47a2ebb17c21a06a!}

    {!LANG-68dc95829d1d0860d8d08ffb0b071eac!}

    {!LANG-44c7e1106fe336e7714f97c71320aeed!}

    {!LANG-8c47655bb8e11877c42bbe496b2a7c6f!}

    {!LANG-0ab011296aca507cb87abb81679e0279!}

    {!LANG-cdef3e4ceae5ecb6bd78a7a479731ee4!}

    {!LANG-edbe3727048f2d3c64c458d98e32b4f1!}

    {!LANG-23916f10d81321677cfbe5d37cd6d361!}

    {!LANG-5af5d370c7ee760b0c980fb59285c155!}

    {!LANG-f0f0695626d8d0f4f9fce8b8db1fb6b6!}

    {!LANG-9d1bfffeb6ea5544009f55f385c10dda!}

    {!LANG-0c0c368292bd42a40df5bf0e21826be5!}

    {!LANG-ce32c9ec9b8086b204f8103878948a11!}

    {!LANG-e80f5c0247690ef6767156866ce821fd!}

    {!LANG-cd145e10a1136aeee4d12f88efd2a898!}

    {!LANG-7bd3b3140ce6b46355f462698ab824e3!}

    {!LANG-a45d154aac45e1379140ca59a3db1728!}

    {!LANG-f07c572e4bbbfda52e4cef0c95194eb8!}

    • {!LANG-b21a38f870a88fa4408187ad168584fb!}
    • {!LANG-74d0be63aabc0e6e6f39beab984e98f9!}
    • {!LANG-cf68b58b439466fb2e4448e578a08617!}
    • {!LANG-8b4fcb731a2b9cde1da4cdec6f195e88!}
    • {!LANG-3ba8759b387f4a3d9c4e4840bc58aa42!}
    • {!LANG-e7278bce09f786f20588b65871992843!}
    • {!LANG-a16bb42909645444347794ab53064fd4!}
      • {!LANG-90b829f3da9a6a393cd0bff5f9c65081!}
      • {!LANG-b9b59934e07f7f69114563bd7a22f820!}
    • {!LANG-d44b94106f89077fd8ff42ea9f54e1ec!}
      • {!LANG-f2cf1a5d8ffb13709b8483a0ce2fe8cd!}
      • {!LANG-e37d23a234a927a984226db977cff2db!}
      • {!LANG-1b79f5b916826c21892fca177d09d1b3!}
      • {!LANG-7379c1a88af717cc6ce097be6081ed71!}

    {!LANG-552357ee3d1a1cf988fd51572d7b0429!}

    {!LANG-d76ba0cbe8b2646a335bfa23326e0ccd!}

    Per esempio:

    {!LANG-2dc08ee74e0d7373b540a85382734d41!}

    {!LANG-9c932e76dd90bdecd1404fc946cfb64a!}

    {!LANG-e79a66c2e0285888b54fe63a1483d4c3!}

    {!LANG-3011c8045002629691c0fef0143dfedd!}

    {!LANG-f82cd7228da499f905a84ca8d81b72a6!}

    > , < , >=, <=, <> .

    {!LANG-066ee6346a9649bd9ad43e26be105992!}< ‘W’

    {!LANG-c4ddfe631dd864c6f21a28906457e385!}

    1. {!LANG-c15ef462a16447478b00d668a920aa55!}
    2. {!LANG-fdcad6456bdfb89269213eeac286c485!}
    3. {!LANG-9b9df1df361eddf3dc31ae2fdcc7dc3c!}
    4. {!LANG-5f2aa2cf9a632e7e33274ab62d9b5554!}

    {!LANG-52b3827c88264ed7a5295de75aac14ef!}

    {!LANG-87e8462f317746a901ae06b5997549c1!}

    {!LANG-506fd0f1761fe1408000b1c7d1397c49!}<имя типа>{!LANG-d0bdeab691815b515ff9cc9c6b6473d7!}<имя переменной>:<имя типа>;

    {!LANG-b4105a8365f96fbf4ef90b1000a2102e!}<список констант>{!LANG-e51f1b13962f7419c7ad45082a4ee884!}

    Per esempio:

    {!LANG-a8532071ccd14f7b92fbe060697c55c7!}

    {!LANG-ae48852fda0a28bedc4e2d50b61e5da5!}

    {!LANG-f6c637bcf80c40c6885e83dfc529aae2!}

    {!LANG-3acefeb4044d8d72b96c06c9aa2cf2cb!}

    {!LANG-57a0212da5b9616d8e6f6a4f1b90f751!}

    {!LANG-20d0237248fbdaba33743c5e8c7a345c!}

    {!LANG-3aa1cf2b8aec2f64e88580927422fad3!}

    {!LANG-34a519820d8ca363d229802dcb0af5f9!}

    {!LANG-469729bd6759f326331992fc4e7873ee!}

    {!LANG-75f7994fcaba4e867c26e6cd082c4653!}

    {!LANG-271c4586b9199b2f68bca5b456431eae!}< юг, июнь < январь имеют значения TRUE, а юг>{!LANG-f25a1e01c983e62c597437bcb6f4957e!}<бочка значение FАLSE.

    {!LANG-fc495093385ff53a0a0850d79957a37e!}

    {!LANG-a8dc54d4f38b45ea510346b4c2771d62!}

    {!LANG-51c2ecd3d6086f4e0c35176e891b7a39!}

    {!LANG-f86c83953689d94772e6d35e50803e7e!}<имя типа>{!LANG-b2df41d53d55952f29d74e0e765158f4!}

    {!LANG-46ff07fcf73c42eb9a27f55e327ff0c7!}

    1. {!LANG-63497ea4092123926fa15aa8490a3b91!}
    2. {!LANG-8972ccda69bfc42449fe4aa6af6b4090!}
    3. {!LANG-2e97052cda7b2a7afe457ce46abfeb64!}
    {!LANG-c1f28761fbe40f36b1f340fc1c139e2b!}

    {!LANG-c98a9b152167fd24cc03b73d61ad8883!}

    {!LANG-3dc67fbb368474071d974e00e3c5116c!}

    LA CAMPANA

    C'è chi legge questa notizia prima di te.
    Iscriviti per ricevere articoli freschi.
    E-mail
    Nome
    Cognome
    Come vuoi leggere The Bell
    Niente spam