Тренуємося створювати прості програми, в яких потрібно обчислити значення за готовою формулою
Спочатку, перевіримо, як вам вдалось впоратися з домашнім завданням. Дайте відповіді на питання, наведені у тесті, але будьте дуже уважними: вам буде зараховано тільки ПЕРШУ спробу.
Доповнимо нашу програму з обчислення об'єму прямокутного паралелепіпеда
Створити програму для виведення об'єму і площі поверхні прямокутного паралелепіпеда за трьома його вимірами
Формулу об'єму прямокутного паралелепіпеда 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.
Спробуємо тепер застосувати набуті уміння до розв'язування наступної задачі.
Створити програму для обчислення довжини кола і площі круга за відомим радіусом
Ще одна проста задача з математики, на цей раз за 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 через кому;pi і в разі його використання, вводити 3.14 не потрібно, адже Pascal і так "знає", що pi - це 3.14Створіть програму для обчислення площі кільця, заданого своїми внутрішнім і зовнішнім радіусами. Відповідь подайте у вигляді "Площа кільця дорівнює (відповідь)". Файл .pas надішліть на перевірку. Формула площі кільця - на малюнку.
Підказка
Ви ж пам'ятаєте, що Pascal не розрізняє велику й малу літери? Отже, розумієте, що позначити в програмі радіуси як r і R - погана ідея. В таких ситуаціях краще створювати змінні з іменами, такими як r1 і r2. Позначте тільки в коментарі який r що означає, наприклад, так:
//r1 - радіус зовнішнього кола, r2 - радіус внутрішнього кола