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

"Stampante per la stampa di carte di plastica" - La possibilità di inserire il doppio delle informazioni su una carta di plastica. Prezzo. Stampante per la stampa di tessere plastificate. ZEBRA P110i/ P120i. Revisione gamma di modelli. Stampanti economiche per card in plastica a colori. Alte prestazioni Ampia gamma di encoder opzionali.

"Periferiche PC" - Periferiche. Stampanti. Documentazione. Fotocamere digitali. Gerarchia dei mezzi di connessione. Adattatori video. Classificazione PU. Bus seriale universale. CD-R. Opzioni di selezione. Flash incorporato. Pionieri. Natura. Modem. Videoterminale. Scanner. Periferiche PC. Classificazione dei murini.

"Mezzi di input e output di informazioni" - Scanner. Plotter. catodico. Stampanti. Tastiera. Fotocamere digitali e macchine fotografiche. Funzioni. Dispositivo di input universale. Dispositivi di input e output delle informazioni. Tavoletta grafica. Topo.

"Dispositivi di output delle informazioni" - Dispositivo informatico. Maggiore è la risoluzione del monitor, maggiore è la qualità dell'immagine. Screpolatura stampanti a getto d'inchiostro: Elevato consumo di inchiostro; Elevato costo del rifornimento. I monitor a cristalli liquidi (LCD) a schermo piatto sono compatti e non emettono radiazioni. Dispositivi di output delle informazioni. Il monitor è dispositivo universale output di informazioni.

"Stampanti" - Locale. Blocco termico, fusore, fusore: un'unità in cui il toner viene cotto nella carta. Laser. Matrice (ago). Nel tempo perdono le loro proprietà e sono soggette a sostituzione regolare da parte di uno specialista. A getto d'inchiostro. Rete. Modificato dall'utente. Caratteristiche delle stampanti. Developer, carrier, developer: le particelle metalliche più piccole che trasferiscono il toner al rullo fotografico.

"Sottosistema I / O" - Punto di interruzione. Tabelle. Posizionamento continuo. Attributo. Autorizzazioni file. Elenco collegato di indici. Dati. Organizzazione fisica. Accesso diretto alla memoria. File sequenziale indice. Montaggio. I/O controllato da interrupt. Autorizzazioni di accesso alla directory. Organizzazione del lavoro parallelo.

In totale ci sono 27 presentazioni nell'argomento

Come primo operando - "expression1" - può essere utilizzata qualsiasi espressione, il cui risultato è un valore di tipo bool . Se il risultato è VERO , viene eseguito l'operatore specificato dal secondo operando, ovvero "expression2".

Se il primo operando è uguale falso , quindi viene eseguito il terzo operando - "expression3". Il secondo e il terzo operando, ovvero “expr2” ed “expr3”, devono restituire valori dello stesso tipo e non devono essere di tipo void. Il risultato dell'istruzione condizionale è il risultato di "espressione2" o il risultato di "espressione3", a seconda del risultato di "espressione1".

Restrizioni all'uso da parte dell'operatore

L'operatore, basato sul valore "espressione1", deve restituire uno dei due valori: "espressione2" o "espressione3". Ci sono una serie di restrizioni su queste espressioni:

  1. Non è possibile combinare un tipo definito dall'utente con un tipo semplice o un'enumerazione. È legale utilizzare NULL per un puntatore.
  2. Se i tipi di valore sono semplici, il tipo dell'operatore sarà il tipo massimo (vedere Casting).
  3. Se uno dei valori è di tipo enum e l'altro è di tipo numerico, allora enum viene sostituito con int e si applica la seconda regola.
  4. Se entrambi i valori sono valori enum, i loro tipi devono essere gli stessi e il tipo dell'operatore sarà un enum.

Restrizioni per i tipi personalizzati (classi o strutture):

  1. i tipi devono essere uguali o uno deve ereditare dall'altro.
  2. se i tipi non sono gli stessi (ereditarietà), viene eseguito implicitamente il cast del figlio al genitore, ovvero il tipo dell'operatore sarà il tipo del genitore.
  3. non puoi mescolare un oggetto e un puntatore: entrambe le espressioni sono oggetti o puntatori. È legale utilizzare NULL per un puntatore.

Nota

Prestare attenzione quando si usa un operatore condizionale come argomento di una funzione di overload, perché il tipo di risultato dell'operatore condizionale viene determinato in fase di compilazione. E questo tipo è definito come il tipo più grande dei tipi "expression2" e "expression3".

Esempio:

void func(double d) ( Print ("doppio argomento: " ,d); )
void func(stringa s) ( Print ("argomento stringa: " ,s); )

bool Espressione1=true;
doppia Espressione2=M_PI;
stringa Espressione3= "3.1415926" ;

void OnStart()
{
func(Espressione2);
func(Espressione3);

func(Espressione1?Espressione2:Espressione3);
func(!Espressione1?Espressione2:Espressione3);// ottiene l'avviso del compilatore sul cast esplicito al tipo di stringa
}

// Risultato:
// doppio argomento: 3.141592653589793

// argomento stringa: 3.141592653589793
// argomento stringa: 3.1415926

Operatoreè un elemento del linguaggio che definisce Descrizione completa azione da intraprendere. Ogni operatore è una frase completa del linguaggio di programmazione e definisce una fase completa dell'elaborazione dei dati. Gli operatori possono includere parole di servizio, dati, espressioni e altri operatori. IN lingua inglese questo concetto denotato dalla parola "dichiarazione", che significa anche "offerta".

Ogni operatore in qualsiasi linguaggio di programmazione ha uno specifico sintassi E semantica. Sotto sintassi operatore è inteso come un sistema di regole (grammatica) che definisce il suo record utilizzando elementi dell'alfabeto data lingua, che, insieme a vari simboli, include, ad esempio, parole di servizio. Sotto semantica l'operatore ne comprende il significato, ad es. quelle azioni a cui corrisponde il record di questo o quell'operatore. Ad esempio, la voce io:= io + 1è un esempio di notazione sintatticamente corretta operatore di assegnazione v Lingua Pascal, la cui semantica in questo casoè il seguente: estrarre il valore della cella di memoria corrispondente alla variabile i, aggiungerlo a uno, scrivere il risultato nella stessa cella di memoria.

Nella maggior parte dei linguaggi di programmazione procedurale, l'insieme degli operatori è quasi lo stesso ed è costituito da un operatore di assegnazione, operatori di selezione, operatori di ciclo, un operatore di chiamata di procedura, operatori di salto. A volte ci sono anche operatori vuoti (nessuna azione) e composti. Molti operatori sono un modo per rappresentare certi costrutti algoritmici (vedi “ Costruzioni algoritmiche”) in un linguaggio di programmazione. Consideriamo i gruppi di operatori in modo più dettagliato, utilizzando la sintassi del linguaggio Pascal.

operatore di assegnazione

L'assegnazione è un'azione del computer, a seguito della quale la variabile riceve il valore dell'espressione valutata (viene posizionata nella cella di memoria corrispondente alla variabile). Per descrivere un'azione del genere nei linguaggi di programmazione, c'è operatore di assegnazione.

IN vista generale L'operatore di assegnazione si scrive così:

<переменная> <знак присваивания> <выражение>

Ad esempio, nel linguaggio Pascal, la combinazione di caratteri: = viene utilizzata come segno di assegnazione. In un certo numero di altre lingue, il segno di uguale.

Il risultato dell'esecuzione dell'operatore di assegnazione è un cambiamento nello stato dei dati: tutte le variabili diverse da variabile, in piedi sul lato sinistro dell'operatore di assegnazione, non modificare il loro valore e specificato variabile ottiene valore espressioni, in piedi sul lato destro dell'operatore di assegnazione. Nella maggior parte dei casi è necessario che il tipo espressioni corrispondeva al tipo variabile. In caso contrario, l'operatore viene considerato sintatticamente errato oppure il tipo di espressione viene convertito nel tipo di variabile (vedere " Tipi di dati” ).

Operatori di selezione

In un altro modo, questi operatori sono chiamati affermazioni condizionali. Le istruzioni condizionali vengono utilizzate per programmare algoritmi contenenti il ​​costrutto algoritmico di ramificazione.

Esistono diversi tipi di istruzioni condizionali nei linguaggi di programmazione. L'istruzione condizionale completa corrisponde alla struttura algoritmica di ramificazione completa:

In un linguaggio di programmazione, l'operatore condizionale corrispondente è:

se B Poi S1 altro S2

Se l'espressione B, che viene valutato all'inizio dell'esecuzione dell'istruzione condizionale, è true, quindi l'istruzione verrà eseguita S1, altrimenti - l'operatore S2. Operatori S1 E S2 può essere composto.

La struttura algoritmica della ramificazione incompleta viene implementata utilizzando un operatore condizionale incompleto, che ha la forma:

se B Poi S

Qui Bè un'espressione booleana, e Sè un operatore arbitrario. Operatore S verrà eseguito se l'espressione B restituisce true.

Se l'operatore condizionale implementa solo due rami di scelta ("sì" e "no"), allora using operatore variante (caso-operatore) è possibile programmare una struttura multiramo. L'operatore variante è simile a:

caso e Di

Eseguita dato operatore così: valore dell'espressione E viene ricercato tra i valori elencati nel record dell'operatore V1, V2, …, Vn, e se tale valore viene trovato, viene eseguita l'istruzione corrispondente S1, S2, …, Sn.

In diversi linguaggi di programmazione, la sintassi e persino la semantica degli operatori elencati possono differire, ma le opportunità fornite al programmatore da tali costruzioni sono approssimativamente le stesse.

Esempio 1 Nell'articolo " Costruzioni algoritmiche”2, è stato fornito un esempio di scrittura di un algoritmo per risolvere un'equazione quadratica generalizzata utilizzando costruzioni ramificate. Ecco un frammento di programma Pascal che implementa lo stesso algoritmo:

Se un = 0 Poi

Se b = 0 Poi

se c = 0 Poi writeln("x - qualsiasi")

altro writeln("nessuna radice")

altro scriviln(-c/b)

altrimenti inizia

RE:= si*si - 4*a*do;

Se D< 0 Poi writeln("nessuna radice")

altrimenti inizia

x1:= -b + sqrt(D);

x2:= -b - sqrt(D);

writeln(x1:0:2,""", x2:0:2)

Dichiarazioni di ciclo

Gli operatori di loop implementano costruzioni algoritmiche cicliche, sono usati per azioni che si ripetono molte volte. In molti linguaggi di programmazione esistono tre tipi di istruzioni di ciclo: "con precondizione", "con postcondizione", "con parametro".

Una struttura algoritmica necessaria e sufficiente per la programmazione dei cicli è un ciclo di "precondizione", quindi può essere chiamato il tipo principale di ciclo. L'operatore di ciclo con una precondizione ha la forma:

mentre B Fare S

Operatore S, per l'esecuzione ripetuta di cui viene creato un ciclo, viene chiamato corpo ad anello. L'esecuzione dell'operatore di ciclo si riduce all'esecuzione ripetuta del corpo del ciclo fino al valore dell'espressione logica B vero (finché non diventa falso). Infatti, tali istruzioni di ciclo implementano l'esecuzione ripetuta di istruzioni condizionali Se B Poi S mentre la condizione è vera B.

Esempio 2. Si consideri l'uso di un tale operatore di ciclo per calcolare la somma delle cifre di un numero naturale N:

Mentre N > 0 cominci

S:= S + N mod 10;

N:= N div 10

In un ciclo con una postcondizione, il corpo del ciclo precede la condizione B. A differenza di un ciclo con una precondizione, qui B è la condizione finale del ciclo. L'operatore di ciclo con una postcondizione in Pascal ha la forma:

ripetere S Fino a B

Con questa organizzazione del ciclo, il corpo del ciclo S deve essere eseguito almeno una volta.

Quasi tutte le lingue procedurali hanno operatore di ciclo con parametro. Schematicamente, può essere rappresentato come segue:

per< variabile > E1 A E2 fare un passo E3 Fare S

Qui il valore variabile(parametro di ciclo) passa dal valore dell'espressione E1 a E2 con il passo E3. Per ciascuno di questi valori del parametro del ciclo, viene eseguito l'operatore S. Nel linguaggio Pascal, il concetto di passo nella descrizione di questo operatore è assente e il passo stesso per un parametro di ciclo intero può essere uguale a 1 o -1. L'operatore "loop con parametro" viene utilizzato per programmare loop con un dato numero di ripetizioni. Non è adatto alla programmazione di cicli iterativi (il cui numero di ripetizioni non è noto in anticipo).

istruzione di chiamata di procedura

Nell'articolo " subroutine” descrive in dettaglio questo tipo di subroutine, come procedure. I sottoprogrammi standard del linguaggio di programmazione inclusi in una delle librerie di sottoprogrammi, nonché i sottoprogrammi definiti dall'utente descritti all'interno di questo blocco, vengono richiamati utilizzando l'operatore chiamata di procedura:

<имя процедуры>(E1,E2,…,En)

Qui E1,E2,…,En sono variabili o espressioni che rappresentano parametri effettivi riferimento alla procedura. Le procedure standard più comunemente utilizzate sono le procedure di input e output dei dati (lettura e scrittura in Pascal).

Chiamare una procedura equivale semanticamente ad eseguire il blocco dichiarato come corpo della procedura dopo aver passato in essa i valori iniziali di alcune variabili (parametri valore) o aver sostituito i nomi di alcune variabili (parametri variabile) con i nomi delle effettive variabili specificate quando la procedura è stata chiamata.

Esempio 3 Descriviamo la procedura abc:

procedura abc(a,b:intero; var c: intero);

Chiamare questa procedura abc(2,3,x) equivale a un blocco di azioni:

Dichiarazioni di salto

Il più famoso in questo gruppo di operatori è l'operatore di salto incondizionato vai a. Se aggiungiamo a tutte o ad alcune delle dichiarazioni programmatiche già esistenti etichette, quindi nel programma diventa possibile utilizzare l'operatore di transizione della forma:

vai a<метка>

L'etichetta in questo caso corrisponde all'inizio dell'istruzione da cui deve continuare l'esecuzione del programma. Tale operatore consente di scrivere algoritmi in un linguaggio di programmazione che hanno una struttura arbitrariamente complessa. Ma spesso l'uso di una transizione incondizionata è ingiustificato, perché porta a un programma confuso e difficile da leggere. Quasi l'unico utilizzo significativo dell'operatore vai aè l'uscita da diversi cicli nidificati contemporaneamente, ad esempio durante l'elaborazione di matrici bidimensionali.

Esempio 4 Supponiamo di voler determinare se esiste matrice bidimensionale un elemento uguale a 0:

per io:= 1 A N Fare

per j:= 1 A N Fare

se a = 0 quindi iniziare

1: Se B Poi scrivi("è") altro scrivi("no");

Un programma sviluppato secondo le regole della programmazione strutturata non dovrebbe contenere operatori di filiale incondizionati. Il programma precedente senza utilizzare l'istruzione vai a si può riscrivere così:

mentre no B E(io< N) cominci

mentre no B E(J< N) cominci

Se un = 0 Poi b:=vero;

Se B Poi scrivi("è") altro scrivi("no");

In questo caso, il programma strutturale è meno visivo del programma con vai a.

Altri operatori di salto possono essere definiti nei linguaggi di programmazione. Ad esempio, in Pascal: rottura(interruzione anticipata del ciclo, passaggio all'istruzione che deve essere eseguita dopo la fine del ciclo), Continua(interruzione anticipata dell'iterazione del ciclo corrente e transizione a quella successiva), Uscita(interruzione anticipata del sottoprogramma, uscita da esso), fermare(interruzione anticipata del programma, passaggio alla sua fine). Esistono operatori simili in C, C++ e Java.

Dichiarazione composta

Un enunciato composto è un gruppo di enunciati racchiusi tra parentesi (in Pascal, inizioFINE; in C, C++ - (…)).

L'operatore composto è stato introdotto nei linguaggi di programmazione per facilitare la descrizione dei costrutti linguistici. Ad esempio, in Pascal, la parte eseguibile di ogni blocco (programma, procedura, funzione) è una singola istruzione composta. Esattamente allo stesso modo, il corpo di qualsiasi operatore di loop è costituito da un solo operatore, forse composto. Un'alternativa a un'istruzione composta può essere una parola di funzione che denota la fine di una o di un'altra istruzione, ad esempio, FINISCI SE nella lingua di base.

L'argomento "Operatori del linguaggio di programmazione" viene solitamente studiato solo nel contesto di un particolare linguaggio di programmazione. Nel considerarlo, è importante mostrare la connessione tra le costruzioni algoritmiche di base e gli operatori: le costruzioni algoritmiche sono scritte in un linguaggio di programmazione utilizzando gli operatori corrispondenti. L'eccezione in un certo senso è la costruzione sequenziale, essa definisce l'ordine lineare in cui vengono eseguite le azioni. Azioni rigorosamente programma lineare sono implementati solo dagli operatori di assegnamento e dagli operatori di chiamata di procedura.

SU stato iniziale Ci sono molti problemi nell'insegnare la programmazione agli studenti. La prima barriera psicologica che devono superare quando imparano l'operatore di assegnazione. Uno dei compiti principali che devono essere risolti insieme agli studenti è lo scambio di valori di due variabili. Puoi invitare gli studenti a risolvere mentalmente il problema di come scambiare il contenuto di due cassetti, ad esempio una scrivania. Di solito in questa fase della discussione, gli studenti ipotizzano che sia necessaria una terza casella (variabile) per risolvere il problema. Tuttavia, quando scrivono questo algoritmo, spesso confondono in quale parte dell'operatore di assegnazione (sinistra o destra) dovrebbe essere questa o quella variabile.

Errori nella scrittura di espressioni aritmetiche e logiche sorgono a causa dell'ignoranza della precedenza delle operazioni utilizzate nell'espressione. Allo stesso tempo, le operazioni sono intese non solo come operazioni aritmetiche, ma anche come operazioni di confronto e connettivi logici, e nel linguaggio C come operazione di assegnazione, cosa molto insolita per gli scolari. La situazione è complicata dal fatto che in diversi linguaggi di programmazione le stesse operazioni hanno priorità relative diverse. Dovresti anche prestare attenzione alla corrispondenza tra i tipi della variabile e l'espressione nelle parti sinistra e destra dell'operatore di assegnazione (vedi " Tipi di dati”).

Quando si padroneggiano gli operatori di selezione, è utile offrire agli scolari di programmare un algoritmo contenente una struttura multi-ramificazione, sia utilizzando una combinazione di operatori condizionali sia utilizzando un operatore di selezione.

Esempio. in una variabile intera N Immettere l'età della persona in anni. Digita la frase " Ho K anni”, sostituendo la parola anni SU anno O dell'anno a seconda del numero K. Ecco due soluzioni a questo problema:

Se(K mod 100) In

Poi writeln("Ho ",k," anni")

caso K mod 10 Di

0,5..9:writeln("Ho ","k," anni");

1:writeln("Io sono ",k," anno");

2..4:writeln("Ho ",k," anni");

var k, n: numero intero;

readln(k); n:= kmod 10;

Se(K mod 100) In

Poi writeln("Ho ",k," anni") altro

Se n=1 Poi writeln("Io sono ",k," anno")

Se(n>=) E(N<= 4)

Poi writeln("Ho ",k," anni")

altro writeln("Ho ",k," anni")

Quando si considerano gli operatori di loop, è utile proporre lo stesso compito da programmare in tre modi diversi utilizzando tre operatori di loop, e viceversa, dalla condizione del problema, imparare a determinare quale operatore di loop è più appropriato in un caso particolare.

La procedura chiamata operatore è solo a prima vista semplice. Qui è importante spiegare le regole per passare parametri a procedure e funzioni, la differenza tra parametri variabili e parametri valore (in quest'ultimo caso, possiamo passare non solo un nome di variabile, ma anche una costante o anche un'espressione del corrispondente tipo). I parametri formali ed effettivi devono corrispondere nel tipo ma non nel nome, il che è tutt'altro che ovvio per gli studenti.

Imparare l'operatore condizionale e soprattutto l'operatore composto è una buona occasione per parlare agli studenti dello stile di programmazione. Esistono diversi modi comuni per scrivere programmi strutturati in Pascal, ma tutti contengono indentazione per accogliere strutture annidate. Importante per la registrazione di programmi e commenti.

Uscita dati
Uscita dati da memoria ad accesso casuale sullo schermo del monitor:
scrivere
(<выражение 1> ,< выражение 2> , ...,< выражение N>)
elenco di output
Espressioni - simboliche, numeriche, logiche,
incluse variabili e costanti
Esempio:
write("s=", s).
Per s=15 lo schermo mostrerà: s=15.
Le informazioni tra virgolette vengono visualizzate sullo schermo.
senza modifiche

Opzioni di organizzazione dell'output
Opzione
organizzazione del ritiro
Nessun separatore
Operatore di uscita
scrivere(1, 20, 300).
Risultato
120300
Aggiungi delimitatori scrivi (1, ',' , 20,
- virgole
’, ’, 300)
1, 20, 300
Aggiungi delimitatori scrivi (1, ‘ ‘, 2, ‘ ‘, 3)
- spazi
1 20 300

Formato di output
Il formato di output consente di impostare il numero di posizioni
sullo schermo occupato dal valore visualizzato.
scrivi (s:x:y)
x - il numero totale di posizioni assegnate per il numero;
y - il numero di posizioni nella parte frazionaria del numero.
Operatore di uscita
Risultato dell'esecuzione
operatore
write('s=', s:2:0);
s=15
write('s=', s:3:1);
s=15.0
write('s=', s:5:1);
s=
scrivi
15.0
- uscita da una nuova linea!

Primo programma
programma n_1;
cost pi=3.14;
var r, c, s: reale;
inizio
r:=5,4;
c:=2*pi*r;
Il risultato del programma:
s:=pi*r*r;
writeln("c=", c:6:4);
writeln("s=", s:6:4)
TurboPascal
Versione 7.0
FINE.
c=33,9120
s=91,5624

Inserimento da tastiera
Inserimento di valori variabili nella RAM:
Leggere
(<имя переменной1>, …, <имя переменной N>)
elenco di input
Eseguendo l'istruzione read:
1) Il computer entra in modalità standby dati:
2) l'utente inserisce i dati dalla tastiera:
più valori variabili
possono essere introdotti tipi numerici
separati da spazi o virgole;
quando si immettono variabili simboliche
non è possibile inserire spazi e virgole;
3) l'utente preme il tasto Invio.

Inserimento da tastiera
!
I tipi di valori di input devono corrispondere
i tipi di variabili specificati nella sezione dichiarazioni
variabili.
var i, j: intero; x: reale; a: char;
leggi(i, j, x, a);
opzioni per organizzare il flusso di input:
10 2,5 A 1,0 1
2.5, A 0
2.5
UN
Dopo aver eseguito l'istruzione readln, il cursore passa a
nuova linea.

Programma migliorato
programma n_1;
cost pi=3.14;
var r, c, s: reale;
inizio
writeln("Calcola la circonferenza e l'area di un cerchio");
write("Inserisci r>>");
readln(r);
c:=2*pi*r;
Il risultato del programma:
s:=pi*r*r;
writeln("c=", c:6:4);
Pascal Versione 7.0
writeln("s=", s:6:4) Turbo
Calcolo della circonferenza e dell'area di un cerchio
Immettere r>> 8.5
FINE.
c=53,3800
s=226,8650

Il più importante
Per inserire valori variabili nella RAM
vengono utilizzati gli operatori ingresso letto e leggilo.
Per inviare i dati dalla RAM allo schermo
monitor, vengono utilizzate le istruzioni di output write e writeln.
L'input dei dati iniziali e l'output dei risultati dovrebbero
essere organizzati in modo chiaro e conveniente; fornisce
semplicità dell'interfaccia utente.

Domande e compiti
1) Dato un frammento del programma:
a:=10; b:=a+1: a:=b–a; scrivi(a,b)
Quali numeri verranno visualizzati sullo schermo del computer?
2) Descrivere le variabili necessarie per il calcolo
l'area di un triangolo lungo i suoi tre lati, e
scrivere un operatore che fornisce input
dati di input necessari.
3) Qual è il risultato dell'esecuzione della dichiarazione?
a) scrivere (a)
b) scrivi("a")
c) scrivi("a=", a)
4) Le variabili intere i, j, k devono essere assegnate
i valori sono rispettivamente 10, 20 e 30.
Scrivi un'istruzione di input corrispondente all'input
fluire:
a) 20 10 30
b) 30 20 10
c) 10,30,20

Nel paragrafo precedente, abbiamo familiarizzato con la struttura di un programma Pascal, imparato a descrivere i dati ed esaminato l'operatore di assegnamento. Questo è sufficiente per scrivere un programma di conversione dati. Ma il risultato di queste trasformazioni non ci sarà visibile.

Per inviare i dati dalla RAM allo schermo del monitor, utilizzare l'operatore di output di scrittura:

Qui, tra parentesi, viene inserito l'elenco di output, un elenco di espressioni i cui valori vengono stampati. Può essere numerico, carattere e espressioni booleane, incluse variabili e costanti.

Un insieme arbitrario di caratteri racchiusi tra apostrofi è considerato una stringa costante. La costante stringa può contenere qualsiasi carattere digitato sulla tastiera.

Esempio. L'istruzione write ("s=" , s) viene eseguita in questo modo:

  1. i caratteri racchiusi tra apostrofi vengono visualizzati sullo schermo: s=
  2. sullo schermo viene visualizzato il valore della variabile memorizzata nella cella RAM denominata s.

Se il valore della variabile s è 15 e ha un tipo intero, lo schermo visualizzerà: s=15.

Se il valore della variabile s è 15, ma ha un tipo reale, lo schermo visualizzerà: s=l.5E+01.

Quando viene eseguita un'istruzione di output, tutti gli elementi dell'elenco di output vengono stampati direttamente uno dopo l'altro. Quindi, come risultato dell'operazione dell'operatore di scrittura (1, 20, 300), sullo schermo verrà visualizzata la sequenza di cifre 120300, che sarà percepita da noi come il numero 120300 e non come tre costanti numeriche separate . Esistono molti modi per rendere i dati di output più accessibili per la percezione:

Formato di outputè un numero intero specificato dopo i due punti, che determina quante posizioni sullo schermo deve occupare il valore di output. Se nel numero sono presenti meno cifre rispetto alle posizioni riservate sullo schermo, le posizioni libere vengono riempite con spazi a sinistra del numero. Se il numero specificato nel formato di output dopo i due punti è inferiore al necessario, verrà automaticamente aumentato al minimo richiesto.

Per emettere un numero reale in formato a virgola fissa, nell'elenco di output vengono specificati due parametri per ciascuna espressione:

  1. il numero totale di posizioni assegnate per il numero;
  2. il numero di posizioni nella parte frazionaria del numero.

Quando viene eseguita una nuova istruzione di scrittura, l'output continua sulla stessa riga. Per passare a una nuova riga, utilizzare l'istruzione writeln. Non ci sono altre differenze tra le istruzioni write e writeln.

4.2.2. Il primo programma Pascal

Utilizzando gli operatori considerati, comporremo un programma che calcola la circonferenza e l'area di un cerchio di raggio 5,4 cm.

I dati iniziali in questo problema sono il raggio: r - 5,4 cm Il risultato del programma dovrebbe essere i valori C - la circonferenza e S - l'area del cerchio. С, S e r sono valori di tipo reale.

I dati e i risultati iniziali sono collegati dai rapporti noti dal corso di matematica: С = 2πr, S = πr + . Un programma che implementa i calcoli utilizzando queste formule sarà simile a questo:

Questo programma è corretto e risolve il problema. Eseguendolo per l'esecuzione, otterrai il seguente risultato:

Eppure, il programma che abbiamo compilato ha uno svantaggio significativo: trova la circonferenza e l'area di un cerchio per un singolo valore di raggio (5,4 cm).

Per calcolare la circonferenza e l'area di un cerchio per un valore di raggio diverso, sarà necessario apportare modifiche direttamente al testo del programma, ovvero modificare l'operatore di assegnazione. Apportare modifiche a programma esistente, almeno non sempre conveniente (ad esempio, quando il programma è grande e ci sono molti operatori di assegnazione). Di seguito conoscerai l'operatore, che ti consente di inserire i dati iniziali nel processo di esecuzione del programma, senza ricorrere alla modifica del testo del programma.

4.2.3. Inserimento da tastiera

Per inserire i valori delle variabili nella RAM, utilizzare l'operatore di input di lettura:

Quando viene emessa una dichiarazione di lettura, il computer entra in modalità di attesa dati: l'utente deve inserire i dati dalla tastiera e premere il tasto Invio. Diversi valori di tipi numerici variabili possono essere inseriti separati da spazi o virgole. Quando si immettono variabili carattere, gli spazi e le virgole vengono trattati come caratteri, quindi non possono essere impostati.

Il primo valore di variabile immesso dall'utente viene inserito nella locazione di memoria il cui nome si trova per primo nell'elenco di input, e così via, pertanto i tipi di valori di input (input stream) devono corrispondere ai tipi di variabili specificati nel sezione dichiarazione variabile.

Esempio. Permettere

var i, j: numero intero; x:reale; a: carattere;

Assegna le variabili i, j, x e i valori 1, 0, 2.5 e "A". Per fare ciò, utilizziamo l'operatore read (i, j, x, a) e organizziamo il flusso di input in uno dei seguenti modi:

Qui, non solo abbiamo utilizzato diversi separatori (spazio, virgola), ma abbiamo anche rappresentato il flusso di input come una, due e quattro righe.

È inoltre possibile utilizzare l'istruzione readln per immettere dati dalla tastiera, che differisce dall'istruzione read solo per il fatto che, dopo averla eseguita, il cursore salta su una nuova riga.

Miglioriamo il programma n_1 organizzando l'inserimento dei dati in esso usando l'istruzione read. E affinché l'utente sappia a cosa è destinato il programma e capisca esattamente quale azione il computer si aspetta da lui, visualizzeremo i messaggi di testo corrispondenti utilizzando l'operatore writeln:

Il risultato del programma migliorato:

Ora il nostro programma può calcolare la circonferenza e l'area di un cerchio per qualsiasi valore di r. In altre parole, non risolve un singolo problema, ma un'intera classe di problemi. Inoltre, il programma organizza in modo chiaro e conveniente l'inserimento dei dati iniziali e l'output dei risultati. Questo fornisce un'interfaccia utente amichevole.

Il più importante

Le istruzioni read e readln input vengono utilizzate per inserire valori variabili nella RAM.

Gli operatori di output write e writeln vengono utilizzati per inviare i dati dalla RAM allo schermo del monitor.

L'input dei dati iniziali e l'output dei risultati dovrebbero essere organizzati in modo chiaro e conveniente; questo fornisce un'interfaccia utente amichevole.

Domande e compiti

  1. Scrivere un'istruzione che fornisca l'input del valore della variabile summa durante l'esecuzione del programma.
  2. Alle variabili intere i, y, k dovrebbero essere assegnati rispettivamente i valori 10, 20 e 30. Scrivi l'istruzione di input corrispondente al flusso di input:
      a) 20 10 30
      b) 30 20 10
      c) 10 30 20
  3. Descrivi le variabili necessarie per calcolare l'area di un triangolo dati i suoi tre lati e annota un operatore che fornisce l'input richiesto.
  4. Qual è il risultato dell'esecuzione della dichiarazione?
      a) scrivere (a)
      b) scrivere (1 a ")
      c) scrivi (1 a = 1, a)
  5. Di che tipo è la variabile f se il seguente numero è stato visualizzato dopo l'esecuzione dell'istruzione write (f)?
      a) 125
      b) 1,25E+2
  6. Come posso visualizzare un numero reale in formato a virgola fissa?
  7. Annota le istruzioni per inserire due numeri e per emetterli in ordine inverso.
  8. Dato un frammento del programma:

    leggi un); leggi(b); c:=a+b; scrivere(a,b); scrivere (i)

    Semplificalo riducendo il numero di istruzioni di input e output.

  9. Dato un frammento del programma:

    a:=10; b:=a+l: a:=b-a; scrivi (a, b)

    Quali numeri verranno visualizzati sullo schermo del computer?

  10. Scrivete un programma che calcoli l'area e il perimetro di un rettangolo dati i suoi due lati.

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