Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zvit_______.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
686.59 Кб
Скачать

Опис алгоритму

Для написання цієї програми потрібно оголосити два типи за допомогою 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.

Апробація

  1. x=3

e=0.0001

Result: 10.06766

Ch x : 10.06761

Результат правильний.

  1. x=5

e=0.0001

Result: 74.20991

Ch x : 74.20995

Результат правильний.

Завдання № 7

Тема завдання: Мова Pascal, множини

Постановка задачі

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

Опис алгоритму

Суть цієї задачі полягає в тому, що ми вершини позначаємо числами, що не перевищують 9, тоді ребра ми будемо позначати двоцифровими числами. Тоді за цим алгоритмом програма може працювати не більше, ніж з дев’ятьма вершинами(може бути і з десятьма, якщо врахувати 0). Тоді шлях між двома вершинами запишеться у вигляді числа, що не перевищує дев’ять розрядів. Таким чином, ми переглядаємо у циклі всі можливі шляхи і перевіряємо, чи йому відповідають задані ребра у файлі, при цьому ми зразу відкидаємо шляхи із однаковими вершинами та ті, у яких перша вершина шляху не v1, а остання не v2, які ми зчитали з клавіатури.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]