Розробка простих програм обчислювального характеру
Тренуємося створювати прості програми, в яких потрібно обчислити значення за готовою формулою
Спочатку, перевіримо, як вам вдалось впоратися з домашнім завданням. Дайте відповіді на питання, наведені у тесті, але будьте дуже уважними: вам буде зараховано тільки ПЕРШУ спробу.
Доповнимо нашу програму з обчислення об'єму прямокутного паралелепіпеда
Завдання 3
Створити програму для виведення об'єму і площі поверхні прямокутного паралелепіпеда за трьома його вимірами
Формулу об'єму прямокутного паралелепіпеда V=a∙b∙c ми вже повторили, залишилось пригадати, що площа його поверхні (це сума площ усіх його прямокутників-граней) обчислюється за формулою S=(ab+ac+bc)∙2 і можна складати програм. Не забудьте про необхідність внести до переліку змінних ще одну - для позначення площі.
Спробуйте написати програму самостійно, а потім перевірите, відкривши цей спойлер
program obem_ploshcha;
var a,b,c,v,s:real; //не забудьте описати УСІ змінні!
begin
writeln('Введіть довжину');
read(a);
writeln('Введіть ширину');
read(b);
writeln('Введіть висоту');
read(c);
v:=a*b*c;
s:=(a*b+a*c+b*c)*2; //оператори множення ОБОВ'ЯЗКОВІ!
writeln(v);
writeln(s)
end.
І все б тут було добре, якби не відповідь:
На відміну від домашньої задачі ми обчислювали не один показник, а два. Значить, виводити довелось теж не один, а два результати. Питання: А ХТО З НИХ ХТО? 24 - це площа чи об'єм? Що таке 52 - об'єм чи площа? Для відповіді на ці питання доведеться дивитися в код програми, що ж виводилося першим! Але ж рядовий користувач, для якого ми напишемо програму, цього робити не буде! Більше того, він цього зробити навіть і НЕ ЗМОЖЕ, оскільки йому дадуть не код програми, а саму програму! Натомість, створити інтерфейс, дружній до користувача, з яким йому було б зручно й комфортно працювати - це якраз пряма задача програміста! Як же підписати виведені результати обчислень?
Для того, щоб вивести відповідь у форматі V=24
, S=52
, видозмінимо 12 і 13-й рядки програми:
12 writeln('V=',v);
13 writeln('S=',s);
Ми вже знаємо, що написане у одинарних лапках виводиться без змін, так, як воно і написане, а запис writeln(v)
без лапок - це команда на виведення не самої літери v
, а значення, якого набула змінна v
.
Отже, комбінація цих двох способів призведе до того, що спочатку буде написано V=
, а потім встик буде виведене значення змінної v
. Аналогічно й зі змінною s
.
В лапках можемо написати не математичний, а словесний вираз і тоді буде так:
Зверніть увагу на наявність пробіла після слова "дорівнює". Це зроблено для того, щоб число не "приліпилося" до тексту, а було виведене окремо.
Залишилось розшифрувати, що означає writeln('Об',#39,'єм дорівнює ',v);
?
З виведенням фрази "Об'єм дорівнює" виникла проблема. Суть її у тому, що використовуваний у слові "об'єм" апостроф виглядає так само, як і одинарна лапка, а тому якщо ми напишемо 'Об'єм дорівнює', то Pascal "думає", що ми після буквосполучення "Об" закрили лапки й тим самим завершили введення тексту. Через це усе, що написано після апострофа - "єм дорівнює" ним зовсім не сприймається. Він не "розуміє", що це - текст чи якісь змінні. Виникає помилка:
Для усунення цієї помилки замість апострофа напишемо його ASCII-код. Цей код - 39. Позначення #39 одначає, що 39 - це не якесь число, а код символа, який потрібно вписати в потрібне місце. От і все. Таким чином записом writeln('Об',#39,'єм дорівнює ',v);
ми даємо команду написати буквосполучення "Об", потім вставити апостроф і дописати фразу "єм дорівнює", зробити пробіл і після нього вивести значення змінної v
.
Спробуємо тепер застосувати набуті уміння до розв'язування наступної задачі.
Завдання 4
Створити програму для обчислення довжини кола і площі круга за відомим радіусом
Ще одна проста задача з математики, на цей раз за 6 клас. Для її розв'язання достатньо знати дві формули: довжини кола C=2пR і площі круга S=пR². Для позначення константи "пі" в Pascal є своє позначення, яке виглядає як pi
. Завдяки цьому ніякого 3.14 ніде писати не треба. Оператора піднесення до квадрата в Pascal немає, тому доведеться R
множити саме на себе двічі. Таким чином, вираз для обчислення, наприклад, площі круга в Pascal матиме такий вигляд: s:=pi*R*R
.
Відповідь традиційно під спойлером, а ви традиційно відкриваєте його тільки після того, як створите свою програму
program kolokrug;
var r,c,s:real; //Pascal не розрізняє велику й малу літеру, усе пишемо маленькими
begin
writeln('Введіть радіус');
read(r);
c:=2*pi*r; //довжина кола
s:=pi*r*r; //площа круга
writeln('Довжина кола: ',c);
writeln('Площа круга: ',s);
end.
ПІДСУМКИ
Отже, з цього уроку ви дізналися, що:
- під час виведення повідомлень можна поєднувати текст і числові величини, записуючи їх у дужках після
write
чиwriteln
через кому; - для виведення апострофа в повідомлення потрібно вписувати його код у форматі #39;
- оператора піднесення до квадрата в Pascal немає, а для піднесення будь-якої величини до квадрата її потрібно просто помножити саму на себе;
- для константи "пі" в Pascal є своє позначення
pi
і в разі його використання, вводити 3.14 не потрібно, адже Pascal і так "знає", щоpi
- це 3.14
ДОМАШНЄ ЗАВДАННЯ:
Створіть програму для обчислення площі кільця, заданого своїми внутрішнім і зовнішнім радіусами. Відповідь подайте у вигляді "Площа кільця дорівнює (відповідь)". Файл .pas надішліть на перевірку. Формула площі кільця - на малюнку.
Підказка
Ви ж пам'ятаєте, що Pascal не розрізняє велику й малу літери? Отже, розумієте, що позначити в програмі радіуси як r
і R
- погана ідея. В таких ситуаціях краще створювати змінні з іменами, такими як r1
і r2
. Позначте тільки в коментарі який r
що означає, наприклад, так:
//r1 - радіус зовнішнього кола, r2 - радіус внутрішнього кола