Контрольная работа
Варианты задания на выполнение контрольной работы0. Сформировать двумерный массив A размером N x 2 (N - количество строк, равное предпоследней цифре пароля + 2; 2 – количество столбцов) с помощью генератора случайных чисел и вывести элементы массива на экран и в файл. Найти наибольший элемент каждой строки матрицы А (оформить нахождение максимального элемента в виде функции). Из этих максимальных элементов составить одномерный массив F. Вывести элементы массива F на экран и в файл.
1. Сформировать двумерный массив B размером N x 3 (N – количество строк, равное предпоследней цифре пароля +2; 3 – количество столбцов) с помощью генератора случайных чисел и вывести элементы массива на экран и в файл. Составить одномерный массив D из минимальных элементов столбцов матрицы B (оформить нахождение минимального элемента в виде процедуры). Вывести элементы массива D на экран и в файл.
2. Сформировать двумерный массив B размером N x 4 (N – количество строк, равное предпоследней цифре пароля +2; 4 – количество столбцов) с помощью генератора случайных чисел и вывести элементы массива на экран и в файл. Вычислить и вывести на экран и в файл строку матрицы B, содержащую максимальное количество отрицательных элементов (оформить вычисление количества отрицательных элементов в виде функции).
3. Сформировать двумерный массив C размером N x 5 (N – количество строк, равное предпоследней цифре пароля +2; 5 – количество столбцов) с помощью генератора случайных чисел и вывести элементы массива на экран и в файл. Вычислить сумму положительных элементов в каждой строке матрицы C (оформить вычисление сумм в виде процедуры). Из полученных сумм составить одномерный массив D. Вывести элементы массива D на экран и в файл.
4. Сформировать двумерный массив D размером N x 6 (N – количество строк, равное предпоследней цифре пароля +2; 6 – количество столбцов) с помощью генератора случайных чисел и вывести элементы массива на экран и в файл. В каждом столбце матрицы D найти максимальный элемент (оформить нахождение максимального элемента в виде функции). Среди найденных чисел найти минимальное и вывести на экран и в файл.
5. Сформировать двумерный массив E размером N x 7 (N – количество строк, равное предпоследней цифре пароля +2; 7 – количество столбцов) с помощью генератора случайных чисел и вывести элементы массива на экран и в файл. Вычислить сумму отрицательных элементов столбца, в котором находится максимальный элемент матрицы E (оформить нахождение максимального элемента в виде процедуры). Вывести на экран и в файл полученную сумму и номер столбца.
6. Сформировать двумерный массив F размером N x 8 (N – количество строк, равное предпоследней цифре пароля +2; 8 – количество столбцов) с помощью генератора случайных чисел и вывести элементы массива на экран и в файл. В строке матрицы F, содержащей максимальный элемент, заменить все отрицательные числа нулями (оформить нахождение максимального элемента в виде функции). Вывести на экран и в файл номер этой строки и максимальный элемент.
7. Сформировать двумерный массив G размером N x 9 (N – количество строк, равное предпоследней цифре пароля +2; 9 – количество столбцов) с помощью генератора случайных чисел и вывести элементы массива на экран и в файл. Записать в одномерный массив F строку матрицы G, содержащую минимальный элемент (оформить нахождение минимального элемента в виде процедуры). Вывести элементы массива F на экран и в файл.
8. Сформировать двумерный массив L размером N x 10 (N – количество строк, равное предпоследней цифре пароля +2; 10 – количество столбцов) с помощью генератора случайных чисел и вывести элементы массива на экран и в файл. Вывести на экран и в файл номер строки и саму строку матрицы L, в которой сумма положительных элементов максимальна (оформить нахождение сумм положительных элементов в виде процедуры).
9. Сформировать двумерный массив Z размером N x 11 (N – количество строк, равное предпоследней цифре пароля +2; 11 – количество столбцов) с помощью генератора случайных чисел и вывести элементы массива на экран и в файл. Вычислить сумму положительных элементов строки, в которой находится минимальный элемент матрицы Z (оформить нахождение минимального элемента в виде функции). Вывести на экран и в файл полученную сумму и номер строки.
=============================================Лабораторные работы
Лабораторная работа №1
Тема 1: Стандартные функции. Арифметические выражения.
Тема 2: Логические выражения. Условный оператор.
Варианты программы:
1.
Var A, B, C, D, Y ,f: Real;
Begin
A:=1.5; B:=4.3; C:=10; D:=7.1; {ввод данных}
Y:=(A*Sqrt(Abs(Sin(A+B*C)))-Exp(-A*C))/Sqrt(Abs(2*B+D));
WriteLn (‘Y=’, Y:8:3); {вывод результата}
f:=0; {перед началом вычисления значению f присваивается 0 (можно любое
другое значение) для того, чтобы в случае, если ни одно из условий не
выполнится, на экран вывелось f = 0, т.е. чтобы значение f не осталось
неопределенным }
if (y>0) and (y<=20) then f:=2*y;
if (y=0) then f:=y+2;
if (y<0) or (y>25) then f:=y/2;
WriteLn ('f=', f:8:3);
End.
2.
Const D=10;
Var A, B, C, Y ,f: Real;
Begin
randomize;
A:=random;
Write('введите числa B и C типа real:');
Read(B,C);
Y:=(A*Sqrt(Abs(Sin(A+B*C)))-Exp(-A*C))/Sqrt(Abs(2*B+D));
WriteLn ('Y=', Y:8:3); { вывод результата}
if (y>0) and (y<=20) then f:=2*y
else if (y=0) then
f:=y+2
else
if (y<0) or (y>25) then f:=y/2
else f:=0;
WriteLn ('f=', f:8:3);
End.
Замечание: В первом варианте программы выполняется три проверки условия (т.е. три оператора if ) даже если например уже первое условие будет истинным (хотя понятно, что в этом случае другие условия точно будут ложными и нет необходимости в их проверке). Во втором варианте используется один вложенный оператор if, что позволяет избежать лишних проверок.
Задание:
Разработать программу для вычисления:
1) значения заданного арифметического выражения (см. вариант по таблице 1);
2) значения заданной функции (см. вариант по таблице 2);
и вывода на экран полученных результатов.
Значения исходных данных выбираются произвольно. Ввод исходных данных организовать любым известным вам способом (использовать не менее двух способов).
=============================================
Лабораторная работа №2Тема 1: Операторы циклов с условиями: While и RepeatЗадание:Написать программу для вычисления заданного выражения и вывода на экран полученного значения, используя заданный циклический оператор (см. вариант по таблице 1);
Таблица 1.
Номер варианта
Выражение
Оператор цикла
0
- 0,1+ 0,4 -0,7+…-1,9 While
1
0,2- 0,5 +0,8-…+2,0 Repeat
2
-0,18 + 0,20 – 0,22 +...+ 0,36 While
3
0,15 - 0,17 + 0,19 -...- 0,33 Repeat
4
0,8 - 0,10 + 0,12 -...- 0,26 While
5
-0,5 + 0,7 – 0,9 +...+ 0,23 Repeat
6
- 0,13+ 0,16 -1,9+…-3,1 While
7
0,4 - 0,8 +1,2-…+4,0 Repeat
8
- 0,3+ 0,5 -0,7+…-3,1 While
9
0,6 - 0,7 + 0,8 -...- 3,3 Repeat
=============================================
Лабораторная работа №3Тема 1: Работа с одномерными массивами.
Тема 2: Подпрограммы: процедуры и функции.
Пример задания:Массив T=(6, –3, 14, 7, –2, –4, 12, 0) преобразован к виду T=(–1, –10, 7, 0, –9, –11, 5, –7). Определите правило преобразования и напишите программу, которая:
1) по такому же алгоритму преобразовывает произвольный массив T из 38 элементов и выводит на экран элементы преобразованного массива.
2) вычисляет сумму тех элементов преобразованного массива, которые находятся в диапазоне [–14, 2], и выводит результат на экран.
Указания:
- сформировать массив T из 38 случайных целых чисел в диапазоне [–30,30] и вывести элементы массива на экран;
- преобразование массива оформить в виде процедуры;- вычисление суммы оформить в виде функции;
- все выводы на экран осуществлять в основной программе.
Варианты программы:uses crt; {подключение модуля CRT, чтобы можно было использовать
содержащиеся в нем стандартные процедуры clrscr и readln}
const kol_el=38; {задаем количество элементов массива;
при отладке программы удобнее задать меньшее количество элементов }
type mas=array [1..kol_el] of integer; {создаем новый тип - массив}
var T:mas;
Procedure Preobr(var a:mas); {процедура, преобразующая переданный в качестве
параметра массив по заданному правилу}
var i:integer; {Здесь i – локальная переменная, она доступна только в теле данной процедуры.
Переменная i, описанная в основной программе –глобальная и доступна в любом месте программы, но только если
нет локальной переменной с тем же именем. В этой процедуре можно было бы и не описывать локальную i,
а использовать глобальную, но хороший стиль программирования предполагает,
что все переменные, которые используются только для выполнения каких-либо действий внутри подпрограммы
должны быть в ней и описаны, чтобы избежать различных ошибок}
begin
for i:=1 to kol_el do
a[i]:=a[i]-7;
end;
Function Sum(b:mas):integer;
var i,s:integer;
begin
s:=0;
for i:=1 to kol_el do
s:=s+b[i];
sum:=s; {обязательное присвоение имени функции полученного результата}
end;
var i:integer; {описание i:integer; и Т:mas можно было бы расположить в одном разделе Var }
Begin
clrscr;
Randomize;
for i:=1 to kol_el do begin
T[i]:=Random(61)-30;
write(T[i]:4);
end;
Preobr(T);{при вызове процедуры происходит следующее:
- в памяти создается копия массива T – массив a (формальный параметр процедуры),
- выполняется тело процедуры, в котором преобразуется массив a;
- возврат в основную программу на оператор, следующий за вызовом процедуры;
При возврате в массив T переносятся значения преобразованного массива a }
writeln;
writeln;
for i:=1 to kol_el do
write(T[i]:4); {вывод преобразованного массива}
{вызов функции Sum, выполнение тела функции,
возврат в программу, вывод результата на экран: }
write(#13,#10,#10,'Summa elementov = ',Sum(T));
readln;
End.
Еще некоторые пояснения к программе:
Оператор write(#13,#10,#10,'Summa elementov = ',Sum(T)); можно было бы заменить последовательностью из трех следующих операторов:
writeln;
writeln;
write('Summa elementov = ',Sum(T));
Результат один и тот же: вывод текста Summa elementov = … будет осуществлен в начале новой строки через строчку от предыдущего вывода.
#10 - перевод строки
#13 - переход к началу строки (см. п.2.3 лекций)
Т.е. оператор write(#13,#10,#10,'Summa elementov = ',Sum(T)); выполняется следующим образом: сначала курсор перемещается в начало текущей строки, затем переводится на следующую строку в ту же позицию, снова переводится на следующую строку в ту же позицию, и только потом выводится текст.
Общий текст задания для всех вариантов:
Задана последовательность значений элементов некоторого массива до и после преобразования по некоторому правилу. Определите алгоритм преобразования и напишите программу, которая:
1) формирует массив из заданного количества случайных целых чисел в заданном диапазоне и выводит элементы массива на экран;
2) по определенному вами алгоритму преобразовывает этот массив и выводит на экран элементы преобразованного массива.
3) производит заданные вычисления и выводит результат на экран.
Указания:
- преобразование массива оформить в виде процедуры;
- заданные вычисления оформить в виде функции;
- все выводы на экран осуществлять в основной программе.
Варианты заданий:
Массив A = (15, 9, –6, 12, –9, 18, 0) преобразован к виду A = (5, 3, 0, 4, 0, 6, 0). Размер массива A - 20 элементов из диапазона [–25,25]. Вычислить сумму четных элементов преобразованного массива.
Массив B = (3, –4, 7, 2, 9, –7, 0) преобразован к виду B = (–6, 0, –14, –4, –18, 0, 0). Размер массива B - 15 элементов из диапазона [–14,14]. Вычислить произведение нечетных элементов преобразованного массива.
Массив C = (–4, 9, 5, –8, –5, 4, 0) преобразован к виду C = (–8, 0, 0, –16, –10, 0, 0). Размер массива C - 40 элементов из диапазона [–23,23]. Вычислить сумму нечетных элементов преобразованного массива.
Массив D=(4, –8, 9, 3, 4, –5, 0) преобразован к виду D=(–2, –14, 3, –3, –2, –11, –6). Размер массива D - 24 элемента из диапазона [–32,32]. Вычислить сумму тех элементов преобразованного массива, которые находятся в диапазоне [–14, 2].
Массив F=(5, –8, 4, 8, 12, –4, 0) преобразован к виду F=(–7, –20, –8, –4, 0,–16,–12). Размер массива F - 63 элемента из диапазона [–50,50]. Вычислить сумму тех элементов преобразованного массива, которые находятся в диапазоне [–2, 21].
Массив H = (6, –6, –3, 8, 4, –7, 0) преобразован к виду H = (14, 0, 0, 16, 12, 0, 8). Размер массива H - 10 элементов. из диапазона [–44,44] Вычислить произведение тех элементов преобразованного массива, которые находятся в диапазоне [0, 18].
Массив K = (5, –5, 4, 9, –7, –11, 0) преобразован к виду K = (0, 1, 0, 0, –1, –5, 0). Размер массива K - 21 элемент из диапазона [–56,56]. Вычислить сумму тех элементов преобразованного массива, которые находятся в диапазоне [–1, 16].
Массив L = (–2, 6, –8, 9, –5, 12, 0) преобразован к виду L = (1, 9, –5, 12, –2, 15, 3). Размер массива L - 36 элементов из диапазона [–31,31]. Вычислить сумму тех элементов преобразованного массива, которые находятся в диапазоне [–8, 25].
Массив M = (5, –5, 9, –2, 14, –7, 0) преобразован к виду M = (5, 0, 9, 0, 14, 0, 0). Размер массива M - 22 элемента из диапазона [–47,47]. Вычислить сумму тех элементов преобразованного массива, которые находятся в диапазоне [–16, 6].
Массив N = (8, –9, –3, 5, 4, –7, 0) преобразован к виду N = (0, –9, –3, 0, 0, –7, 0). Размер массива N - 18 элементов из диапазона [–68,68]. Вычислить сумму тех элементов преобразованного массива, которые находятся в диапазоне [–7, 27].