
- •Про навчальну практику
- •Завдання № 1
- •Постановка задачі
- •Текст програми
- •Апробація
- •Текст програми
- •Апробація
- •Апробація
- •Завдання № 5
- •Постановка задачі
- •Опис алгоритму
- •Текст програми
- •Текст програми
- •Опис алгоритму
- •Текст програми
- •Апробація
- •Завдання № 11
- •Постановка задачі
- •Опис алгоритму
- •Текст програми
- •Апробація
- •Висновок
- •Список використаної літератури
Опис алгоритму
Для написання цієї програми потрібно оголосити два типи за допомогою record, а саме expon(експоненціальне представлення), fixformat(фіксований формат), а також процедури зчитування(зчитує число у експоненціальному представленні), переводу(переводить число із експоненціального представлення у фіксований формат), виводу(виводить кількість позицій для всього числа та кількість позицій для дробової частини), функцію, яка визначає кількість позицій числа.
Текст програми
Program Epselon;
var x1,x2:integer;
Procedure PPP(a,b:integer);
var n,c,p,s,d:integer;
begin
c:=a;
d:=b;
n:=0;
s:=1;
if abs(a)>9 then
begin
while abs(c)>9 do
begin
c:=c div 10;
n:=n+1;
end;
for p:=1 to n do
s:=s*10;
writeln(a div s,'.',abs(a) mod s ,b,'E+',n);
end
else if abs(a)>0 then
writeln(a,'.',b,'E00')
else
begin
while d>9 do
begin
d:=d div 10;
n:=n+1;
end;
for p:=1 to n do
s:=s*10;
writeln(d,'.',b mod s,'E-1');
end;
end;
begin //main
write('enter the integer part: ');
readln(x1);
write('enter fractional part: ');
readln(x2);
while x2<0 do
begin
writeln('Error! Enter correct number(x2)');
readln(x2);
end;
PPP(x1,x2);
end.
Апробація
1) enter the integer part: 10
enter fractional part: 10
Result: 1.010E+1
Результат правильний.
2) enter the integer part: 0
enter fractional part: 487
Result: 4.87E-1
Результат правильний.
Завдання № 6
Тема завдання: Мова Pascal, рекурсія
Постановка задачі
Розкласти функцію y=ch(x)
у ряд Тейлора та написати рекурсивну
функцію для обчислення її значення у
точці x
>0
з точністю
=0.0001.
Опис алгоритму
Розкладаємо функцію y=ch(x)
за формулою
.
Потім розкладаємо
та
у ряд Тейлора, а саме
та
,
тоді
.
Створюємо рекурсію, яка обчислює
за формулою Тейлора, а далі знаходимо
номер елемента, починаючи з якого,
значення доданків за формулою Тейлора
менші за E.
Виводимо результат, який отримали за
формулою Тейлора та результат через
стандартні функції для порівняння.
Текст програми
Program P6;
uses crt;
var e,x,res,stx:real;
Function Teylor(stx,fact:real; n:integer):real;
begin
if stx/fact < e then
exit
else
Teylor:=stx/fact + teylor(stx*x*x,fact*(n+1)*(n+2),n+2);
end;
begin
read(x);
read(e);
stx:=x*x;
res:=teylor(stx,2,2);
writeln(res+1:2:5);
writeln((exp(x)+exp(-x))/2:2:5);
end.
Апробація
x=3
e=0.0001
Result: 10.06766
Ch x : 10.06761
Результат правильний.
x=5
e=0.0001
Result: 74.20991
Ch x : 74.20995
Результат правильний.
Завдання № 7
Тема завдання: Мова Pascal, множини
Постановка задачі
Використовуючи множини написати програму, яка б друкувала без повторень шляху всеможливі шляхи між двома заданими вершинами у зв’язному графі. Інформацію про граф прочитати з файлу.
Опис алгоритму
Суть цієї задачі полягає в тому, що ми вершини позначаємо числами, що не перевищують 9, тоді ребра ми будемо позначати двоцифровими числами. Тоді за цим алгоритмом програма може працювати не більше, ніж з дев’ятьма вершинами(може бути і з десятьма, якщо врахувати 0). Тоді шлях між двома вершинами запишеться у вигляді числа, що не перевищує дев’ять розрядів. Таким чином, ми переглядаємо у циклі всі можливі шляхи і перевіряємо, чи йому відповідають задані ребра у файлі, при цьому ми зразу відкидаємо шляхи із однаковими вершинами та ті, у яких перша вершина шляху не v1, а остання не v2, які ми зчитали з клавіатури.