X ეკუთვნის სეგმენტს. თემა: ლოგიკური მონაცემთა ტიპი

გაკვეთილი სერიიდან " გეომეტრიული ალგორითმები»

გამარჯობა ძვირფასო მკითხველო!

დღეს განვიხილავთ კიდევ ერთ ტიპურ პრობლემას გეომეტრიული ალგორითმების სერიიდან. მოდით დავწეროთ ფუნქცია, რომელიც შეამოწმებს კუთვნილებათვითნებური ხაზის სეგმენტიმოცემულია მისი დასაწყისისა და დასასრულის კოორდინატებით.

რეალურ მონაცემებზე შედარების ოპერაციების განსახორციელებლად ჩვენ დავწერთ კიდევ ორ ფუნქციას: EqPoint() ფუნქციას, რომელიც შეამოწმებს ემთხვევა თუ არა სიბრტყეზე ორი წერტილი და RealMoreEq() ფუნქციას, რომელსაც გამოვიყენებთ „>=“-ის შესამოწმებლად. მიმართება (ზე მეტი ან ტოლი). ჩვენ უკვე ვიცით სპეციალური ფუნქციების შემოღების მიზეზი.

დავალება. Ჩეკი, ეკუთვნისთუ არა ხაზის სეგმენტი.

მოდით, წერტილები იყოს სეგმენტის საწყისი და ბოლო წერტილები. არის თვითნებური წერტილი თვითმფრინავზე.

ვექტორს, რომელიც იწყება წერტილიდან და მთავრდება წერტილში, ექნება კოორდინატები (x2-x1, y2-y1).

თუ P(x, y) არის თვითნებური წერტილი, მაშინ ვექტორის კოორდინატებია: (x-x1, y - y1).

წერტილი P მიეკუთვნება სეგმენტს, თუ:

პროგრამა geom3; Const _Eps: რეალური = 1e-3; (გაანგარიშების სიზუსტე) var x1,y1,x2,y2,x,y:real; ფუნქცია RealEq(Const a, b:Real):Boolean; (მკაცრად თანაბარი) იწყება RealEq:= Abs(a-b)<= _Eps End; {RealEq} Function RealMoreEq(Const a, b:Real):Boolean; {больше или равно} begin RealMoreEq:= a - b >= _EpsEnd; (RealMoreEq) ფუნქცია EqPoint(x1,y1,x2,y2:real):Boolean; (ემთხვევა თუ არა სიბრტყეზე ორი წერტილი) იწყება EqPoint:=RealEq(x1,x2) და RealEq(y1,y2) მთავრდება; (EqPoint) ფუნქცია AtOtres(x1,y1,x2,y2,x,y:real): ლოგიკური; (შემოწმება, ეკუთვნის თუ არა P წერტილი P1P2 სეგმენტს) დასაწყისი თუ EqPoint(x1,y1,x2,y2) მაშინ AtOtres:= EqPoint(x1,y1,x,y) (პუნქტები P1 და P2 ემთხვევა, შედეგი განისაზღვრება დამთხვევით P1 და P წერტილებიდან) სხვა AtOtres:= RealEq((x-x1)*(y2-y1)- (y-y1)*(x2-x1),0)and (RealMoreEq(x,x1)and RealMoreEq(x2 ,x)ან RealMoreEq(x,x2)და RealMoreEq(x1,x)) დასასრული; (AtOtres) იწყება (მთავარი) ჩაწერა (შეიყვანეთ წერტილის კოორდინატები: x1,y1,x2,y2,x,y"); readln(x1,y1,x2,y2,x,y); თუ AtOtres(x1,y1,x2 ,y2,x,y) შემდეგ writeln("დიახ.") else writeln("არა.); დასასრული. (მთავარი)

პროგრამის შესრულების შედეგები.

შეიყვანეთ წერტილის კოორდინატები: x1, y1, x2, y2, x, y
0.5 1 2.5 2.8 1.203 1.633
დიახ.

ტესტის შედეგები გეოგებრა პროგრამაში:


დღეს ჩვენ დავწერეთ AtOtres() ფუნქცია, რომელიც ამოწმებს მიეკუთვნება თუ არა თვითნებური წერტილი მისი კოორდინატებით მოცემულ სეგმენტს.

დაინერგა კიდევ ორი ​​ფუნქცია: EqPoint() და RealMoreEq() რეალურ მონაცემებზე შედარების ოპერაციების განსახორციელებლად. პირველი ამოწმებს ემთხვევა თუ არა სიბრტყეზე ორი წერტილი, მეორე გამოიყენება ურთიერთობის შესამოწმებლად ">=".

შემდეგ გაკვეთილზე, ადრე დაწერილი პროცედურებიდან გამომდინარე, დავწერთ პროცედურას ორი სეგმენტის გადაკვეთის წერტილის კოორდინატების დასადგენად.

ამაზე გემშვიდობებით. შევხვდებით შემდეგ გაკვეთილზე.

ლოგიკური ცვლადები, როგორც წესი, იღებენ თავიანთ მნიშვნელობებს შედარებისა და მათემატიკური ოპერაციებიდან (განხილული იყო წინა გაკვეთილზე), ასევე კონკრეტული ლოგიკური ოპერაციებიდან.

Turbo Pascal-ს აქვს ლოგიკური ოპერაციები, რომლებიც შეიძლება გამოყენებულ იქნას ლოგიკური ტიპის ცვლადებზე. ეს არ არის და, ან და xor ოპერაციები. ამ თემაში თქვენ გადახედავთ სამ ლოგიკურ ოპერაციას. ამ ოპერაციების აღნიშვნები და შედეგები მოცემულია ცხრილში. განიხილეთ.

Ოპერაცია არა(არა) აქვს ერთი ოპერანდი და აყალიბებს მის ლოგიკურ უარყოფას. არა ოპერაციის შედეგი არის False, თუ ოპერანდი არის true და True, თუ ოპერანდი არის false. Ისე,

არა მართალი მცდარი (სიმართლე სიცრუეა)

არა მცდარი მართალია (არა მცდარი მართალია)

ოპერაციის შედეგი და(i) არის ჭეშმარიტი მხოლოდ იმ შემთხვევაში, თუ მისი ორივე ოპერანდი არის true, ხოლო მცდარი სხვა შემთხვევაში.

ოპერაციის შედეგი ან(ან) მართალია, თუ მისი რომელიმე ოპერანდი არის ჭეშმარიტი და მცდარი მხოლოდ მაშინ, თუ ორივე ოპერანდი მცდარია.

ვარჯიში . შეეცადეთ დაადგინოთ ლოგიკური ოპერაციების მნიშვნელობა განცხადებებისთვის:

  1. სკოლის მოსწავლე ზამთრის არდადეგებზე სახლში რჩება ან სადმე დასასვენებლად მიდის.
  2. ფილიპ კირკოროვი მომღერალი და კომბაინის ოპერატორია.
  3. სკოლის მოსწავლეები არიან ბიჭები და გოგოები.

ლოგიკური, მიმართებითი და არითმეტიკული ოპერაციები ხშირად ხდება ერთსა და იმავე გამოხატულებაში. ამ შემთხვევაში, ლოგიკური ოპერაციის ნიშნის მარცხნივ და მარჯვნივ მიმართებები უნდა იყოს ჩასმული ფრჩხილებში, რადგან ლოგიკურ ოპერაციებს უფრო მეტი პრიორიტეტი აქვს. ზოგადად მიღებულია ოპერაციების შემდეგი პრიორიტეტი:

  • და, *, /, div, mod
  • ან, +, -
  • ურთიერთობის ოპერაციები.

. ლოგიკურ ოპერაციას და ასევე უწოდებენ ლოგიკურ გამრავლებას, ხოლო ლოგიკურ ოპერაციას ან ასევე უწოდებენ ლოგიკურ შეკრებას.

გარდა ამისა, ოპერაციების თანმიმდევრობა შეიძლება შეიცვალოს ფრჩხილებით. მაგალითად, ლოგიკურ გამონათქვამში ვაწყობთ მოქმედებების თანმიმდევრობას

A ან B და არა (A ან B)

ფრჩხილებში ან ოპერატორი შესრულებულია ჯერ, რასაც მოჰყვება not, და, ან ოპერატორები. თუ A და B ცვლადების ნაცვლად ჩავანაცვლებთ True და False მნიშვნელობებს, მაშინ უკვე განხილული პროცედურის გამოყენებით მივიღებთ მთელი გამოხატვის მნიშვნელობას True-ს ტოლი.

ვარჯიში . ჩაწერეთ ბლოკნოტში და გამოთვალეთ გამონათქვამების მნიშვნელობები a=10, b=20, c=true, d=false:

  • (a>5) და (b>5) და (a<20) and (b<30);
  • არა (ა<15) or not (b<30);
  • c ან d და (b=20);

ყურადღება! პასკალში არ არსებობს ლოგიკური მონაცემების შეყვანის გზა წაკითხული განცხადების გამოყენებით. ამასთან, ლოგიკური ტიპის ცვლადების მნიშვნელობების გამომავალი მოცემულია ჩაწერის ოპერატორის გამოყენებით.

მაგალითად, ჩაწერის (5>2) განაცხადის შესრულების შემდეგ ეკრანზე გამოჩნდება True.

დამოუკიდებელი მუშაობა

ქვემოთ მოცემული სავარჯიშოებიდან შეარჩიეთ მასწავლებელთან ერთად დავალება დამოუკიდებელი სამუშაოს შესასრულებლად.

  1. გამოთვალეთ გამოხატვის მნიშვნელობები:

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

    ბ) k mod 7 = k div5-1 k=15-ზე;

    გ) odd(trunc(10*p)) p=0.182-ზე;

    დ) არა კენტი(n) n=0-ისთვის;

    ე) t და (p mod 3=0) t=true, p=101010;

    ე) (x*y<>0) და (y>x) x=2, y=1;

    ზ) (x*y<>0) ან (y>x) როცა x=2, y=1;

    თ) a ან (არა b) a=false, b=true;

  2. დაწერეთ პასკალში მიმართება, რომელიც არის ჭეშმარიტი, თუ მითითებული პირობა დაკმაყოფილებულია და მცდარი, წინააღმდეგ შემთხვევაში:

    ა) მთელი რიცხვი k იყოფა 7-ზე;

    ბ) წერტილი (x, y) მდებარეობს R რადიუსის წრის გარეთ (1,0);

    გ) ნატურალური რიცხვი N არის ნატურალური რიცხვის კვადრატი;

    დ) 0

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

    ე) a და b ლოგიკური ცვლადებიდან ერთი მაინც არის True;

    ზ) ორივე ლოგიკური ცვლადი a და b არის True.

  3. მიუთითეთ თანმიმდევრობა, რომლითაც შესრულდება ოპერაციები გამონათქვამების შეფასებისას:

    ა) a და b ან არა c და d;

    ბ) (x>=0) თუ არა c და d.

  4. შეაფასეთ შემდეგი გამონათქვამები a=True, b=False:

    ა) a ან b და არა a;

    ბ) (ა ან ბ) და არა ა;

    გ) არა a და b;

    დ) არა (ა და ბ)

  5. ჩაწერეთ გამონათქვამი პასკალში, რომელიც არის ჭეშმარიტი, თუ მითითებული პირობა დაკმაყოფილებულია და მცდარი, წინააღმდეგ შემთხვევაში:

    ა) x მიეკუთვნება სეგმენტს;

    ბ) x დევს სეგმენტის გარეთ;

    გ) * x ეკუთვნის სეგმენტს ან [-1, 1];

    დ) * x დევს სეგმენტების გარეთ და [-1, 1];

    ე) x, y, z თითოეული რიცხვი დადებითია;

    ზ) x, y, z რიცხვებიდან არცერთი არ არის დადებითი;

    თ) x, y, z რიცხვებიდან მხოლოდ ერთია დადებითი;

    ი) ლოგიკური ცვლადი a აქვს მნიშვნელობა True, ლოგიკური ცვლადი b აქვს მნიშვნელობა False;

    კ) * წელიწადი სერიული ნომრით y არის ნახტომი წელი (წელი არის ნახტომი წელი, თუ მისი რიცხვი არის 4-ის ჯერადი, მაგრამ 100-ის ჯერადებიდან მხოლოდ 400-ის ჯერადი არის ნახტომი წელი, მაგალითად, 1700, 1800. და 1900 არის არანახტომი წელი, 2000 არის ნახტომი წელი).

  6. (x, y) სიბრტყეზე დახაზეთ ფართობი, რომელშიც და მხოლოდ რომელშიც მითითებული გამონათქვამი მართალია:

    ა)* (y>=x) და (y+x>=0) და (y<=1);

    ბ) (sqr(x)+sqr(y)<1) or (y>0) და (აბს(x)<=1);

    გ) (trunc(y)=0 და (მრგვალი(x)=0);

    დ)* (აბს(x)<=1)>(abs(y)>=1);

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

  7. არსებობს პირობითი ოპერატორი:
    თუ დ<>10
    მაშინ
    დავწერე ("ჰოორაი!")
    სხვა
    writeln ("ცუდი...");

    შესაძლებელია თუ არა მისი ჩანაცვლება შემდეგი განცხადებებით:

  8. როგორი იქნება j, k ცვლადების მნიშვნელობები პირობითი განცხადების შესრულების შემდეგ:
    თუ j>k
    მაშინ
    j:=k-2
    სხვა
    დეკ(კ,2);
    თუ ცვლადების საწყისი მნიშვნელობები ტოლია:
    ა) j=3, k=5;
    ბ) j=3, k=3;
    გ) j=3, k=2.

შენიშვნა . დებულების dec (k,2) შედეგად k ცვლადის მნიშვნელობა მცირდება 2-ით.

ქვემოთ მოცემული სავარჯიშოებიდან შეარჩიეთ მასწავლებელთან ერთად დავალება დამოუკიდებელი სამუშაოს შესასრულებლად.

1. გამოთვალეთ გამოხატვის მნიშვნელობები:

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

ბ) k mod 7 = k div5-1 k=15-ზე;

გ) odd(trunc(10*p)) p=0.182-ზე;

დ) არა კენტი(n) n=0-ისთვის;

ე) t და (p mod 3=0) t=true, p=101010;

ე) (x*y<>0) და (y>x) x=2, y=1;

ზ) (x*y<>0) ან (y>x) როცა x=2, y=1;

თ) a ან (არა b) a=false, b=true;

2. პასკალში ჩაწერეთ მიმართება, რომელიც არის ჭეშმარიტი, თუ მითითებული პირობა დაკმაყოფილებულია და მცდარი, წინააღმდეგ შემთხვევაში:

ა) მთელი რიცხვი k იყოფა 7-ზე;

ბ) განტოლებას არ აქვს რეალური ფესვები;

გ) წერტილი (x, y) მდებარეობს R რადიუსის წრის გარეთ (1,0);

დ) ნატურალური რიცხვი N არის ნატურალური რიცხვის კვადრატი;

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

ზ) (არ გამოიყენოთ არა ოპერაცია)

თ) a და b ლოგიკური ცვლადებიდან ერთი მაინც არის True;

ი) ორივე ლოგიკური ცვლადი a და b არის True.

3. გამოთქმების შეფასებისას მიუთითეთ ოპერაციების შესრულების თანმიმდევრობა:

ა) a და b ან არა c და d;

ბ) (x>=0) თუ არა c და d.

4. გამოთვალეთ შემდეგი გამონათქვამები a=True, b=False:

ა) a ან b და არა a;

ბ) (ა ან ბ) და არა ა;

გ) არა a და b;

დ) არა (ა და ბ)

5. ჩაწერეთ გამონათქვამი პასკალში, რომელიც არის true, თუ მითითებული პირობა დაკმაყოფილებულია და მცდარი, წინააღმდეგ შემთხვევაში:

ა) x მიეკუთვნება სეგმენტს;

ბ) x დევს სეგმენტის გარეთ;

გ) * x ეკუთვნის სეგმენტს ან [-1, 1];

დ) * x დევს სეგმენტების გარეთ და [-1, 1];

ე) x, y, z თითოეული რიცხვი დადებითია;

ზ) x, y, z რიცხვებიდან არცერთი არ არის დადებითი;

თ) x, y, z რიცხვებიდან მხოლოდ ერთია დადებითი;

ი) ლოგიკური ცვლადი a აქვს მნიშვნელობა True, ლოგიკური ცვლადი b აქვს მნიშვნელობა False;

კ) * წელიწადი y სერიული ნომრით არის ნახტომი წელი (წელი არის ნახტომი წელი, თუ მისი რიცხვი არის 4-ის ჯერადი, მაგრამ 100-ის ჯერადებიდან მხოლოდ 400-ის ჯერადი არის ნახტომი წელი, მაგალითად, 1700, 1800 და 1900 არის არანახტომი წლები, 2000 არის ნახტომი წელი).

6. სიბრტყეზე (x, y) დახაზეთ ის უბანი, რომელშიც და მხოლოდ რომელშიც მითითებული გამონათქვამი მართალია:

ა)* (y>=x) და (y+x>=0) და (y<=1);

ბ) (sqr(x)+sqr(y)<1) or (y>0) და (აბს(x)<=1);

გ) (trunc(y)=0 და (მრგვალი(x)=0);

დ)* (აბს(x)<=1)>(abs(y)>=1);

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

7) არსებობს პირობითი ოპერატორი:

დავწერე ("ჰოორაი!")

დავწერე ("ცუდი...")

შესაძლებელია თუ არა მისი ჩანაცვლება შემდეგი განცხადებებით:

ა) თუ d=10 ბ) თუ არა (d=10)

Writln ('ჰოორაი!') writeln ('ჰოორა!')

writeln ("ცუდი..."); writeln ("ცუდი...");

გ) თუ არა (d=10) დ) თუ არა (დ<>10)

writeln ("ცუდი...") writeln ("ცუდი...")

writeln ('ჰოორა!'); writeln ('ჰოორა!');

8) რა იქნება ცვლადების j, k მნიშვნელობები პირობითი განცხადების შესრულების შემდეგ:

თუ ცვლადების საწყისი მნიშვნელობები ტოლია:

შენიშვნა. დებულების dec (k,2) შედეგად k ცვლადის მნიშვნელობა მცირდება 2-ით.

. Xმიეკუთვნება სეგმენტს;
x მდებარეობს სეგმენტის გარეთ;
x მიეკუთვნება სეგმენტს ან [-1,1];
x დევს სეგმენტის გარეთ ან [-1,1].
3.
ახსენით პირობითი განცხადებების შესრულების სტრუქტურა და წესები.
4.
ჩაწერეთ მითითებული მოქმედება, როგორც ერთი პირობითი განცხადება:
cos
2
x 0x-ზე ზე =
1-ცოდვა
2
x, წინააღმდეგ შემთხვევაში.
5.

int z=0, x=1, y=

1;

80 ხაზოვანი ალგორითმების დაპროგრამება სისტემაში C++ Builder
თუ (x>0) თუ (y>0) z=1; სხვა z=2;
6.
რა მნიშვნელობა ექნება ცვლადს განცხადებების შესრულების შემდეგ:
int z=0, x=

1,y=1;
თუ (x) (თუ (y>0) z=1;) სხვას z=2;
7.
რა მნიშვნელობა ექნება ცვლადს განცხადებების შესრულების შემდეგ:
int z=0, x=0, y=1;
თუ (x) (თუ (y>0) z=1;) სხვას z=2;
8.
რა მნიშვნელობა ექნება ცვლადს განცხადებების შესრულების შემდეგ:
int z=0, x=3, y=1;
თუ (x) (თუ (y) z=1;) სხვას z=2;
9.
მიუთითეთ შეცდომები შემდეგ განცხადებებში:
თუ (1
elsex=0; y+= 1;
10.
int z=0, x=0, y=1;
თუ (!x) (თუ (!(y

1)) z=1;) სხვა z=2;
11.
რა მნიშვნელობა ექნება z ცვლადს განცხადებების შესრულების შემდეგ:
int z=0, x=1, y=1;
თუ (!x) (თუ (!(y

1)) z=1;) სხვა z=2;
12.
იპოვნეთ შეცდომები პროგრამის ფრაგმენტში:
(int n,x; შეცვლა (k) case + : x:=x-4 break; case

-

,

*

,x=5;
}
რა წესები ირღვევა და როგორ შეიძლება შეცდომების გამოსწორება?


81
3.4
ინდივიდუალური დავალებები მე-3 განყოფილებისთვის
თითოეულ მოსწავლეს სჭირდება პირველი და მეორე დონის სირთულის ორი ამოცანის ამოხსნა.
სირთულის პირველი დონის ამოცანები.
1.
თქვენ გეძლევათ ოთხნიშნა დადებითი მთელი რიცხვი. დაწერეთ პროგრამა, რომელიც ბეჭდავს მართალიაან ყალბიიმის მიხედვით, დაკმაყოფილებულია თუ არა მითითებული პირობა: 1-ლი და მე-4 ციფრის ჯამი უდრის მე-2 და მე-3 ციფრის ნამრავლს.
2.
მოცემულია რეალური რიცხვები x, y. თუ x და y უარყოფითია, მაშინ შეცვალეთ თითოეული მნიშვნელობა თავისი მოდულით; თუ მხოლოდ ერთი მათგანი უარყოფითია, მაშინ გაზარდეთ ორივე მნიშვნელობა 5.5-ით; სხვა შემთხვევაში, ორივე მნიშვნელობა უნდა შემცირდეს 10-ჯერ.
3.
მოცემულია რეალური რიცხვები x, y. თუ x და y დადებითია, მაშინ შეამცირეთ თითოეული მნიშვნელობა 5-ით; თუ ორივე მნიშვნელობა არის [-3, 9] დიაპაზონში, მაშინ ორივე მნიშვნელობა უნდა შეიცვალოს 0-ით; წინააღმდეგ შემთხვევაში x და y გაიზრდება 3-ით.
4.
მოცემულია რეალური რიცხვები x, y (xy). შეცვალეთ ამ ორი რიცხვიდან პატარა მათი ნახევარი ჯამით, ხოლო დიდი მათი ორმაგი ნამრავლით.
5.
თუ x, y, z სამი წყვილით განსხვავებული რეალური რიცხვის ჯამი 1-ზე ნაკლებია, მაშინ ამ სამი რიცხვიდან უმცირესი ჩანაცვლდება დანარჩენი ორის ნახევრად ჯამით; წინააღმდეგ შემთხვევაში, შეცვალეთ x-ისა და y-ის უფრო მცირე ორი დარჩენილი მნიშვნელობის ჯამის ნახევარით.
6.
მოცემულია რეალური რიცხვები a, b, c, d. Თუ b>c>d, შემდეგ დატოვეთ რიცხვები უცვლელი; წინააღმდეგ შემთხვევაში, შეცვალეთ ყველა რიცხვი მათი კვადრატებით.
7.
დაადგინეთ გაუმართლა თუ არა ექვსნიშნა რიცხვი. (ციფრს იღბლიანი ეწოდება, თუ მისი პირველი სამი ციფრის ჯამი უდრის მისი ბოლო სამი ციფრის ჯამს.)
8.
მართალიაან ყალბიდამოკიდებულია თუ არა მითითებული პირობა დაკმაყოფილებულია თუ არა: თვითნებური რეალური რიცხვებისთვის a, b, c, განსაზღვრეთ განტოლება ცული
2
+bx+c=0 ერთი რეალური ამონახსნი მაინც.

82 წრფივი ალგორითმების დაპროგრამება სისტემაში C++ Builder
9.
შემდეგი პრობლემის გადასაჭრელად დაწერეთ პროგრამა, რომელიც ბეჭდავს მართალიაან ყალბიიმის მიხედვით, დაკმაყოფილებულია თუ არა მითითებული პირობა: დადგინდეს, უდრის თუ არა მოცემული ოთხნიშნა რიცხვის პირველი ორი ციფრის ჯამი მისი ორი ბოლო რიცხვის ჯამს.
10.
ზოგიერთ სკოლას აქვს შემდეგი მისაღები პოლიტიკა. აპლიკანტები აბარებენ ორ გამოცდას, რომლებიც ფასდება მიხედვით
თითო 100 ქულა. თუ განმცხადებელი დააგროვებს მინიმუმ 150 ქულას, მაშინ ეს იძლევა უფლებას შევიდეს დღის განყოფილებაში, 100-დან 149-მდე - საღამოს განყოფილებაში; 100 ქულის ქვემოთ ნიშნავს სწავლაზე უარის თქმას. დაწერეთ პროგრამა, რომელიც დაგროვილი ქულების ოდენობიდან გამომდინარე, აცნობებს აპლიკანტს ჩარიცხვის უფლებას.
11.
შერჩევის ოპერატორის გამოყენებით დაწერეთ პროგრამა, რომელიც საშუალებას გაძლევთ მიიღოთ ნიშნების სიტყვიერი აღწერა. (1 - "ცუდი", 2 -
"არადამაკმაყოფილებელი", 3 - "დამაკმაყოფილებელი", 4 - "კარგი", 5 -
"დიდი".)
12.
შემდეგი პრობლემის გადასაჭრელად დაწერეთ პროგრამა, რომელიც ბეჭდავს მართალიაან ყალბიიმის მიხედვით, დაკმაყოფილებულია თუ არა მითითებული პირობა: იმის დადგენა, არის თუ არა მოცემული სამნიშნა რიცხვის ციფრებს შორის ერთნაირი.
13.
დაწერეთ პროგრამა, რომელიც ბეჭდავს მართალიათუ თარიღი d1, m1წინ უსწრებს (ერთი წლის განმავლობაში) თარიღს d2, m2და მნიშვნელობა ყალბიწინააღმდეგ შემთხვევაში.
14.
დაწერეთ პროგრამა არჩევის განცხადების გამოყენებით, რომელიც აჩვენებს სრულ სახელს სახელის პირველი ასოებით.
(ივანე, პეტრე, ნიკოლაი, ვლადიმერ, გიორგი).
15.
დაწერეთ პროგრამა შერჩევის ოპერატორის გამოყენებით, რომელიც, შეყვანილი ციფრის 0≤ k≤ 5 ბეჭდავს ამ ფიგურის სახელს რუსულ და ინგლისურ ენებზე.
16.
მოცემულია მთელი რიცხვი k (1



365). დაადგინეთ, წლის k-ე დღე იქნება შაბათ-კვირა თუ სამუშაო დღე, თუ 1 იანვარი ორშაბათია.
17.
მოცემულია რეალური რიცხვი x. გამოთვალეთ , თუ:











ცოდვა
,
1 0
,
0 5
2 11 2
შემთხვევები
დასვენება
in
x
x
x
ზე
x
x
x
ზე


პროგრამირება ერთგანზომილებიანი მასივებით
83 18.
მოცემულია რეალური რიცხვი x. დაწერეთ პროგრამა გამოსათვლელად :












34 5
,
12 3
lg ln
,
3 5
1 3
2 4
შემთხვევები
დასვენება
in
x
x
x
ზე
x
x
x
ზე

19.
შერჩეული ოპერატორის გამოყენებით დაწერეთ პროგრამა, რომელიც ქალაქის სახელის პირველი ასოებით აჩვენებს ქალაქის სახელს სრულად (კურსკი, მოსკოვი, ტულა, ნოვგოროდი, ვორონეჟი).
20.
დაწერეთ პროგრამა შერჩეული განცხადების გამოყენებით, რომელიც აჩვენებს სრულ სახელს გვარის პირველი ასოთი (ივანოვი, პეტროვი, სიდოროვი, მიშკინი, შიშკინი).
21.
მოცემულია ცენტრის კოორდინატები და წრის რადიუსი. დაადგინეთ, მიეკუთვნება თუ არა წრეს კოორდინატებით (x,y) გარკვეული წერტილი.
22.
დაწერეთ პროგრამა შერჩეული განცხადების გამოყენებით, რომელიც დაბეჭდავს ცხოველის სრულ სახელს (ძაღლი, კატა, ჟირაფი, ცხენი, მაიმუნი) ცხოველის სახელის პირველი ასო.
23.
მოცემულია სამი განსხვავებული რიცხვი ა, ბ, გ. დაალაგეთ ეს რიცხვები ზრდის მიხედვით ისე შეესაბამებოდა უმცირეს რიცხვს, - საშუალო რაოდენობა, - უდიდესი.
24.
დაწერეთ პროგრამა არჩევის განცხადების გამოყენებით, რომელიც რიცხვით (1-დან 7-მდე) აჩვენებს კვირის დღის სახელს.
25.
დაწერეთ პროგრამა არჩევის განცხადების გამოყენებით, რომელიც რიცხვით (1-დან 12-მდე) აჩვენებს წლის თვის სახელს.
26.
დაწერეთ პროგრამა არჩევის განცხადების გამოყენებით, რომელიც, წლის სეზონის სახელის პირველი ასოს გათვალისწინებით, ბეჭდავს წლის სეზონის სრულ სახელს.
27.
გეძლევათ ხუთნიშნა დადებითი მთელი რიცხვი. დაწერეთ პროგრამა, რომელიც ბეჭდავს მართალიაან ყალბიიმის მიხედვით, დაკმაყოფილებულია თუ არა მითითებული პირობა: 1-ლი, მე-3 და მე-5 ციფრის ჯამი მეტია მე-2 და მე-4 ციფრის ნამრავლზე.
28.
თქვენ გეძლევათ ოთხნიშნა დადებითი მთელი რიცხვი. დაწერეთ პროგრამა, რომელიც ბეჭდავს მართალიაან ყალბიდამოკიდებულია თუ არა

84 წრფივი ალგორითმების დაპროგრამება სისტემაში C++ Builder დაკმაყოფილებულია თუ არა მითითებული პირობა: საშუალო არითმეტიკული 1 და
4 ციფრი მეტია 2 და 3 ციფრის ჯამს.
29.
ათწილადი აღნიშვნით მოცემულია ციფრი და სამნიშნა რიცხვი. თუ ციფრი ემთხვევა რიცხვის უმაღლეს ციფრს, მაშინ გამოთვალეთ რიცხვის ციფრების ჯამი. თუ ციფრი ემთხვევა რიცხვის შუა ციფრს, მაშინ გამოთვალეთ რიცხვის ციფრების ნამრავლი. თუ ციფრი ემთხვევა რიცხვის ყველაზე ნაკლებად მნიშვნელოვან ციფრს, მაშინ გამოთვალეთ რიცხვის ციფრების საშუალო არითმეტიკული. თუ არცერთი პირობა არ არის დაკმაყოფილებული, მაშინ გამოთვალეთ რიცხვის ციფრების გეომეტრიული საშუალო.
30.
ათწილადი აღნიშვნით მოცემულია ციფრი და სამნიშნა რიცხვი. თუ ციფრი ემთხვევა რიცხვის უმაღლეს ციფრს, მაშინ გამოთვალეთ რიცხვის ციფრების საშუალო არითმეტიკული. თუ ციფრი ემთხვევა რიცხვის შუა ციფრს, მაშინ გამოთვალეთ რიცხვის ციფრების გეომეტრიული საშუალო. თუ ციფრი ემთხვევა რიცხვის ყველაზე ნაკლებად მნიშვნელოვან ციფრს, მაშინ გამოთვალეთ რიცხვის ციფრების ჯამი. თუ არცერთი პირობა არ არის დაკმაყოფილებული, მაშინ გამოთვალეთ რიცხვის ციფრების ნამრავლი
სირთულის მეორე დონის ამოცანები.
1.
სამნიშნა რიცხვთა სისტემაში მოცემულია ორნიშნა დადებითი მთელი რიცხვი. დაწერეთ პროგრამა, რომელიც აჩვენებს რიცხვის ციფრების სახელებს რუსულ ენაზე, თუ რიცხვის უმაღლესი ციფრი უფრო მეტია ვიდრე ყველაზე ახალგაზრდა, წინააღმდეგ შემთხვევაში.
- ინგლისურად.
2.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი ხუთნიშნა რიცხვთა სისტემაში. დაწერეთ პროგრამა, რომელიც აჩვენებს რიცხვის ციფრების სახელებს ინგლისურად, თუ რიცხვის უმაღლესი ციფრი უმცირესზე მეტია, წინააღმდეგ შემთხვევაში
- რუსულად.
3.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი ხუთნიშნა რიცხვთა სისტემაში. დაწერეთ პროგრამა, რომელიც დაბეჭდავს რიცხვის ციფრების სახელებს ინგლისურად, თუ რიცხვის უმაღლესი ციფრი არის ზუსტად 2-ჯერ ყველაზე დაბალ ციფრზე, წინააღმდეგ შემთხვევაში
- რუსულად.
4.
სამნიშნა რიცხვთა სისტემაში მოცემულია ორნიშნა დადებითი მთელი რიცხვი. დაწერეთ პროგრამა, რომელიც ასახავს რიცხვის ციფრების სახელებს რუსულ ენაზე, თუ რიცხვის უმაღლესი ციფრი ნაკლებია ყველაზე დაბალზე, წინააღმდეგ შემთხვევაში
- ინგლისურად.

პროგრამირება ერთგანზომილებიანი მასივებით
85 5.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი ხუთნიშნა რიცხვთა სისტემაში. დაწერეთ პროგრამა, რომელიც აჩვენებს რიცხვის ციფრების სახელებს რუსულად.
6.
რვანიშნა რიცხვების სისტემაში მოცემულია ორნიშნა დადებითი მთელი რიცხვი. დაწერეთ პროგრამა, რომელიც აჩვენებს რიცხვის ციფრების სახელებს რუსულად.
7.
რვანიშნა რიცხვების სისტემაში მოცემულია ორნიშნა დადებითი მთელი რიცხვი. დაწერეთ პროგრამა, რომელიც აჩვენებს, თუ უმაღლესი ციფრი არის ქვედა ციფრის ნახევარზე ნაკლები, რიცხვის ციფრების სახელები ინგლისურად, წინააღმდეგ შემთხვევაში

რუსულად.
8.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი სეპტიმულ რიცხვთა სისტემაში. დაწერეთ პროგრამა, რომელიც აჩვენებს, თუ ციფრები კლებადობითაა, ნომრის ციფრების სახელები ინგლისურად, წინააღმდეგ შემთხვევაში

რუსულად.
9.
ათობითი რიცხვების სისტემაში მოცემულია ორი ციფრი. დაწერეთ პროგრამა, რომელიც აჩვენებს ამ ციფრების ჯამის ციფრების სახელებს ინგლისურად.
10.
ათობითი რიცხვების სისტემაში მოცემულია ორი ციფრი. დაწერეთ პროგრამა, რომელიც აჩვენებს ამ ციფრების პროდუქტის ციფრების სახელებს რუსულად.
11.
ათობითი რიცხვების სისტემაში მოცემულია ორი ციფრი. დაწერეთ პროგრამა, რომელიც რუსულად აჩვენებს ამ ციფრების განსხვავების მოდულის ციფრს.
12.
ათობითი რიცხვების სისტემაში მოცემულია ორი ციფრი. დაწერეთ პროგრამა, რომელიც აჩვენებს ციფრთა სახელებს ინგლისურად ამ რიცხვების კოეფიციენტისა და ამ რიცხვების მთელი რიცხვის გაყოფის ნარჩენებს.
13.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი ათობითი რიცხვების სისტემაში. დაწერეთ პროგრამა, რომელიც აჩვენებს, თუ უმაღლესი ციფრი სამჯერ არის ყველაზე დაბალ ციფრზე, ნომრის ციფრების სახელები ინგლისურად, წინააღმდეგ შემთხვევაში

რუსულად.
14.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი ათობითი რიცხვების სისტემაში. დაწერეთ პროგრამა, რომელიც დაბეჭდავს იმ რიცხვის იმ ციფრის სახელს, რომელსაც ინგლისურად უფრო დიდი მნიშვნელობა აქვს, და იმ რიცხვის სახელს, რომელსაც აქვს უფრო მცირე მნიშვნელობა,

რუსულად.

86 წრფივი ალგორითმების დაპროგრამება სისტემაში C++ Builder
15.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი სეპტიმულ რიცხვთა სისტემაში. დაწერეთ პროგრამა, რომელიც დაბეჭდავს იმ რიცხვის იმ ციფრის სახელს, რომელსაც ინგლისურად უფრო დიდი მნიშვნელობა აქვს, და იმ რიცხვის სახელს, რომელსაც აქვს უფრო მცირე მნიშვნელობა,

რუსულად.
16.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი თექვსმეტობით რიცხვთა სისტემაში. დაწერეთ პროგრამა, რომელიც აჩვენებს რიცხვის ციფრების სახელებს ინგლისურად.
17.
მოცემულია ორი მთელი ორნიშნა დადებითი რიცხვი სამეულ რიცხვთა სისტემაში. დაწერეთ პროგრამა, რომელიც აჩვენებს ამ რიცხვების ჯამის ციფრების სახელებს რუსულად.
18.
ორნიშნა ორნიშნა დადებითი რიცხვი ორნიშნა რიცხვთა სისტემაში მოცემულია. დაწერეთ პროგრამა, რომელიც აჩვენებს ამ რიცხვების ჯამის ციფრების სახელებს ინგლისურად.
19.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი ხუთნიშნა რიცხვთა სისტემაში. დაწერეთ პროგრამა, რომელიც აჩვენებს, თუ ციფრები არის ზრდადი თანმიმდევრობით, ნომრის ციფრების სახელები ინგლისურად, წინააღმდეგ შემთხვევაში

რუსულად.
20.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი თექვსმეტობით რიცხვთა სისტემაში. დაწერეთ პროგრამა, რომელიც აჩვენებს, თუ უმაღლესი ციფრი ხუთჯერ არის ყველაზე დაბალ ციფრზე, ნომრის ციფრების სახელები რუსულად, წინააღმდეგ შემთხვევაში.

ინგლისურად.
21.
რვა რიცხვების სისტემაში მოცემულია ორი ციფრი. დაწერეთ პროგრამა, რომელიც ასახავს ამ ციფრების განსხვავების მოდულის ციფრების სახელებს რუსულად.
22.
რვა რიცხვების სისტემაში მოცემულია ორი ციფრი. დაწერეთ პროგრამა, რომელიც რუსულად აჩვენებს ამ ორი ციფრის ჯამის სახელებს.
23.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი სეპტიმულ რიცხვთა სისტემაში. დაწერეთ პროგრამა, რომელიც აჩვენებს, თუ უმაღლესი ციფრი სამჯერ არის ყველაზე დაბალი, ნომრის ციფრების სახელები რუსულად, წინააღმდეგ შემთხვევაში

ინგლისურად.
24.
რვანიშნა რიცხვების სისტემაში მოცემულია ორნიშნა დადებითი მთელი რიცხვი. დაწერეთ პროგრამა, რომელიც აჩვენებს რიცხვის იმ ციფრის სახელს, რომელსაც აქვს უფრო დიდი მნიშვნელობა რუსულად და

პროგრამირება ერთგანზომილებიანი მასივებით
87 რიცხვის რიცხვის რანგი, რომელსაც აქვს ყველაზე დაბალი მნიშვნელობა,

ინგლისურად.
25.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი სეპტიმულ რიცხვთა სისტემაში. დაწერეთ პროგრამა, რომელიც ასახავს 4-ზე ნაკლები მნიშვნელობის მქონე რიცხვის სახელს რუსულ ენაზე და იმ რიცხვის სახელს, რომელსაც აქვს 4-ზე მეტი ან ტოლი მნიშვნელობა,

ინგლისურად.
26.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი თექვსმეტობით რიცხვთა სისტემაში. დაწერეთ პროგრამა, რომელიც ასახავს 3-ზე ნაკლები მნიშვნელობის მქონე რიცხვის სახელს რუსულ ენაზე და იმ რიცხვის სახელს, რომელსაც აქვს 3-ზე მეტი ან ტოლი მნიშვნელობა,

ინგლისურად.
27.
მოცემულია წლის თვის სახელის პირველი ორი ასო (მცირე და დიდი). დაწერეთ პროგრამა, რომელიც აჩვენებს წლის თვის სრულ სახელს რუსულად.
28.
მოცემულია კვირის დღის სახელის პირველი ორი ასო (მცირე და დიდი). დაწერეთ პროგრამა, რომელიც აჩვენებს კვირის დღის სრულ სახელს რუსულად.
29.
ძველ იაპონურ კალენდარში მიღებულ იქნა 60-წლიანი ციკლი, რომელიც შედგებოდა ხუთი 12-წლიანი ქვეციკლისაგან. ქვეციკლები გამოირჩეოდა ფერის სახელებით: მწვანე, წითელი, ყვითელი, თეთრი და შავი. ყოველი ქვეციკლის ფარგლებში წლებს ეწოდა ცხოველების სახელები: ვირთხები, ძროხები, ვეფხვები, კურდღელი, დრაკონები, გველები, ცხენები, ცხვრები, მაიმუნები, ქათმები, ძაღლები და ღორები (1984 - მწვანე ვირთხის წელი - დასაწყისი იყო. შემდეგი ციკლი). დაწერეთ პროგრამა, რომელიც შეაქვს ჩვენი ეპოქის გარკვეული წლის რიცხვს და დაბეჭდავს მის სახელს ძველი იაპონური კალენდრის მიხედვით.
30.
მოცემულია ორნიშნა დადებითი მთელი რიცხვი ათობითი რიცხვების სისტემაში. დაწერეთ პროგრამა, რომელიც ასახავს 5-ზე მეტი მნიშვნელობის მქონე რიცხვის სახელს რუსულ ენაზე და იმ რიცხვის სახელს, რომელსაც აქვს 5-ზე ნაკლები ან ტოლი მნიშვნელობა,

ინგლისურად.

88 წრფივი ალგორითმების დაპროგრამება სისტემაში C++ Builder
4 ციკლის დაპროგრამება
ალგორითმები C++ Builder სისტემაში
ამ განყოფილებაში ტარდება ენის მარყუჟის ოპერატორების შესწავლა.
C++, ციკლური ალგორითმების პროგრამირების უნარების შეძენა, გაცნობა
დიახ, პროგრამების შედგენა და გამართვა.
4.1
Ძირითადი ცნებები
ენაზე C++ Builder არსებობს სამი მარყუჟის განცხადება:
1.
ციკლი წინაპირობით ( ხოლო);
2.
ციკლი პოსტპირობით ( კეთება);
3.
ციკლი მრიცხველით ( ამისთვის).
ციკლის განცხადება წინაპირობით ხოლო (სურათი 4.1):
ხოლო(მდგომარეობა) (მარყუჟის სხეული)
სურათი 4.1

მარყუჟის ოპერატორის ალგორითმის სქემა ხოლო
თუ მდგომარეობის შეფასების შედეგია მართალია(true), შემდეგ მარყუჟის სხეული შესრულებულია და კვლავ ხდება მდგომარეობის შემოწმებაზე გადასვლა. თუ მდგომარეობის შეფასების შედეგია ყალბი(false), შემდეგ ციკლი გადის და გადადის განცხადებაზე ციკლური განცხადების შემდეგ ხოლო.
თუ მარყუჟის პირველ შესრულებამდე, გამოხატვის მნიშვნელობა იყო ყალბი, მარყუჟის სხეული საერთოდ არ არის შესრულებული და ხდება შემდეგ განცხადებაზე გადასვლა.
მდგომარეობა
მარყუჟის სხეული
დიახ
არა

პროგრამირება ერთგანზომილებიანი მასივებით
89
მაგალითი:
გამოთვალეთ კენტი რიცხვების ჯამი 1-დან 10-მდე.
( int k=1, s=0; ხოლო (k ( s+=k; k+=2;
}
}
მარყუჟის განცხადება პოსტპირობით კეთება (სურათი 4.2):
კეთება(მარყუჟის სხეული) ხოლო(პირობა); დიახ არა პირობა
მარყუჟის სხეული
სურათი 4.2

მარყუჟის ოპერატორის ალგორითმის სქემა გააკეთე… ხოლო
პირობა არის ლოგიკური ტიპის გამოხატულება, მარყუჟის სხეული არის ერთი მარტივი ან რთული განცხადება.
განცხადების მარყუჟის სხეული

ლოგიკური ტიპის ცვლადები აღწერილია იდენტიფიკატორით ლოგიკური . მათ შეუძლიათ მხოლოდ ორი მნიშვნელობის მიღება - ყალბი (ცრუ)და მართალია (მართალია). ისინი ასევე აღწერილია ცვლადის დეკლარაციის განყოფილებაში. ვარ<имя>: ლოგიკური;

ლოგიკური გამონათქვამები შეიძლება შეიცავდეს:

ნ ლოგინები,

n ურთიერთობის ოპერაციები (<- меньше, >- მეტი,<=- меньше или равно, >=- მეტი ან ტოლი,<>- არა ტოლი, = - თანაბარი).

n ლოგიკური ოპერაციები და, ან, არა

n განსხვავება. მოქმედებები და ფუნქციები


Turbo Pascal-ს აქვს ლოგიკური ოპერაციები, რომლებიც შეიძლება გამოყენებულ იქნას ლოგიკური ტიპის ცვლადებზე. ეს არ არის და, ან და xor ოპერაციები.

Ოპერაცია არა(არა) აქვს ერთი ოპერანდი და აყალიბებს მის ლოგიკურ უარყოფას. არა ოპერაციის შედეგი არის False, თუ ოპერანდი არის true და True, თუ ოპერანდი არის false. ასე რომ, არა ჭეშმარიტი მცდარი (არაჭეშმარიტი ტყუილია) არა მცდარი ჭეშმარიტი (არამცდარი მართალია).

ოპერაციის შედეგი და(i) არის ჭეშმარიტი მხოლოდ იმ შემთხვევაში, თუ მისი ორივე ოპერანდი არის true, ხოლო მცდარი ყველა სხვა შემთხვევაში (ლოგიკური გამრავლება).

ოპერაციის შედეგი ან(ან) მართალია, თუ მისი რომელიმე ოპერანდი არის ჭეშმარიტი, და მცდარი მხოლოდ იმ შემთხვევაში, თუ ორივე ოპერანდი მცდარია (ლოგიკური დამატება).

ლოგიკური, მიმართებითი და არითმეტიკული ოპერაციები ხშირად ხდება ერთსა და იმავე გამოხატულებაში. ამ შემთხვევაში, ლოგიკური ოპერაციის ნიშნის მარცხნივ და მარჯვნივ მიმართებები უნდა იყოს ჩასმული ფრჩხილებში, რადგან ლოგიკურ ოპერაციებს აქვთ უმაღლესი პრიორიტეტი. ზოგადად მიღებულია ოპერაციების შემდეგი პრიორიტეტი:

2. და, *, /, div, mod

3. ან, +, -

4. ურთიერთობის ოპერაციები (<- меньше, >- მეტი,<=- меньше или равно, >=- მეტი ან ტოლი,<>- არა ტოლი, = - თანაბარი).

გარდა ამისა, ოპერაციების თანმიმდევრობა შეიძლება შეიცვალოს ფრჩხილებით. მაგალითად, ლოგიკურ გამონათქვამში ვაწყობთ მოქმედებების თანმიმდევრობას:

AorBandnot (AorB)


ფრჩხილებში ან ოპერატორი შესრულებულია ჯერ, რასაც მოჰყვება not, და, ან ოპერატორები. თუ A და B ცვლადების ნაცვლად ჩავანაცვლებთ True და False მნიშვნელობებს, მაშინ უკვე განხილული პროცედურის გამოყენებით მივიღებთ მთელი გამოხატვის მნიშვნელობას True-ს ტოლი.

სავარჯიშო 5: . ჩაწერეთ რვეულში და გამოთვალეთ გამონათქვამების მნიშვნელობები

a=10, b=20, c=true, d=false: ა)(a>5) და (b>5) და (a<20) and (b<30);

ბ)არა (ა<15) or not (b<30);

გ) c ან d და (b=20).

ყურადღება ! პასკალში არ არსებობს ლოგიკური მონაცემების შეყვანის გზა წაკითხული განცხადების გამოყენებით. ამასთან, ლოგიკური ტიპის ცვლადების მნიშვნელობების გამომავალი მოცემულია ჩაწერის ოპერატორის გამოყენებით. მაგალითად, ჩაწერის (5>2) ოპერატორის შესრულების შემდეგ ეკრანზე გამოჩნდება True.

საშინაო კითხვები და ამოცანები:

1. როგორ არის აღწერილი ლოგიკური ცვლადი და რა მნიშვნელობები შეიძლება მიიღოს?

2. რა შეიძლება შევიდეს ლოგიკურ გამონათქვამებში. მიეცით მარტივი ლოგიკური გამონათქვამების მაგალითები.

3. გვითხარით პასკალში ლოგიკური მოქმედებების შესახებ. მიეცით რთული ლოგიკური გამონათქვამების მაგალითები.

4. რა პრიორიტეტულია სხვადასხვა ოპერაციები პასკალში. მიეცი მაგალითი.


Დავალებები:

№19.

ა მთელი რიცხვი k იყოფა 7-ზე;

C. x, y რიცხვებიდან ერთი მაინც ლუწია;

G. x=max(x, y, z), ანუ x არის ყველაზე დიდი სამი რიცხვიდან x, y, z;

დ. (არ გამოიყენოთ არა ოპერაცია)

E. a და b ლოგიკური ცვლადებიდან ერთი მაინც არის True;

G. ლოგიკური ცვლადები a და b ორივე True.

№20. მიუთითეთ თანმიმდევრობა, რომლითაც შესრულდება ოპერაციები გამონათქვამების შეფასებისას:

ა) a და b თუ არა c და d; ) (x>=0) თუ არა c და d.

№21. შეაფასეთ შემდეგი გამონათქვამები a=True, b=False:

ა) a ან b და არა a; ბ)(a ან b) და არა a; in)არა a და b; გ)არა (ა და ბ)

№22. შეადგინეთ პროგრამა: მისაღებ გამოცდებზე აპლიკანტმა ჩააბარა ფიზიკა, კომპიუტერული მეცნიერება, კომპოზიცია. აბიტურიენტი შევა თუ კომპიუტერულ მეცნიერებაში 5-ს მიიღებს და სამ გამოცდაზე 13 ქულას მაინც დააგროვებს, მართალია თუ არა, რომ შევიდა (დაბეჭდვა მართალია/მცდარი)?

§ 8. ამოცანების ამოხსნა თემაზე „ხაზოვანი პროგრამები. ლოგიკური რაოდენობები."

მაგ. 7 . გამოთვალეთ გამოხატვის მნიშვნელობები:

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

ბ) k mod 7 = k div5-1 k=15-ზე;

გ) odd(trunc(10*p)) p=0.182-ზე;

დ) არა კენტი(n) n=0-ისთვის;

ე) t და (p mod 3=0) t=true, p=101010;

ე) (x*y<>0) და (y>x) x=2, y=1;

ზ) (x*y<>0) ან (y>x) როცა x=2, y=1;

თ) a ან (არა b) a=false, b=true;

მაგ. რვა. ჩაწერეთ გამონათქვამი პასკალში, რომელიც არის ჭეშმარიტი, თუ მითითებული პირობა დაკმაყოფილებულია და მცდარი, წინააღმდეგ შემთხვევაში:

ა) x მიეკუთვნება სეგმენტს;

ბ) x დევს სეგმენტის გარეთ;

გ) * x ეკუთვნის სეგმენტს ან [-1, 1];

დ) * x დევს სეგმენტების გარეთ და [-1, 1];

ე) x, y, z თითოეული რიცხვი დადებითია;

ზ) x, y, z რიცხვებიდან არცერთი არ არის დადებითი;

თ) x, y, z რიცხვებიდან მხოლოდ ერთია დადებითი;

ი) ლოგიკური ცვლადი a აქვს მნიშვნელობა True, ლოგიკური ცვლადი b აქვს მნიშვნელობა False;


კ) * წელიწადი y სერიული ნომრით არის ნახტომი წელი (წელი არის ნახტომი წელი, თუ მისი რიცხვი არის 4-ის ჯერადი, მაგრამ 100-ის ჯერადებიდან მხოლოდ 400-ის ჯერადი არის ნახტომი წელი, მაგალითად, 1700, 1800 და 1900 არის არანახტომი წლები, 2000 არის ნახტომი წელი).

მაგ. ცხრა . (x, y) სიბრტყეზე დახაზეთ ფართობი, რომელშიც და მხოლოდ რომელშიც მითითებული გამონათქვამი მართალია:

ა)* (y>=x) და (y+x>=0) და (y<=1);

ბ) (sqr(x)+sqr(y)<1) or (y>0) და (აბს(x)<=1);

გ) (trunc(y)=0 და (მრგვალი(x)=0);

დ)* (აბს(x)<=1)>(abs(y)>=1);

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

მაგ. ათი ..წიგნი X მანეთი ღირს. მყიდველს აქვს ბანკნოტები 50, 10, 5, 1 რუბლის ნომინალით. რამდენი და რა ბანკნოტი უნდა აიღოთ, რომ წიგნის საფასური ბანკნოტების მინიმალური რაოდენობით გადაიხადოთ?