Контрольная работа 1 1 1 С клавиатуры вводятся длина (&lt

Дипломные работы на заказ

Контрольная работа 1
1.1. С клавиатуры вводятся длина (<=100) вектора и его (целые) элементы. Посчитать среднее арифметическое нечётных элементов. Результаты вывести на экран.
Результат работы программы представлен на рисунке ниже.

Листинг программы приведен ниже.
program kr1z1;
var
dlina,
i,
sum: integer;
sr_arif : real;
vector: array [1..100] of integer;
begin
// ввод исходных данных
sum := 0;
writeln(‘Введите длину входного вектора <= 100’);
readln(dlina);
writeln(‘Введите элементы вектора (целые числа), через пробел’);
// вычисление среднего арифметического
for i := 1 to dlina do
read(vector[i]);
for i := 1 to dlina do
if (i mod 2) = 1 then // если элемент имеет нечетный номер, прибавим его к общей сумме
sum := sum + vector[i];
sr_arif := sum/round(dlina/2); // разделим на общее количество нечетных элементов
// и получим среднее арифметическое
// вывод результатов
writeln(‘Среднее арифметическое нечетных элементов вектора’);
writeln(sr_arif:5:2);
end.

1.2. С клавиатуры вводятся длина (<=100) вектора и его (целые) элементы. Составить новый вектор, записав в него для каждого элемента исходного вектора средние арифметическое его цифр. Результаты вывести на экран.
Результат работы программы представлен на рисунке ниже.

Листинг программы приведен ниже.
program kr1z2;
var
dlina,
i,
sum,
tmp,
del,
ost,
kol: integer;
sr_arif : real;
vector: array [1..100] of integer;
rez_vect: array [1..100] of real;
begin
// ввод исходного вектора
writeln(‘Введите длину входного вектора <= 100’);
readln(dlina);
writeln(‘Введите элементы вектора (целые числа), через пробел’);
for i := 1 to dlina do
read(vector[i]);
// вычисление среднего арифметического цифр каждого элемента вектора
for i := 1 to dlina do begin
tmp := abs(vector[i]); // будем рассматривать только абсолютные значения чисел
if tmp < 10 then begin // если число меньше 10, то его ср. арифм. явл. самим числом
rez_vect[i] := tmp; // занесем его в результирующий вектор
continue;
end;
// в цикле будем делить число на 10, 100, 1000 и т.д. и остаток от деления без последних нулей (round(ost*10/del))
// будем складывать. затем полученное число будем делить на количество цифр в числе (kol)
del := 10;
kol := 0;
sum := 0;
while tmp > 0 do begin
ost := tmp mod del;
sum := sum + round(ost*10/del);
tmp := tmp — ost; // будем уменьшать каждый раз число на остаток, если число станет <= 0 значит выход из цикла
del := del * 10;
kol := kol + 1;
end;
rez_vect[i] := sum / kol; // вычислим и запишем среднее арифметическое в результат
end;
// вывод результатов на экран
writeln(‘Среднее арифметическое цифр каждого элемента исходного вектора’);
for i := 1 to dlina do begin
write(rez_vect[i]:5:2);
write(‘ ‘);
end;
readln;
end.

Контрольная работа 2
2.1. С клавиатуры вводятся длина (<=100) вектора и его (целые) элементы. Удалить из вектора все элементы, которые имеют не более 3 делителей. Результаты вывести на экран.
Результат работы программы представлен на рисунке ниже.

Листинг программы приведен ниже.
program kr1z2;
var
dlina,
dl_rez,
i,
tmp,
kol_del,
tek_del : integer;
vector: array [1..100] of integer;
rez_vect: array [1..100] of integer;
begin
// ввод исходного вектора
writeln(‘Введите длину входного вектора <= 100’);
readln(dlina);
writeln(‘Введите элементы вектора (целые числа), через пробел’);
for i := 1 to dlina do
read(vector[i]);
dl_rez := 0;
// определение количества делителей
for i := 1 to dlina do begin
tmp := abs(vector[i]); // будем рассматривать значения по абсолютному значению
// т.к. любое число имеет обязательно 2 делителя (кроме 1),
// то начальное количество делителей сразу можно определить
// а также зная, что для 2 и 3, условие «не более трех делителей» выполняется
if tmp <= 3 then begin // числа 1, 2, 3 сразу заносим в вектор результатов
dl_rez := dl_rez + 1;
rez_vect[dl_rez] := vector[i];
continue;
endelse
kol_del := 2;
tek_del := 2;
// в цикле будем проходить от 2 до половины текущего числа, для того, чтобы проверить, какие из них
// являются делителями, и будем считать количество таких делителей
// если таких делителей больше трех — переходим к следующему числу
while true do begin
// если количество делителей больше трех или текущий потенциальный делитель (del) больше половины
// текущего числа — то выходим из цикла
if (round(tek_del / 2) > tmp) or (kol_del > 3) then
break;
if (tmp mod tek_del) = 0 then // если является делителем, то увеличиваем количество делителей на 1
kol_del := kol_del + 1;
tek_del := tek_del + 1; // увеличиваем делитель на 1
end;
// если у числа больше трех делителей — переходим к следующему
if kol_del > 3 then
continue;
// иначе заносим в результирующий вектор
dl_rez := dl_rez + 1;
rez_vect[dl_rez] := vector[i];
end;
// вывод результатов на экран
writeln(‘Все элементы исходного вектора, которые имеют не более 3 делителей’);
for i := 1 to dl_rez do begin
write(rez_vect[i]);
write(‘ ‘);
end;
readln;
end.

2.2. С клавиатуры вводятся размеры (<=100×100) матрицы и её (целые) элементы. Составить вектор номеров строк, в которых есть хотя бы один отрицательный элемент. Результаты вывести на экран.
Результат работы программы представлен на рисунке ниже.

Листинг программы приведен ниже.
program kr1z1;
var
n, m,
i, j,
dl_rez: integer;
matrix: array [1..100, 1..100] of integer;
rez_vect: array [1..100] of integer;
begin
// ввод матрицы
writeln(‘Введите размеры матрицы <= 100*100, через пробел’);
read(n);
readln(m);
writeln(‘Введите элементы матрицы (целые числа), через пробел’);
for i := 1 to n do
for j := 1 to m do
read(matrix[i, j]);
writeln;
// определение строк с отрицательными элементами
dl_rez := 0;
for i := 1 to n do
for j := 1 to m do
if matrix[i, j] < 0 then begin // если элемент в строке i меньше нуля, заносим в результирующий список
dl_rez := dl_rez + 1;
rez_vect[dl_rez] := i;
break;
end;
// вывод результатов на экран
writeln(‘Номера строк исходной матрицы, в которых есть хотя бы один отрицательный элемент’);
for i := 1 to dl_rez do begin
write(rez_vect[i]);
write(‘ ‘);
end;
readln;
end.


+7 (812) 389-23-13

Работаем: Пн-Пт, с 10 до 17

+7 (499) 649-65-17

Работаем: Пн-Пт, с 10 до 17