- •Про навчальну практику
- •Завдання № 1
- •Постановка задачі
- •Текст програми
- •Апробація
- •Постановка задачі
- •Текст програми
- •Апробація
- •Апробація
- •Завдання № 5
- •Опис алгоритму
- •Текст програми
- •Текст програми
- •Опис алгоритму
- •Текст програми
- •Апробація
- •Завдання № 11
- •Постановка задачі
- •Опис алгоритму
- •Текст програми
- •Апробація
- •Висновок
- •Список використаної літератури
Завдання № 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, то видаємо результат про те, що матриця ортономована, інакше – матриця неортономована.
