1. Определить значение квадрата целого положительного числа n, равного сумме первых n нечетных чисел натурального ряда. 72 = 1 + 3 + 5 + 7 + 9 + 11 + 13. Значение n ввести с клавиатуры.
2. Определить наименьшее целое положительное n, удовлетворяющее условию 12 + 22 + 32 + .. + n 2 <= L. Число L ввести с клавиатуры.
3. Найти значение переменной y в зависимости от значения переменной х по формулам
2*z - 4 при х < 5;
y = остаток от деления 17 на 5 при х = 5;
13*z при х > 5.
Значения переменных х и z >5 задаются с клавиатуры.
4. Вычислить факториал целого числа N < 10, значение которого задается с клавиатуры.
5. Определить сумму всех нечетных чисел меньших N. Значение N < 50 вводится с клавиатуры.
6. Вычислить значение сумме первых n чисел натурального ряда, делящихся без остатка на 3. Значение n ввести с клавиатуры.
7. Определять наименьшее целое положительное n, удовлетворяющее условию 1+2 + 3 +..+ n <= L. Число L задается с клавиатуры.
8. Определить меньшее из трех введенных с клавиатуры чисел.
9. Определить большее из пяти введенных с клавиатуры чисел.
10. Определить сумму всех отрицательных элементов одномерного массива. Значения элементов массива вводятся с клавиатуры.
11. Определить сумму всех нечетных чисел одномерного массива. Элементов массива вводятся с клавиатуры.
12. Определить сумму всех элементов массива. Элементов массива вводятся с клавиатуры.
13. Вычислить количество отрицательных элементов заданного столбца матрицы А(5, 5).
14. Задана матрица A (4, 6).. Вычислить сумму элементов заданной строки.
15. Задана матрица A (6, 4).. Вычислить сумму элементов заданного столца.
16. Задана матрица A(4, 4). Вычислить сумму элементов матрицы, находящихся под главной диагональю и на ней
17. Задана матрица A (5, 5).. Найти максимальный элемент заданной строки.
18. Задана матрица A(6, 5). Найти наибольший и наименьший элементы матрицы и поменять их местами.
19. Задан массив A(6, 6). Определить минимальный элемент массива и его положение.
20. Вычислить количество элементов каждого столбца, делящихся без остатка на 2 для матрицы A(5, 5).
21. Задана матрица A(6, 5) Записать на место отрицательных элементов матрицы нули.
22. Задана матрица A(5, 5). Вычислить сумму элементов матрицы, находящихся над главной диагональю и на ней
23. Задана матрица A(4, 4). Найти строку с наименьшей и наибольшей суммой элементов.
24. Дана квадратная матрица A(4, 4). Сложить все элементы, стоящие на главной диагонали и заменить ими элементы второй строки
Тема 18. Указатели.
Сформировать списочную структуру типа “стек” или “очередь” из 200 вещественных случайных чисел. Из элементов этих структур сформировать и обработать массивы согласно заданиям темы 10. Списочные структуры и указатели начала строк массивов разместить в области динамической памяти.
Подпрограммы, использующие в своей работе динамическую память оформить в виде модуля.
Правило для выбора типа списочной структуры:
- нечетные варианты (1, 3, 5, …) – стек;
- четные варианты (2, 4, 6, …) – очередь.
Пример 1. Процедуры для работы со стеком.
type TPtr= ^TElem;
TElem= record
inf : Real;
Link: TPtr
end;
var
Top: TPtr;
{Добавление нового элемента}
procedure Push(val:real);
var p: tptr;
begin
new(p);
P^.inf:= Val;
P^.Link:= Top;
Top:= p
end;
{Извлечение элемента из стека}
procedure POP(var Val:Real);
var P:TPtr;
begin
Val:= Top^.Inf;
P:= Top;
Top:=P^.Link;
dispose(P);
end;
Пример 2. Процедуры для работы с очередью.
type TPtr= ^TElem;
TElem= record
inf : Real;
Link: TPtr
end;
var
BegQ, EndQ: TPtr;
{Добавление нового элемента}
procedure AddEl(val: real);
var P:TPtr;
begin new(P);
P^.inf:= Val;
P^.link:= nil;
if EndQ = nil
then BegQ:=p
else EndQ^.link:= P;
EndQ:= P;
end;
{Удаление элемента}
procedure GetDelEl(var Val: Real);
var P: Tptr;
begin
Val:= BegQ^.Inf;
P:=BegQ;
BegQ:=P^.Link;
if BegQ = nil
then EndQ:= nil;
dispose(P);
end;
Пример 3. Использование адресной арифметики при работе с двумерными массивами, размещаемыми в динамической памяти.
const n = 100;
SizeofReal = 6;
type RealPoint = ^real;
var PtrStr: array[1..n] of pointer;
{--- Получение адреса элемента A[i,j] ---}
function AddrR(i, j: word): RealPoint;
begin
AddrR:= ptr(seg(PtrStr[i]^), ofs(PtrStr[i]^) +
(j - 1)*SizeofReal)
end;
{--- Прочитать элемент A[i,j] ---}
function GetR(i, j: word): real;
begin
GetR:= AddrR(i, j)^
end;
{--- Записать элемент A[i,j] = x ---}
Procedure PutR(i, j: word; x: real);
begin
AddrR(i, j)^:= x
end;
Тема 19. Линейный регрессионный анализ.
Задана функция на интервале [0,5; 5]. Сформировать массив М(10), каждый элемент которого Мi вычисляется по формуле
.
Шаг аргумента x - 0,5, - случайное отклонение, определяемое с помощью функции случайных чисел RANDOM в интервале от - 0.5 до +0.5.. Вычислить значения коэффициентов b1 и b0 для линейной регрессии 10 пар значений xi и yi, используя метод наименьших квадратов по приведенным ниже формулам:
В декартовой системе координат построить график полученной линейной регрессии и отметить рассчитанные по формуле точки с координатами xi и yi.