Приклад 1. Розробити програму знаходження площини довільного трикутника з заданими сторонами.
Вивчивши завдання, визначаємо, що для одержання результату необхідно знати сторони трикутника. Тому вхідними даними будуть значення трьох сторін трикутника. Вихідні дані – значення площини. Для одержання значення площини використовуємо відому з математики формулу визначення площини трикутника по його сторонам:
, де р – значення полупериметру, що визначається по формулі
.
Алгоритм рішення задачі і текст програми:
| | | |
| |
| | program S_Rectangle;
{Визначення площини по заданим сторонам трикутника}
var
a,b,c,p,S:real;
begin
write ('Введіть значення сторін трикутника ');
readln(a,b,c);
p:=(a+b+c)/3;
S:=sqrt(p*(p-a)*(p-b)*(p-cmod 60);
writeln ('Площина трикутника S= ',S:8:2);
readln;
end.
| |
|
Приклад 2. Розробити програму знаходження скільки часу витратив велосипедист, який проїхав певний шлях з заданою швидкістю.
Вивчивши завдання, визначаємо, що для одержання результату необхідно ввести значення для довжини шляху і швидкості руху. При вводі уточнюємо одиниці виміру: шлях в кілометрах, швидкість в кілометрах на годину. Для одержання значення витраченого часу використовуємо відому з фізики формулу S=V×t. Можна визначити час t=S/V. Результатом буде дійсне число, яке користувачу не дасть вірного уявлення про витрачений час. Необхідно отримати значення часу в годинах і хвилинах. Щоб отримати кількість годин, необхідно для дійсного значення часу взяти його цілу частину (для цього використовується функція trunk). Для визначення хвилин, необхідно дійсне значення часу перевести в хвилини, отримане значення перевести в ціле значення (функція round) і отримати залишок від ділення цього значення на 60. Значення витрачених годин і хвилин є результатом рішення і їх необхідно вивести.
Алгоритм рішення задачі і текст програми:
| | | |
| |
| | program Time;
{Визначення часу по заданим шляху і швидкості}
var
S,V,T:real;
chas,min:integer;
begin
write ('Введіть значення шляху в км і швидкості км/год: ');
readln(S,V);
T:=S/V; {дійсне значення часу}
chas:=trunc(T); {ціле значення кількості годин}
min:=(round(T*60) mod 60); { -“- кількості хвилин}
writeln ('Витрачено: годин ',chas:4,' хвилин’,min:4);
readln;
end.
| |
|
Завдання для самоперевірки.
1. Записати оператор присвоювання, який змінній D присвоює середнє арифметичне значення чисел a,b,c.
2. Записати оператор присвоювання, який змінній C присвоює значення гіпотенузи прямокутного трикутника з катетами a,b.
3. Яке значення буде мати змінна X після виконання операторів X:=10; X:=X+4;
4. Записати оператор, який змінює знак у значення змінної X
5. Які значення будуть мати змінні X,Y після виконання операторів X:=2; Y:=5; X:=Y; Y:=x;
6. Поміняти місцями значення змінних X,Y таким чином, щоб в X опинилось значення X, а в Y - значення X.
7. Змінній Х присвоїти значення цілої частини дійсного числа Y.
8. Змінній T присвоїти true, якщо a парне і false в іншому випадку:
9. Змінній T присвоїти true, якщо a=b і false в іншому випадку:
10. Змінній T присвоїти true, якщо три числа x,y,z рівні між собою і false в іншому випадку:
11. Y дійсна змінна, n - ціла змінна. Оператор Y:=n+1; буде вірним чи ні і чому.
12. Y дійсна змінна, n - ціла змінна. Оператор n:=Y +1; буде вірним чи ні і чому.
13. Y дійсна змінна, n - ціла змінна. Оператор n:=n div 2; буде вірним чи ні і чому.
14. Y дійсна змінна, n - ціла змінна. Оператор n:=n/2; буде вірним чи ні і чому.
15. Y дійсна змінна, n - ціла змінна. Оператор Y:=y div 2; буде вірним чи ні і чому.
16. Чи буде вірним оператор k:=k mod 3+k*cos(0); і якого типу повинна бути змінна k.
17. Присвоїти змінній k третю від кінця цифру в запису додатного цілого числа m. (наприклад, якщо k=13289, то m= 2).
18. Визначити значення змінної t:=not (2=5);
19. Записати оператор виводу, який виводить фразу: При X=1.2, Y=1.234
20. Записати оператор виводу, який виводить значення цілої змінної з відступом від початку рядка на 7 позицій.
21. Записати оператор виводу, який виводить заголовок „Таблиця” з відступом від початку рядка на 15 позицій.
22. Записати оператор вводу для вводу двох значень цілого типу і одного строкового. Якими символами необхідно розділяти дані при вводі.
23. Записати оператор вводу для вводу двох значень строкового типу і одного цілого. Якими символами необхідно розділяти дані при вводі.
24. Які значення будуть мати змінні X,Y,Z після описаного вводу і чому: оператор вводу readln(X); read(y,z). Рядок вводу 5 6 7 ¿
25. Які значення будуть мати змінні X,Y,Z після описаного вводу і чому: оператор вводу readln(X,Y); read(z). Рядки вводу 5 6 ¿ 7 ¿
26. Розробити програму визначення площини прямокутника по заданим його сторонам.
27. Розробити програму визначення наступного члена арифметичної прогресії при заданих значеннях останнього члена прогресії і різниці прогресії.
28. Розробити програму визначення множника геометричної прогресії, якщо відомі два послідовні члена цієї прогресії.