La campana.

Ci sono quelli che hanno letto questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere la campana
Senza spam.

Gli operatori strutturati sono chiamati tali operatori, che includono altri operatori e controllano la sequenza della loro esecuzione. Questi includono:

  • operatore composito;
  • operatore condizionale se;
  • casel Operator Case;
  • ripeti dell'operatore ciclo;
  • operatore del ciclo a culo;
  • operatore ciclo per.

Operatore composito

È spesso necessario che diversi operatori siano percepiti in relazione ad alcune azioni come un unico operatore. Tale operatore può essere ottenuto se la sequenza necessaria di operatori si combinano con le staffe dell'operatore. Inizia e terminare le parole di servizio sono chiamate parentesi dell'operatore.

Formato operatore:

numero dell'operatore 1;

numero dell'operatore 2;

numero operatore 3;

operatore n. N-1;

numero dell'operatore n; Fine;

La parola inizia a riprodurre il ruolo della staffa di apertura, la parola termine è il ruolo della staffa di chiusura.

L'operatore composito è percepito come un singolo operatore. Può essere inserito in qualsiasi luogo del programma in cui è consentito un solo operatore.

Gli operatori inclusi nell'operatore composito, come tutti gli operatori, sono separati da un punto e virgola, ma prima della fine, questo separatore non può essere installato. Dopo che il punto finale con una virgola è necessario come separatore tra l'operatore composito e il prossimo operatore.

Nelle sezioni seguenti, il significato e lo scopo dell'operatore composito saranno illustrati su numerosi esempi.

Operatore condizionale se

L'operatore IF implementa la progettazione algoritmica "Soluzione" e consente di modificare la procedura per eseguire gli operatori a seconda della verità o del feltro di qualche condizione. Il formato dell'operatore può essere registrato in due moduli: forma completa e incompleta.

Formato operatore in forma completa:

Se<условие> Poi.<оператор 1> ALTRO.<оператор 2>

Formato operatore in formato incompleto:

Se<условие>Poi.<оператор 1>

Se (se), quindi (quindi), altrimenti (altrimenti) - parole riservate.

Se i diagrammi di flusso dell'operatore sono sotto:

L'operatore condizionale funziona come segue. Per prima cosa calcola l'espressione condizionale< условие >. Se il risultato è vero (verità), quindi viene eseguito< оператор 1 > (dopo la parola di questo), e< оператор 2 > saltato. Se il risultato è falso (falso), quindi< оператор 1 > saltato ed eseguito< оператор 2 > (Dopo la parola altro). Prima che un punto virgola non sia mai messo, poiché questa non è la fine dell'operatore IF.

Parte di altrimenti.<оператор 2> operatore condizionale Se può essere omesso. Se un< условие > Se l'operatore si prende il vero, quindi eseguito<оператор 1> In caso contrario, questo operatore viene saltato. In questo caso, il formato dell'operatore condizionale ha un modulo incompleto:

Confronta due costruzioni:

Se<условие>Poi.<оператор 1>;

Se<условие>Poi.<оператор 1>; <оператор 2>;

In prima linea<оператор 1> o eseguito o non eseguito in base all'esecuzione<условия> . Nella seconda riga<оператор 2> corre sempre perché dopo<оператора 1> vale il separatore ";" E tutto ciò che il campo del separatore è considerato un altro operatore. Pertanto, in conformità con il formato di un operatore Se dopo le parole riservate di quindi e altro, solo un operatore può sopportare.

Esempio:

Se A\u003e 0 quindi B: \u003d 1;

Se A\u003e 0 quindi B: \u003d 1; A: \u003d B; (Operatore A: \u003d B; sempre)

Se hai bisogno di eseguire dopo quello e altro non uno, ma diversi operatori, dovrebbero essere inseriti parentesi dell'operatore, cioè. Utilizzare l'operatore composito.

In questo caso, l'operatore se avrà il seguente modulo:

Se<условие>Poi.

operatore 11;

operatore 1N;

operatore 21;

operatore 2N;

Esempio.

Se A\u003e 0 quindi iniziare B: \u003d 1; A: \u003d B; fine;

Attività 1. Calcola il valore della funzione di disuguaglianze specificate

y \u003d x + 1 con x<0; y=2∙x при x>0. Programma A5; Var x, y: reale; Iniziare a scrivere ('Inserisci x:'); readln (x); Se x writeln ('valore di u è:', y: 6: 2) fine.

Risultati del programma:

Inserisci i valori X: 0,5.

Valore Valore: 1.00

Attività 2. Scrivi un programma risolvendo un'equazione quadrata. Se il discriminante è inferiore a zero, quindi visualizzare il messaggio appropriato.

Programma A6; VAR A, B, C: reale; (coefficienti di equazione) x1, x2: reale; (Equazione delle radici) D: reale; (discriminante) Inizia Writeln ('soluzione dell'equazione quadrata': 50); Scrivi (immettere i valori dei coefficienti A, B, C: '); Readln (a, b, c); (Ingresso coefficienti) D: \u003d B * B-4 * A * C; Se (D.<0) then Writeln(‘Уравнение не имеет корней.’) else begin {операторные скобки} x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); WriteLn(‘Корни уравнения: ’, x1:8:2,x2:8:2); end; end.

Risultati del programma:

Soluzione dell'equazione quadrata

Inserisci i valori dei coefficienti A, B, C: 3 1 6

L'equazione non ha radici.

Nella dichiarazione IF, non solo è possibile utilizzare l'operatore composito, ma anche qualsiasi operatore strutturato. Come tale operatore, è possibile utilizzare l'operatore condizionale se il condizionatore. In questo caso, stanno parlando di annidati se gli operatori.

Esempio.

Se la condizione allora.
Inizio. Staffe dell'operatore
operatore; nidificato
Se operatore,
forma incompleta
IF CONDIZIONI THEN OPOATER
Altrimenti operatore;
Fine.
ALTRO.
Inizio. Staffe dell'operatore
operatore; nidificato
se operatore,
forma incompleta
Se condizioni
Quindi operatore;
fine;

Quando si lavora con gli operatori nidificati Se. le seguenti regole dovrebbero essere prese in considerazione:

  • prima della parola riservata all 'altro simbolo ";" mai messo;
  • la parola riservata altrimenti è sempre associata al più vicino di fronte ad esso con una parola riservata in piedi, allora.

Attività 3. Migliora il programma di risolvere l'equazione quadrata (Task 2). Quando il valore del coefficiente A \u003d 0, l'equazione è degenerata. Nel programma, questo fatto non è stato preso in considerazione, il che causerà un errore irreversibile nell'esecuzione del programma (divisione a zero). Per escludere la divisione a zero, eseguire la convalida del coefficiente e dopo il suo input per l'operatore Readln (A, B, C).

Poiché la variabile A è dichiarata nel programma come variabile di tipo reale, il suo valore numerico nella macchina è presentato non esattamente, con qualche errore. Pertanto, digita il record

Esistono diverse opzioni per il corretto confronto dei valori della variabile reale con zero:

Attività 4. Programma di soluzione di equazione quadrata migliorata.

Programma A7; VAR A, B, C: reale; (coefficienti di equazione) x1, x2: reale; (Equazione delle radici) D: reale; (discriminante) Inizia Writeln ('soluzione dell'equazione quadrata': 50); Scrivi (immettere i valori dei coefficienti A, B, C: '); Readln (a, b, c); (Immissione di coefficienti) se round (A)<>0 quindi iniziare D: \u003d B * B-4 * A * C; Se D.<0 then Writeln(‘Уравнение не имеет корней.’) else begin{операторные скобки} x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); WriteLN(‘Корни уравнения: ’, x1:8:2,x2:8:2); end; end else Writeln(‘Деление на нуль.’); end.

Risultati del programma:

Soluzione dell'equazione quadrata Immettere i valori dei coefficienti A, B, C: 0 1 6 divisione a zero.

Operatore di selezione del caso condizionale

L'operatore di selezione è una generalizzazione dell'istruzione IF e viene utilizzata nei casi in cui è necessario eseguire un solo operatore dal set di operatori a seconda del valore del valore chiave.

Come chiave, viene utilizzata l'espressione, che si trova tra le parole riservate del caso e di cui. L'espressione può essere tipo intero, logico e simbolico. L'espressione non può avere un tipo di reale, stringa.

Formato operatore:

Caso di "<ключ выбора>"Costanta1: Operatore 1; Constanta2: Operatore 2; Constanta3: Operatore 3; ... Costantan-1: Operatore N-1; CONSTANTAN: Operatore NN; altrimenti Estremità dell'operatore;

Qui è Sase (nel caso), di (da), altrimenti (altrimenti), fine (fine) sono parole riservate.

La chiave di selezione è un'espressione di qualsiasi tipo tranne reale e stringa.

Constant1 - costante dello stesso tipo di espressione.

Operatore1 - Operatore arbitrario.

L'operatore di selezione agisce come segue. Inizialmente, l'espressione è calcolata<ключ выбора> e poi nella sequenza di operatori che scoprono quello preceduto da un costante uguale al valore calcolato<ключ выбора> . L'operatore trovato viene eseguito, dopo di che l'operatore di selezione completa il suo funzionamento (il controllo viene trasmesso alla fine). Se la costante non sarà trovata nell'elenco costante corrispondente al valore calcolato del tasto di selezione, il controllo viene trasmesso all'operatore in piedi dietro la parola altrimenti.

Parte di altrimenti.<оператора> Puoi omettere, quindi in assenza nell'elenco delle costanti la costante desiderata non accade e l'operatore di selezione completa semplicemente il suo lavoro.

Attività 5. Scrivi un programma di calcolatrice semplice.

Programma A8; Var x, y: reale; z: reale; (Risultato) op: char; (Seleziona tasto) Iniziare a scrivere ('Inserisci gli operandi x, y:'); Readln (x, y); Scrivi ('Immettere l'operazione (+, -, *, /):'); Readln (op); Caso OP di '+': z: \u003d x + y; '-': z: \u003d x-y; '*': Z: \u003d x * y; '/': Se Y0 allora z: \u003d x / y elsewriteln ('divisione a zero'); Altrimenti writeln ('l'azione non è fornita!'); fine; (OP) (quindi puoi contrassegnare, "la cui" fine) writeln ('il risultato è \u003d', z: 8: 2); fine.

Risultati del programma:

Inserisci gli operandi x, y: 4 2

Inserisci l'operazione (+, -, *, /): *

Il risultato è \u003d 8.00

Nel programma, la chiave dei caratteri è una variabile di tipo di simbolo. A seconda dei valori dei simboli inseriti (+, -, *, /), viene eseguita una delle azioni aritmetiche: aggiunta, sottrazione, moltiplicazione o divisione. Se Zero viene introdotto come un divisore, la divisione è impossibile e il messaggio "Divisione a zero" è emesso. Se viene inserito un altro carattere, il risultato sarà il messaggio "L'azione non è fornita!". Se vengono inserite le operazioni consentite, è rilasciato il risultato.

Attività 6. Scrivi un programma che richiede il numero del giorno dell'utente della settimana, quindi visualizza il nome del giorno della settimana o un messaggio di errore se vengono inseriti dati errati.

Programma A9; VAR N: Integer; (numero di giorno della settimana) Iniziare a scrivere ('Inserisci il numero di giorno della settimana:'); readln (n); Caso N di 1: Writeln ('lunedì'); 2: Writeln ('martedì'); 3: Writeln ("mercoledì"); 4: Writeln ('giovedì'); 5: Writeln ('Venerdì'); 6: Writeln (sabato '); 7: Writeln ('Domenica'); Altrimenti scrivi ('sei sbagliato!') Fine; (n) fine.

Risultati del programma:

Inserisci il numero di giorno della settimana: 1

Lunedi

Nessuna costante dovrebbe coincidere con l'altra. Se è necessario eseguire lo stesso operatore per più costanti, puoi elencarli attraverso la virgola, ad esempio

caso N di 1,3,5,7,9: Writeln ('queste sono figure dispari »); 2,4,68,10: Writeln ('questi sono numeri pari'); fine;

Operatore La proposta della lingua di programmazione è chiamata una descrizione completa di qualche azione che deve essere eseguita. La parte principale del programma di Turbo Pascal è una sequenza di operatori. Il separatore degli operatori è un punto con una virgola. Tutti gli operatori linguistici Turbo Pascal possono essere suddivisi in due gruppi: semplice e strutturale.

Gli operatori non contengono altri operatori sono chiamati semplice. Questi includono operatori di assegnazione, transizione incondizionata, procedura di chiamata e operatore vuoto..

Operatore dell'applicazione

Operatore dell'applicazione (:=) Prescrive a eseguire un'espressione specificata nella parte destra e assegnare il risultato della variabile il cui identificatore si trova sul lato sinistro. La variabile ed espressione devono essere compatibili per tipo.

L'istruzione di assegnazione viene eseguita come segue: Innanzitutto, l'espressione viene calcolata sul lato destro dell'assegnazione, e quindi il suo valore è assegnato alla variabile specificata sul lato sinistro dell'operatore.

Ad esempio, per l'operatore

Rezult: \u003d un div b;

in primo luogo, la divisione intera del valore della variabile MA Sul valore della variabile NELe quindi il risultato è assegnato alla variabile Rezult..

Esempi di applicazione dell'operatore di assegnazione:

MA:= 8;

S: \u003d a *NEL;

Ostatok: \u003d una mod B;

Rapporto: \u003d A / B;

Operatore di transizione incondizionato (andare a)

Operatore di transizione incondizionato (vai a) Significa "Vai a" e si applica nei casi quando, dopo aver eseguito un determinato operatore, è necessario eseguire non seguire in ordine, ma qualsiasi altro contrassegnato da un operatore di etichette.

Richiama che l'etichetta viene dichiarata nella sezione Descrizioni delle etichette e può contenere sia simboli digitali che alfabetici.

Quando si utilizza l'operatore vai a.deve essere ricordato questo tagging Area. È solo l'unità in cui è descritto. Il controllo su un altro blocco è proibito.

Regole per l'utilizzo di un operatore di transizione incondizionato. L'uso della gestione incondizionata della gestione nel programma è considerata teoricamente ridondante ed è soggetta a critiche gravi, in quanto contribuisce alla creazione di programmi modificabili ininterrotti e difficili che causano grandi difficoltà durante il debug e accompagnati. Pertanto, si consiglia l'uso minimo dell'operatore. vai a. In conformità con le seguenti regole:

Dovrebbe sforzarsi di applicare le dichiarazioni di transizione (se sembra impossibile da fare a meno di loro) per trasmettere il controllo solo giù (avanti) nel testo del programma; Se è necessario trasferire il controllo del retro, è necessario utilizzare gli operatori del ciclo;

La distanza tra l'etichetta e l'istruzione transizione a esso non deve superare una pagina del testo (o l'altezza dello schermo del display).

Un esempio dell'applicazione di un operatore di transizione incondizionato:

etichetta Metka; (Nella mano Descrizione delle etichette descritte l'etichetta denominataMetka.}

inizio. (Programma di base)

(Principali operatori del programma)

(Etichettati operatori del programma principale)

Procedura per l'esecuzione del lavoro

    Esaminare le informazioni teoriche sull'argomento: "Scrivere un programma su un pascorso utilizzando l'assegnazione e gli operatori di transizione incondizionata."

    Ottieni un compito individuale dall'insegnante e sviluppa un programma in conformità con il compito.

    Mostra il programma in esecuzione per l'insegnante.

    Rispondere alle domande del test.

Domande di controllo

    Elementi di programmazione di base.

    Le caratteristiche principali del programma. I concetti di linguaggio, sovrapposizione, blocchi globali e locali.

    Programmazione degli operatori del linguaggio Pascal. Operatore di assegnazione. Formato, esempi.

    Operatore di transizione incondizionato. Formato, esempi. Regole di base di base

Numero di laboratorio numero 7

Scrivere il programma sul Pascal utilizzando gli operatori condizionali e l'operatore di selezioneAstuccio.

Scopo del lavoro : Formazione di conoscenze e abilità per lavorare con gli operatori del linguaggio. Acquisizione di competenze di scrittura del programma che utilizzano assegnazione e operatori di transizione incondizionata.

Brevi informazioni teoriche

Operatori condizionali

Gli operatori condizionali hanno lo scopo di scegliere tra una delle possibili azioni (operatori), a seconda delle condizioni (allo stesso tempo, una delle azioni può essere vuota, I.e. è assente). Il valore è usato come scelta espressione logica.

Turbo Pascal ha due operatori condizionati: se e custodia.

Condizione dell'operatore se.

Condizioni dell'operatore se. È uno dei fondi più popolari che cambiano la procedura naturale per l'esecuzione di operatori del programma.

Può prendere una delle seguenti forme:

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

aLTRO.<оператор2>;

    se.<условие> Poi.<оператор>;

Tradotto dall'inglese, questi formati possono essere definiti come:

    SE UN <условие> Quella <оператор1> Altrimenti <оператор2>

    SE UN <условие> Quella <оператор>

Condizioni dell'operatore se. È eseguito come segue. Innanzitutto, viene calcolata l'espressione registrata nella condizione. Come risultato del suo calcolo, si ottiene il valore del tipo booleano.

Nel primo caso, se il valore dell'espressione è Vero. (Verità), eseguito <оператор1>, Specificato dopo la parola poi.(Tradotto - "a"). Se il risultato del calcolo dell'espressione sulla condizione è Falso (bugia), quindi in esecuzione <оператор2> .

Nel secondo caso, se il risultato dell'espressione Vero., eseguita <оператор>, se un Falso - L'operatore accanto immediatamente dietro l'operatore se.. Operatori se. può essere nidificato.

Esempio di un frammento di un programma con un operatore IF Conditions:

se ch \u003d "n" Allora Parol: \u003d true

altrimenti Parol: \u003d falso;

se Parol \u003d True Thann

se x \u003d 100 quindi scrivi ("Password e codice di destra")

Writeln ("errore nel codice");

In questo esempio, la tastiera legge il valore della variabile del tipo di carattere Ch.. La condizione viene quindi controllata A PARTIRE DALh.=" N." . Se viene eseguito, quindi variabile Parol.il tipo booleano è assegnato valore Vero.Se la condizione non viene eseguita, Falso. Quindi dalla tastiera Leggere il valore del codice X.. Successivamente, l'operatore se controlla il parol \u003d condizione true. Se importa Vero.Quindi controllando la password inserita dall'operatore se x \u003d 100. Se condizioni X \u003d 100. ha il significato Vero., viene visualizzato il messaggio "Password e codice è corretto" e la gestione nel programma viene trasmessa all'operatore seguendo la parola fine.Se importa Falso, l'operatore composito in piedi dopo, parole aLTRO.che visualizza il messaggio "Errore nel codice" alla schermata del monitor video e provoca una procedura standard Halt (1) Per fermare il programma.

Caratteristica dell'applicazione dell'operatorese.. Quando si utilizzano operatori condizionali nidificati, può verificarsi un'ambigità sintattica, ad esempio:

se condition1 quindi se condition2 allora<оператор1> ALTRO.<оператор2>

Ambiguità emergente a quale operatore se. Appartiene parte aLTRO. <оператор2>, È consentito dal fatto che la parola di servizio aLTRO. Sempre associato (associato) con la parola commerciale più vicina se che non è ancora associato a una parola di servizio aLTRO..

A questo proposito, dovrebbe essere accurato quando si scrive operatori di condizioni nidificati.

Esempio 1. . Creare un programma che calcola i due numeri interi privati. A causa del fatto che è impossibile dividere a zero, organizzare il controllo della voce dei dati.

Per controllare i valori di input del divisore, utilizzare l'operatore di transizione condizionale Se ... allora ... altro.

Il testo del programma può apparire come segue:

programma Primer1;

A, in: intero;

Scrivi ("Inserisci il valore di Dividious A:");

Scrivi ("Inserisci il valore divisorio su:");

se B \u003d 0 (Controllo in ingresso del numeroB.}

allora Writeln ("Ha zero per condividerlo è impossibile") (Condizione soddisfatta)

(La condizione non è soddisfatta)

Rezult: \u003d A / in;

Writeln ("numeri privati", e, "e", in, "\u003d", rezult);

L'operatore di transizione consente di passare dal programma corrente di esecuzione del programma a un altro luogo che non è seguito in ordine. Questo operatore viola il normale corso di esecuzione del programma.

La transizione viene eseguita utilizzando i cosiddetti tag.
Un'etichetta è un identificatore o un numero intero senza un segno nell'intervallo da 0 a 9999, che si trova davanti a qualsiasi operatore del programma ed è separato da esso con un colon. Tutti i tag utilizzati nel programma devono essere precedentemente dichiarati nella sezione Annunci di etichetta, a partire dall'etichetta.

È possibile dimostrare teoricamente che gli operatori considerati sono abbastanza per scrivere programmi di complessità. A questo proposito, la presenza nel linguaggio degli operatori di transizione sembra inutile. Inoltre, la struttura moderna della programmazione strutturale si basa sul principio di "programmazione senza goto": si ritiene che l'abuso di operatori di transizione rende difficile capire il programma, lo rende confuso e complesso nel debug. Tuttavia, in alcuni casi, l'uso degli operatori di transizione può semplificare il programma.

L'operatore di transizione ha il modulo:

Qui Goto è una parola riservata (vai [sull'etichetta]); - Etichetta.

Etichetta 1; // Dichiarare un'etichetta denominata 1 VAR
A: Integer; Inizio.
A: \u003d 10;
Goto 1; // transizione all'etichetta 1
A: \u003d SQRT (A); // Questo operatore non verrà mai eseguito! 1: A: \u003d A + A; // operatore contrassegnato con un'etichetta 1 estremità;

Operatori condizionali di transizione

L'operatore delle condizioni è progettato per eseguire o non compimento di qualsiasi azione a seconda del risultato della condizione di tipo booleano. Questo operatore viene utilizzato per la filiale dell'esecuzione del programma,
I.e. Se questa condizione è vera (e solo in questo caso!), Quindi viene eseguita una sequenza di operatori, altrimenti vengono eseguiti altri operatori. Tipo di condizioni di operatore Tale:

se. condizione poi. operatore1 altrimenti operatore2;

L'operatore di condizione può essere registrato in una forma semplificata:

se. condizione poi. operatore;

Forniamo esempi di utilizzo delle condizioni degli operatori:

se A\u003e 0 quindi B: \u003d SQRT (A) ALTRO B: \u003d A * 2; // Condizioni operator
Se A \u003d 10 poi B: \u003d B + 1; // forma semplificata

Per organizzare la ramificazione in diverse direzioni (più di due), è possibile utilizzare diversi operatori di condizioni investiti l'uno nell'altro. Un'eccordo di operatori statali avviene in base alle stesse regole dell'investimento degli operatori compositi.

A differenza di altri linguaggi di programmazione nell'oggetto Pascal, la priorità delle operazioni relazionali è inferiore a quella delle "operazioni logiche, su questo, i singoli componenti della complessa espressione logica sono tra parentesi. Ad esempio, tale record dell'operatore precedente non sarà corretto:
Se A\u003e B e B 0 di allora ... // errore come in realtà (tenendo conto della priorità dell'operazione) il compilatore trasmetterà questa linea:
Se A\u003e (B e B) 0 poi ...

Operatore di transizione

Questa volta continuerò a considerare l'argomento "Operatori".

La transizione degli operatori (incondizionata) è destinata a trasmettere il controllo all'operatore, un marchio etichettato (che è preceduto dall'etichetta).

La versione dell'autore della lingua prevede la progettazione dell'etichetta sotto forma di un numero decimale intero nell'intervallo 1..9999 . Come etichette Turbo Pascal. Consente l'uso di identificatori. Quando si utilizzano gli operatori di transizione, è necessario seguire le seguenti regole:

1) Tutti i tag che si trovano nel blocco devono essere descritti. In questo caso, ogni etichetta può essere descritta non più di una volta. Quelli. All'interno del blocco, non ci possono essere due etichette con lo stesso nome.

2) L'etichetta specificata nell'istruzione transizione deve specificare l'operatore (inserirlo), situato nello stesso blocco dell'operatore di transizione stesso. Quelli. Le transizioni Le procedure internamente (funzioni) o all'interno di loro non sono consentite.

3) Tentare la transizione (trasmissione di controllo) all'interno dell'operatore strutturale può causare effetti imprevedibili, sebbene in questo caso il compilatore non possa fornire un messaggio di errore.

L'uso della transizione incondizionata nel programma è considerato teoricamente ridondante, in quanto può fare confusione in una catena di operazioni di programma logicamente posizionate, che possono portare a grandi difficoltà nel debug e nella modifica del tale programma. Si consiglia di applicare gli operatori di trasporto, seguendo le seguenti regole:

1) Se sembra impossibile da fare senza operatori di transizione, è necessario sforzarsi di applicarli a trasferire il controllo solo il testo del programma (avanti); Se hai la necessità di trasmettere "indietro" migliori operatori del ciclo di utilizzo (vedi sotto);

2) Per chiarezza, la distanza tra l'etichetta e l'operatore di transizione a esso non deve superare una pagina del testo (o l'altezza della schermata del display), altrimenti il \u200b\u200bsignificato di questa transizione incondizionata sarà difficile da catturare.

I tag sono determinati dalle descrizioni che iniziano con una parola di servizio etichettae contenere la sequenza di nomi di etichette attraverso la virgola. Per trasferire il controllo dell'operatore, viene fornito un segno etichettato, viene fornito un operatore di transizione incondizionato vai a.. L'etichetta è separata dal seguente operatore dietro di esso ':' (colon). Esempio:

var. J: intero;

(Dichiariamo due etichette)

etichettaInizio, finitura;

Inizio: writeln ('programma di partenza');

vai a. FINIRE;

Finitura: writeln ('fine del programma');

Operatore composito

L'operatore strutturale più semplice è un operatore composito. Questo operatore imposta la sequenza degli operatori contenuti in esso. L'operatore composito è redatto sotto forma di un elenco di operatori separati l'uno dall'altro con un simbolo ";" (punto con la virgola) e i prigionieri tra le parole ufficiali inizio.e fine..

La necessità di un operatore composito può verificarsi nei casi in cui la sintassi lingua del linguaggio pascal Consente l'uso di un solo operatore nel luogo del programma in cui sono necessari un numero di azioni (operatori, vedere esempi di seguito). Darò un semplice esempio di un operatore composito:

Operatore condizionale

Il significato dell'operatore condizionale è quello di analizzare alcune condizioni logiche e, in conformità con ciò, questa condizione viene eseguita o meno, trasferisce il controllo dell'operatore appropriato. Come condizione, potrebbe esserci un'espressione che restituisca il valore logico del tipo booleano. Il risultato dell'analisi della condizione può essere il valore vero.. La condizione è eseguita da I. falso. La condizione non viene eseguita.

L'operatore condizionale viene eseguito come segue. Pre-calcola l'espressione indicata dopo la parola di servizio Se.. Se la condizione viene eseguita, il controllo viene trasmesso all'operatore specificato dopo la parola di servizio poi.In caso contrario, l'operatore viene eseguito, indicato dopo la parola di servizio dell'altro. In questo caso, una parte dell'operatore condizionale, a partire dalla parola altro, potrebbe essere assente. Ecco alcuni esempi di operatori condizionali:

Se Keypressed. poi. Writeln ('chiave chiave');

Se A\u003e B. poi. Min: \u003d B

ALTRO. Min: \u003d A;

se. X1\u003e x2. Quindi inizia.

L'ultimo esempio è esattamente il caso in cui è necessario che un numero di operatori venga eseguito dalla condizione, ma a causa del fatto che poi.o aLTRO.ci può essere solo un operatore, cioè la capacità di risolvere la situazione utilizzando un operatore composito contenente solo un numero degli operatori necessari.

Nella preparazione di operatori condizionali nidificati, si dovrebbe tenere presente che il ramo di altro appartiene sempre al ramo precedente Se.chi non ha ancora il ramo di altrimenti. Quelli. Prossima progettazione

se. Condizione1. quindi se. Condizione2. poi. Operatore1. aLTRO.Operatore2;

per chiarezza, puoi interpretare così

se. Condizione1. Quindi inizia.

Se.Condizione2. poi. Operatore1. aLTRO.Operatore2;

È necessario osservare l'accuratezza quando si utilizza operatori condizionali nidificati in modo che nella creazione della compilazione del prossimo operatore condizionale del programma, non perderà di vista, a prima vista, una piccola parte che può portare a un convenzionale completamente diverso ramificarsi.

Opzione dell'operatore

Abbastanza spesso la situazione si verifica quando la catena di operatori condizionali cresce ad enormi scale, ad esempio, l'esempio seguente illustra un ramo modesto nelle sue dimensioni, ma già contenente la complessità della percezione del significato posata in esso:

genere Tway \u003d (su, giusto, giù, a sinistra);

var. Via: TWAY;

Mapx, Mapy: Word;

se.Modo \u003d su. poi. Mapy: \u003d Mapy - 1

ALTRO. se. Way \u003d giusto. poi.Mapx: \u003d Mapx + 1

ALTRO.se. Modo \u003d giù. poi.Mapy: \u003d Mapy + 1

ALTRO. Mapx: \u003d Mapx - 1;

L'ultimo ramo di altro non ha operatore SePoiché in caso di non adempimento di tutte e tre le condizioni sarebbe logico che l'operatore corrispondente alla quarta e ultima variante dei possibili valori del tipo venisse in vigore Twy..

In questo caso, siamo stati ancora fortunati a quel tipo Twy.ha solo quattro opzioni per i valori ricevuti. La sdraiatura di tali rami si sarebbe trasformata in una routine se ci fossero dieci opzioni e altro? Ma nel ramo presentato, c'è un modello semplice. Quindi è possibile semplificarlo in qualche modo e rendere più efficiente e leggibile? È possibile, e per questo nella lingua c'è un operatore dell'operatore, il cui progetto può contenere un numero arbitrario di alternative per una certa espressione. Quindi l'ultimo esempio può essere riscritto su un nuovo modo:

astuccio. Modo. di.

Su: Mapy: \u003d Mapy - 1;

Destra: Mapx: \u003d Mapx + 1;

Giù: Mapy: \u003d Mapy + 1;

A sinistra: Mapx: \u003d Mapx - 1;

Bene, un'altra cosa. Considera ora la procedura per eseguire questo operatore. Pre-calcola il valore dell'espressione seguendo la parola di servizio astuccio.Ma poiché in questo caso c'è un nome variabile Modo.Il valore di questa variabile viene eseguito. Il valore ottenuto viene confrontato alternativamente con ciascuna alternativa (costante, valore diretto) indicato dopo la parola ufficiale di.. In caso di uguaglianza, il valore dell'espressione della prossima costante, viene eseguito l'operatore alternativo, seguendo questa costante, separata dal suo colon. Dopo aver completato l'esecuzione di un operatore alternativo, l'azione passa all'operatore seguendo l'operatore dell'opzione. Se il valore è perso Modo.né con una costante questo operatore. L'opzione non produce alcuna azione.

Ma cosa succede se è necessario fornire un ramo degli operatori, che verrebbe effettuato in caso di guasto del valore di espressione con qualsiasi costante? Per fare ciò, puoi usare un'alternativa a altro, ad esempio:

astuccio.Modo. di.

Su: Mapy: \u003d Mapy - 1;

Destra: Mapx: \u003d Mapx + 1;

Giù: Mapy: \u003d Mapy + 1;

aLTRO. Mapx: \u003d Mapx - 1;

Di conseguenza, il design costruito utilizzando l'operatore del caso è completamente equivalente al design costruito prima con l'aiuto dell'operatore Se.. Inoltre, è visivamente e non c'è rischio di confondere in numerosi aLTRO..

Vogliono ancora una volta richiamare la vostra attenzione sul fatto che le costanti nell'operatore dell'opzione possono essere entrambi numeri interi diretti e nomi delle costanti ineporsrociate descritte in precedenza. L'uso di costanti digitato nelle alternative dell'opzione dell'operatore non è consentita. Con questo, in ogni forma di realizzazione, è possibile specificare un intero elenco di costanti attraverso una virgola o un intervallo di valori, ad esempio:

astuccio.Modo. di.

Su, giù: scriveln ("commovente verticale");

A destra, a sinistra: writeln ('spostamento orizzontalmente');

astuccio.X. di.

10,20,30: Writeln ('dozzine');

1..9: Writeln ('Unità');

Nell'ultimo operatore di progettazione writeln ('Unità') Completato se la variabile X avrà uno dei valori 1,2,3,..,8,9 .

Come potresti notare, linee con costanti mi sono allineato sul colon, come mi sembra che questo tipo sia chiaramente, anche se questa è una questione di gusto, e ciò che è noto, non c'è gusto e colore del compagno; o )

Applicare l'opzione opzionale dovrebbe essere applicata in conformità con le seguenti regole:

1) Valore valido Espressioni - "Switch", registrato dopo la parola di servizio astuccio.deve soddisfare il tipo discreto: per un intero tipo devono mentire nell'intervallo -32768..32767 .

2) Tutte le alternative di costanti specificate devono avere un tipo compatibile con il tipo di espressione.

3) Le costanti in alternative non devono essere ripetute all'interno dell'operatore dell'opzione e le gamme non dovrebbero intersecare e non devono contenere le costanti specificate in questa o altre alternative.

Un'altra cosa. Design astuccio.fornisce un operatore per ogni alternativa. Se è necessario eseguire diversi operatori, dovrebbe essere raggruppato in un operatore composito iniziare..nd.. È possibile specificare un operatore vuoto per un'alternativa, mettendo un simbolo ";" (punto con la virgola) immediatamente dopo un colon, che non eseguirà nulla. E la sintassi del ramo aLTRO.fornisce l'indicazione della sequenza di operatori separati dal ';'; (punto e virgola).

La campana.

Ci sono quelli che hanno letto questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere la campana
Senza spam.