неділя, 15 квітня 2018 р.

Практичні завдання на масивах


 Program - це заголовок програми, що вказує її ім'я. Рекомендують вказувати заголовок програми, щоб уже при першому знайомстві з її текстом можна було отримати інформацію про її призначення. Потрібно відмітити, що заголовок програми, що слідує, за словом PROGRAM є ідентифікатором і володіє всіма його властивостями. Крім цього, заголовок програми обовязково повинен починатись з латинської літери, а далі можуть знаходитись символи, допустимі для алфавіту Pascal.
    Uses - цей підрозділ вказує назви модулів та бібліотек, що потрібно підключити до програми. Поняття “модуль”, “бібліотека”, “блок” складають основу термінології програмування на PascalМодуль представляє собою замкнутий блок, що має своє імя, компілюється окремо і підключається до вашої програми, як ніби “чорна скринька” із набором певних (описаних у ньому) процедур, функцій, типів даних, констант і т.д. Бібліотека представляє собою набір таких модулів. Якщо модулі в програмі не потрібно використовувати (не використовується процедури, функції і т.д., що описані в модулі), то цей підрозділ не вказуємо. Потрібно відмітити, що оператор USES може використовуватись в програмі лише один раз, при цьому в нього є чітко визначене місце (він знаходиться поперед усіх операторів та підрозділів (крім заголовка програми та директив компілятора)).
    Label - підрозділ, в якому вказується список усіх міток, що використовуються в програмі. Якщо міток у програмі немає, то підрозділ LABEL не вказуємо.
    Const - підрозділ опису констант. Якщо в програмі будуть застосовуватись константи, то їх імена та значення (після знаку рівності) вводять в розділі ConstВ інших випадках цей підрозділ не вказується. Слід відмітити, що стандартні константи, прийняті в Pascalне потрібно описувати в даному розділі.
    Type - підрозділ опису користувацьких типів даних. В цьому підрозділі переважно вказують складні та нестандартні типи даних. Якщо такі типи в програмі не використовують, то даний підрозділ не вказується.
    Var - підрозділ опису всіх змінних, що використовуються в програмі. Потрібно відмітити, що всі змінні, що використовуються в програмі, обов'язково повинні бути описані в підрозділі varЦе єдиний підрозділ розділу описів та узгоджень, який обов’язково повинен бути представлений у кожній Pascal-програмі.
    Розділ текстів процедур та функцій вказується лише у випадку, якщо в програмі використовуються нестандартні процедури та функції, що створені самим користувачем (якщо вони не описані в одному з модулів вказаних у розділі USES). Потрібно відмітити, що процедури та функції - це спеціальним чином оформлені послідовності команд (у вигляді підпрограми). Доступ до цієї підпрограми може здійснюватись з будь-якого місця основної програми, а також з будь-якої процедури та функції, що описані нижче по тексту програми.
    Розділ операторів - це розділ основного блоку програми. В цьому розділі знаходиться основний текст програми. Починається цей розділ словом begin і закінчується словом endпісля якого слідує крапка.
Правила написання Pascal-програм
1.  Основний текст будь-якої програми починається службовим словом begin і закінчується словом endпісля чого слідує крапка. Без крапки програма вважається не закінченою. І навпаки, якщо в програмі знаходиться крапка, то всі команди, що слідують за нею ігноруються (оскільки програма завершена).
2.  В кінці кожної команди ставиться крапка з комою (“;”) - символ, що розділяє команди між собою.
3.  Після команди, яка знаходиться перед endкрапку з комою (“;”) бажано не встановлювати, оскільки буде вважатись, що перед end є ще один порожній оператор.
4.  Команди в Pascal можна записувати в один рядок, хоча для полегшення читабельності програми бажано кожну команду вказувати з нового рядка.
5.  Якщо користувач бажає помістити в текст програми коментарі, то їх необхідно вказувати у фігурних дужках (замість фігурних дужок можна вказувати альтернативний набір символів   - (“(*     ,,,    *)” ).
6.  При вказуванні в програмі виразів, що містять будь-які дужки потрібно памятати, що кількість закритих та відкритих дужок повинна бути однаковою.
7.  Якщо потрібно використати декілька операторів у якості одного складеного оператора, то їх слід взяти в операторні дужки, що починаються словом begin і закінчуються endПри цьому кількість слів begin у програмі повинна співпадати з кількістю слів end.
8.  Усі змінні, константи та типи даних, що використовуються в програмі, повинні бути описані в розділах consttype та var.
Алфавіт мови програмування
Мова програмування, які і будь-яка інша мова, містить свій алфавіт.
Алфавіт мови програмування - це набір констант, типів даних, змінних, стандартних процедур і функцій, операндів та операторів, з яких складається програма.
Розглянемо ці терміни більш детально.
Константи - це дані, значення яких відоме до завантаження програми і не змінюється в процесі її виконання.
В Pascal існують як стандартні константи, так і вказані користувачем. До стандартних констант належить, наприклад, число Pi=3,141592.... Константи, задані користувачем, потрібно вказувати в спеціальному розділі програми  const.
Змінні - це дані, значення яких вводиться та змінюється під час виконання програми. Усі змінні, що використовуються в Pascal-програмі, потрібно описувати в спеціальному розділі програми.
Тип даних - це набір даних (констант, змінних, значень функцій і т.д.), які мають спільні характеристики (формат представлення в памяті ПК, множина допустимих значень, множина допустимих операцій, що можна використовувати для даного типу).
Процедури та функції- це підпрограми, що використовуються в середині програми (більш детально будуть описані далі). До алфавіту мови програмування відносять стандартні процедури та функції, тобто такі, що сприймаються мовою програмування без їх додаткового опису.
Операнди - це спеціальні символи або послідовності символів, які виконують над даними певні операції (математичні, логічні і т.д.).
Прикладом операндів можуть бути операнди математичних операцій: “+” - додавання даних), “-” - віднімання даних, “*” -множення даних, “/” - ділення даних, “=” - рівність даних і т.д.
Оператори - це деякі неподільні елементи програми, що дозволяють виконувати певні алгоритмічні дії у програмі, тобто виконувати в програмі певні команди. фактично, оператор - це окрема команда в алгоритмі програми, тобто окремий крок виконання програми.
В Pascal оператори поділяються на прості та структурні. До простих операторів відносяться:
-   оператор присвоєння (:=);
-   оператор введення (readreadln);
-   оператор виведення (writewriteln);
-   оператор безумовного переходу (goto);
-   оператор звертання до процедури (функції).
Структурними операторами називаються такі, що складаються з інших операторів. До них відносяться:
-   складний оператор - представляє собою набір операторів, що поміщені   в операторні дужки (begin end);
-   умовний оператор (if);
-   оператор вибору (case);

-   оператори циклу (repeat, while, for).



Практична робота 36. Практичні завдання на масивах
Завдання 1. Створити, реалізувати та протестуватувати алгоритм мовою Pascal, що отримує всі можливі варіанти перевезень 1000 штук цегли візками місткістю 100, 300, 400, 500 шт. цегли і підраховує їхню кількість.
Program CEGLA1;
 const  n=1000;      var   a,b,c,d:array[1..201] of integer;        k,x,y,i,z,u: integer;
begin  k:=0;
for  x:= 0 to n div 100 do begin  writeln(x, ' =x');
for  y:= 0 to n div 300 do begin   writeln(y, ' =y');
for  z:= 0 to n div 400 do begin     writeln(z, ' =z');
for  u:= 0 to n div 500 do  begin    writeln(u, ' =u');
writeln(100*x+300*y+400*z+500*u,   ' =100*x+300*y+400*z+500*u');
if  (100*x+300*y+400*z+500*u)=n   then  begin
k:=k+1;    a[k]:=x;     b[k]:=y;     c[k]:=z;      d[k]:=u;      end;  end;  end;  end;  end;
for  i:= 1 to k do  writeln(' 100 шт. цегли: ', a[i], '  300 шт. цегли: ', b[i], '   400 шт. цегли:  ', c[i], '   500 шт. цегли: ',  d[i]);
writeln (' Кількість способів перевезень ', n, '  шт. цегли: k= ', k); writeln(' ******'); end.
Протестуйте цей алгоритм, якщо: 1) const  n=900;  2) const  n=800;   3) const  n=700;    4) const  n=600;  5) const  n=1500.  
Завдання 2. Створити, реалізувати та протестуватувати алгоритм мовою Pascal, що отримує всі можливі варіанти пересилання поштою  120 книг ящиками місткістю 10, 15, 20, 50  книг і підраховує їхню кількість та вартість, якщо ціна ящика на 10 книг – 4 грн, на 15 книг – 5.5 грн, на 20 книг – 7.5 грн,  на 50 книг – 19 грн.
Program KNYGA2;
 const  n=120;      var   a,b,c,d:array[1..201] of integer;        k,x,y,i,z,u: integer;
begin  k:=0;
for  x:= 0 to n div 10 do begin  writeln(x, ' =x');
for  y:= 0 to n div 15 do begin   writeln(y, ' =y');
for  z:= 0 to n div 20 do begin     writeln(z, ' =z');
for  u:= 0 to n div 50 do  begin    writeln(u, ' =u');
writeln(10*x+15*y+20*z+50*u,   ' =10*x+15*y+20*z+50*u');
if  (10*x+15*y+20*z+50*u')=n   then  begin
k:=k+1;    a[k]:=x;     b[k]:=y;     c[k]:=z;      d[k]:=u;      end;  end;  end;  end;  end;
for  i:= 1 to k do  writeln(' 10 книг: ', a[i], '  15 книг: ', b[i], '   20 книг:  ', c[i], '   50 книг: ',  d[i], '   Вартість пересилки:  ' ,  4*a[i] +5.5*b[i]+ 7.5*c[i]+ 19*d[i]);
writeln (' Кількість способів перевезень ', n, '  книг: k= ', k); writeln(' ******'); end.
Протестуйте цей алгоритм, якщо: 1) const  n=90;  2) const  n=80;   3) const  n=170;    4) const  n=60;  5) const  n=150.  
Завдання 3. Самостійно створити, реалізувати та протестуватувати алгоритм  SYK3 мовою Pascal, що отримує всі можливі варіанти розливання  30 літрів соку у тару місткістю 1, 2, 3, 5  літрів і підраховує їхню кількість та вартість, якщо ціна тари на 1 літру – 9 грн, на 2 літри  – 17.5 грн, на 3 літри –25.5 грн,  на 5 літрів  – 43 грн.
Завдання 4. Самостійно створити, реалізувати та протестуватувати алгоритм  BENZUN4 мовою Pascal, що отримує всі можливі варіанти розливання  45 літрів  бензину у тару місткістю 5, 10, 15, 20  літрів і підраховує їхню кількість та вартість, якщо ціна тари на 5 літрів – 145 грн, на 10 літрів  – 275 грн, на 15 літрів –425.5 грн,  на 20 літрів  – 550 грн.

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

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