Паскаль тілінде программалау - Тақырып 3. Күрделі шарттар
- Есеп. Фирма 25 пен 40 жас арасындағы қызметкерлерді жұмысқа алуда. Адамның жасын енгізіп, оны фирмаға алуға болатындығы немесе болмайтындығы туралы мәлімет шығару («болады» немесе «болмайды» деген жауап шығару).
- Ерекшелігі: екі шарттың бір мезгілде орындалатынын немесе орындалмайтынын тексеру.
- Белгілі әдістермен шешуге бола ма?
- program qq;
- var x: integer;
- begin
- writeln(‘Жасты енгіз');
- read ( x );
- if x >= 25 then
- if x <= 40 then
- writeln (‘Болады')
- else writeln (‘Болмайды')
- else
- writeln (‘Болмайды');
- end.
- program qq;
- var x: integer;
- begin
- writeln(‘Жасты енгіз');
- read ( x );
- if (x >= 25) and (x <= 40) then
- writeln ('Болады')
- else writeln ('Болмайды')
- end.
- Күрделі шарт – бір-бірімен логикалық операциялардың көмегімен байланысатын бірнеше қарапайым шарттардан (қатынастардан) тұрады:
- not – ЕМЕС (терістеу, инверсия)
- and – ЖӘНЕ (логикалық көбейту, конъюнкция, шарттардың бір мезгілде орындалуы)
- or – НЕМЕСЕ (логикалық қосу, дизъюнкция, ең болмағанда бір шарттың орындалуы)
- xor – арифметикалық НЕМЕСЕ (екі шарттың екеуін емес, біреуін ғана орындау)
- Қарапайым шарттар (қатынастар)
- < <= > >= = <>
- Орындау тәртібі
- жақша ішіндегі өрнектер
- not
- and
- or, xor
- <, <=, >, >=, =, <>
- Ерекшелігі – қарапайым шарттардың әрқайсысын жақшамен жабу.
- Мысал:
- if not (a > b) or (c <> d) and (b <> a)
- then begin
- ...
- end
- a := 2; b := 3; c := 4; болған жағдайда ақиқат немесе жалған:
- not (a > b)
- (a < b) and (b < c)
- not (a >= b) or (c = d)
- (a < c) or (b < c) and (b < a)
- (a < b) xor not (b > c)
- x-тің қандай мәндерінде шарт ақиқат болады:
- (x < 6) and (x < 10)
- (x < 6) and (x > 10)
- (x > 6) and (x < 10)
- (x > 6) and (x > 10)
- (x < 6) or (x < 10)
- (x < 6) or (x > 10)
- (x > 6) or (x < 10)
- (x > 6) or (x > 10)
- "4": Айдың нөмірін енгізу арқылы, жыл мезгілінің атауын шығару.
- Мысал:
- Ай нөмірін енгіз:
- 4
- көктем
Паскаль тілінде программалау - Цикл – белгілі бір әрекеттер тізбегінің бірнеше рет қайталанып орындалуы.
- қадамдар саны белгілі цикл
- қадамдар саны белгісіз цикл (шартты цикл)
- Есеп. 1-ден 8-ге дейінгі бүтін сандардың квадраттары мен кубтарын есептеп шығару (a-дан b-ға дейін).
- Ерекшелігі: бірдей амалдар 8 рет орындалады.
- Белгілі әдістермен шешуге бола ма?
- i2 := i * i;
- i3 := i2 * i;
- цикл айнымалысының бастапқы мәнін көрсету
- барлығы да атқарылды ма? соны тексеру
- квадрат пен куб-ты есептейміз
- Алгоритм ("цикл" блогімен)
- i2 := i * i;
- i3 := i2 * i;
- program qq;
- var i, i2, i3: integer;
- begin
-
- for i:=1 to 8 do begin
- i2 := i*i;
- i3 := i2*i;
- writeln(i:4, i2:4, i3:4);
- end;
- end.
- Айнымалысы кеміп отыратын цикл
- Есеп. 8-ден 1-ге дейінгі бүтін сандардың квадраттары мен кубтарын есептеп шығару (кері қарай есептеу).
- Ерекшелігі: цикл айнымалысы кеміп отыруы керек.
- Шығарылуы:
- for i:=8 1 do begin
- i2 := i*i;
- i3 := i2*i;
- writeln(i:4, i2:4, i3:4);
- end;
- for <айнымалы> := <алғашқы мән> to
- <ең соңғы мән> do begin
- {цикл денесі}
- end;
- for <айнымалы> := <алғашқы мән> downto
- <ең соңғы мән> do begin
- {цикл денесі}
- end;
- Ерекшеліктері:
- цикл айнымалысының мәні бүтін болуы керек (integer)
- цикл айнымалысының өзгеру қадамы қашанда 1-ге (to) немесе -1-ге (downto) тең
- егер цикл денесінде бір ғана оператор болса, begin мен end сөздерін жазбай кетуге болады:
- егер соңғы мән алғашқы мәннен кіші болса, (to) циклы бірде бір рет орындалмайды (шартты циклдың басында тексеру, шартты алдын ала тексеретін цикл)
- for i:=1 to 8 do
- writeln('Привет');
- Ерекшеліктері:
- Цикл денесінде цикл айнымалысын өзгертуге рұқсат етілмейді (неліктен?)
- Алғашқы және соңғы мәндер өзгертілгенімен цикл ішіндегі қадамдар саны өзгермейді:
- n := 8;
- for i:=1 to n do begin
- writeln('Салем');
- n := n + 1;
- end;
- Цикл неше рет орындалған?
- a := 1;
- for i:=1 to 3 do a := a+1;
- a := 1;
- for i:=3 to 1 do a := a+1;
- a := 1;
- for i:=1 downto 3 do a := a+1;
- a := 1;
- for i:=3 downto 1 do a := a+1;
- for i:=1 to 9 do begin
- if ??? then begin
- i2 := i*i;
- i3 := i2*i;
- writeln(i:4, i2:4, i3:4);
- end;
- end;
- Қадамдарды қалай өзгертуге болады?
- Есеп. Экранға 1-ден 9-ға дейінгі тақ сандардың квадраттары мен кубтарын есептеп шығару.
- Ерекшелігі: цикл айнымалысы 2-ге артып отыру керек.
- Мәселе: Паскальде қадамдар саны 1 немесе -1 болуы мүмкін.
- Шығарылуы:
- i2 := i*i;
- i3 := i2*i;
- writeln(i:4, i2:4, i3:4);
- Тек қана тақ i-лермен орындалады
- Қадамдарды қалай өзгертуге болады? – II
- Идея: Тек 5 санды ғана шығару керек, k айнымалысы 1-ден 5-ке дейін өзгереді. i-дің бастапқы мәні 1-ге тең, циклдың әр қадамы сайын i 2-ге артып отырады.
- Шығарылуы:
- ???
- for k:=1 to 5 do begin
- i2 := i*i;
- i3 := i2*i;
- writeln(i:4, i2:4, i3:4);
- ???
- end;
- Қадамдарды қалай өзгертуге болады? – III
- Идея: Тек 5 санды ғана шығару керек, k айнымылысы 1-ден 5-ке дейін өзгереді. k-ны біле отырып, i-ді есептеу қажет.
- Шығарылуы:
- for k:=1 to 5 do begin
- ???
- i2 := i*i;
- i3 := i2*i;
- writeln(i:4, i2:4, i3:4);
- end;
- "4": a мен b-ны енгізіп, осы екеуінің арасындағы сандардың квадраттары мен кубтарын есептеп шығару.
- Мысал:
- Интервал шекараларын енгіз:
- 4 6
- 4 16 64
- 5 25 125
- 6 36 216
- "5": 1, 2, 4, 7, 11, 16, … тәртібімен орналасқан 10 санның квадраттары мен кубтарын есептеп шығару
- Мысал:
- 1 1 1
- 2 4 8
- 4 16 64
- ...
- 46 2116 97336
Достарыңызбен бөлісу: |