X aparține segmentului 1 1. Subiect: tip de date boolean. Operații logice nu, și, sau. Găsirea valorilor expresiilor logice. Munca independentă. Întrebări și sarcini legate de teme

Acasă Variabilele de tip boolean sunt descrise folosind un identificator boolean . Ele pot lua doar două sensuri - Fals(minciună) Şi Adevărat(adevărat) . Ele sunt descrise și în secțiunea descriere a variabilelor.<имя>Var

:Boolean;:

Expresiile logice pot include

n valori logice,<- меньше, >n operațiuni de relație (<=- меньше или равно, >- Mai mult,<>=- mai mare sau egal cu,

- nu este egal, =- egal).

n operații logice Și, Sau, Nu


n dec. acțiuni și funcții

Turbo Pascal are operații logice care se aplică variabilelor de tip logic. Acestea sunt operațiunile nu, și, sau și xor. Operațiunea nu

(nu) are un operand și își formează negația logică. Rezultatul operației not este False dacă operandul este adevărat și True dacă operandul este fals. Deci, nu Adevărat Fals (neadevărul este o minciună) nu Fals Adevărat (nici o minciună este adevăr). Rezultatul operațieişi

(nu) are un operand și își formează negația logică. Rezultatul operației not este False dacă operandul este adevărat și True dacă operandul este fals. Deci, nu Adevărat Fals (neadevărul este o minciună) nu Fals Adevărat (nici o minciună este adevăr). (și) este adevărată numai dacă ambii operanzi ai săi sunt adevărate și false în toate celelalte cazuri (înmulțire logică). sau

(sau) este adevărat dacă oricare dintre operanzii săi este adevărat și fals numai dacă ambii operanzi sunt falși (adăugare logică). Operațiile logice, operațiile relaționale și operațiile aritmetice apar adesea în aceeași expresie. În acest caz, relațiile la stânga și la dreapta semnului operației logice trebuie incluse între paranteze, deoarece operațiile logice au prioritate mai mare

. În general, se acceptă următoarea prioritate a operațiunilor:

2. și, *, /, div, mod

3. sau, +, -<- меньше, >n operațiuni de relație (<=- меньше или равно, >- Mai mult,<>4. operațiuni de relație (

- nu este egal, =- egal). În plus, ordinea operațiilor poate fi modificată prin paranteze. De exemplu, în expresie logică

Să aranjam ordinea acțiunilor:


AorBandnot(AorB)

Operația sau cuprinsă între paranteze este efectuată mai întâi, urmată de operațiile not, and, or. Dacă înlocuim valorile True și False în locul variabilelor A și B, atunci, folosind procedura deja discutată, obținem valoarea întregii expresii egală cu True. Exercițiul 5:

. Scrie în caiet și calculează semnificațiile expresiilor cu a=10, b=20, c=adevărat, d=fals: O)<20) and (b<30);

(a>5) și (b>5) și (a b)<15) or not (b<30);

nu (a c)

c sau d și (b=20). ! În Pascal, nu există nicio modalitate de a introduce date booleene folosind operatorul de citire. Cu toate acestea, este posibil să scoateți valorile variabilelor de tip boolean folosind operatorul de scriere. De exemplu, după executarea instrucțiunii write (5>2), pe ecran va fi afișat True.

Întrebări și sarcini legate de teme:

1. Cum este descrisă o variabilă logică și ce valori poate lua?

2. Ce poate fi inclus în expresiile logice. Dați exemple de expresii logice simple.

3. Vorbește-ne despre operațiile logice în Pascal. Dați exemple de expresii logice compuse.

4. Care este prioritatea diferitelor operațiuni în Pascal. Da un exemplu.


Sarcini:

№19.

A. întregul k este divizibil cu 7;

B. Cel puțin unul dintre numerele întregi x, y este par;

G. x=max(x,y,z), adică x este cel mai mare dintre cele trei numere x,y,z;

D. (nu utilizați operațiunea not)

E. cel puţin una dintre variabilele logice a şi b are valoarea Adevărat;

G. ambele variabile logice a și b au valoarea Adevărat.

№20. Specificați ordinea operațiilor la evaluarea expresiilor:

cu a=10, b=20, c=adevărat, d=fals: a și b sau nu c și d; b) (x>=0) sau nu c și d.

№21. Evaluați următoarele expresii când a=adevărat, b=fals:

cu a=10, b=20, c=adevărat, d=fals: a sau b și nu a; b)(a sau b) și nu a; V) nu a și b; G) nu (a și b)

№22. Creați un program: la examenele de admitere, solicitantul a luat fizică, informatică și eseu. Un solicitant va fi admis dacă obține nota 5 la informatică și obține cel puțin 13 puncte la trei examene. Este adevărat că a fost admis (iese Adevărat/Fals)?

§ 8. Rezolvarea problemelor pe tema „Programe liniare. Valori logice.”

Ex. 7 . Calculați valorile expresiei:

a) sqr(x)+sqr(y)<=4 при x=0.3, y=-1.6;

b) k mod 7 = k div5-1 la k=15;

c) impar(trunc(10*p)) la p=0,182;

d) nu impar(n) pentru n=0;

e) t și (p mod 3=0) cu t=adevărat, p=101010;

e) (x*y<>0) și (y>x) pentru x=2, y=1;

g) (x*y<>0) sau (y>x) pentru x=2, y=1;

h) a sau (nu b) când a=Fals, b=Adevărat;

Ex. 8. Scrieți o expresie în Pascal care este adevărată dacă condiția specificată este îndeplinită și falsă în caz contrar:

a) x aparține segmentului ;

b) x se află în afara segmentului;

c)* x aparține segmentului sau [-1, 1];

d)* x se află în afara segmentelor și [-1, 1];

e) fiecare dintre numerele x, y, z este pozitiv;

g) niciunul dintre numerele x, y, z nu este pozitiv;

h) doar unul dintre numerele x, y, z este pozitiv;

i) variabila logică a are valoarea Adevărat, variabila logică b are valoarea Fals;


j)* un an cu un număr de serie y este un an bisect (un an bisect dacă numărul său este un multiplu de 4, dar dintre multiplii lui 100, numai multiplii de 400 sunt ani bisecti, de exemplu, 1700, 1800 și 1900 sunt ani non-bisecți, 2000 este un an bisect).

Ex. 9 . Desenați pe planul (x, y) o regiune în care și numai în care expresia indicată este adevărată:

a)* (y>=x) și (y+x>=0) și (y<=1);

b) (sqr(x)+sqr(y)<1) or (y>0) și (abs(x)<=1);

c) (trunc(y)=0 și (rotunzi(x)=0);

d)* (abs(x)<=1)>(abs(y)>=1);

d) (sqr(x)+sqr(y)<=4)=(y<=x).

Ex. 10 ..Cartea costă X ruble. Cumpărătorul are bancnote în valori de 50, 10, 5, 1 ruble. Câte și ce fel de facturi trebuie să iei pentru a plăti o carte cu numărul minim de facturi?

Variabilele booleene își obțin de obicei valorile prin efectuarea de comparații și operații matematice (discutate în lecția anterioară), precum și prin utilizarea unor operații booleene specifice.

Turbo Pascal are operații logice care se aplică variabilelor de tip logic. Acestea sunt operațiunile nu, și, sau și xor. În acest subiect veți analiza trei operații logice. Denumirile și rezultatele acestor operațiuni sunt date în tabel. Luați în considerare.

Turbo Pascal are operații logice care se aplică variabilelor de tip logic. Acestea sunt operațiunile nu, și, sau și xor. Operațiunea(nu) are un operand și își formează negația logică. Rezultatul operației not este False dacă operandul este adevărat și True dacă operandul este fals. Aşa,

nu este adevărat fals (neadevărul este o minciună)

nu fals adevărat (nici o minciună nu este adevărată)

(nu) are un operand și își formează negația logică. Rezultatul operației not este False dacă operandul este adevărat și True dacă operandul este fals. Deci, nu Adevărat Fals (neadevărul este o minciună) nu Fals Adevărat (nici o minciună este adevăr). Rezultatul operației(și) este adevărată numai dacă ambii operanzi ai săi sunt adevărate și false în toate celelalte cazuri.

(nu) are un operand și își formează negația logică. Rezultatul operației not este False dacă operandul este adevărat și True dacă operandul este fals. Deci, nu Adevărat Fals (neadevărul este o minciună) nu Fals Adevărat (nici o minciună este adevăr). (și) este adevărată numai dacă ambii operanzi ai săi sunt adevărate și false în toate celelalte cazuri (înmulțire logică).(sau) este adevărat dacă oricare dintre operanzii săi este adevărat și fals numai dacă ambii operanzi sunt falși.

Exercita . Încercați să determinați semnificația operațiilor booleene pentru instrucțiuni:

  1. Un școlar stă acasă în vacanța de iarnă sau pleacă undeva în vacanță.
  2. Philip Kirkorov este cântăreț și operator de combină.
  3. Scolarii sunt baieti si fete..

Operațiile logice, operațiile relaționale și operațiile aritmetice apar adesea în aceeași expresie. În acest caz, relațiile la stânga și la dreapta semnului operației logice trebuie să fie incluse în paranteze, deoarece operațiile logice au prioritate mai mare. În general, se acceptă următoarea prioritate a operațiunilor:

  • și, *, /, div, mod
  • sau, +, -
  • operațiuni de relație..

. Operația logică și se mai numește și înmulțire logică, iar operația logică sau se mai numește și adunare logică.

În plus, ordinea operațiilor poate fi modificată prin paranteze. De exemplu, într-o expresie logică vom aranja ordinea acțiunilor

A sau B și nu (A sau B)

AorBandnot(AorB)

Exercita . Notați în caiet și calculați valorile expresiilor pentru a=10, b=20, c=adevărat, d=fals:

  • O)<20) and (b<30);
  • b)<15) or not (b<30);
  • c sau d şi (b=20);

Atenţie! În Pascal, nu există nicio modalitate de a introduce date booleene folosind operatorul de citire. Cu toate acestea, este posibil să scoateți valorile variabilelor de tip boolean folosind operatorul de scriere.

De exemplu, după executarea instrucțiunii write (5>2), va fi afișat True pe ecran.

Munca independentă

Alegeți o sarcină pe care să o finalizați împreună cu profesorul dvs munca independenta din exercițiile de mai jos.

  1. Calculați valorile expresiei:

    a) sqr(x)+sqr(y)<=4 при x=0.3, y=-1.6;

    b) k mod 7 = k div5-1 la k=15;

    c) impar(trunc(10*p)) la p=0,182;

    d) nu impar(n) pentru n=0;

    e) t și (p mod 3=0) cu t=adevărat, p=101010;

    e) (x*y<>0) și (y>x) pentru x=2, y=1;

    g) (x*y<>0) sau (y>x) pentru x=2, y=1;

    h) a sau (nu b) când a=Fals, b=Adevărat;

  2. Scrieți o relație în Pascal care este adevărată dacă condiția specificată este îndeplinită și falsă în caz contrar:

    a) întregul k este divizibil cu 7;

    b) punctul (x, y) se află în afara cercului de rază R cu centrul în punctul (1,0);

    c) numărul natural N este un pătrat număr natural;

    d) 0

    e) x=max(x,y,z);

    e) cel puţin una dintre variabilele logice a şi b are valoarea Adevărat;

    g) ambele variabile logice a și b au valoarea Adevărat.

  3. Specificați ordinea operațiilor la evaluarea expresiilor:

    a) a și b sau nu c și d;

    b) (x>=0) sau nu c și d.

  4. Evaluați următoarele expresii când a=adevărat, b=fals:

    a) a sau b și nu a;

    b) (a sau b) și nu a;

    c) nu a și b;

    d) nu (a și b)

  5. Scrieți o expresie în Pascal care este adevărată dacă condiția specificată este îndeplinită și falsă în caz contrar:

    a) x aparține segmentului ;

    b) x se află în afara segmentului;

    c)* x aparține segmentului sau [-1, 1];

    d)* x se află în afara segmentelor și [-1, 1];

    e) fiecare dintre numerele x, y, z este pozitiv;

    g) niciunul dintre numerele x, y, z nu este pozitiv;

    h) doar unul dintre numerele x, y, z este pozitiv;

    i) variabila logică a are valoarea Adevărat, variabila logică b are valoarea Fals;

    j)* un an cu un număr de serie y este un an bisect (un an bisect dacă numărul său este un multiplu de 4, dar dintre multiplii lui 100, numai multiplii de 400 sunt ani bisecti, de exemplu, 1700, 1800 și 1900 sunt ani non-bisecți, 2000 este un an bisect).

  6. Desenați pe planul (x, y) o regiune în care și numai în care expresia indicată este adevărată:

    a)* (y>=x) și (y+x>=0) și (y<=1);

    b) (sqr(x)+sqr(y)<1) or (y>0) și (abs(x)<=1);

    c) (trunc(y)=0 și (rotunzi(x)=0);

    d)* (abs(x)<=1)>(abs(y)>=1);

    d) (sqr(x)+sqr(y)<=4)=(y<=x).

  7. Există un operator condiționat:
    dacă d<>10
    apoi
    writeln (‘ura!’)
    altfel
    writeln('rau...');

    Este posibil să-l înlocuiți cu următoarele afirmații:

  8. Care vor fi valorile variabilelor j, k după executarea instrucțiunii condiționate:
    dacă j>k
    apoi
    j:=k-2
    altfel
    dec(k,2);
    dacă valorile inițiale ale variabilelor sunt egale:
    a) j=3, k=5;
    b) j=3, k=3;
    c) j=3, k=2.

Nota . Ca urmare a executării operatorului dec (k,2), valoarea variabilei k este redusă cu 2.

. X aparține segmentului ;
x se află în afara segmentului;
x aparține segmentului sau [-1,1];
x se află în afara segmentului sau [-1,1].
3.
Explicați structura și regulile pentru executarea instrucțiunilor condiționate.
4.
Scrieți acțiunea specificată ca o singură instrucțiune condiționată:
cos
2
x, la 0x la =
1-păcat
2
x, altfel.
5.
z
int z=0, x=1, y=

1;

80 Programarea algoritmilor liniari în sistem C++Builder
dacă (x>0) dacă (y>0) z=1; altfel z=2;
6.
Ce valoare va avea variabila? z dupa executarea operatorilor:
int z=0, x=

1, y=1;
dacă (x) ( dacă (y>0) z=1;) altfel z=2;
7.
Ce valoare va avea variabila? z dupa executarea operatorilor:
int z=0, x=0, y=1;
dacă (x) ( dacă (y>0) z=1;) altfel z=2;
8.
Ce valoare va avea variabila? z dupa executarea operatorilor:
int z=0, x=3, y=1;
dacă (x) ( dacă (y) z=1;) altfel z=2;
9.
Vă rugăm să indicați erorile în următoarele afirmații:
dacă (1
altfel x=0; y+= 1;
10.
int z=0, x=0, y=1;
dacă (!x) ( dacă (!(y

1)) z=1;) altfel z=2;
11.
Ce valoare va avea variabila z după executarea instrucțiunilor:
int z=0, x=1, y=1;
dacă (!x) ( dacă (!(y

1)) z=1;) altfel z=2;
12.
Găsiți erori în fragmentul de program:
(int n,x; comutator (k) caz + : x:=x-4 pauză; caz

-

,

*

, x=5;
}
Ce reguli au fost încălcate și cum pot fi corectate greșelile?


81
3.4
Sarcini individuale pentru secțiunea 3
Fiecare elev trebuie să rezolve două probleme de primul și al doilea nivel de complexitate.
Probleme de primul nivel de dificultate.
1.
Vi se oferă un număr întreg pozitiv de patru cifre. Scrieți un program care imprimă adevărat sau falsîn funcție de îndeplinirea sau nu condiția specificată: suma a 1 și 4 cifre este egală cu produsul dintre 2 și 3 cifre.
2.
Având în vedere numerele reale x, y. Dacă x și y sunt negative, atunci înlocuiți fiecare valoare cu modulul său; dacă doar unul dintre ele este negativ, atunci creșteți ambele valori cu 5,5; în alte cazuri, reduceți ambele valori de 10 ori.
3.
Având în vedere numerele reale x, y. Dacă x și y sunt pozitive, atunci reduceți fiecare valoare de 5 ori; dacă ambele valori sunt în intervalul [-3, 9], înlocuiți ambele valori cu 0; în alte cazuri, creșteți x și y cu 3.
4.
Datele numere reale x, y (xy). Înlocuiți cel mai mic dintre aceste două numere cu jumătatea lor, iar cel mai mare cu produsul lor dublu.
5.
Dacă suma a trei numere reale distincte în perechi x, y, z este mai mică decât 1, atunci înlocuiți cel mai mic dintre aceste trei numere cu jumătatea sumei celorlalte două; în caz contrar, înlocuiți cel mai mic dintre x și y cu jumătatea sumei celor două valori rămase.
6.
Datele numere reale a, b, c, d. Dacă a b>c>d, apoi lăsați numerele neschimbate; în caz contrar, înlocuiți toate numerele cu pătrate.
7.
Stabiliți dacă un număr întreg de șase cifre este norocos. (Un număr se numește norocos dacă suma primelor sale trei cifre este egală cu suma ultimelor trei cifre.)
8.
adevărat sau falsîn funcție de îndeplinirea sau nu condiția specificată: pentru numere reale arbitrare a, b, c, determinați dacă ecuația ax
2
+bx+c=0 cel puțin o soluție reală.

82 Programarea algoritmilor liniari în sistem C++Builder
9.
Pentru a rezolva următoarea problemă, scrieți un program care se imprimă adevărat sau falsîn funcție de îndeplinirea sau nu condiția specificată: determinați dacă suma primelor două cifre ale unui număr dat de patru cifre este egală cu suma ultimelor două numere ale acestuia.
10.
În unele instituție de învățământ Se aplică următoarele reguli de admitere. Solicitanții susțin două examene, care sunt evaluate în funcție de
100 de puncte fiecare. Dacă un solicitant obține cel puțin 150 de puncte, atunci aceasta dă dreptul de a se înscrie la catedra cu normă întreagă, de la 100 la 149 - la catedra de seară; sub 100 de puncte înseamnă refuzul admiterii la studii. Scrieți un program care, în funcție de numărul de puncte obținute, să informeze solicitantul despre drepturile sale de admitere.
11.
Scrieți un program folosind operatorul de selecție pentru a obține descriere verbală semne. (1 – „rău”, 2 –
„nesatisfăcător”, 3 – „satisfăcător”, 4 – „bine”, 5 –
"Mare".)
12.
Pentru a rezolva următoarea problemă, scrieți un program care se imprimă adevărat sau falsîn funcție de îndeplinirea sau nu a condiției specificate: stabiliți dacă printre cifrele unui număr dat de trei cifre există unele identice.
13.
Scrieți un program care imprimă adevărat, dacă data d1, m1 precede (în termen de un an) data d2, m2și sens fals altfel.
14.
Scrieți un program folosind un operator de selecție care, pe baza primei litere a numelui, afișează numele complet pe ecran
(Ivan, Peter, Nikolai, Vladimir, Georgy).
15.
Scrieți un program folosind operatorul de selecție, care, pe baza cifrei introduse, 0≤ k≤ 5 tipărește numele acestui număr în rusă și engleză.
16.
Dat un număr întreg k (1

k

365). Stabilește ce va fi a k-a zi an - un weekend sau o zi lucrătoare, dacă 1 ianuarie este luni.
17.
Dat număr real x. Calcula f, Dacă:











păcat
,
1 0
,
0 5
2 11 2
cazuri
restul
V
x
x
x
la
x
x
x
la
f

Programare cu tablouri unidimensionale
83 18.
Dat un număr real x. Scrieți un program de calculat f:












34 5
,
12 3
lg ln
,
3 5
1 3
2 4
cazuri
restul
V
x
x
x
la
x
x
x
la
f
19.
Scrieți un program folosind un operator de selecție care, pe baza primei litere a numelui orașului, afișează numele complet al orașului (Kursk, Moscova, Tula, Novgorod, Voronezh).
20.
Scrieți un program folosind un operator de selecție care, pe baza primei litere a numelui de familie, afișează numele de familie complet (Ivanov, Petrov, Sidorov, Myshkin, Shishkin).
21.
Sunt date coordonatele centrului și raza cercului. Determinați dacă un anumit punct cu coordonatele (x,y) aparține unui cerc.
22.
Scrieți un program folosind un operator de selecție care, pe baza primei litere a numelui animalului introdus, va tipări numele complet al animalului (câine, pisică, girafă, cal, maimuță).
23.
Date trei numere diferite a,b,c. Sortați aceste numere în ordine crescătoare astfel încât o corespundea celui mai mic numar b– număr mediu, c– cel mai mare.
24.
Scrieți un program folosind un operator de selecție care afișează numele zilei săptămânii prin număr (de la 1 la 7).
25.
Scrieți un program folosind un operator de selecție care afișează numele lunii anului prin număr (de la 1 la 12).
26.
Scrieți un program folosind operatorul de selecție, care, pe baza primei litere introduse a numelui anotimpului anului, tipărește numele complet al anotimpului anului.
27.
Vi se oferă un număr întreg pozitiv de cinci cifre. Scrieți un program care imprimă adevărat sau falsîn funcție de îndeplinirea sau nu condiția specificată: suma a 1, 3 și 5 cifre este mai mare decât produsul dintre 2 și 4 cifre.
28.
Vi se oferă un număr întreg pozitiv de patru cifre. Scrieți un program care imprimă adevărat sau falsîn funcție de

84 Programarea algoritmilor liniari în sistem C++Builder dacă condiția specificată este îndeplinită sau nu: media aritmetică 1 și
4 cifre sunt mai mari decât suma a 2 și 3 cifre.
29.
Dat o ​​cifră și un număr de trei cifre în sistem zecimal calcul. Dacă cifra se potrivește cu cea mai mare cifră a numărului, atunci calculați suma cifrelor numărului. Dacă cifra coincide cu cifra din mijloc a numărului, atunci calculați produsul cifrelor numărului. Dacă cifra coincide cu cea mai puțin semnificativă cifră a numărului, atunci calculați media aritmetică a cifrelor numărului. Dacă niciuna dintre condiții nu este îndeplinită, atunci calculați media geometrică a cifrelor numărului.
30.
Dat o ​​cifră și un număr de trei cifre în sistemul numeric zecimal. Dacă cifra coincide cu cea mai mare cifră a numărului, atunci calculați media aritmetică a cifrelor numărului. Dacă cifra coincide cu cifra din mijloc a numărului, atunci calculați media geometrică a cifrelor numărului. Dacă cifra coincide cu cea mai puțin semnificativă cifră a numărului, atunci calculați suma cifrelor numărului. Dacă niciuna dintre condiții nu este îndeplinită, atunci calculați produsul cifrelor numărului
Probleme de al doilea nivel de complexitate.
1.
Dat un număr întreg de două cifre pozitiv în sistemul de numere ternar. Scrieți un program care afișează numele cifrelor unui număr în limba rusă dacă cea mai mare cifră a numărului este mai mare decât cea mai mică, în caz contrar
- pe engleză.
2.
Este dat un număr întreg de două cifre pozitiv în sistemul de numere de cinci cifre. Scrieți un program care să afișeze numele cifrelor unui număr în engleză dacă cea mai mare cifră a numărului este mai mare decât cea mai mică, în caz contrar
- în rusă.
3.
Este dat un număr întreg de două cifre pozitiv în sistemul de numere de cinci cifre. Scrieți un program care să afișeze numele cifrelor unui număr în engleză dacă cea mai mare cifră a numărului este exact de 2 ori mai mare decât cea mai mică, în caz contrar
- în rusă.
4.
Dat un număr întreg de două cifre pozitiv în sistemul de numere ternar. Scrieți un program care afișează numele cifrelor unui număr în limba rusă dacă cea mai mare cifră a numărului este mai mică decât cea mai mică, în caz contrar
- în limba engleză.

Programare cu tablouri unidimensionale
85 5.
Este dat un număr întreg de două cifre pozitiv în sistemul de numere de cinci cifre. Scrieți un program care afișează numele cifrelor unui număr în limba rusă.
6.
Dat un număr întreg de două cifre pozitiv în sistemul de numere octale. Scrieți un program care afișează numele cifrelor unui număr în limba rusă.
7.
Dat un număr întreg de două cifre pozitiv în sistemul de numere octale. Scrieți un program care să afișeze, dacă cifra principală este mai mică de jumătate din cifra minoră, numele cifrelor numărului în limba engleză, în caz contrar

în rusă.
8.
Este dat un număr întreg de două cifre pozitiv în sistemul de numere septale. Scrieți un program care să afișeze, dacă numerele sunt aranjate în ordine descrescătoare, numele cifrelor numărului în limba engleză, în caz contrar

în rusă.
9.
În sistemul numeric zecimal sunt date două cifre. Scrieți un program care să afișeze numele în engleză ale cifrelor sumei acestor cifre.
10.
În sistemul numeric zecimal sunt date două cifre. Scrieți un program care afișează numele în rusă ale numerelor produsului acestor numere.
11.
În sistemul numeric zecimal sunt date două cifre. Scrieți un program care să afișeze numele în rusă al cifrelor modulului diferenței dintre aceste cifre.
12.
În sistemul numeric zecimal sunt date două cifre. Scrieți un program care să afișeze numele cifrelor în engleză pentru câtul și restul unei diviziuni întregi a acestor numere.
13.
Dat un număr întreg pozitiv din două cifre în sistemul numeric din nouă cifre. Scrieți un program care să afișeze, dacă cea mai mare cifră este de trei ori mai mare decât cea mai mică, numele cifrelor numărului în limba engleză, în caz contrar

în rusă.
14.
Dat un număr întreg pozitiv din două cifre în sistemul numeric din nouă cifre. Scrieți un program care să afișeze numele cifrei unui număr care are valoare mai mare, în engleză, iar numele cifrei numărului care are o valoare mai mică este

în rusă.

86 Programarea algoritmilor liniari în sistem C++Builder
15.
Dat un număr întreg pozitiv de două cifre în sistemul de numere septale. Scrieți un program care să afișeze numele cifrei unui număr care are o valoare mai mare în limba engleză și numele cifrei unui număr care are o valoare mai mică.

în rusă.
16.
Dat un număr întreg pozitiv de două cifre în sistemul numeric hexazecimal. Scrieți un program care să afișeze numele cifrelor unui număr în limba engleză.
17.
Dat două numere întregi de două cifre pozitive în sistemul numeric ternar. Scrieți un program care să afișeze numele cifrelor sumei acestor numere în rusă.
18.
Dați două numere întregi de două cifre pozitive în sistemul de numere binar. Scrieți un program care să afișeze numele cifrelor sumei acestor numere în limba engleză.
19.
Dat un număr întreg pozitiv de două cifre în sistemul numeric de cinci cifre. Scrieți un program care să afișeze, dacă numerele sunt aranjate în ordine crescătoare, numele cifrelor numărului în limba engleză și altfel

în rusă.
20.
Dat un număr întreg pozitiv de două cifre în sistemul numeric hexazecimal. Scrieți un program care afișează, dacă cea mai mare cifră este de cinci ori mai mare decât cea mai mică, numele cifrelor numărului în rusă, altfel

în limba engleză.
21.
În sistemul de numere octale sunt date două cifre. Scrieți un program care afișează numele în rusă ale cifrelor modulului diferenței acestor cifre.
22.
În sistemul de numere octale sunt date două cifre. Scrieți un program care afișează numele în rusă ale cifrelor sumei acestor două cifre.
23.
Dat un număr întreg pozitiv de două cifre în sistemul de numere septale. Scrieți un program care afișează, dacă cea mai mare cifră este de trei ori mai mare decât cea mai mică, numele cifrelor numărului în rusă, altfel

în limba engleză.
24.
Dat un număr întreg pozitiv de două cifre în sistemul de numere octale. Scrieți un program care să afișeze numele cifrei unui număr care are o valoare mai mare în rusă și în

Programare cu tablouri unidimensionale
87 este rangul cifrei numărului care are cea mai mică valoare,

în limba engleză.
25.
Dat un număr întreg pozitiv de două cifre în sistemul de numere septale. Scrieți un program care afișează numele cifrelor unui număr cu o valoare mai mică de 4, în rusă, și numele cifrelor unui număr cu o valoare mai mare sau egală cu 4,

în limba engleză.
26.
Dat un număr întreg pozitiv de două cifre în sistemul numeric hexazecimal. Scrieți un program care afișează numele cifrelor unui număr cu o valoare mai mică de 3 în rusă și numele cifrelor unui număr cu o valoare mai mare sau egală cu 3,

în limba engleză.
27.
Sunt date primele două litere (insensibile la majuscule, atât litere mici, cât și litere mari) ale numelui lunii anului. Scrieți un program care să afișeze numele complet al lunii din an în limba rusă.
28.
Sunt date primele două litere (insensibile la majuscule, atât litere mici, cât și litere mari) ale numelui zilei săptămânii. Scrieți un program care să afișeze numele complet al zilei săptămânii în limba rusă.
29.
Vechiul calendar japonez a adoptat un ciclu de 60 de ani, constând din cinci subcicluri de 12 ani. Subciclurile au fost desemnate prin nume de culori: verde, roșu, galben, alb și negru. În cadrul fiecărui subciclu, anii au fost numiți după animale: șobolan, vacă, tigru, iepure de câmp, dragon, șarpe, cal, oaie, maimuță, pui, câine și porc (1984 - anul șobolanului verde - a fost începutul următorului). ciclu). Scrieți un program care introduce numărul unui anumit an d.Hr. și imprimă numele acestuia conform vechiului calendar japonez.
30.
Dat un număr întreg pozitiv din două cifre în sistemul numeric din nouă cifre. Scrieți un program care afișează numele cifrelor unui număr cu o valoare mai mare de 5 în rusă și numele cifrelor unui număr cu o valoare mai mică sau egală cu 5,

în limba engleză.

88 Programarea algoritmilor liniari în sistem C++Builder
4 CICLIC DE PROGRAMARE
ALGORITMI ÎN SISTEMUL C++ BUILDER
Această secțiune examinează operatorii buclei de limbaj
C++, dobândirea abilităților în programarea algoritmilor ciclici, introducere
da, programe de compilare și depanare.
4.1
Concepte de bază
Pe limbă C++Builder Există trei operatori de buclă:
1.
Buclă cu precondiție ( în timp ce);
2.
Bucla cu postcondiție ( do);
3.
Bucla cu contor ( pentru).
Operator de buclă cu precondiție în timp ce (Figura 4.1):
în timp ce(condiție) (corp buclă)
Figura 4.1

Diagrama algoritmului operatorului de buclă în timp ce
Dacă rezultatul calculării condiţiei este adevărat(adevărat), atunci corpul buclei este executat și trecerea la verificarea condiției este efectuată din nou. Dacă rezultatul calculării condiţiei este fals(fals), apoi bucla iese și trece la operator care urmează operatorul ciclic în timp ce.
Dacă înainte de prima execuție a buclei valoarea expresiei a fost fals, corpul buclei nu este executat deloc și are loc trecerea la instrucțiunea următoare.
Stare
Corpul buclei
Da
Nu

Programare cu tablouri unidimensionale
89
Exemplu:
Calculați suma numerelor impare din intervalul de la 1 la 10.
( int k=1, s=0; în timp ce (k ( s+=k; k+=2;
}
}
Operator de buclă cu postcondiție do (Figura 4.2):
do(corp buclă) în timp ce(stare); da nicio conditie
Corpul buclei
Figura 4.2

Diagrama algoritmului operatorului de buclă face...în timp ce
Condiția este o expresie de tip logic, corpul buclei este o instrucțiune simplă sau compusă.
Corpul buclei declarației

Cu profesorul tău, alege o sarcină pentru muncă independentă din exercițiile de mai jos.

1. Calculați valorile expresiei:

a) sqr(x)+sqr(y)<=4 при x=0.3, y=-1.6;

b) k mod 7 = k div5-1 la k=15;

c) impar(trunc(10*p)) la p=0,182;

d) nu impar(n) pentru n=0;

e) t și (p mod 3=0) cu t=adevărat, p=101010;

e) (x*y<>0) și (y>x) pentru x=2, y=1;

g) (x*y<>0) sau (y>x) pentru x=2, y=1;

h) a sau (nu b) când a=Fals, b=Adevărat;

2. Scrieți o relație în Pascal care este adevărată când condiția specificată este îndeplinită și falsă în caz contrar:

a) întregul k este divizibil cu 7;

b) ecuația nu are rădăcini reale;

c) punctul (x, y) se află în afara cercului de rază R cu centrul în punctul (1,0);

d) numărul natural N este pătratul numărului natural;

f) x=max(x,y,z);

şi) (nu utilizați operațiunea not)g

h) cel puţin una dintre variabilele logice a şi b are valoarea Adevărat;

i) ambele variabile logice a și b au valoarea Adevărat.

3. Indicați ordinea operațiilor la calcularea expresiilor:

a) a și b sau nu c și d;

b) (x>=0) sau nu c și d.

4. Calculați următoarele expresii pentru a=adevărat, b=fals:

a) a sau b și nu a;

b) (a sau b) și nu a;

c) nu a și b;

d) nu (a și b)

5. Scrieți o expresie în Pascal care este adevărată dacă condiția specificată este îndeplinită și falsă în caz contrar:

a) x aparține segmentului ;

b) x se află în afara segmentului;

c)* x aparține segmentului sau [-1, 1];

d)* x se află în afara segmentelor și [-1, 1];

e) fiecare dintre numerele x, y, z este pozitiv;

g) niciunul dintre numerele x, y, z nu este pozitiv;

h) doar unul dintre numerele x, y, z este pozitiv;

i) variabila logică a are valoarea Adevărat, variabila logică b are valoarea Fals;

j)* un an cu un număr de serie y este un an bisect (un an bisect dacă numărul său este un multiplu de 4, dar dintre multiplii lui 100, numai multiplii de 400 sunt ani bisecti, de exemplu, 1700, 1800 și 1900 sunt ani non-bisecți, 2000 este un an bisect).

6. Desenați pe planul (x, y) aria în care și numai în care expresia indicată este adevărată:

a)* (y>=x) și (y+x>=0) și (y<=1);

b) (sqr(x)+sqr(y)<1) or (y>0) și (abs(x)<=1);

c) (trunc(y)=0 și (rotunzi(x)=0);

d)* (abs(x)<=1)>(abs(y)>=1);

d) (sqr(x)+sqr(y)<=4)=(y<=x).

7) Există un operator condiționat:

writeln (‘ura!’)

scrieți („rău...”)

Este posibil să-l înlocuiți cu următoarele afirmații:

a) dacă d=10 b) dacă nu (d=10)

writeln (‘ura!’) writeln (‘ura!’)

writeln('rau...'); writeln('rau...');

c) dacă nu (d=10) d) dacă nu (d<>10)

writeln ('rău...') writeln ('rău...')

writeln('ura!'); writeln('ura!');

8) Care vor fi valorile variabilelor j, k după executarea instrucțiunii condiționate:

dacă valorile inițiale ale variabilelor sunt egale:

Nota. Ca urmare a executării operatorului dec (k,2), valoarea variabilei k este redusă cu 2.



Ce altceva de citit