Operator de tranziție

unde p este o etichetă marcată de un alt operator din program (mijloace de parcurs). Concepută pentru a încălca ordinea naturală a operatorilor. De exemplu, Geto 11 va da controlul operatorului 11: writeln.







Ca etichete, este permisă utilizarea numerelor de la 1 la 9999.

Eticheta este declarată, de regulă, imediat înainte sau după descrierea variabilelor. De exemplu,

DEVELOP un program care utilizează un operator de salt, un operator condiționat și un generator de numere aleatorii pentru a ghici un număr aleator de la 0 la 5, cu o estimare bazată pe încercarea de ghicit.

Var a, b, c: întreg;

1: writeln ("Vredite chislo ot 0 to 5 ');

Dacă c<0 then goto 2

altfel dacă a<>b apoi a ajuns 1

altul scriteln ("Vasha ocenka za ugadivanie -", c);

Elaborați un program care utilizează un operator de tranziție și un operator condiționat pentru a calcula rădăcinile unei ecuații patrate a formularului cu definiția semnului discriminant.

a: = 1; repetați scrierea (a); a: = a * 3 până la> 300

În primul rând, este surprinzător faptul că condițiile pentru repetarea ciclului pentru cele două cazuri sunt opuse. Aceasta se datorează faptului că instrucțiunea WHILE execută o buclă până când condiția se evaluează la FALSE și în instrucțiunea REPEAT până când condiția este evaluată la TRUE

De asemenea, rețineți că nu este necesar ca corpul bucla REPEAT să fie inclus în parantezele instrucțiunii BEGIN. END. În cazul în care while după cuvântul cheie DO se efectuează numai operatorul (și, dacă doriți să efectuați în mod repetat, mai multe acțiuni, Com-ditsya mai mulți operatori de a combina într-o declarație compus), declarația REPEAT între cuvintele cheie REPETAȚI și până când vă puteți introduce orice număr de operatori, fără a fi nevoie de a încheia în brațele operatorului.

În cele din urmă, cititorul atent poate observa că nu există punct și virgulă în instrucțiunea REPEAT după ultima instrucțiune din corpul bucla. Aceasta este o altă caracteristică a instrucțiunii REPEAT - înainte de cuvântul cheie UNTIL, o punct și virgulă este opțională.

Exemplul # 3 Generați un număr aleatoriu a de la 0 la 10. Afișați valoarea a. Dacă a> 5, calculați valoarea lui X a folosind operatorul While ... do .... dacă a <5, то рассчитать значение Y a с использованием оператора Repeat … until … . Величины X и Y вводить с клавиатуры.

writeln ("Vvedite velichinu x");

writeln ("Vvedite velichinu y");

scriteln ('a ravno', a);

începeți în timp ce b

începe repeat începe y: = w * y; b: = b + 1; se termină până la b = a; writeln ("Y v stepeni", a, "ravno", y); se încheie;

Operatorul buclă FOR, cunoscut sub numele de operator cu buclă cu parametru, arată astfel:

Când acest operator este executat, se calculează mai întâi o valoare inițială A, care este alocată variabilei I, numită parametru de buclă. Apoi se calculează valoarea finală a lui B și se verifică dacă I ​​= B. Dacă nu există egalitate, operatorul S, care poate fi compus, este executat, iar variabila I este incrementată cu una. După aceasta, testul (dacă parametrul nu este egal cu valoarea finală), execuția operatorului S și creșterea variabilei I cu 1 sunt efectuate ciclic până când are loc egalitatea I = B. Parametrul ciclului I, precum și valorile inițiale și finale (A și B) pot aparține oricărui tip ordinal (de exemplu, Integer sau Char). (Dar toate acestea trebuie să fie de același tip.) Dacă valoarea inițială depășește sau este egală cu valoarea finală de la bun început, operatorul S nu va executa o singură dată.

Cuvintele rezervate FOR, TO, and DO sunt folosite aici. înainte și execută în mod corespunzător.

Operatorul buclă FOR are următoarele caracteristici:

• În corpul buclei, nu puteți schimba în mod explicit valoarea unui parametru de buclă (de exemplu, utilizând un operator de atribuire);

• Când instrucțiunea FOR este terminată, valoarea parametrului

(I) este considerată nedefinită. O altă formă a operatorului buclă cu parametrul este posibilă:

Aici, pentru ca operatorul S să fie îndeplinit, valoarea inițială a lui A trebuie să depășească valoarea finală a lui B. În plus, în acest caz, parametrul I scade cu un ciclu cu unu până devine egal cu valoarea finală a lui B.

Un operator de ciclu cu un parametru ar trebui să fie utilizat atunci când este deja cunoscut exact de câte ori corpul buclei trebuie executat.

Iată exemple ale unei instrucțiuni de buclă cu parametrul:

pentru i: = 1 până la 5 până x: = sqr (x);







pentru i: = z downto a nu scrie (i);

În primul exemplu, valoarea variabilei X este pătrat, atunci valoarea rezultată este atribuită variabilei X - și astfel de cinci ori.

În cel de-al doilea exemplu, un operator de buclă cu un parametru este utilizat pentru a emite litere ale alfabetului latin în ordine inversă (de la z la a). Faptul este că Char este un tip ordinal, iar literele de la începutul alfabetului (ca valori de tipul Char) sunt considerate mai puține litere luate la sfârșitul alfabetului. Nu va fi, de exemplu, inegalitatea A<В

Pentru a înțelege diferența dintre operatorii de buclă WHILE și FOR, luați în considerare fragmentele corespunzătoare ale programului care afișează linii goale.

line: = l în timp ce linia

pentru linia = l pentru a scrie

Dacă variabila Linie este declarată (în secțiunea de declarație a variabilei) ca aparținând tipului Integer, instrucțiunea FOR va afișa N de linii goale. Implementarea sarcinii cu ajutorul instrucțiunii FOR pare mai simplă, deoarece nu este nevoie de linia operatorilor de alocare: = l și linia: = linia + 1.

Exemplul nr. 4. Afișați 20 de linii cu simboluri ********************

var a, n, i: întreg;

Introduceți de la tastatură un număr de la 2 la 10 și dați un răspuns sub forma gradului de număr introdus de la 2 la 10. De exemplu:

"2.00 la puterea de 2 este 4.00

2.00 la puterea lui 3 este 8.00

2.00 la puterea de 10 este 1024 ".

Un exemplu al acestui program.

Operator de tranziție

Operator de tranziție

Operator de tranziție

Un exemplu de buclă de repetare de tip. până la. Determinați numărul n pentru care suma pătratelor seriei de numere naturale de la 1 la n nu depășește valoarea K introdusă de la tastatură. Asta este,

program sum_sq; utilizează CRT; var k, s, n. întreg; începe clrscr; writeln ('Enter K'); readln (k); s: = 0; n: = 1; repetați s: ​​= s + n * n; n: = n + 1; până când s> k; writeln ('N =', n. 3, 's =' s. 5); end.

Calculați primii 20 de membri ai șirului Fibonacci:
u1 = 1; u2 = 2; u (n) = u (n-1) + u (n-2), precum și valoarea secțiunii de aur V (n)

const nmax = 20; var i: întreg; u1, u2, u3: întreg; v: real; beginu1: = 1; u2: = 2; v: = u2 / u1; writeln ( 'u (1) =', u1); writeln ( 'u (2) =', u2, 'v (2) =' v: 2: 2); pentru i: = 3 până la nmax nu începe u2: = u2 + u1; u1: = u2-u1; v: = u2 / u1; writeln ( 'u (', i ') =', u2, 'v (', i ') =' v: 2: 2); final; readln; sfârșit. Exemplul nr. 5 const nmax = 20; (n = 2) apoi începe fib: = 2; ieșire; end; fib: = fib (n); -1) + fib (n-2); Funcția sech (n: integer): real; beginsech: = fib (n) / fib (n-1); var i: întreg; (i, i), i (i), v (i, i, i) ') =', sech (i): 2: 2);

Din tastatură se introduc numere pozitive întregi n, p și a. Creați un program pentru calcularea unui număr dat de membri ai secvențelor n, a, n. Afișați valorile primite.

Soluția. Vom folosi puterea variabilă pentru a calcula funcția de putere n; exponentul variabil (exponent) pentru calculul funcției exponențiale a și factorul variabil (multiplicatorul) pentru calculul factorului n !.
Programele constau în:
• Un bloc de descriere care enumeră modulele utilizate, variabilele utilizate și tipurile acestora;
• Corpul programului, inclusiv;
- curățarea ecranului;
- introducerea datelor din tastatură;
- calculul elementelor secvenței prin intermediul relațiilor de recurență, valorile inițiale ale variabilelor sunt după cum urmează:
putere = 1, exponent = 1, factor = 1,
formule pentru un membru general
poweri = poweri-11 • n,
exponenti = exponenti-11 • n,
factori = factori-11 • i;
- Rezultatul rezultatelor pe ecran.
Programele variabile n, p și - întreg tip întreg (pentru numere întregi nenegative variază de modificări de la 0 la 32 767); putere variabilă, exponent, factor - numere reale cu cel puțin 6-7 semne adevărate după punctul (pentru numere pozitive în intervalul admisibil pentru tipul respectiv, cum ar fi 1,4 • (10 -45) până la 3,4 • (10 38) ). Tipurile de date folosite au numele unice, reale, plutesc în limbile BASIC, Pascal, respectiv C. Dacă oricare dintre variabile este în afara domeniului de tip declarat, apare un mesaj de eroare de depășire.
Rezultatele de ieșire formatată a tuturor programelor pe aceeași limbă de programare ca un exemplu, în cazul în care n = 10, p = 3, a = 3. avem: n = = 1000 și LO = 3 * 10 = 59 049, n. == 10! = 3,628,800.

Exemplu # 7 Crearea unui program de calcul n !.

var n, i, p: întreg;

pentru i: = 1 la n face p: = p∋i;

Fără utilizarea funcțiilor standard (cu excepția absului), se calculează funcția y = f (x) cu o precizie de 0,0001. Pentru a considera că precizia necesară este atinsă, dacă următorul termen este modulo mai mic decât 0,0001, toți termenii ulteriori nu mai pot fi luați în considerare. De asemenea, dați valoarea funcției y găsită utilizând funcțiile standard.

var x, y, n, u: real;

până la abs (u) <0.0001;

scrie ('a obținut y =', y: 2 ,: 4, 'standard x =', cos (x))

var x, y, n, u: real;

în timp ce abs (u)> = 0,0001 face

scrie ('luat x =', x: 8: 4, 'standard x =', cos (x): 8:

Se dă o secvență neplătită de numere reale pozitive

care este urmat de un număr negativ. Compilați un program de calcul

media aritmetică a acestor numere.

var x, s: real; n: întreg;

scrie ('x', n + 1, '='); readln (x);

scrie ('cp arithm. =', s / n)

var x, s: real; n: întreg;

în timp ce x> = 0 face

scrie ('x', n + 1, '='); readln (x)

scrie ('cp arithm. =', s / n)

Având un număr întreg n> 0. Compuneți un program care imprimă toate numerele prime de la

var n, m, k, p: întreg;

pentru m: = 2 până la n

pentru k: = 2 pentru a trunchia (sqrt (m))

dacă m mod k = 0 atunci p: = 1;

dacă p = 0 scrieți apoi (m, '')

var n, m, k: întreg;

pentru m: = 2 până la n

pentru k: = 2 pentru a trunchia (sqrt (m))

dacă m mod k = 0 atunci ajunge la 1;

var n, m, k: întreg; t: boolean;

scrie ('n ='); readlln (n);

pentru m: = 2 până la n

până la t sau (k> = trunc (sqrt (m));

dacă nu, atunci scrie (m, '')

Este materialul util? Partajați acest lucru:

Nu ați găsit ce căutați? Google să vă ajute!

Pagina generată în 0.023 secunde.







Articole similare

Trimiteți-le prietenilor: