Практична робота 14 «Лінійні алгоритми
на мові Pascal»
Завдання 1. Скласти і
реалізувати алгоритм для знаходження
кількості днів, за яку виконають сумісну роботу два програміста, якщо такий
об’єм роботи перший програміст самостійно виконує за k
днів, а другий програміст самостійно виконує за m
днів.
program Robota_1; {назва
алгоритму}
var k,m: real; {оголошення змінних величин: k,m – це дійсні числа}
begin { початок виконання алгоритму}
writeln( 'k='); readln(k); writeln( 'm='); readln(m); { введення двох
чисел}
k:=(k*m)/(k+m);
{ обчислення
за формулою}
writeln('Разом виконають за ', k, ' днів'); { виведення результату}
end.
{закінчення
алгоритму}
Протестуйте алгоритм для таких
значень k i m: а)12 i 8; б)3,2 i 2,4; в)6,5 i 2,6; г)42 і36;
д)40,30 і 40,45; е)20 і 16; є)80 і 84.
Завдання 2.
Скласти і реалізувати алгоритм для
знаходження справжньої маси монети, якщо її зважували на бракованих терезах з нерівними
плечами, і при викладенні гирьок на першій чашечці, то маса монети на
протилежній чашечці становила k грам, а при викладанні гирьок на другій чашечці
терезів маса монети на протилежній чашечці становила m грам.
program
Robota_2; {назва алгоритму}
var k,m: real; {оголошення змінних величин: k, m – це дійсні числа}
begin {
початок виконання алгоритму}
writeln(
'k='); readln(k); writeln( 'm='); readln(m); { введення двох чисел}
k:=sqrt(k*m);
{ обчислення за функцією
квадратного кореня}
writeln('Cправжня маса монети: ', k, ' грам); { виведення результату}
end.
{закінчення алгоритму}
Протестуйте алгоритм
для таких значень k i m: а)12
i 8; б)3,2 i 2,4; в)6,5 i 2,6; г)42 і36;
д)40,30 і 40,45; е)20 і 16; є)80 і 84.
Завдання 3.
Є три гаманці: татчин, мамчин, сина. У татовому гаманці: k грн, у маминому гаманці m
грн. Бабуся запитала внучка, яку б ти хотів мати cуму грошей у своєму гаманці і запропонувала чотири можливі
варіанти: 1) середнє арифметичне грошей у двох гаманцях, що мають k+1000
грн і m-1000 грн відповідно; 2)
середнє геометричне грошей, що у двох гаманцях, котрі мають k-2000
грн і m+2000 грн відповідно; 3)середнє квадратичне грошей
у двох гаманцях, котрі мають k-3000 грн і m+3000 грн відповідно; 4)
середнє гармонійне грошей у двох гаманцях, котрі мають k+4000 грн і m-4000 грн
відповідно. Для внучка бабусі скласти і реалізувати алгоритм для впорядкування від найбільшого до найменшого названих
бабусею чотирьох грошових величин.
program Robota_3;
{назва алгоритму}
var k,m,n: real; {оголошення змінних величин: k, m, n – це дійсні числа}
begin {
початок виконання алгоритму}
writeln(
'k='); readln(k); writeln( 'm='); readln(m); { введення двох чисел}
n:=sqrt(((k-3000)*(k-3000)+(m+3000)*(m+3000))*0.5); {обчислення
за фор-лою серед-ого квадр-ного}
writeln('Cереднє квадратичне: ', n, ' грн
');
{ виведення результату}
n:= ((k+1000)+(m-1000))*0.5; {обчислення
за фор-лою серед-ого арифметичного}
writeln('Cереднє арифметичне: ', n, ' грн
');
{ виведення результату}
n:=sqrt((k-2000)*(m+2000)); {обчислення
за фор-лою серед-ого геометр-ного}
writeln('Cереднє геометричне: ', n, ' грн
');
{ виведення результату}
n:=2*((k+4000)*(m-4000))/ ((k+4000)+(m-4000)) ;
{обчислення за фор-лою
серед-ого гарм-ного}
writeln('Cереднє гармонійне: ', n, ' грн
');
{ виведення результату}
end.
{закінчення алгоритму}
Протестуйте алгоритм для таких
значень k i m: а)10000 i 80000; б)300000 i 400000; в)600500 i 900600.
Практична робота 15. Складені
алгоритми з практичним змістом
Завдання 1. На вокзалі з потягу зійшли два пасажира і направились одночасно в один
і той же пункт А. Перший пасажир половину часу йшов зі швидкістю v1 м/год, а другу
половину часу йшов зі швидкістю v2 м/год. Другий пасажир йшов першу половину шляху зі
швидкістю v2 м/год, а другу половину шляху зі швидкістю v1 м/год. Допоможіть слідчому,
дізнатися, яку відстань долали пасажири від виходу із потяга до пункту
призначення і хто першим прибуває в пункт А.
Скласти і реалізувати алгоритм
для вияснення, хто першим прибуває у пункт призначення і на скільки
раніше, ніж інший, якщо відомо, що перший пасажир витрачає на весь свій шлях t хвилин?
program TOURIST_1;
{назва
алгоритму}
var v1,v2,t1,t2, s1 : real; {оголошення
змінних величин: v1,v2,t1,t2, s1,s2 – це дійсні числа}
begin { початок виконання
алгоритму}
writeln(
'v1='); readln(v1); writeln( 'v2='); readln(v2); writeln( 't1='); readln(t1);
s1:=(v1+v2)*t1*0.5; {обчислення за фор-лою відстані від потяга до пункту}
writeln('Довжина шляху пасажирів', s1, ' метрів
'); { виведення результату}
t2:=(v1+v2)* (v1+v2)*t1*0.25/( v1*v2); {обчислення
за фор-лою часу другого пасажира}
writeln('Час руху другого пасажира: ',t2, ' хвилин
'); { виведення результату}
if t2 –t1=0 then writeln('У
пункт А пасажири прибувають одночасно');
if t2 –t1>0 then writeln('У
пункт А раніше прибуває перший пасажир на: ', t2 –t1, ' хвилин.
'); end.
Протестуйте алгоритм для таких
значень {v1; v2; t1}: а)(90; 80; 30)=0,1 хв; б) (85; 85; 40)=0 хв; в)(60; 80; 20)=0,42 хвилини.
Завдання 2. Якщо через рівні проміжки часу на депозитну картку
вноситься деяка постійна сума К грн(періодичні внески) під складні відсотки Р%
, то заощадження обчислюється за формулою
S=K*(1+p/100)*(exp(ln(1+p/100)*n)-1)/(
(1+p/100)-1).
Скласти і реалізувати
алгоритм для вияснення cум грошей на депозитній картці через
декілька років.
program BABLO_2; {назва алгоритму}
var k,p,r, s : real; n, i: integer; {оголошення змінних величин: k,p,r,n, s –
це дійсні числа}
begin {
початок виконання алгоритму}
k:=1000+random(100); writeln(
' Якщо сума, що вноситься на депозит k=', k); writeln;
p:=7+random(10); writeln(
' Якщо відсоткова ставка для цього депозиту р=', p); writeln;
n:=1+random(10); writeln(
' Якщо кількість років існування депозиту n=', n); writeln;
s:=1+p/100; u:=1; {обчислення початкового відсотку для виконання алгоритму}
for i:=1 to n do begin {виконання циклу з лічильником по рокам для обчислення
грошей}
u:=u*(1+p/100); s:=1+p/100; s:=
K*s*(u-1)/(s-1);
writeln( 'Кількість грошей на депозиті через', i, ' років S=', s); writeln; end; writeln('********');
end.
Протестуйте алгоритм
декілька разів і порівняйте результати. Самостійно змініть діапазон вибору
випадкових чисел в алгоритмі.
Завдання 3. Якщо
протягом
n років на депозитну
картку з сумою К грн нараховується m разів щорічно деякий постійний складний відсоток Р% ,
то заощадження обчислюється за формулою
S=K* exp(ln (1+p/(100*m))*n*m)
Скласти і реалізувати
алгоритм для вияснення cум грошей на депозитній картці
через декілька років.
program BABLO_3;
{назва
алгоритму}
var k,s : real; u,m,n, i: integer; {оголошення змінних величин дійсні числа та цілі
числа}
begin { початок
виконання алгоритму і введення
випадкових значень}
k:=1000+random(1000); writeln(
' Якщо початкова сума на депозиті k=', k); writeln;
p:=7+random(10); writeln(
' Якщо відсоткова ставка для цього депозиту р=', p); writeln;
n:=1+random(5); writeln(
' Якщо кількість років існування депозиту n=', n); writeln;
m:=1+random(12); writeln(
' Якщо кількість нарахувань на депозит
за рік m=', m); writeln;
s:=k; u:=n*m;
{обчислення чисел для
виконання циклу в алгоритмі}
for i:=1 to u do begin {виконання циклу з лічильником по нарахуванням для обчислення грошей}
s:=
K*exp(ln(1+p/(100*i)))*i*i;
writeln( 'Кількість грошей на депозиті після', i, ' –го нарахування S=', s); writeln; end; writeln('*****'); end.
Протестуйте алгоритм
декілька разів і порівняйте результати. Самостійно змініть діапазон вибору
випадкових чисел в алгоритмі.
Немає коментарів:
Дописати коментар