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

Завдання № 1

Tема завдання: Мова Pascal, арифметичні операції над цілими числами

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

Для заданого n обчислити суму від 1 до n k*(k+1)/2.

Текст програми

Program suma;

VAR k,n:integer; s:real; {вводимо необхiднi змiннi}

Begin

writeln('введiть n>0 для обчислення суми k*(k+1)/2 вiд 1 дo n');

readln(n); {зчитуємо n}

if n<=0 then writeln('ви неправильно ввели n')

else Begin

s:=0;

for k:=1 to n do {цикл для обчислення суми}

s:=s+k*(k+1)/2;

writeln('сума', s:6:1); {виводимо суму}

writeln;

end;

end.

Апробація

1)введiть n>0 для обчислення суми k*(k+1)/2 вiд 1 дo n

4

сума 20.0

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

2)введiть n>0 для обчислення суми k*(k+1)/2 вiд 1 дo n

6

сума 56.0

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

3)введiть n>0 для обчислення суми k*(k+1)/2 вiд 1 дo n

-2

ви неправильно ввели n

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

4)введiть n>0 для обчислення суми k*(k+1)/2 вiд 1 дo n

15

сума 680.0

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

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

+

–

+

–

Завдання № 2

Тема завдання: Мова Pascal, прості цикли

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

Методом поділу відрізка пополам знайти корінь рівняння е^(-x)+x^2-2=0.

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

Рівняння e^(-x)+x^2-2=0 має два розв’язки. Кожен корінь потрібно обмежити двома значеннями, а потім, використовуючи метод поділу відрізка пополам, знаходимо корені рівняння. У нашому випадку корінь x1 знаходиться на проміжку (a,c), а x2 – на проміжку (c,b).

Корінь x1 знаходимо, використовуючи метод поділу відрізка пополам, за допомогою циклу з передумовою. Обчислюємо x, x:=(a+c)/2. Якщо e^(-x)+x^2– –2>0, то a:=x, інакше – c:=x. На кожному кроці циклу x все більше наближається до кореня x1. Коли похибка буде дуже маленькою, тобто abs(exp(-x)+x*x-2)<0.0000000001, то цикл з післяумовою закінчиться. Видаємо результат на екран.

Корінь x2 знаходимо аналогічно.

Текст програми

Program P2;

uses crt;

function F(x:real):real;

begin

F:=exp(-x)+ x*x-2;

end;

var a,b,c,x,e:real;

begin

write(“[a,b]= ”);

read(a,b);

e:=0.0001;

repeat

c:=(a+b)/2;

if F(a)*F(c)<=0

then b:=c

else a:=c;

until b-a<e;

x:=(a+b)/2;

writeln('x=',x:0:5);

end.

Апробація

1)[a,b]= -1 1

Result: x=-0.53726. Результат правильний.

2)[a,b]=1 3

Result: x=1.31595. Результат правильний.

Завдання № 3

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

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

Прочитати дійсну матрицю розміром nxn (n>2). Встановити, чи є задана матриця ортономованою (скалярний добуток різних стрічок є 0, а скалярний добуток кожної стрічки на себе є 1).

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

Введемо розміри матриці з клавіатури. Спочатку зчитуємо елементи матриці. Потім перевіряємо чи скалярний добуток всіх стрічок є 0 за допомогою двох вкладених циклів, перший з яких проходить по стовпцях матриці, другий – по рядках. Якщо це не так, то видаємо результат, що матриця неортономована і програма завершується, якщо ж так, то перевіряємо чи скалярний добуток кожної стрічки на себе є 1. Перевіряємо кожний рядок окремо, для цього спочатку змінну s2 занулюємо,а далі до s2 додаємо квадрат кожного елемента в рядку. Якщо s2 дорівнює 1, то видаємо результат про те, що матриця ортономована, інакше – матриця неортономована.

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