неділю, 15 січня 2017 р.

Лінійні алгоритми


Розвязання завдань по реалізації алгоритмів у вигляді програми з використання простих змінних
Мета: формування практичних навичок складання програм з лінійними алгоритмами; виховання інформаційної культури.
Тип уроку: формування навичок.
Хід уроку.
І. Актуалізація опорних знань учнів.
Дати відповіді на запитання:
1.              Яку структуру повинна мати програма на мові Паскаль?
2.              Які блоки в програмі обов’язкові, а які ні?
3.              Що таке лінійна програма?
4.  Які оператори використовують для введення/виведення інформації?

ІІ. Формування навичок.
1.     Нехай а=0. Якого значення набуде змінна а, якщо команду а:= а+2 виконати: а) один раз(2); б) два рази підряд(4); в) три рази підряд(6).
2.  Нехай а=1. Якого значення набуде змінна а, якщо команду а:= а*2 виконати: а) один раз(2); б) два рази підряд(4); в) три рази підряд(8).
3.          Які значення матимуть змінні (та якого вони є типу) після виконання
команд присвоювання, якщо раніше були виконані команди А:=3; В:=5; С:=0:
а)         А1 := (2*А - 3*С)/(11-2*В);(6)
б)         А2 := А/2 + В+5*А/(В+С);(9,5)
III. Лабораторна робота №4.
Розв’язування задач
Задача 1.
Розрахувати зарплату вчителя за місяць, якщо кожен день тижня у нього К уроків (К задає користувач), а в місяці 4 тижні. За один урок нараховується 8 гривень 75 коп. З усієї обчисленої суми загальне відрахування становить 20%.
Аналіз задачі
   Дано: кількість уроків в день - k (ціле)
   Знайти: заробітну плату - Z (дійсна)
Дослідження
Z=(k *5*4*8,75)*0,8

Program Groshi;
var k: integer; Z: real;
  begin
    writeln(Введіть кількість уроків в день:);
    readln(k);
         Z:=(5*k*4*8.75)*0.8;
write(Заробітна плата вчителя становить’, Z:8:2)
     end.

Задача 2
Визначити, яку платню одержить на фірмі сумісник за виконану роботу, якщо йому нараховано S грн., а податок становить 20%.
Дослідження
Необхідні змінні: S сума нарахувань сумісника; Рреальна платня, яку він одержить у касі (за умовою вона становить 80 % від нарахувань).
Програма має наступний вигляд:
Program Task_2;
Uses crt;
Var  P,S   :   real;
Begin
Clrscr;
Write ('Введіть суму нарахувань робітника') ; Readln(S);
P  := S*0.8;
Writeln('Платня сумісника становить:',  P:8:2);
Readkey
End.
3адача 3. Від міста А до В автомобіль їхав t1 = 5 год з середньою швидкістю v1 = 70 км/год, від В до С — t2 = 4 год. зі швидкістю v2 = 75 км/год. Визначити відстань між містами.
program Distance;
var t1, vl, t2, v2, ab, be, ac : integer;
begin
tl := 5 ; t2 := 4;  vl := 70 ; v2 := 75;
ab := vl * tl; bс := v2 * t2; ac :== ab +bc;
writeln (ab:6, bc:6, ac:6);
readln
end.
Виконаємо програму і на екрані отримаємо:     350    300    650.
Завдання. Модифікуйте програму на випадок чотирьох міст.
Задача 4. Автотранспортна фірма «Радар» купує п'ять (kl) мікро­автобусів «Пежо» по 32100 грн. (с1) за автобус і три (к2) мікроавтобуси «Івеко» по 29500 грн. (с2). Яку суму (suma) потрібно заплатити?
program Radar;
var kl, cl, k2, c2, suma : integer;
begin
kl := 5 ; k2 := 3;  cl := 32100 ; c2 := 29500;
suma := kl * cl + k2 * c2;
writeln (suma:8);
readln
end.
Виконаємо програму, і замість результату отримаємо повідомлення про помилку. Виявляється, що значення змінної suma є 249 000, і воно вийшло за допустимі межі, визначені для типу integer. Ось чому правильно оголосити змінні потрібно так:
var kl, k2, cl, c2 : integer;   suma : longint; .
Отже, щоб розв'язати задачу, потрібна додаткова пам'ять, оскільки змінні типу longint займають удвічі більше пам'яті, ніж змінні типу integer.
Завдання. Виконайте програму Radar і поекспериментуйте з різними цінами. Модифікуйте програму, якщо купують три марки автобусів.
Задача 5. Ввести з клавіатури будь-яке тризначне число. Визначити суму його цифр і вивести цифри числа у зворотному порядку.
Нехай змінна а міститиме значення заданого числа. Цифри числа позначимо так: і кількість сотень, jкількість десятків, kкількість одиниць, а їхню суму s. Для визначення цифр деякого числа використовують операції div та mod.
program MyNumber; var a, i, j, k, s : integer;
begin
write('Введіть  число a: ');read (a);
і := a div 100;     {Отримаємо кількість сотень}
j := a div   10 mod 10; {Отримаємо к-сть десятків}
k := a mod 10;   {Отримаємо кількість одиниць}
s := і + j + k;
writeln('Cyмa цифр числа а =   ', s);
writeln(k,j,i)
 end.
Виконаємо програму. Введемо число 235 - отримаємо результат суми цифр числа а =   10

Вправи та задачі для самостійного розв’язання
1.           Швидкість світла 299792 км/с. Яку відстань долає світло за хвилину, годину, добу?
2.   Квіткова клумба має форму круга. Обчисліть її периметр і площу за заданим радіусом.
3.   Тіло падає з прискоренням g. визначіть пройдений тілом шлях  h=gt2/2 після першої та другої секунди падіння.
ІV. Підсумок уроку.
Мені вдалося …
Мені сподобалося…
Не вдалося …
Не сподобалося…
Я сумніваюся…
Я б змінив …
На уроці вийшло…
Мені було на уроці
V.Домашнє завдання.

Немає коментарів:

Дописати коментар