Logički izrazi. Logički izrazi X pripada segmentu

Lekcija iz serije “ Geometrijski algoritmi»

Zdravo dragi čitaoče!

Danas ćemo pogledati još jedan tipičan problem iz serije geometrijskih algoritama. Napišimo funkciju koja će provjeriti pripadanje proizvoljno tačke na segmentu, dat koordinatama njegovog početka i kraja.

Da bismo implementirali operacije poređenja nad stvarnim podacima, napisat ćemo još dvije funkcije: funkciju EqPoint() koja će provjeriti da li se dvije točke na ravnini poklapaju i funkciju RealMoreEq() koju ćemo koristiti za provjeru “>=” odnos (veći ili jednak). Razlog za uvođenje posebnih funkcija nam je već poznat.

Zadatak. provjeriti, pripada da li tačka na segmentu.

Neka su tačke početne i krajnje tačke segmenta. — proizvoljna tačka na ravni.

Vektor sa početkom u tački i krajem u tački imat će koordinate (x2-x1, y2-y1).

Ako je P(x, y) proizvoljna tačka, tada su koordinate vektora jednake: (x-x1, y – y1).

Tačka P će pripadati segmentu ako:

Program geom3; Const_Eps: Real = 1e-3; (preciznost proračuna) var x1,y1,x2,y2,x,y:real; Funkcija RealEq(Const a, b:Real):Boolean; (strogo jednako) započeti RealEq:= Abs(a-b)<= _Eps End; {RealEq} Function RealMoreEq(Const a, b:Real):Boolean; {больше или равно} begin RealMoreEq:= a - b >=_EpsEnd; (RealMoreEq) Funkcija EqPoint(x1,y1,x2,y2:real):Boolean; (Da li se dve tačke na ravni poklapaju) begin EqPoint:=RealEq(x1,x2)i RealEq(y1,y2) end; (EqPoint) Funkcija AtOtres(x1,y1,x2,y2,x,y:real):Boolean; (Provjera da li tačka P pripada segmentu P1P2) Počinje Ako EqPoint(x1,y1,x2,y2) Tada AtOtres:= EqPoint(x1,y1,x,y) (tačke P1 i P2 se poklapaju, rezultat je određen podudarnost tačaka P1 i P) Drugo AtOtres:= RealEq((x-x1)*(y2-y1)- (y-y1)*(x2-x1),0)i (RealMoreEq(x,x1)i RealMoreEq( x2,x)Ili RealMoreEq(x ,x2)i RealMoreEq(x1,x)) end; (AtOtres) započeti (glavni) writeln(Unesite koordinate tačaka: x1,y1,x2,y2,x,y"); readln(x1,y1,x2,y2,x,y); ako je AtOtres(x1, y1,x2 ,y2,x,y) zatim writeln("Da.") else writeln("Ne."); kraj. (glavni)

Rezultati izvođenja programa.

Unesite koordinate tačke: x1, y1, x2, y2, x,y
0.5 1 2.5 2.8 1.203 1.633
Da.

Rezultati testiranja u programu GeoGebra:


Danas smo napisali funkciju AtOtres(), koja provjerava da li proizvoljna tačka pripada segmentu određenom svojim koordinatama.

Uvedene su još dvije funkcije: EqPoint() i RealMoreEq() za implementaciju operacija poređenja na stvarnim podacima. Prvi provjerava da li se dvije tačke na ravni poklapaju, drugi se koristi za provjeru odnosa “>=”.

U sledećoj lekciji, na osnovu prethodno napisanih postupaka, napisaćemo proceduru za određivanje koordinata tačke preseka dva segmenta.

Ovim se opraštam od tebe. Vidimo se na sledećoj lekciji.

Sa svojim nastavnikom odaberite zadatak za samostalan rad iz donjih vježbi.

1. Izračunajte vrijednosti izraza:

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

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

c) odd(trunc(10*p)) na p=0,182;

d) nije neparan(n) za n=0;

e) t i (p mod 3=0) sa t=true, p=101010;

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

g) (x*y<>0) ili (y>x) za x=2, y=1;

h) a ili (ne b) kada je a=Netačno, b=Tačno;

2. Napišite relaciju u Pascalu koja je istinita kada je specificirani uvjet ispunjen i lažna u suprotnom:

a) cijeli broj k je djeljiv sa 7;

b) jednačina nema realne korijene;

c) tačka (x, y) leži izvan kruga poluprečnika R sa centrom u tački (1,0);

d) prirodni broj N je kvadrat prirodnog broja;

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

i) (ne koristite operaciju ne)g

h) barem jedna od logičkih varijabli a i b ima vrijednost Tačno;

i) obje logičke varijable a i b imaju vrijednost Tačno.

3. Navedite redoslijed operacija prilikom izračunavanja izraza:

a) a i b ili ne c i d;

b) (x>=0) ili ne c i d.

4. Izračunajte sljedeće izraze za a=Tačno, b=Netačno:

a) a ili b a ne a;

b) (a ili b) a ne a;

c) ne a i b;

d) ne (a i b)

5. Napišite izraz u Pascalu koji je istinit kada je specificirani uvjet ispunjen i lažan u suprotnom:

a) x pripada segmentu;

b) x leži izvan segmenta;

c)* x pripada segmentu ili [-1, 1];

d)* x leži izvan segmenata i [-1, 1];

e) svaki od brojeva x, y, z je pozitivan;

g) nijedan od brojeva x, y, z nije pozitivan;

h) samo jedan od brojeva x, y, z je pozitivan;

i) logička varijabla a ima vrijednost Tačno, logička varijabla b ima vrijednost False;

j)* godina sa serijskim brojem y je prijestupna godina (prijestupna godina ako je njen broj višestruki od 4, ali od višekratnika od 100, samo višekratnici od 400 su prijestupne godine, na primjer, 1700, 1800 i 1900 nisu prijestupne godine, 2000. je prijestupna godina).

6. Nacrtaj na ravan (x, y) oblast u kojoj i samo u kojoj je naznačeni izraz tačan:

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 (round(x)=0);

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

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

7) Postoji uslovni operator:

writeln ('ura!')

writeln ('loše...')

Da li ga je moguće zamijeniti sljedećim izjavama:

a) ako je d=10 b) ako nije (d=10)

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

writeln('loše...'); writeln('loše...');

c) ako nije (d=10) d) ako nije (d<>10)

writeln ('loše...') writeln ('loše...')

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

8) Koje će biti vrijednosti varijabli j, k nakon izvršenja uvjetne naredbe:

ako su početne vrijednosti varijabli jednake:

Bilješka. Kao rezultat izvršavanja dec (k,2) operatora, vrijednost varijable k se smanjuje za 2.

Bulove varijable obično dobijaju svoje vrednosti izvođenjem poređenja i matematičkih operacija (o kojima je bilo reči u prethodnoj lekciji), kao i korišćenjem specifičnih Booleovih operacija.

Turbo Pascal ima logičke operacije koje se primjenjuju na varijable logičkog tipa. Ovo su operacije not, i, ili i xor. U ovoj temi ćete pogledati tri logičke operacije. Oznake i rezultati ovih operacija dati su u tabeli. Razmotrite to.

Operacija ne(ne) ima jedan operand i formira svoju logičku negaciju. Rezultat ne operacije je False ako je operand istinit, i True ako je operand lažan. dakle,

nije istina netačno (neistina je laž)

nije netačno istina (nije laž istina)

Rezultat operacije i(i) je istinit samo ako su oba njegova operanda tačna, i lažna u svim ostalim slučajevima.

Rezultat operacije ili(ili) je istinit ako je jedan od njegovih operanda tačan, a netačan samo ako su oba operanda netačna.

Vježbajte . Pokušajte odrediti značenje Booleovih operacija za izjave:

  1. Učenik ostaje kod kuće tokom zimskog raspusta ili odlazi negde na odmor.
  2. Philip Kirkorov je pjevač i kombajner.
  3. Školarci su dečaci i devojčice..

Logičke operacije, relacijske operacije i aritmetičke operacije često se pojavljuju u istom izrazu. U ovom slučaju, relacije lijevo i desno od znaka logičke operacije moraju biti zatvorene u zagrade, budući da logičke operacije imaju veći prioritet. Općenito, prihvaćen je sljedeći prioritet operacija:

  • i, *, /, div, mod
  • ili, +, -
  • operacije odnosa..

. Logička operacija i naziva se i logičko množenje, a logička operacija ili se naziva i logičko zbrajanje.

Pored toga, redosled operacija se može promeniti zagradama. Na primjer, u logičkom izrazu uredit ćemo redoslijed akcija

A ili B a ne (A ili B)

Prvo se izvodi operacija ili zatvorena u zagradama, a zatim operacije not i ili. Ako zamijenimo vrijednosti True i False umjesto varijabli A i B, tada, koristeći proceduru o kojoj smo već raspravljali, dobivamo vrijednost cijelog izraza jednaku Tačno.

Vježbajte . Zapišite u svoju bilježnicu i izračunajte vrijednosti izraza za a=10, b=20, c=true, d=false:

  • (a>5) i (b>5) i (a<20) and (b<30);
  • ne (a<15) or not (b<30);
  • c ili d i (b=20);

Pažnja! U Pascal-u ne postoji način da se unesu Booleovi podaci pomoću operatora čitanja. Međutim, moguće je ispisati vrijednosti varijabli boolean tipa pomoću operatora pisanja.

Na primjer, nakon izvršenja naredbe write (5>2), na ekranu će biti prikazano True.

Samostalan rad

Sa svojim nastavnikom odaberite zadatak za samostalan rad iz donjih vježbi.

  1. Izračunajte vrijednosti izraza:

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

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

    c) odd(trunc(10*p)) na p=0,182;

    d) nije neparan(n) za n=0;

    e) t i (p mod 3=0) sa t=true, p=101010;

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

    g) (x*y<>0) ili (y>x) za x=2, y=1;

    h) a ili (ne b) kada je a=Netačno, b=Tačno;

  2. Napišite relaciju u Pascalu koja je istinita ako je navedeni uvjet ispunjen i lažna u suprotnom:

    a) cijeli broj k je djeljiv sa 7;

    b) tačka (x, y) leži izvan kruga poluprečnika R sa centrom u tački (1,0);

    c) prirodni broj N je kvadrat prirodnog broja;

    d) 0

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

    e) najmanje jedna od logičkih varijabli a i b ima vrijednost Tačno;

    g) obje logičke varijable a i b imaju vrijednost Tačno.

  3. Navedite redoslijed operacija prilikom evaluacije izraza:

    a) a i b ili ne c i d;

    b) (x>=0) ili ne c i d.

  4. Procijenite sljedeće izraze kada je a=Tačno, b=Netačno:

    a) a ili b a ne a;

    b) (a ili b) a ne a;

    c) ne a i b;

    d) ne (a i b)

  5. Napišite izraz u Pascalu koji je istinit ako je navedeni uvjet ispunjen i lažan u suprotnom:

    a) x pripada segmentu;

    b) x leži izvan segmenta;

    c)* x pripada segmentu ili [-1, 1];

    d)* x leži izvan segmenata i [-1, 1];

    e) svaki od brojeva x, y, z je pozitivan;

    g) nijedan od brojeva x, y, z nije pozitivan;

    h) samo jedan od brojeva x, y, z je pozitivan;

    i) logička varijabla a ima vrijednost Tačno, logička varijabla b ima vrijednost False;

    j)* godina sa serijskim brojem y je prijestupna godina (prijestupna godina ako je njen broj višestruki od 4, ali od višekratnika od 100, samo višekratnici od 400 su prijestupne godine, na primjer, 1700, 1800 i 1900 nisu prijestupne godine, 2000. je prijestupna godina).

  6. Nacrtaj na ravan (x, y) oblast u kojoj i samo u kojoj je naznačeni izraz tačan:

    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 (round(x)=0);

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

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

  7. Postoji uslovni operator:
    ako d<>10
    onda
    writeln ('ura!')
    ostalo
    writeln('loše...');

    Da li ga je moguće zamijeniti sljedećim izjavama:

  8. Koje će biti vrijednosti varijabli j, k nakon izvršenja uvjetne naredbe:
    ako je j>k
    onda
    j:=k-2
    ostalo
    dec(k,2);
    ako su početne vrijednosti varijabli jednake:
    a) j=3, k=5;
    b) j=3, k=3;
    c) j=3, k=2.

Bilješka . Kao rezultat izvršavanja dec (k,2) operatora, vrijednost varijable k se smanjuje za 2.

Varijable Boolean tipa su opisane pomoću identifikatora Boolean . Mogu imati samo dva značenja - False (laži) I Istinito (istinito). Oni su također opisani u odjeljku opisa varijable. Var<имя>:Boolean;

Logički izrazi mogu uključivati:

n logičkih vrijednosti,

n relacijske operacije (<- меньше, >- više,<=- меньше или равно, >=- veće ili jednako,<>- nije jednako, =- jednako).

n logičke operacije I, Ili, Ne

n dec. radnje i funkcije


Turbo Pascal ima logičke operacije koje se primjenjuju na varijable logičkog tipa. Ovo su operacije not, i, ili i xor.

Operacija ne(ne) ima jedan operand i formira svoju logičku negaciju. Rezultat ne operacije je False ako je operand istinit, i True ako je operand lažan. Dakle, nije True False (neistina je laž) nije False Tačno (nije laž je istina).

Rezultat operacije i(i) je istinit samo ako su oba njegova operanda tačna, i lažna u svim ostalim slučajevima (logičko množenje).

Rezultat operacije ili(ili) je istinit ako je jedan od njegovih operanda tačan, a netačan samo ako su oba operanda netačna (logički zbrajanje).

Logičke operacije, relacijske operacije i aritmetičke operacije često se pojavljuju u istom izrazu. U ovom slučaju, relacije lijevo i desno od znaka logičke operacije moraju biti stavljene u zagrade, jer logičke operacije imaju viši prioritet. Općenito, prihvaćen je sljedeći prioritet operacija:

2. i, *, /, div, mod

3. ili, +, -

4. operacije odnosa (<- меньше, >- više,<=- меньше или равно, >=- veće ili jednako,<>- nije jednako, =- jednako).

Pored toga, redosled operacija se može promeniti zagradama. Na primjer, u logičkom izrazu uredit ćemo redoslijed akcija:

AorBandnot(AorB)


Prvo se izvodi operacija ili zatvorena u zagradama, a zatim operacije not i ili. Ako zamijenimo vrijednosti True i False umjesto varijabli A i B, tada, koristeći proceduru o kojoj smo već raspravljali, dobivamo vrijednost cijelog izraza jednaku Tačno.

Vježba 5: . Zapišite u svoju svesku i izračunajte značenje izraza

sa a=10, b=20, c=tačno, d=netačno: A)(a>5) i (b>5) i (a<20) and (b<30);

b) ne (a<15) or not (b<30);

c) c ili d i (b=20).

Pažnja ! U Pascal-u ne postoji način da se unesu Booleovi podaci pomoću operatora čitanja. Međutim, moguće je ispisati vrijednosti varijabli boolean tipa pomoću operatora pisanja. Na primjer, nakon izvršenja naredbe pisanja (5>2), na ekranu će biti prikazano True.

Pitanja i zadaci za domaći zadatak:

1. Kako se opisuje logička varijabla i koje vrijednosti može imati?

2. Šta se može uključiti u logičke izraze. Navedite primjere jednostavnih logičkih izraza.

3. Recite nam o logičkim operacijama u Pascal-u. Navedite primjere složenih logičkih izraza.

4. Koji je prioritet raznih operacija u Pascalu. Navedite primjer.


Zadaci:

№19.

A. cijeli broj k je djeljiv sa 7;

B. Barem jedan od cijelih brojeva x, y je paran;

G. x=max(x,y,z), to jest, x je najveći od tri broja x,y,z;

D. (nemojte koristiti operaciju ne)

E. barem jedna od logičkih varijabli a i b ima vrijednost Tačno;

G. obje logičke varijable a i b imaju vrijednost Tačno.

№20. Navedite redoslijed operacija prilikom evaluacije izraza:

A) a i b ili ne c i d; b) (x>=0) ili ne c i d.

№21. Procijenite sljedeće izraze kada je a=Tačno, b=Netačno:

A) a ili b a ne a; b)(a ili b), a ne a; V) ne a i b; G) ne (a i b)

№22. Napravite program: Na prijemnim ispitima kandidat je polagao fiziku, informatiku i esej. Kandidat će biti primljen ako dobije 5 iz informatike i osvoji najmanje 13 bodova za tri ispita. Da li je tačno da je primljen (izlaz Tačno/Netačno)?

§ 8. Rešavanje zadataka na temu „Linearni programi. Logičke vrijednosti."

Pr. 7 . Izračunajte vrijednosti izraza:

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

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

c) odd(trunc(10*p)) na p=0,182;

d) nije neparan(n) za n=0;

e) t i (p mod 3=0) sa t=true, p=101010;

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

g) (x*y<>0) ili (y>x) za x=2, y=1;

h) a ili (ne b) kada je a=Netačno, b=Tačno;

Pr. 8. Napišite izraz u Pascalu koji je istinit ako je navedeni uvjet ispunjen i lažan u suprotnom:

a) x pripada segmentu;

b) x leži izvan segmenta;

c)* x pripada segmentu ili [-1, 1];

d)* x leži izvan segmenata i [-1, 1];

e) svaki od brojeva x, y, z je pozitivan;

g) nijedan od brojeva x, y, z nije pozitivan;

h) samo jedan od brojeva x, y, z je pozitivan;

i) logička varijabla a ima vrijednost Tačno, logička varijabla b ima vrijednost False;


j)* godina sa serijskim brojem y je prijestupna godina (prijestupna godina ako je njen broj višestruki od 4, ali od višekratnika od 100, samo višekratnici od 400 su prijestupne godine, na primjer, 1700, 1800 i 1900 nisu prijestupne godine, 2000. je prijestupna godina).

Pr. 9 . Nacrtaj na ravan (x, y) oblast u kojoj i samo u kojoj je naznačeni izraz tačan:

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 (round(x)=0);

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

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

Pr. 10 ..Knjiga košta X rubalja. Kupac ima novčanice u apoenima od 50, 10, 5, 1 rublje. Koliko i koje račune trebate uzeti da biste platili knjigu sa minimalnim brojem računa?

. X pripada segmentu ;
x leži izvan segmenta;
x pripada segmentu ili [-1,1];
x leži izvan segmenta ili [-1,1].
3.
Objasnite strukturu i pravila za izvršavanje uslovnih naredbi.
4.
Napišite navedenu akciju kao jednu uslovnu naredbu:
cos
2
x, na 0x at =
1-sin
2
x, inače.
5.
z
int z=0, x=1, y=

1;

80 Programiranje linearnih algoritama u sistemu C++Builder
ako (x>0) ako (y>0) z=1; ostalo z=2;
6.
Koju će vrijednost imati varijabla? z nakon izvršenja operatora:
int z=0, x=

1, y=1;
if (x) (ako (y>0) z=1;) else z=2;
7.
Koju će vrijednost imati varijabla? z nakon izvršenja operatora:
int z=0, x=0, y=1;
if (x) (ako (y>0) z=1;) else z=2;
8.
Koju će vrijednost imati varijabla? z nakon izvršenja operatora:
int z=0, x=3, y=1;
if (x) (ako (y) z=1;) else z=2;
9.
Molimo navedite greške u sljedećim izjavama:
ako (1
inače x=0; y+= 1;
10.
int z=0, x=0, y=1;
ako (!x) ( ako (!(y

1)) z=1;) inače z=2;
11.
Koju će vrijednost imati varijabla z nakon izvršenja naredbi:
int z=0, x=1, y=1;
ako (!x) ( ako (!(y

1)) z=1;) inače z=2;
12.
Pronađite greške u fragmentu programa:
(int n,x; prekidač (k) slučaj + : x:=x-4 prekid; slučaj

-

,

*

, x=5;
}
Koja su pravila prekršena i kako se greške mogu ispraviti?


81
3.4
Individualni zadaci za dio 3
Svaki učenik treba da riješi dva zadatka prvog i drugog nivoa složenosti.
Problemi prvog nivoa težine.
1.
Dat vam je četverocifreni pozitivan cijeli broj. Napišite program koji štampa istinito ili false ovisno o tome da li je navedeni uvjet ispunjen ili ne: zbir 1 i 4 znamenke jednak je proizvodu 2 i 3 cifre.
2.
Dati realni brojevi x, y. Ako su x i y negativni, zamijenite svaku vrijednost njenim modulom; ako je samo jedan od njih negativan, povećajte obje vrijednosti za 5,5; u drugim slučajevima smanjite obje vrijednosti za 10 puta.
3.
Dati realni brojevi x, y. Ako su x i y pozitivni, smanjite svaku vrijednost za 5 puta; ako su obje vrijednosti u rasponu [-3, 9], zamijenite obje vrijednosti sa 0; u drugim slučajevima povećajte x i y za 3.
4.
Dati realni brojevi x, y (xy). Zamijenite manji od ova dva broja njihovim poluzbirom, a veći njihovim dvostrukim umnoškom.
5.
Ako je zbir tri različita realna broja x, y, z manji od 1, onda zamijenite najmanji od ova tri broja poluzbirom druga dva; u suprotnom, zamijenite manji od x i y sa polovičnim zbrojem preostale dvije vrijednosti.
6.
Dati realni brojevi a, b, c, d. Ako a b>c>d, onda ostavite brojeve nepromijenjene; u suprotnom, zamijenite sve brojeve kvadratima.
7.
Odredite da li je šestocifreni cijeli broj srećan. (Broj se naziva sretnim ako je zbir njegove prve tri cifre jednak zbiru njegove posljednje tri cifre.)
8.
istinito ili false u zavisnosti od toga da li je navedeni uslov ispunjen ili ne: za proizvoljne realne brojeve a, b, c utvrditi da li jednačina ax
2
+bx+c=0 najmanje jedno realno rješenje.

82 Programiranje linearnih algoritama u sistemu C++Builder
9.
Da biste riješili sljedeći problem, napišite program koji ispisuje istinito ili false u zavisnosti od toga da li je navedeni uslov ispunjen ili ne: odredite da li je zbir prve dve cifre datog četvorocifrenog broja jednak zbiru njegova poslednja dva broja.
10.
Neke obrazovne ustanove imaju sljedeća pravila prijema. Kandidati polažu dva ispita koja se ocjenjuju prema
Po 100 poena. Ako kandidat osvoji najmanje 150 bodova, onda to daje pravo da se upiše u redovni odjel, od 100 do 149 - u večernji odjel; ispod 100 bodova znači odbijanje upisa na studij. Napišite program koji, u zavisnosti od osvojenih bodova, informiše kandidata o njegovim pravima na upis.
11.
Napišite program koristeći operator selekcije da dobijete verbalni opis oznaka. (1 – “loše”, 2 –
„nezadovoljavajuće“, 3 – „zadovoljavajuće“, 4 – „dobro“, 5 –
"Sjajno".)
12.
Da biste riješili sljedeći problem, napišite program koji ispisuje istinito ili false u zavisnosti od toga da li je navedeni uslov ispunjen ili ne: utvrditi da li među ciframa datog trocifrenog broja ima identičnih.
13.
Napišite program koji štampa istinito, ako je datum d1, m1 prethodi (unutar jedne godine) datumu d2, m2 i značenje false inače.
14.
Napišite program koristeći operator odabira koji, na osnovu prvog slova imena, prikazuje puno ime na ekranu
(Ivan, Petar, Nikolaj, Vladimir, Georgij).
15.
Napišite program koristeći operator selekcije, koji je, na osnovu unesene cifre, 0≤ k≤ 5 ispisuje naziv ovog broja na ruskom i engleskom jeziku.
16.
Dat je cijeli broj k (1

k

365). Odredite da li će k-ti dan u godini biti vikend ili radni dan, ako je 1. januar ponedjeljak.
17.
Dat je pravi broj x. Izračunati f, Ako:











grijeh
,
1 0
,
0 5
2 11 2
slučajevima
ostalo
V
x
x
x
at
x
x
x
at
f

Programiranje sa jednodimenzionalnim nizovima
83 18.
Dat je pravi broj x. Napišite program za izračunavanje f:












34 5
,
12 3
lg ln
,
3 5
1 3
2 4
slučajevima
ostalo
V
x
x
x
at
x
x
x
at
f
19.
Napišite program koristeći operator odabira koji na osnovu prvog slova naziva grada prikazuje puno ime grada (Kursk, Moskva, Tula, Novgorod, Voronjež).
20.
Napišite program koristeći operator selekcije koji na osnovu prvog slova prezimena prikazuje puno prezime (Ivanov, Petrov, Sidorov, Myshkin, Shishkin).
21.
Date su koordinate centra i polumjer kružnice. Odredite da li određena tačka sa koordinatama (x,y) pripada krugu.
22.
Napišite program koristeći operator selekcije koji će na osnovu prvog slova unesenog imena životinje ispisati puno ime životinje (pas, mačka, žirafa, konj, majmun).
23.
Zadana tri različita broja a,b,c. Poredajte ove brojeve uzlaznim redom tako da a odgovara najmanjem broju b- prosječan broj, c– najveći.
24.
Napišite program koristeći operator odabira koji prikazuje naziv dana u sedmici po broju (od 1 do 7).
25.
Napišite program koristeći operator odabira koji prikazuje naziv mjeseca u godini brojem (od 1 do 12).
26.
Napišite program koristeći operator selekcije, koji na osnovu unesenog prvog slova naziva sezone u godini ispisuje puni naziv sezone u godini.
27.
Dat vam je petocifreni pozitivan cijeli broj. Napišite program koji štampa istinito ili false u zavisnosti od toga da li je navedeni uslov ispunjen ili ne: zbir 1, 3 i 5 cifara je veći od umnoška 2 i 4 cifre.
28.
Dat vam je četverocifreni pozitivan cijeli broj. Napišite program koji štampa istinito ili false zavisno od

84 Programiranje linearnih algoritama u sistemu C++Builder da li je navedeni uslov ispunjen ili ne: aritmetička sredina 1 i
4 cifre su veće od zbira 2 i 3 cifre.
29.
Dat je cifra i trocifreni broj u decimalnom brojevnom sistemu. Ako se cifra poklapa sa najvišom znamenkom broja, onda izračunajte zbir cifara broja. Ako se znamenka poklapa sa srednjom znamenkom broja, onda izračunajte proizvod znamenki broja. Ako se znamenka poklapa s najmanjom značajnom znamenkom broja, onda izračunajte aritmetičku sredinu znamenki broja. Ako nijedan od uslova nije ispunjen, onda izračunajte geometrijsku sredinu cifara broja.
30.
Dat je cifra i trocifreni broj u decimalnom brojevnom sistemu. Ako se znamenka poklapa s najvišom znamenkom broja, onda izračunajte aritmetičku sredinu znamenki broja. Ako se znamenka poklapa sa srednjom znamenkom broja, onda izračunajte geometrijsku sredinu znamenki broja. Ako se cifra poklapa sa najmanjom značajnom znamenkom broja, onda izračunajte zbir cifara broja. Ako nijedan od uslova nije ispunjen, onda izračunajte proizvod cifara broja
Problemi drugog stepena težine.
1.
Dat je dvocifreni pozitivan cijeli broj u ternarnom brojevnom sistemu. Napišite program koji prikazuje nazive cifara broja na ruskom ako je najviša cifra broja veća od najniže, u suprotnom
- na engleskom.
2.
Dat je cjelobrojni dvocifreni pozitivan broj u petocifrenom brojevnom sistemu. Napišite program koji prikazuje nazive cifara broja na engleskom ako je najviša cifra broja veća od najniže, u suprotnom
- na ruskom.
3.
Dat je cjelobrojni dvocifreni pozitivan broj u petocifrenom brojevnom sistemu. Napišite program koji prikazuje nazive cifara broja na engleskom ako je najviša cifra broja tačno 2 puta veća od najniže, u suprotnom
- na ruskom.
4.
Dat je dvocifreni pozitivan cijeli broj u ternarnom brojevnom sistemu. Napišite program koji prikazuje nazive cifara broja na ruskom ako je najviša cifra broja manja od najniže, u suprotnom
- na engleskom.

Programiranje sa jednodimenzionalnim nizovima
85 5.
Dat je cjelobrojni dvocifreni pozitivan broj u petocifrenom brojevnom sistemu. Napišite program koji prikazuje nazive cifara broja na ruskom jeziku.
6.
Dat je cjelobrojni dvocifreni pozitivan broj u oktalnom brojevnom sistemu. Napišite program koji prikazuje nazive cifara broja na ruskom jeziku.
7.
Dat je cjelobrojni dvocifreni pozitivan broj u oktalnom brojevnom sistemu. Napišite program koji prikazuje, ako je glavna cifra manja od polovine manje cifre, nazive cifara broja na engleskom, u suprotnom

na ruskom.
8.
Dat je cjelobrojni dvocifreni pozitivan broj u septalnom brojevnom sistemu. Napišite program koji prikazuje, ako su brojevi raspoređeni u opadajućem redoslijedu, nazive cifara broja na engleskom jeziku, u suprotnom

na ruskom.
9.
Dvije cifre su date u decimalnom brojevnom sistemu. Napišite program koji na engleskom prikazuje nazive cifara zbira ovih cifara.
10.
Dvije cifre su date u decimalnom brojevnom sistemu. Napišite program koji prikazuje nazive na ruskom jeziku brojeva proizvoda ovih brojeva.
11.
Dvije cifre su date u decimalnom brojevnom sistemu. Napišite program koji na ruskom jeziku prikazuje naziv cifara modula razlike između ovih cifara.
12.
Dvije cifre su date u decimalnom brojevnom sistemu. Napišite program koji prikazuje nazive cifara na engleskom za količnik i ostatak celobrojnog dijeljenja ovih brojeva.
13.
Dat je dvocifreni pozitivan cijeli broj u devetocifrenom brojevnom sistemu. Napišite program koji prikazuje, ako je najviša cifra tri puta veća od najniže, nazive cifara broja na engleskom jeziku, u suprotnom

na ruskom.
14.
Dat je dvocifreni pozitivan cijeli broj u devetocifrenom brojevnom sistemu. Napišite program koji prikazuje naziv cifre broja koji ima veću vrijednost na engleskom i naziv cifre broja koji ima manju vrijednost.

na ruskom.

86 Programiranje linearnih algoritama u sistemu C++Builder
15.
Dat je dvocifreni pozitivan cijeli broj u septalnom brojevnom sistemu. Napišite program koji prikazuje naziv cifre broja koji ima veću vrijednost na engleskom i naziv cifre broja koji ima manju vrijednost.

na ruskom.
16.
Dat je dvocifreni pozitivan cijeli broj u heksadecimalnom brojevnom sistemu. Napišite program koji prikazuje nazive cifara broja na engleskom jeziku.
17.
Zadana su dva cjelobrojna dvocifrena pozitivna broja u ternarnom brojevnom sistemu. Napišite program koji prikazuje nazive cifara zbira ovih brojeva na ruskom jeziku.
18.
Zadana su dva cjelobrojna dvocifrena pozitivna broja u binarnom brojevnom sistemu. Napišite program koji prikazuje nazive cifara zbira ovih brojeva na engleskom jeziku.
19.
Dat je dvocifreni pozitivan cijeli broj u petocifrenom brojevnom sistemu. Napišite program koji prikazuje, ako su brojevi poređani rastućim redoslijedom, nazive cifara broja na engleskom jeziku, i inače

na ruskom.
20.
Dat je dvocifreni pozitivan cijeli broj u heksadecimalnom brojevnom sistemu. Napišite program koji prikazuje, ako je najviša cifra pet puta veća od najniže, nazive cifara broja na ruskom jeziku, u suprotnom

na engleskom.
21.
Dvije cifre su date u oktalnom brojevnom sistemu. Napišite program koji na ruskom jeziku prikazuje nazive cifara modula razlike između ovih cifara.
22.
Dvije cifre su date u oktalnom brojevnom sistemu. Napišite program koji na ruskom jeziku prikazuje nazive cifara zbira ove dvije cifre.
23.
Dat je dvocifreni pozitivan cijeli broj u septalnom brojevnom sistemu. Napišite program koji prikazuje, ako je najviša cifra tri puta veća od najniže, nazive cifara broja na ruskom, u suprotnom

na engleskom.
24.
Dat je dvocifreni pozitivan cijeli broj u oktalnom brojevnom sistemu. Napišite program koji prikazuje naziv cifre broja koji ima veću vrijednost na ruskom i in

Programiranje sa jednodimenzionalnim nizovima
87 je rang cifre broja koji ima najmanju vrijednost,

na engleskom.
25.
Dat je dvocifreni pozitivan cijeli broj u septalnom brojevnom sistemu. Napišite program koji prikazuje naziv cifara broja čija je vrijednost manja od 4 na ruskom jeziku i naziv cifara broja čija je vrijednost veća ili jednaka 4,

na engleskom.
26.
Dat je dvocifreni pozitivan cijeli broj u heksadecimalnom brojevnom sistemu. Napišite program koji prikazuje naziv cifara broja čija je vrijednost manja od 3 na ruskom jeziku i naziv cifara broja čija je vrijednost veća ili jednaka 3,

na engleskom.
27.
Navedena su prva dva slova (neosjetljivo na velika i mala slova, i mala i velika) imena mjeseca u godini. Napišite program koji prikazuje puni naziv mjeseca u godini na ruskom jeziku.
28.
Navedena su prva dva slova (neosjetljivo na velika i mala slova, i mala i velika) imena dana u sedmici. Napišite program koji prikazuje puni naziv dana u sedmici na ruskom jeziku.
29.
Stari japanski kalendar usvojio je 60-godišnji ciklus, koji se sastoji od pet 12-godišnjih podciklusa. Podciklovi su označeni nazivima boja: zelena, crvena, žuta, bijela i crna. Unutar svakog podciklusa godine su nazvane po životinjama: štakor, krava, tigar, zec, zmaj, zmija, konj, ovca, majmun, kokoška, ​​pas i svinja (1984. godina zelenog štakora je početak sljedećeg ciklus). Napišite program koji upisuje broj određene godine nove ere i ispisuje njen naziv prema starom japanskom kalendaru.
30.
Dat je dvocifreni pozitivan cijeli broj u devetocifrenom brojevnom sistemu. Napišite program koji prikazuje naziv cifara broja čija je vrijednost veća od 5 na ruskom jeziku i naziv cifara broja čija je vrijednost manja ili jednaka 5,

na engleskom.

88 Programiranje linearnih algoritama u sistemu C++Builder
4 CIKLIČNO PROGRAMIRANJE
ALGORITMI U C++ BUILDER SISTEMU
Ovaj odjeljak ispituje operatore jezičke petlje
C++, sticanje vještina programiranja cikličkih algoritama, uvod
da, kompajliranje i otklanjanje grešaka programa.
4.1
Osnovni koncepti
Na jeziku C++Builder Postoje tri operatora petlje:
1.
Petlja s preduvjetom ( dok);
2.
Petlja sa postuslovom ( uradi);
3.
Petlja sa brojačem ( za).
Operator petlje s preduvjetom dok (Slika 4.1):
dok(stanje) (telo petlje)
Slika 4.1

Dijagram algoritma operatora petlje dok
Ako je rezultat izračunavanja uvjeta istinito(tačno), tada se izvršava tijelo petlje i ponovo se vrši prijelaz na provjeru uvjeta. Ako je rezultat izračunavanja uvjeta false(false), tada petlja izlazi i prelazi na naredbu koja slijedi nakon cikličkog operatora dok.
Ako je prije prvog izvršavanja petlje vrijednost izraza bila false, tijelo petlje se uopće ne izvršava i dolazi do prijelaza na sljedeći izraz.
Stanje
Loop Body
Da
br

Programiranje sa jednodimenzionalnim nizovima
89
primjer:
Izračunajte zbir neparnih brojeva u rasponu od 1 do 10.
( int k=1, s=0; dok (k ( s+=k; k+=2;
}
}
Operator petlje sa postuslovom uradi (Slika 4.2):
uradi(telo petlje) dok(stanje); da nema uslova
Loop Body
Slika 4.2

Dijagram algoritma operatora petlje uradi...dok
Uslov je izraz logičkog tipa, tijelo petlje je jedna jednostavna ili složena izjava.
Tijelo petlje iskaza

Ako pronađete grešku, odaberite dio teksta i pritisnite Ctrl+Enter.