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

Quando si risolve la stragrande maggioranza dei compiti (incluso molto non complicato) nel programma, è quasi impossibile specificare tutte le operazioni che devono essere eseguite. In effetti, è necessario calcolare la somma dei primi membri N della serie armonica:

Y \u003d 1+ 1/2 + 1/3 + ... + 1 / N

Ovviamente, utilizzando solo i tipi di operatori discussi sopra, è possibile effettuare un programma solo per un valore fisso N. Ad esempio, con n \u003d 5, i calcoli richiesti possono essere impostati utilizzando l'operatore di assegnazione del modulo:

Y: \u003d 1 + 1/2 + 1/3 + 1/4 + 1/5

Se N Value non è registrato, ma i dati di origine sono inseriti durante l'esecuzione del programma (e persino la costante descritta nel programma), l'operatore di assegnazione simile non è consentito. Per l'aspetto del modulo Y: \u003d 1 + 1/2 + 1/3 + ... + 1 / N nei linguaggi di programmazione non è valido.

Eliminare le difficoltà emergenti servire operatori del ciclo. Ti permettono di ripetere l'esecuzione di singole parti del programma. Puoi selezionare quattro perator Cykla.Presente in una forma particolare in tutti i linguaggi di programmazione: semplice operatore a ciclo aritmetico (Ciclo con un parametro al punto 1), operatore a ciclo aritmetico complesso (ciclo con un passo arbitrario), operatore ciclo iterativo con prelazione, operatore ciclo iterativo con postcondition.

Un semplice operatore aritmetico del ciclo Pascal (ciclo con parametro)

Torniamo al compito sopra riportato per il calcolo della quantità dei primi membri N della serie armonica, le cui regole non possono essere specificate come espressione aritmetica, se il valore n non è fissato in anticipo.

Infatti, il calcolo di questo importo può essere eseguito secondo un algoritmo molto semplice e compatto: preimpostato Y \u003d 0 (utilizzando l'operatore Y: \u003d 0), quindi eseguire l'operatore di assegnazione Y: \u003d Y + 1 / I Per valori successivi I \u003d 1, 2, ..., n. Con ciascuna successiva esecuzione di questo operatore, il termine successivo aggiungerà al valore corrente di Y. Come si può vedere in questo caso, il processo di calcoli sarà ciclico: operatore y: \u003d y + 1 / i Deve essere eseguito più volte, cioè Ciclicamente, come valori diversi io.

Questo esempio di un processo di calcolo ciclico è molto tipico; Le sue caratteristiche sono quelle

  • il numero di ripetizioni del ciclo è noto all'inizio della sua esecuzione (in questo caso è uguale al valore di N, che si presume che venga dato da questo momento);
  • la gestione del ciclo viene eseguita utilizzando una variabile tipo ordinaleche in questo processo ciclico prende valori consecutivi dall'inizio specificato ai valori finiti specificati (nel nostro caso, è una variabile integer che ricevo valori sequenziali da 1 a N).

Per un compito compatto di questo tipo di processi di elaborazione e serve operatore ciclo con parametro. Il seguente tipo di questo operatore a Pascal è più utilizzato:

Per V: \u003d E1 a E2 do s,

dove Per (per), per. (crescente a) e fare. (Esegui, DO) - Parole di servizio V. - variabile del tipo di sequenza, chiamato il parametro del ciclo, E1. e E2. - Espressioni dello stesso tipo del parametro ciclo, S. - Operatore, che viene eseguito ripetutamente in un ciclo, chiamato corpo ciclo.

Si noti che a Pascal dopo fare. Ci deve essere un operatore se è necessario eseguire diverse azioni, quindi devono essere combinate in un unico operatore componente inserendo le staffe dell'operatore.

Questo operatore di ciclo PASCAL fornisce l'assegnazione al parametro ciclo V valori consecutivi dal valore iniziale pari al valore dell'espressione E1, al valore finale uguale al valore dell'espressione E2, cio. Ogni ripetizione viene eseguita dall'operatore di assegnazione. V: \u003d succ (v)e l'esecuzione dell'operatore s ogni volta il valore del parametro del ciclo V. In questo caso, i valori delle espressioni E1 e E2 vengono calcolati una volta, quando l'operatore del ciclo è immesso e il valore del parametro del ciclo V Non dovrebbe essere modificato come risultato dell'esecuzione dell'operatore S. Se il valore finale specificato è inferiore al valore iniziale (ciò che è consentito), l'operatore S non è soddisfatto.

Nel Pascal, si ritiene che quando l'operatore del ciclo sia soddisfatto, il valore del parametro del ciclo non è definito.

Usando operatore ciclo con parametro L'algoritmo per il calcolo della somma dei primi membri N della serie armonica può essere fornita come segue:

Un esempio di codice di codice per riassumere i primi membri N della serie armonica

Readln (n);
Y: \u003d 0;
Per i: \u003d 1 a n do y: \u003d y + 1 / i;

In alcuni casi, è conveniente che il parametro del ciclo Pascal richieda successivi, ma non aumentando e diminuendo valori. Per tali casi in Pascal, un operatore del ciclo è dotato del seguente parametro:

Per V: \u003d E1 Downto E2 do s,

dove Giù verso. (diminuendo a) - Parola ufficiale e tutte le altre parole ed espressioni hanno il significato precedente. La modifica del parametro del ciclo dal valore maggiore su un più piccolo si verifica quando si assegna V: \u003d Pred (V). notare che significato iniziale Potrebbe essere inferiore al valore finale. In questo caso, l'operatore S non è mai completato. Anche il valore del parametro del ciclo al completamento dell'esecuzione di tale ciclo è considerato incerto.

Dovrebbe essere ricordato per entrambe le opzioni per la registrazione ciclo con parametro Fiera: se i valori iniziali e finali sono uguali, il corpo del ciclo (Dichiarazione s) verrà eseguito una volta.

Nota la stessa cosa che parametro ciclo Non può essere utilizzato nel corpo del ciclo, in modo che il suo scopo principale sia quello di controllare il numero di ripetizioni del ciclo. Ad esempio, il valore y \u003d x n, dove n\u003e \u003d 0 è un intero, può essere calcolato in base al seguente algoritmo: pre-put y \u003d 1, quindi n volte per moltiplicare questo valore su x:

Programma ciclo di esempio Cycla

Readln (n);
Readln (x);
Y: \u003d 1;
Per i: \u003d 1 a n do y: \u003d y * x;

Come si può vedere, qui il parametro ciclo I serve solo in modo che il corpo del ciclo (operatore Y: \u003d y * x) ha eseguito il numero desiderato.

Aritmetico Operatore Pascal Cycle con un passo arbitrario

La naturale complicazione del semplice ciclo aritmetico di Pascal è un ciclo in cui il parametro del ciclo cambia da non 1, ma da un valore arbitrario - pag of increment.. Allo stesso tempo, nel processo di esecuzione del ciclo, il passo varia su una determinata legge. Gli operatori standard per l'attuazione di un tale ciclo sono a Fort, in altre lingue devono organizzarsi dal ciclo aritmetico più semplice.

Operatori iterativi del ciclo pascal

I cicli iterativi differiscono dai cicli con il parametro in quanto non sono noti in anticipo il numero di ripetizioni.

Lascia che andiamo a funghi e torniamo a casa quando il cesto è pieno. Tutti i funghi sono suddivisi in 2 categorie:

  • Guarda, c'è un posto nel cestino, e poi rompere i funghi se possono essere collocati nel cestino. (Comunque, nella vita di tali funghi non ho dovuto incontrarmi)
  • Innanzitutto, i funghi sono rotti, e poi pensano come metterli nel cestino.

Da qui sono ottenute due opzioni per l'attuazione dei cicli iterativi:
con precondizione e con la banda banda.

Nel ciclo con la precondizione, la condizione viene prima controllata, e quindi viene prelevata un passo. Il fungo è dotato di un cestino completo o quasi pieno. Nel ciclo con la postcondition - primo passo, quindi controlla. Come un normale fungo, questo porterà un cestino completo o leggermente affollato.

Quale algoritmo scegliere? Dipende dal compito specifico.

Se, avendo fatto un passo senza controllare, puoi cadere nella fossa, allora meglio controllare Inizialmente (come un cieco con una bacchetta). Bene, e se il passo senza controllare non si spaventa, è possibile posticiparsi fino a quando il passaggio non è stato completato.

Hai anche bisogno di analizzare l'evento che ci aspettiamo. Se può accadere prima del primo passo, allora hai bisogno di un ciclo con una precondizione. E se l'evento non può accadere prima del primo passo, è necessario un ciclo con la postcondition.

Ciclo dell'operatore Pascal con la laband

Ora consideriamo il compito matematico. Lasciaci calcolare la somma dei primi membri della serie Armonica Soddisfazione 1 / I\u003e \u003d E, dove 0< e<1, а i=1,2,3…...Эту задачу можно решить по следующему алгоритму: положить предварительно y=0 и i=0, а затем в цикле увеличивать i на 1, к значению y добавлять очередное слагаемое 1/ i до тех пор, пока текущее значение 1/ i впервые окажется больше заданного значения 0< e<1.

Ovviamente, il numero di ripetizioni di questo ciclo non è noto in anticipo. In questo tipo di casi, possiamo solo formulare una condizione, quando si esegue il processo di aggiunta alla somma del componente successivo.

Per specificare tali processi di calcolo e serve l'operatore del ciclo Pascal con il post. Questo operatore ha il modulo:

Ripeti S1; S2; ...; SI fino a B,

dove Ripetere. (ripeti) e Fino a. (su) - Parole di servizio, attraverso Si. Denotare da qualsiasi operatore Pascal e attraverso NELespressione logica.

Quando questo operatore del ciclo viene eseguito, la sequenza di operatori tra le parole ripetere e fino a quando non viene eseguita una o più volte. Questo processo è completato quando, dopo un'altra esecuzione di una determinata sequenza di operatori, un'espressione logica in accetta (per la prima volta) il valore reale. Pertanto, utilizzando un'espressione logica, la condizione è impostata per completare l'esecuzione dell'operatore del ciclo. Poiché in questo caso la verifica delle condizioni viene effettuata dopo la sequenza di operatori (corpo ciclo), questo operatore del ciclo è chiamato un operatore del ciclo con un bandaband.

Utilizzando questo tipo di operatore, l'operatore del ciclo Pascal, il compito di riassumere i primi membri della serie armonica che soddisfano la condizione fornita può essere implementata come segue:

Readln (e);
I: \u003d 0;
Y: \u003d 0;
Ripetere.
I: \u003d I + 1;
Y: \u003d y + 1 / i;
Fino a 1 / i

Si noti che l'operatore con una deselezione è più generale dell'operatore del ciclo con il parametro - qualsiasi processo ciclico specificato utilizzando un ciclo con un parametro può essere rappresentato come un ciclo con una detonazione. La dichiarazione opposta è errata. Ad esempio, il compito della sommazione dei primi membri N della serie armonica, discussa in precedenza, con l'operatore del ciclo con il POST sembrerà questo:

Esempio del codice dell'operatore del ciclo con Pascal

Readln (n);
I: \u003d 0;
Y: \u003d 0;
Ripetere.
I: \u003d I + 1;
Y: \u003d y + 1 / i;
Fino a I\u003e n;

Operatore ciclo pascal con precondizione

Nel caso dell'operatore del ciclo Pascal con il postcalione, la sequenza di operatori verrà deliberatamente eseguita almeno una volta. Nel frattempo, ci sono molto spesso processi ciclici quando il numero di ripetizioni del ciclo è anche sconosciuto in anticipo, ma in alcuni valori di dati iniziali, le azioni fornite nel ciclo non devono essere eseguite affatto, e anche un'esecuzione una tantum di queste azioni può portare a risultati errati o incerti.

Lasciare, ad esempio, dato un vero numero M. È necessario trovare il numero K intero non negativo K, in cui 3 K\u003e m. Questo problema può essere risolto secondo il seguente algoritmo: pre-put y \u003d 1 e k \u003d 0; Quindi, nel ciclo, il valore di Y a 3 e aumenta il valore K 1 fino a quando il valore corrente di Y per la prima volta sarà maggiore del valore di M. a prima vista, è possibile utilizzare l'operatore del ciclo con il cartolina.

Esempio del codice dell'operatore del ciclo con Pascal

Y: \u003d 1; K: \u003d 0;
Ripetere.
Y: \u003d y * 3;
K: \u003d k + 1;
Fino a y\u003e m;

Tuttavia, è facile assicurarmi che<1 будет получен неправильный результат k=1, тогда как должно быть получено k=0: в этом случае предварительно сформированное значение k=0 является окончательным результатом и действия, предусмотренные в цикле, выполняться не должны.

Per specificare questo tipo di processi di elaborazione, quando il numero di ripetizioni del ciclo non è noto in anticipo e le azioni fornite nel ciclo non possono essere eseguite affatto e l'operatore del ciclo con la precondizione. Questo operatore del ciclo ha il seguente tipo in Pascal:

dove Mentre (fino a), fare. (fare, eseguire) - parole di servizio NEL - espressione logica S. - Operatore. Qui l'operatore S viene eseguito zero o più volte, ma prima di ogni esecuzione successiva è calcolato dal valore dell'espressione B e l'operatore S viene eseguito solo quando il valore dell'espressione è true. L'operatore del ciclo esegue quando l'espressione nella prima volta riceve false. Se questo valore è un'espressione nella ricezione quando viene calcolata, l'operatore S non sarà completato.

Nel problema in esame, il valore corretto di K in qualsiasi significato M può essere ottenuto come segue:

Esempio del codice operatore a ciclo Pascal con prelazione

Y: \u003d 1; K: \u003d 0;
Mentre iniziò.
Y: \u003d y * 3;
K: \u003d k + 1;
Fine;

L'operatore del ciclo Pascal con quanto sopra può essere considerato il più versatile - utilizzando tali operatori, è possibile specificare processi ciclici determinati dagli operatori del ciclo con il parametro e la postcondition.

Nota differenze e caratteristiche di buon stile di lavoro con operatori ciclici discussi.

Il ciclo con il tempo (fino a quando la condizione è veramente) Ciclo con post ripetuto (a condizione di verità)
  • Prima dell'inizio del ciclo, devono essere apportate le impostazioni iniziali delle variabili che controllano la condizione del ciclo per l'ingresso corretto nel ciclo
  • Nel corpo del ciclo, gli operatori devono essere presenti, cambiando variabili in modo che il ciclo dopo un certo numero di iterazioni sia completato
  • Il ciclo funziona mentre la condizione è vera (mentre è vera)
  • Il ciclo funziona mentre la condizione è falsa (fino a falsa
  • Il ciclo è completato quando la condizione diventa falsa (a false)
  • Il ciclo è completato quando la condizione diventa true (fino a TRUE)
  • Il ciclo non può essere eseguito se il valore iniziale della condizione quando si immette il falso ciclo
  • Il ciclo sarà sicuramente completato almeno una volta.
  • Se il corpo del ciclo richiede più di un operatore, è necessario utilizzare un operatore composito
  • Indipendentemente dal numero di operatori nel corpo del ciclo, non è richiesto l'uso dell'operatore composito
Ciclo con misuratore (con parametro) per
  • L'installazione iniziale della variabile del contatore del ciclo prima che il titolo non sia richiesto
  • Il cambiamento nel ciclo del corpo dei valori delle variabili in piedi nel titolo non è consentito
  • Il numero di iterazioni del ciclo è invariabilmente e accuratamente determinato dai valori dei confini inferiori e superiori e il passo di incremento
  • Il normale corso del ciclo può essere disturbato dall'operatore GOTO o dalla rottura e proseguire le procedure
  • Il ciclo potrebbe non essere completato se il passaggio del ciclo cambierà il valore del contatore dal limite inferiore nella direzione del limite opposto

L'operatore che viene eseguito nel ciclo stesso può essere un ciclo. Questo vale per tutti i tipi di cicli. Di conseguenza, otteniamo cicli nidificati. Il meccanismo di funzionamento dei cicli nidificati è più conveniente da considerare sull'esempio dei cicli nidificati con un parametro. Facciamo bisogno di descrivere il lavoro delle ore elettroniche, a partire dal momento del tempo 0 ore, 0 minuti, 0 secondi. Il valore minuto sarà uguale a 1 solo dopo i secondi "Esegui" tutti i valori successivi da 0 a 59. L'orologio cambierà il suo valore su 1 solo dopo i minuti "Esegui" tutti i valori successivi da 0 a 59. Pertanto, l'output di tutto il tempo del tempo dall'inizio del giorno fino alla fine della giornata può essere rappresentato dal seguente frammento del programma:

Per h: \u003d da 0 a 23 do
Per m: \u003d da 0 a 59 do
Per s: \u003d da 0 a 59 do
Writeln (h, ":", m, ":", s);

Per la comodità dell'attuazione delle strutture cicliche sul Pascal nelle ultime versioni della lingua, sono stati introdotti gli operatori Rompere e Continua.usato all'interno dei cicli. Espandono le possibilità di utilizzare cicli e migliorano la struttura del programma.

Nel processo di esecuzione di un corpo del ciclo, possono verificarsi condizioni aggiuntive per completare il ciclo che richiede il completamento del ciclo. In questo caso, il ciclo può essere risolto dall'operatore di interruzione.

Durante l'esecuzione del ciclo, può verificarsi una condizione in cui è necessario saltare tutte o alcune azioni previste nel ciclo senza interrompere il funzionamento del ciclo. Per fare ciò, utilizzare l'operatore Continua, che trasmette il controllo al punto del programma in cui viene controllata la condizione di continuare o arrestare il ciclo.

Ciao, cari lettori! Qui siamo con te e ci siamo avvicinati allo studio dei cicli. Cicli a Pascal. Cos'è? Come usarlo? Per cosa avevano bisogno? È per queste domande oggi e risponderò.
Se leggi, sai che ci sono tre tipi di algoritmi: lineare, ramificati e ciclici. Sappiamo già come implementare algoritmi su Pascal. Procederemo allo studio dell'ultimo tipo di algoritmi.
A Pascal, come nella maggior parte dei linguaggi di programmazione, ci sono tre tipi di strutture cicliche.

Qualsiasi ciclo è costituito da corpo e intestazione. Il corpo del ciclo è un insieme di operatori ripetitivi e la condizione è un'espressione logica, a seconda del risultato di cui il ciclo viene ripetuto.

Prendi un compito che risolveremo utilizzando vari tipi di cicli.

Attività 1. Visualizza tutti i numeri da 1 al numero inserito dalla tastiera.

Mentre, o ciclo con la precondizione

Come probabilmente hai già capito dal nome, mentre - Questo è un ciclo in cui la condizione è di fronte al corpo. E il corpo del ciclo viene eseguito se e solo quando la condizione vero.; Non appena la condizione diventa falso

Mentre ha un formato:

mentre < условие> fare.<оператор 1>; (Mentre ... fai ....)

Questo ciclo è adatto solo per un operatore, se si desidera utilizzare diversi operatori nel codice, dovresti inserirli nelle staffe dell'operatore - inizio.e fine;.

La soluzione del problema.

Programma Esempio_while; VAR I, N: Integer; (Dichiarare variabili) Inizia I: \u003d 1; (Assegna valore I 1) Readln (N); (Leggi l'ultimo numero) mentre io<= N do {Как только i станет больше N, цикл прекратится (можно было бы написать просто <, но пришлось бы добавлять 1 к N) } begin {Открываем операторные скобки} write(i, " "); {Выводим i} Inc(i); {увеличиваем i на один.} end; { закрываем скобки } end.

Ripetere, o ciclare con la postcondition

Ripetere. - Completa di fronte mentre. Ripetere. - Questo è un ciclo in cui la condizione è in piedi dopo il corpo. E viene eseguito quindi e solo quando il risultato è il risultato falso; non appena l'espressione logica diventa vero.L'esecuzione del ciclo si arresta.

Ripeti ha un formato:

ripetere. ( ripetere … )
<оператор 1>;
< оператор 2>;

fino a. (prima…) <условие>

Inizio. e fine. non richiesto.

La soluzione del problema.

Programma esempio_repeat; VAR I, N: Integer; (Dichiarare variabili) Inizia I: \u003d 1; (Assegna valore I 1) Readln (n); (Leggere l'ultimo numero) Ripeti (dopo la ripetizione non è richiesto iniziare e fine) scrivere (I ","); (Output i) inc (i); (Aumenta l'ho per uno.) Fino a I \u003d N + 1; (Ad esempio, I \u003d 11 e N \u003d 10. Il ciclo si fermerà, quindi la condizione è diventata vera.) End.

Per, o ciclare con un parametro

Per - Questo è un ciclo in cui il corpo viene eseguito per un determinato numero di volte.

Ci sono due forme di registrazione di questo ciclo:

Prima forma

Per<счетчик1> := <значение1> per.<конечное_значение> fare.<оператор1>;

<счетчик1> aumenterà di 1.

<значение1> - Questo è il valore iniziale del contatore. Potrebbe essere una variabile o un numero.
<конечное_значение> : non appena il valore<счетчик1> diventerà di più<конечное_значение>

Se vuoi scrivere diversi operatori nel corpo del ciclo, usiamo inizio. e fine..

E<счетчик1>, IO.<конечное_значение>, IO.<значение1> - Variabili totale Genere.

Più spesso, la variabile sono usato come contatore.

Seconda forma

Per<счетчик2> := <значение2> Giù verso.<конечное_значение> fare.<оператор1>;

Dopo ogni valore di iterazione<счетчик2> diminuirà di 1.

<значение2> - Questo è il valore iniziale del contatore.
<конечное_значение> : non appena il valore<счетчик2> diventerà di meno<конечное_значение>L'esecuzione del ciclo si fermerà.

Due note importanti:

  1. Il ciclo viene ripetuto fino a quando il valore del valore del misuratore risiede nel segmento [valore; Finite_dation].
  2. Cambia il valore del contatore all'interno del corpo È impossibile! Questo è ciò che viene visualizzato il compilatore:

La soluzione del problema:

Programma Esempio_for; VAR I, N: Integer; Inizia a leggere (n); (Supponiamo di aver introdotto 10) per i: \u003d 1 a n scrivi (i ","); (Numero di iterazioni - 10 - 1 + 1 \u003d 10) END.

Accetto, questo codice è più semplice e più conciso di tutti i precedenti. E ciclo per - Non esattamente ciclo ordinario, non ci sono condizioni logiche. Pertanto, il ciclo con il parametro di programmazione è chiamato zucchero di sintassi. Lo zucchero di sintassi è integrato mediante la sintassi della lingua di programmazione che non aggiunge nuove funzionalità, ma rendono l'uso della lingua più conveniente per gli esseri umani.

Decidiamo un paio di compiti.

For1.. Vengono forniti numeri interi K e N (N\u003e 0). Visualizza n volte il numero k.

Organizziamo un ciclo semplice da 1 al numero desiderato.

Programma per1; VAR K, N, I: Integer; inizia a leggere (k, n); Per i: \u003d 1 a n scrivere (k, ""); (Scriviamo su via spazio) fine.

For2.. < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (включая сами числа A и B), а также количество N этих чисел.

Come un.< B, то цикл должен будет выводить все числа от А до B. Чтобы сосчитать количество чисел, используем формулу: <конечное_значение> — <начальное_значение> + 1.

Programma per2; VAR A, B, I, Conta: intero; Inizia a leggere (a, b); Per i: \u003d A a B scrivi (I "," "); (Scarico i numeri da più piccoli a più) Conta: \u003d B - A + 1; (Considero il numero di numeri) Writeln; Scrivi ("numero di numeri -", conteggio); fine.

Per9.. Sono dati due numeri interi a e b (a< B). Найти сумму квадратов всех целых чисел от A до B включительно.

Organizziamo lo stesso ciclo del compito precedente, ma allo stesso tempo riassumiamo i quadrati di tutti i numeri. Per calcolare il quadrato, utilizzare la funzione.

Programma per9; VAR A, B, I, S: Intere; Inizia a leggere (a, b); S: \u003d 0; (PascAlabc lo fa automaticamente, ma se hai un altro compilatore, consigliamo di ripristinare le variabili manualmente) per i: \u003d A a B fai s: \u003d s + sqr (i); (mettiamo tutti i quadrati) Writeln; Scrivi ("Riassunto dei quadrati -", S); fine.

Per 12 °. Viene dato un intero N (\u003e 0). Trova il valore dell'espressione 1.1 - 1.2 + 1.3 - ... (componenti n, segni alternati). Operatore condizionale non usare.

Per cambiare il segno, ogni iterazione del ciclo sta cambiando il valore di una variabile speciale al contrario.

Programma per 13; VAR N, A, I: Integer; S: reale; Iniziare a scrivere ("n \u003d"); readln (n); S: \u003d 1.1; A: \u003d 1; (Primo positivo) per i: \u003d 2 a n Do (la prima iterazione del ciclo che abbiamo già prodotto, quindi iniziamo a contare da 2) Inizia A: \u003d -a; (Ora negativo) S: \u003d S + A * (1 + I / 10); (Piega) fine; Writeln (s: 5: 1); (Daremo uno familiare sotto la parte frazionata) fine.

Mentre11 °. Numeri positivi A e B (A\u003e B). Sulla lunghezza della lunghezza un posizionato il numero massimo possibile di lunghezze della lunghezza B (senza sovrapposizione). Senza utilizzare le operazioni di moltiplicazione e divisione, trovare la lunghezza della parte non occupata del segmento A.

Ogni volta che sottrariamo B da A, mentre A è in\u003e \u003d 0.

Programma while1; VAR A, B: Integer; Inizia Readln (A, B); while (a - b)\u003e \u003d 0 fare A: \u003d A - B; (Mentre la differenza è positiva, deducendo. È necessario fornire una variante con molteplicità A e B, quindi\u003e \u003d) scrivere (A); fine.

Mentre4 °. Viene dato un intero N (\u003e 0). Se è un grado di 3, quindi emetterà true se non è - si ritira false.

Ci impegniamo come segue: finora n è diviso per tre, divide e molto. Quindi, se n \u003d 1 - il numero è il grado di triplo; Se N.<> 1, quindi il numero non è il grado di triplo. Per risolvere questo compito, devi sapere cosa è e come funzionano.

Programma while4; VAR N: Integer; Begin readln (n); Mentre n mod 3 \u003d 0 do n: \u003d n div 3; (Mentre il residuo di dividere a tre è zero, ci dividiamo n APHO) writeln (n \u003d 1); (espressione logica) fine.

Oggi tutto! Non dimenticare di venire al nostro sito Web più spesso e fare clic sui pulsanti che si trovano di fronte ai commenti.

Molto spesso è necessario eseguire lo stesso operatore (o gruppo di operatori) più volte. Per fare questo nella linguaPascal. Fornito operatori del ciclo.

1. Operatore del ciclo con precondizione.

Modulo di registrazione: mentre<условие> fare.<оператор>;

Qui mentre(fino a),fare. (fare)- Parole riservate.

Poiché un operatore può essere un operatore semplice o composito. Qui<оператор> Eseguito solo nel caso fino al vero<условие>che viene controllato ogni volta dopo l'esecuzione dell'operatore. Se fin dall'inizio la condizione contafalso , l'operatore del ciclo non sarà completato.

Lo schema a blocchi del funzionamento di tale operatore è mostrato in FIG. uno.

Fico. 1. Operatore ciclo con precondizione

Esempio

IO. metodo

. Calcolo del numero fattoriale p.(I.e. funziona 1 2 ...p.):

Programma fact_1;

Cost n \u003d 5;

Var I, fatto: intero;

Inizio.

i: \u003d 1; Fatto: \u003d 1;

mentre io.<=n do {заголовок цикла}

inizia (ciclo iniziale)

fatto: \u003d fatto * I;

i: \u003d I + 1

fine; (fine del ciclo)

Writeln ("fattoriale", n, "\u003d", fatto: 10)

Fine.

2. Operatore del ciclo con la postcondition. Il diagramma di blocco dell'algoritmo di funzionamento dell'operatore è mostrato in Fig.2.

Modulo di registrazione:

Ripetere.

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

Fino a.<условие>;

Qui ripeti (ripeti fino a), Fino a. (Le condizioni non saranno soddisfatte) - Parole riservate.

La sequenza di operatori può consistere in uno o più operatori. In contrasto con quello precedente, in questo ciclo, la condizione viene anche controllata dopo aver eseguito l'esecuzione dell'operatore (o sequenza di operatori), se è falsamente - l'operatore viene eseguito di nuovo, altrimenti - il ciclo di pre forte. Con una tale struttural'operatore almeno una volta è obbligatosarà eseguito.

Esempio:

II. metodo

. Calcolo del numero fattoriale p.(I.e. funziona 1 2 ...p.):

Programma fact_2;

Cost n \u003d 5;

Var I, fatto: intero;

Inizio.

i: \u003d 1; Fatto: \u003d 1;

Ripetere.

inizia (ciclo iniziale)

fatto: \u003d fatto * I;

i: \u003d I + 1

fine; (Fine del corpo del ciclo)

Fino a I\u003e n; (condizione)

Writeln ('fattoriale ", n," \u003d ", fatto: 10)

Fine.

Qui io. - Questo è un misuratore di ripetizione che deve essere cambiato manualmente nel ciclo.

3. Operatore ciclo con parametro.

Questo ciclo ti consente di ripetere le azioni consapevolmente un certo numero di volte.

Il misuratore è una variabile che considera il numero di ripetizioni del ciclo. In tale ciclo, un aumento automatico dell'indicatore del misuratore è esattamente 1.

Modulo di registrazione:

Percontatore \u003d nach_new.Per.data di fineFare.

Inizio.

. . . .

Fine.;

Se è necessario che il parametro sia ridotto di 1, quindi utilizzarela parola sta spingendo Giù verso.(Il valore iniziale è maggiore del valore finale).

Esempio:

III. metodo

Calcolo del numero fattoriale p.(I.e. funziona 1 2 ...p.):

Programma fact_3;

Cost n \u003d 5;

Var I, fatto: intero;

Inizio.

Fatto: \u003d 1;

per i: \u003d 1 a n do

inizia (ciclo iniziale)

fatto: \u003d fatto * I;

fine; (fine del ciclo)

Writeln ("fattoriale", n, "\u003d", fatto: 10)

Fine.

Come operatore, puoi usare qualsiasi semplice o conoperatore standard.

Quando si utilizza questo operatore ciclo, è necessario ricordare le seguenti regole:

1) come parametro, è possibile utilizzare una variabile semplice,descritto nello stesso blocco;

2) il parametro deve avere un tipo discreto;

3) i valori iniziali e finali devono avere lo stesso tipo diparametro;

4) Nel corpo del ciclo (operatore) modifica esplicita nel valore del parametro(Ad esempio, l'operatore di assegnazione) può portare a infinitociclo;

5) È impossibile modificare i valori iniziali e finali del ciclorametra, se sono specificati da variabili;

6) al termine del ciclo, il valore del parametro diventa uguale al valore finale del parametro se il ciclo non è stato interrottooperatore di transizione.

Solo

1. Scrivi un programma che visualizza il numero nel formato della zona:

7 49

5 25

3 9

1 1

2. Risolvi il problema in tre modi (Con l'aiuto di diversi tipi di ciclo):

Attraverso quanti anniL. il valore del contributo raggiungerà l'importo desideratoS. (strofinare), al contributo inizialeV. (strofinare) se una percentuale annuale garantita dalla Banca è del 10% del valore di contribuzione.

Per soddisfare l'algoritmoS \u003d 100000 strofinatura., V \u003d 10.000 rubli.

Operatori del ciclo Gli operatori forzati sono stati inclusi nella loro composizione

ripetutamente.

In Pascal, ci sono tre tipi di operatori del ciclo: l'operatore del ciclo con il parametro, l'operatore del ciclo con la precondizione, l'operatore del ciclo con il bandaband.

Operatore ciclo con parametro

Formato operatore ciclo con parametro:

per V: \u003d E1 a E2 do s

dove V è la variabile dell'ordine, E1, E2 - Le espressioni dello stesso tipo, S è l'operatore chiamato il corpo del ciclo. Le espressioni E1 e E2 sono calcolate una volta all'ingresso al ciclo. Il parametro V prende prima il valore di E1, quindi la nessuazione segue la seguente (Succ (V)), ecc. Prima di raggiungere E2. Ogni volta V è valutato, la Dichiarazione S viene eseguita. Se ci sono diversi operatori nel corpo del ciclo, sono combinati in uno con un operatore composito. Se il valore finale E2 è inferiore all'e1 iniziale, l'operatore S non è soddisfatto.

Anche l'operatore del ciclo con il parametro viene applicato come segue:

per V: \u003d E1 Downto E2 DO S S

In contrasto con il primo caso, V varia da E1 a E2, passando da V a Pred (V).

Si noti che se V, E1, E2 digita integro, quindi nel primo caso è un ciclo con un gradino +1 e nel secondo passo -1.

Operatore ciclo con precondizione

Formato operatore ciclo con precondizione:

dove B è un'espressione logica, S è l'operatore. L'operatore S verrà eseguito mentre la condizione B sarà vera. L'esecuzione dell'operatore del ciclo sarà completata quando l'espressione B prenderà il falso valore per la prima volta.

Operatore ciclo con postcondition

Il formato dell'operatore del ciclo con il bandaband:

ripeti s fino a B

dove B è un'espressione logica, S è l'operatore. L'operatore S viene eseguito fino a quando B diventa vero. L'operatore di ripetizione viene eseguito almeno una volta, poiché la verifica della verità della condizione B viene eseguita dopo l'esecuzione dell'operatore S.

Le parole di servizio si ripetono e fino a quando non stanno già riproducendo il ruolo delle staffe, quindi iniziano e le staffe dell'operatore finale sono opzionali.

Esempi di programmi

Come esempio di utilizzo degli operatori del ciclo, considera il programma di calcolo fattoriale.

Programma 2.1.1. Ciclo con parametro (STEP +1)

Programma Factorial1;

VAR I, N: Integer;

Scrivi ("Invio n");

Readln (n); F: \u003d 1;

Per i: \u003d 1 a n do f: \u003d f * i;

Programma 2.1.2. Ciclo con parametro (STEP -1)

Programma Factorial2;

VAR I, N: Integer;

Scrivi ("Invio n");

Readln (n); F: \u003d 1;

Per i: \u003d n fino a 1 do f: \u003d f * i;

Writeln ("fattoriale da", n, "uguale", f)

Programma 2.2. Ciclo con precondizione

Programma Factorial3;

VAR I, N: Integer;

Scrivi ("Invio n");

Readln (n); F: \u003d 1; I: \u003d 1;

Mentre io.<=N DO

Writeln ("fattoriale da", n, "uguale", f)

L'operatore è un elemento indivisibile di un programma che consente di eseguire determinate azioni algoritmiche. La distinzione dell'operatore, in relazione ad altri elementi, è che c'è sempre qualche azione sotto di essa. Nel linguaggio pascal, gli operatori sono costituiti da parole di servizio. Gli operatori utilizzati nel programma sono separati tra loro e da altri elementi del simbolo del programma (;). Qualunque cosa operatori di lingua Pascal. può essere consacrato a due gruppi:

  1. semplice;
  2. strutturato.

Operatori semplici - Questi sono operatori che non contengono altri operatori. Questi includono:

  • operatore di assegnazione (: \u003d);
  • operatore di procedura;
  • operatore di transizione incondizionato (goto).

Operatori strutturati - Questi sono operatori che contengono altri operatori. Questi includono:

  • operatore composito;
  • operatori di condizione (se, caso);
  • operatori del ciclo (per, mentre, ripetere);
  • operatore di appendenza (con).

Operatori semplici

Procedura operatore.

Procedura operatore. Utilizzato per chiamare la procedura.

Formato: [Nome delle posizioni] (elenco dei parametri di chiamata);

L'operatore di procedura è costituito da un identificatore della procedura direttamente oltre il quale tra parentesi è un elenco di parametri di chiamata. A Pascal, ci sono procedure senza parametri. In questo caso, quando si chiama, è mancante l'elenco dei parametri. L'esecuzione dell'operatore di procedura porta all'attivazione delle azioni descritte nel suo corpo. A Pascal, ci sono due tipi di procedure:

  • Standard, che sono descritti nella lingua stessa e sono appartenenti linguistici;
  • L'utente procedure che l'utente crea.

Per chiamare le procedure standard, è necessario connettersi nella sezione Usi del nome del modulo (Libreria), che descrive questa procedura. Un certo numero di procedure nel modulo di sistema si connettono sempre al programma e la loro connessione non è necessaria nella sezione Usi. Procedure standard per la lingua Pascal - Leggi, scrivi, riscrivere, chiudere, reset.

Leggi ([file_name], [list_vode])

Leggi (x, y)

Le procedure utente (non standard) devono essere create prima di utilizzarle nel programma e sono nella descrizione del programma stesso o in unità software separate del modulo. Se la procedura è nel modulo, il nome di questo modulo deve essere menzionato nell'applicazione Usi.

Operatore di transizione goto incondizionato

Formato: Goto [etichetta];

Goto - parola riservata nel linguaggio pascal. [Tag] è un identificatore arbitrario che consente di contrassegnare un determinato operatore del programma e ulteriormente fare riferimento ad esso. Nel linguaggio pascal, è consentito come etichette di usare un intero senza segni. L'etichetta si trova di fronte all'operatore contrassegnato e separata da esso (:). Un operatore può essere etichettato diversi tag. Sono anche separati l'uno dall'altro (:). Prima di utilizzare l'etichetta nella sezione Operatore, deve essere descritta nella sezione Etichetta (sezione Descrizione).

L'azione Goto trasmette il controllo dell'operatore etichettato appropriato. Quando si utilizzano tag, è necessario essere guidati dalle seguenti regole:

  • l'etichetta deve essere descritta nella sezione Descrizioni e tutti i tag devono essere utilizzati;
  • se gli interi sono usati come etichette, non sono dichiarati.

Contrario ai principi della tecnologia di programmazione strutturale. I linguaggi di programmazione moderni non hanno un tale operatore nella loro composizione e non è necessario alcun uso. Inoltre, il cosiddetto metodo del trasportatore è utilizzato nei moderni computer. Se il programma si incontra nel programma, tale operatore interrompe l'intero trasportatore, causandoci di nuovo, il che rallenta significativamente il processo di elaborazione.

Operatori strutturati

Condizioni Condizioni se.

L'operatore condizionale viene utilizzato nel programma per implementare la struttura algoritmica - ramificazione. In questa struttura, il processo computazionale può continuare secondo una delle possibili direzioni. La scelta della direzione viene solitamente eseguita controllando qualsiasi condizione. Esistono due tipi di struttura di ramificazione: una forcella di struttura e bypass.

Nel linguaggio Pascal, l'operatore SE Conditional è un mezzo per organizzare un processo di calcolo di ramificazione.

Formato: Se [logico_section] allora [operator_1]; Altrimenti [operatore_2];

Se, quindi, altrimenti - parole di servizio. [Operatore_1], [Operatore_2] - Operazioni comuni del linguaggio pascal. Parte altrimenti è facoltativa (potrebbe essere assente).

L'operatore se funziona come segue: il risultato di un'espressione logica è dapprima controllata. Se il risultato della verità (TRUE), quindi [Operatore_1] viene eseguito, seguendo la parola principale e [Operatore_2] viene saltato. Se il risultato è una bugia (falsa), quindi viene eseguito [Operatore_1] e [Operatore_2] viene eseguito.

Se manca la parte di altro, allora l'operatore se non ha forma:

Se [logico_section] allora [operatore];

In questo caso, se il risultato della verità (TRUE), quindi [Operatore] è in esecuzione, se il falso è (falso), il controllo viene trasmesso all'operatore seguendo l'operatore IF.

ci sono 2 numeri A e B. Trova il numero massimo.

Operatore composito

L'operatore composito è una sequenza di operazioni arbitrarie nel programma concluso nelle cosiddette parentesi dell'operatore (inizio-end).

Formato: Iniziare [operatori]; Fine;

Gli operatori compositi consentono di rappresentare un gruppo di operatori come un operatore.

Operatore di selezione del caso

Progettato per implementare più rami, poiché l'operatore IF può implementare solo due direzioni del processo di elaborazione, non è sempre conveniente usarlo per implementare più rami. Più ramificazione è implementato dall'operatore del caso.

Formato: Caso [cliente] di

[Constantay_ber_1]: [operatore_1];

[Costantable_2]: [operatore_2];

[Costantable_Net]: [operator_n];

Altrimenti [operatore];

Caso, di, altrimenti, parole di fine ufficio. [Cliente] è il parametro di uno dei tipi di sequenza. [Costantants] - costanti dello stesso tipo della chiave di selezione che implementa la scelta. [Operatore_1 (N)] - Operatore ordinario. Altrimenti può essere assente.

L'operatore di selezione funziona come segue: Prima dell'operazione dell'operatore, viene determinato il valore del parametro tasto Select. Questo parametro può essere espresso come variabile nel programma o nell'altro. Quindi il parametro Select Key Confronta costantemente con la costante di selezione. Quando il valore del tasto di selezione è coinciso con una delle costanti di selezione, l'operatore viene eseguito, seguendo questa costante e tutti gli altri operatori vengono ignorati. In caso di non coincidenza della chiave della scelta con una qualsiasi delle costanti, l'operatore viene seguito dopo qualcun altro. Spesso, altrimenti non è obbligatorio e in caso di incomprensione di una chiave della scelta o con una delle costanti di selezione e in assenza di altrimenti, il controllo viene trasmesso all'operatore seguendo l'operatore del caso.

Nella dichiarazione del caso, non vi è alcuna verifica esplicita della condizione della condizione dell'operatore IF. Allo stesso tempo in forma implicita, viene eseguita l'operazione di confronto. Il caso introduce la dissonanza al programma nel linguaggio Pascal, poiché l'operatore dei dati termina con una parola di servizio finale, che non ha una coppia inizia.

Creare un algoritmo e un programma di un'attività che simula il funzionamento del semaforo. Quando si entra nel simbolo della prima lettera del semaforo, il programma dovrebbe visualizzare un messaggio sui colori e le azioni corrispondenti.

Il programma funziona come segue: Con la tastiera della procedura RAD, viene inserita la lettera della lettera del colore della luce. Se la lettera "è inserita dal colore verde corrispondente, quindi nell'istruzione Case, il valore viene inserito nell'elenco di selezione troverà una costante di selezione" S "e il messaggio" verde, il movimento è consentito ". Quando si entra in un simbolo di lettere 'k' e 'j', verranno visualizzati messaggi simili. Quando si inserisce qualsiasi altro simbolo, il messaggio verrà visualizzato il messaggio "Traffico non funziona", poiché in questa cassa parte del genere, funziona l'operatore dei casi.

Operatori del ciclo

Una struttura algoritmica ciclica è considerata una tale struttura in cui alcune azioni vengono eseguite più volte. Nella programmazione, ci sono due tipi di strutture cicliche: un ciclo con un parametro e un ciclo iterativo.

Il ciclo con il parametro contiene sempre i cosiddetti parametri del ciclo: x, x n, x k, Δx. A volte un ciclo con un parametro è chiamato un ciclo regolare. Una caratteristica caratteristica è che il numero di cicli e ripetizioni può essere determinato fino a quando il ciclo viene eseguito.

Nel ciclo di iterazione è impossibile determinare il numero di cicli prima della sua esecuzione. Viene eseguito finché la condizione continua il ciclo.

A Pascal, ci sono tre operatori che implementano strutture ciclistiche informatiche:

  • account operatore per. È progettato per implementare un ciclo con un parametro e non può essere utilizzato per implementare il ciclo iterativo;
  • operatore ciclo con tensione;
  • operatore ciclo con post di ripetizione.

Gli ultimi due sono focalizzati sull'attuazione del ciclo iterativo, ma possono anche essere utilizzati per implementare un ciclo con un parametro.

Operatore per

Formato: Per [parametri_t_s]: \u003d [n_z_p_z] a [k_z_p_ts] fare [operatore];

Per, a, fare parole di servizio. [Parameter_cyclax] - Parametro del ciclo. [N_P_TS] - Il valore iniziale del parametro del ciclo. [K_Z_P_TS] - Il valore finale del parametro del ciclo. [Operatore] - Operatore arbitrario.

Il parametro del ciclo deve essere una variabile del tipo ordinale. I valori iniziali e finali del parametro del ciclo devono essere lo stesso tipo del parametro del ciclo.

Il lavoro dell'operatore considera sul suo algoritmo:

Nel primo passo, il valore del parametro ciclo accetta [H_P_CE], quindi il parametro del ciclo è inferiore o uguale a [K_P_TS]. Questa condizione è la condizione per continuare il ciclo. Se fatto, il ciclo continua la sua operazione e [Operatore] viene eseguito, dopo di che il parametro del ciclo aumenta (diminuisce) per unità. Quindi con il nuovo valore del parametro del ciclo, viene controllata la continuazione delle condizioni del ciclo. Se viene eseguito, le azioni vengono ripetute. Se la condizione non viene eseguita, il ciclo arresta il suo lavoro.

L'operatore per l'operatore differisce significativamente da operatori simili in altri linguaggi di programmazione. Le differenze sono le seguenti:

  • operatore del corpo per. L'operatore non può essere eseguito, poiché il test della continuazione del ciclo viene eseguito prima del corpo del ciclo;
  • la fase di modifica del parametro del ciclo è costante e uguale a 1;
  • il corpo del ciclo nella dichiarazione per la dichiarazione è rappresentato da un operatore. Nel caso in cui l'azione del corpo del ciclo richieda più di una semplice dichiarazione, questi operatori devono essere trasformati in un unico operatore composito da staffe operatore (inizio-end);
  • Il parametro del ciclo può essere solo una variabile del tipo ordinale.

Un esempio di utilizzo di un operatore per: Fai una tabella di traduzione di rubli in dollari.

Mentre operatore (operatore ciclo con precondizione)

Formato: Mentre [condizione] fare [operatore];

Mentre, fai - parole di servizio. [Condizione] - un'espressione di tipo logico. [Operatore] - Operatore ordinario.

;

Mentre l'operatore funziona come segue: il risultato della condizione logica è controllato prima. Se il risultato è una verità, l'operatore è in esecuzione, dopo di che la condizione viene restituita per verificare con il nuovo valore dei parametri nell'espressione logica della condizione. Se il risultato è una bugia, il ciclo è completato.

Quando si lavora con mentre è necessario prestare attenzione alle sue proprietà:

  • le condizioni utilizzate mentre sono una condizione per continuare il ciclo;
  • nel corpo del ciclo, anche un cambiamento nel valore del parametro incluso nella condizione di espressione è
  • il ciclo durante il ciclo non può essere completato, poiché la convalida della condizione nella continuazione del ciclo viene eseguita prima del corpo del ciclo.

Esecuzione ripetuta (operatore ciclo con postCondizione)

Formato: Ripeti [body_cykla]; Fino alla [condizione];

L'operatore di ripetizione funziona come segue: In primo luogo, vengono eseguiti gli operatori del corpo del ciclo, dopodiché il risultato è controllato da una condizione logica. Se il risultato è una bugia, quindi rimborsare all'esecuzione degli operatori del prossimo ciclo del corpo. Se il risultato è verità, l'operatore completa il lavoro.

L'operatore di ripetizione ha le seguenti caratteristiche:

  • la ripetizione viene controllata la condizione di terminazione del cocle e se la condizione viene eseguita, il ciclo smette di funzionare;
  • il corpo del ciclo viene sempre eseguito almeno una volta;
  • il parametro per il controllo delle condizioni cambia nel corpo del ciclo;
  • gli operatori del corpo del ciclo non hanno bisogno di entrare nelle staffe dell'operatore (inizio-end), mentre il ruolo delle staffe dell'operatore viene eseguito da ripetere e fino a quando.

Calcola Y \u003d Sin (X), dove Xn \u003d 10, XK \u003d 100, il passaggio è 10.

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