Використання мови програмування Turbo Pascal при розв’язуванні задач з фізики

Використання мови програмування Turbo Pascal при розв’язуванні задач з фізики



Дуже часто в учнів і студентів виникає потреба швидко розв’язати ті чи інші задачі з фізики. Це може бути зумовлено браком часу, великим об’ємом роботи, яку необхідно виконати тощо. Дуже часто їм доводиться виконувати кілька однотипних задач, які відрізняються лише значенням величин, які дано за умовою задачі. В такому випадку можна обійтися без розв’язування кожної задачі окремо. Велику допомогу учневі чи студенту при цьому може надати вміння програмувати мовою програмування Pascal. Необхідно мати персональний комп’ютер чи ноутбук і середовище програмування Turbo Pascal. Написані програми дозволять миттєво розв’язувати задачі певного типу. Найголовніше – попередньо розв’язати хоча б одну задачу цього типу письмово для того, щоб був зразок, по якому надалі можна писати програми. Отже, нижче будуть наведені приклади написання програм мовою Turbo Pascal для швидкого розрахунку тих чи інших фізичних величин.

фізичний тіло програмування pascal


1. Задача на знаходження швидкості фізичного тіла, якщо відомо шлях і час



var v,s, t: real;

begin

writeln ('Введіть відстань (в метрах) і час (в секундах)');

readln (s,t);

v:=s/t;

writeln ('Швидкість тіла = ', v, ' м/с');

end.



Якщо необхідно знайти час, якщо відомо відстань і швидкість, то в даній програмі змінюємо наступні рядки:



writeln ('Введіть відстань (в метрах) і час (в секундах)');

readln (s,t);

v:=s/t;

writeln ('Швидкість тіла = ', v, ' м/с');

на writeln ('Введіть відстань (в метрах) і швидкість (в метрах за секунду)');

readln (s,v);

t:=s/v;

writeln ('Час руху тіла = ', v, ' с');



2. Задача на знаходження швидкості двох фізичних тіл одне відносно одного, якщо вони рухаються вздовж однієї лінії:



var v1,v2,v: real;

begin

writeln ('Введіть швидкість першого і другого тіла (в метрах за секунду). Якщо тіла рухаються в протилежних напрямках, одне зі значень швидкості введіть зі знаком «мінус»);



readln (v1,v2);

v:=v1+v2;

writeln ('Швидкість тіл одне відносно одного = ', v, ' м/с');

end.



3. Задача на знаходження шляху, що проходить фізичне тіло за певний час, рухаючись з прискоренням і початковою швидкістю (тіло, кинуте з деякої висоти):



var s ,v0, t: real;

const g=9.81;

begin

writeln ('Введіть початкову швидкість (в метрах за секунду) і час (в секундах)');

readln (v0, t);

s:=v0*t+(g*sqr(t)/2);

writeln ('Шлях = ', s, ' м');

end.



4. Задача на знаходження періоду та частоти коливань за циклічною частотою.



var w,T,v: real;

const Pi=3.14;

begin

writeln ('Введіть значення циклічної частоти обертання матеріальної точки навколо осі (в секундах)');

readln (w);

T:=2*Pi/w;

v:=1/T;

writeln ('період обертання матеріальної точки = ', T, ' с', ‘частота обертання матеріальної точки = ’, v, ‘ Гц’);

end.



5. Задача на знаходження доцентрового прискорення за радіусом і лінійною швидкістю обертання матеріальної точки навколо осі:



var a,r,v: real;

begin

writeln ('Введіть значення швидкості обертання точки (в м/с) і радіуса (в м)');

readln (v,r);

a:=sqr(v)/r;

writeln ('доцентрове прискорення точки = ’, a, ‘м/сек.в кв.’);

end.



6. Задача на знаходження кінетичної енергії тіла відомої маси, що рухається з відомою швидкістю:



var E,m,v: real;

begin

writeln ('Введіть значення швидкості тіла (в м/с) і його маси (в кг)');

readln (v,m);

E:= m*sqr(v)/2;

writeln (‘кінетична енергія тіла = ’, E, ‘ Дж’);

end.


7. Задача на знаходження роботи сили по переміщенню тіла відомої маси на певну відстань:



var A,m,s: real;

begin

writeln ('Введіть масу тіла (в кг) і переміщення (в м)');

readln (m,s);

A:=m*9.81*s;

writeln (‘робота = ’, A, ‘ Дж’);

end.



8. Задача на знаходження роботи, необхідної для того, щоб змінити кінетичну енергію тіла відомої маси (його швидкість):



var A,m,v1,v2: real;

begin

writeln ('Введіть значення початкової та кінцевої швидкості тіла (в м/с) і його маси (в кг)');

readln (v1,v2,m);

A:= (m*sqr(v1)/2)-(m*sqr(v2)/2);

writeln (‘робота по зміні кінетичної енергії тіла = ’, A, ‘ Дж’);

end.



Від’ємне значення роботи буде вказувати на те, що для того, щоб змінити швидкість, треба збільшити кінетичну енергію тіла.



9. Задача на знаходження часу польоту тіла, кинутого під кутом до горизонту з відомою початковою швидкістю:



var alpha,t,v0: real;

const g=9.81;

begin

writeln (‘Введіть значення кута (в радіанах) і початкову швидкість (в м/с)');

readln (alpha,v0);

t:=v0*sin(alpha)/g;

writeln (‘ час = ’, t, ‘ с’);

end.



10. На штовхання ядра, кинутого під кутом alpha до горизонту, затрачена робота А. Через який час t і на якій відстані s від місця кидання ядро впаде на землю? Маса тіла m.



var alpha,t,A,m,s: real;

const g=9.81;

begin

writeln (‘Введіть значення кута (в радіанах), масу тіла (в кг), роботу (в Дж)');

readln (alpha,m,A);

t:=(2*sin(alpha)*sqrt(2*A))/(g*sqrt(m));

s:=t*cos(alpha)*sqrt(2*A/m);

writeln (‘ час = ’, t, ‘ с’, ‘ відстань = ’, s, ‘ м’);

end.



11. Задача на знаходження сили гравітаційної взаємодії між двома тілами відомої маси, які знаходяться на відомій відстані одне від одного:



var m1,m2,r,F: real;

const G=6.67E-11;

begin

writeln (‘Введіть масу першого і другого тіл (в кг) і відстань між ними (в м)');

readln (m1,m2,r);

F:=G*m1*m2/sqr(r);

writeln (‘F = ‘, F, ‘Н’);

end.



12. Обчислити гравітаційну сталу G, знаючи радіус земної кулі R, середню густину землі r і прискорення вільного падіння g на поверхні Землі:



var R,G,r1,g1: real;

begin

writeln (‘введіть радіус (в м), середню густину (в кг/куб.м) і прискорення вільного падіння (в Н/с)');

readln (R,r1,g1);

G:=(3*g1)/(4*3.14*R*r1);

writeln (‘G = ‘, G);

end.



13. Задача на знаходження моменту інерції I та моменту імпульсу L кулі масою m і радіусом r:



var I,L,m,r,T: real;

begin

writeln (‘введіть радіус (в м), масу (в кг) і період обертання (в с) кулі');

readln (r,m,T);

I:=0.4*m*sqr(r);

L:=I*2*3.14/T;

writeln (‘I = ‘, I, ‘ кг*кв.м’, ‘L = ’, L, ‘кг*кв.м/с’);

end.

14. Задача на знаходження енергії, необхідної для нагрівання тіла відомої маси, виготовленого з відомого матеріалу, на певну кількість градусів Цельсія чи Кельвіна:



var Q,c,m,t12: real;

begin

writeln (‘введіть питому теплоємність речовини (в Дж/кг*К), массу тіла і різницю температур');

readln (c,m,t12);

Q:=c*m*t12;

writeln (‘Q = ‘, Q, ‘ Дж’);

end.



15. За який час t кип’ятильник потужністю P нагріє воду масою m до температури кипіння від початкової температури t0?



var P,c,m,t,t0: real;

begin

writeln (‘введіть масу води (в кг), потужність (в Вт) та початкову температуру води (в градусах Цельсія)');

readln (m,P,t0);

t:=(4200*m*(100-t0))/P;

writeln (‘t = ‘, t, ‘ c’);

end.



16. Задача на знаходження сили взаємодії між двома зарядами, що знаходяться на певній відстані у вакуумі чи в повітрі: 



var F,q1,q2,r: real;

const k=9E10;

begin

writeln (‘введіть модулі першого та другого зарядів (в Кл) та відстань між ними (в м)');

readln (q1,q2,r);

F:=k*q1*q2/sqr(r);

writeln (‘F = ‘, F, ‘ H’);

end.



17. Задача на знаходження величини напруженості, яку створює заряд q на відстані r від себе:



var E,q,r: real;

const k=9E10;

begin

writeln (‘введіть модуль заряду (в Кл) та відстань до даної точки (в м)');

readln (q,r);

E:=k*q/sqr(r);

writeln (‘E = ‘, E, ‘ В/м’);

end.



18. Задача на знаходження потенціалу, який створює даний заряд на деякій відстані від себе:



var f,q,r: real;

const k=9E10;

begin

writeln (‘введіть модуль заряду (в Кл) та відстань до даної точки (в м)');

readln (q,r);

f:=k*q/r;

writeln (‘ потенціал = ‘, f, ‘ В’);

end.



19. Задача на знаходження заряду конденсатора з відомою ємністю, що заряджений до певної напруги:



var c,q,u: real;

begin

writeln (‘введіть електроємність конденсатора (в Ф) та напругу на його обкладках (в В)');

readln (c,u);

q:=c*u;

writeln (‘ q = ‘, q, ‘ Кл’);

end.

20. Задача на знаходження енергії конденсатора відомої ємності, зарядженого до певної напруги:



var W,C,U: real;

begin

writeln (‘введіть електроємність конденсатора (в Ф) та напругу на його обкладках (в В)');

readln (C,U);

W:=C*sqr(U)/2;

writeln (‘ W = ‘, W, ‘ Дж’);

end.



21. Задача на знаходження часу розряду конденсатора ємністю С через резистором з опором R від напруги U1 до напруги U2:



var t,C,R, U1,U2: real;

begin

writeln (‘введіть електроємність конденсатора (в Ф) , опір резистора (в Ом), початкову та кінцеву напругу (в В)');

readln (C,R,U1,U2);

t:=C*R*ln(U1/U2);

writeln (‘ t = ‘, t, ‘ c’);

end.



22. Задача на знаходження електроємності конденсатора, якщо відомо площа обкладок S, відстань між ними d та відносна діелектрична проникливість діелектрика e:



var C,e,S,d: real;

const e0=8.85E-12;

begin

writeln (‘введіть площу пластин (в кв.м) , відстань між ними (в м) та відносну діелектричну проникливість діелектрика');

readln (S,d,e);

C:=e*e0*S/d;

writeln (‘ C = ‘, C, ‘ Ф’);

end.



23. Задача на знаходження електричного опору провідника при нагріванні до певної температури, якщо відомо його опір при 0 оС, температурний коефіцієнт опору та температуру, до якої він нагрівається:



var R,R0,t,x: real;

begin

writeln (‘введіть опір провідника при 0 градусів Цельсія (в Ом), температуру (в градусах Цельсія) та температурний коефіцієнт опору провідника‘);

readln (R0,t,x);

R:=R0*(1+x*t);

writeln (‘ R = ‘, R, ‘ Ом’);

end.



24. Задача на знаходження температури, до якої нагрівся провідник з відомим температурним коефіцієнтом опору, якщо відомо його опір при 0 оС та при даній температурі:



var R,R0,t,x: real;

begin

writeln (‘введіть опір провідника при 0 градусів Цельсія та при даній температурі (в Ом) та температурний коефіцієнт опору провідника‘);

readln (R0,R,x);

t:=((R/R0)-1)/x;

writeln (‘ t = ‘, t, ‘ градусів Цельсія’);

end.



25. Задача на знаходження сили струму в колі за законом Ома для ділянки кола:



var R,U,I: real;

begin

writeln (‘введіть опір (в Ом) та напругу (в В)‘);

readln (R, U);

I:=U/R;

writeln (‘ I = ‘, I, ‘ A’);

end.



26. Задача на знаходження сили струму в колі за законом Ома для повного кола:



var R,U,I,r1: real;

begin

writeln (‘введіть зовнішній опір та внутрішній опір джерела струму (в Ом) та електрорушійну силу (в В)‘);

readln (R,r1, U);

I:=U/(R+r1);

writeln (‘ I = ‘, I, ‘ A’);

end.



27. Задача на знаходження внутрішнього опору джерела струму:



var R,U,I,r1: real;

begin

writeln (‘введіть зовнішній опір (в Ом), силу струму в колі (в А) та електрорушійну силу (в В)‘);

readln (R,I,U);

r1:=(U/I)-R;

writeln (‘ r = ‘, r1, ‘ Ом’);

end.



28. Задача на знаходження роботи, яку виконує електричний струм, якщо відомо час, силу струму і опір провідника:



var R, I,A,t: real;

begin

writeln (‘введіть опір (в Ом), силу струму (в А) та час проходження струму (в с)‘);

readln (R,I,t);

A:=sqr(I)*R*t;

writeln (‘ A = ‘, A, ‘ Дж’);

end.



якщо відомо не сила струму, а напруга, то замінити рядки



writeln (‘введіть опір (в Ом), силу струму (в А) та час проходження струму (в с)‘);

readln (R,I,t);

A:=sqr(I)*R*t;

writeln (‘ A = ‘, A, ‘ Дж’);

на

writeln (‘введіть опір (в Ом), напругу (в В) та час проходження струму (в с)‘);

readln (R,U,t);

A:=sqr(U)*t/R;

writeln (‘ A = ‘, A, ‘ Дж’);



29. Задача на визначення коефіцієнта корисної дії джерела електричного струму, якщо відомо зовнішній опір навантаження і внутрішній опір джерела струму:



var R,r1,n: real;

begin

writeln (‘введіть зовнішній опір навантаження та внутрішній опір джерела струму (в Ом)‘);

readln (R,r1);

n:=(R/(R+r1))*100;

writeln (‘ ККД = ‘, n, ‘ %’);

end.

30. Задача на знаходження потужності електричного струму, якщо відомо силу струму і напругу:



var P,U,I: real;

begin

writeln (‘Введіть силу струму та напругу споживача електричного струму‘);

readln (I,U);

P:=U*I;

writeln (‘ P = ‘, P, ‘ Вт’);

end.



31. Який об’єм води V можна закип’ятити, затративши Q Дж енергії. Початкова температура води T oC.



var V,t,Q: real;

const r=1000; c=4200;

begin

writeln (‘введіть кількість енергії (в Дж) та початкову температуру води (в градусах Цельсія)‘);

readln (Q,t);

V:=1000*Q/(c*r*(100-t));

writeln (‘ V = ‘, V, ‘ літрів’);

end.



32. Задача на знаходження фокусної відстані лінзи, якщо відома її оптична сила.



var F,D: real;

begin

writeln (‘Введіть оптичну силу лінзи (в дптр)’);

readln (D);

F:=1/D;

writeln (‘ F = ‘, F, ‘ м’);

end.



33. Радіуси кривизни поверхонь двовипуклої лінзи R1 і R2. Знайти оптичну силу лінзи D, якщо показник заломлення для матеріалу, з якого вона виготовлена, дорівнює n.



var R1,R2,D,n: real;

begin

writeln (‘введіть радіуси кривизни лінзи R1 і R2 (в м) та показник заломлення‘);

readln (R1,R2,n);

D:=(n-1)*((1/R1)-(1/R2));

writeln (‘ D = ‘, D, ‘ дптр’);

end.



Вивчивши структуру цих програм, студент чи учень зможе без проблем самостійно писати допоміжні програми, які значно полегшать процес навчання та підвищать його ефективність.