Похожие презентации:
6 v уфимцева
1. Вариант № 6
Выполнила: Уфимцева О.В.РХТУ им. Менделеева
группа И-17
2.
Задание. Вариант №6Ниже перед Вами алгоритм в словесном виде.
A) Нужно этот словесный алгоритм написать в графическом виде (в виде «блок-схем»), и
записать данный алгоритм в виде программы на компьютере. Алгоритм можно оптимизировать. Т.е.
вносить изменения в алгоритм, которые не повлияют на получаемый результат при одних и тех же
исходных значениях.
Б) Алгоритм может содержать ошибки (а может и не содержать). А именно в некоторых
случаях выполнение алгоритма невозможно. Вам следует найти ошибки, указать на них и исправить
их, т. е. провести отладку алгоритма. Если по Вашему мнению этот словесный алгоритм не
содержит ошибок, об этом надо прямо указать.
3.
Алгоритм словесный1.Извне с клавиатуры вводятся значения, которые присваиваются переменным n и m.
2.Переменные n и m должны содержать натуральные числа. Если это условие не выполняется, то
возвращаемся к
вышестоящему пункту 1. В ином случаи движемся дальше.
3.Создаем матрицу А(), в которой n количество строк, а m количество столбцов.
4.С клавиатуры вводятся числа, которыми последовательно заполняем матрицу A(). Если в матрице
присутствуют не
численные элементы, то возвращаемся к вышестоящему пункту 4. В ином случаи движемся дальше.
5.Вычисляем сумму элементов, находящихся на пересечении строк четной нумерации и столбцов
нечетной нумерации
матрицы A().
6.Находим максимальный и наиболее часто встречающийся(еся) элементы в матрице A().
7.Выводим матрицу A() и значения найденных элементов. Матрица и элементы должны быть
подписаны.
4.
sum_even_odd=0
начало
max_element =
A(1;1)
most_frequent =
A(1;1) max_count=0
1
Введите
m,n
Да
Нет n, m
∈ N
j=1:n
A (i,j)>max_
element
mod (i;2)==0
mod (j;2)==1
j=1:n
Да
Sum even_odd=
= sum_even_odd +1
j=1:m
Нет
Да
A (i,j)
A (i,j)=
числа
j=1:m
Да
max_element = A(i;j)
Нет
Нет
Current_element =A(i,j)
Current_count=0
5.
1k=1:n
Current_
Count >
>max_ count
Нет
l= 1:m
Да
A(k;l)==
Current_
element
tpint дальше no
просто
копируешь
Нет
конец
Да
Current_count==
Current_count+1
6. Код
• % 1-2) Ввод и проверка натуральных чисел n и m• while true
• n = input('Введите количество строк (натуральное число n): ');
• m = input('Введите количество столбцов (натуральное число m): ');
• if n > 0 && m > 0 && floor(n) == n && floor(m) == m
break;
• else
fprintf('Ошибка: n и m должны быть натуральными числами!\n\n');
• endif
• endwhile
• % 3) Создание матрицы A размером n×m
• A = zeros(n, m);
7.
% 4) Заполнение матрицы числами с клавиатурыfprintf('\nЗаполните матрицу A(%d×%d):\n', n, m);
for i = 1:n
for j = 1:m
while true
value = input(sprintf('A(%d,%d) = ', i, j));
if isnumeric(value) && isscalar(value)
A(i, j) = value;
break;
else
fprintf('Ошибка: введите числовое значение!\n');
endif
endwhile
endfor
endfor
8.
% 5) Вычисление суммы элементов на пересечении чётных строк инечётных столбцов
sum_even_odd = 0;
for i = 1:n
for j = 1:m
if mod(i, 2) == 0 && mod(j, 2) == 1
sum_even_odd = sum_even_odd + A(i, j);
endif
endfor
endfor
% 6) Поиск максимального элемента
max_element = A(1, 1);
for i = 1:n
for j = 1:m
if A(i, j) > max_element
max_element = A(i, j);
endif
endfor
endfor
9.
% 6) Простой поиск наиболее часто встречающегося элемента% Инициализируем первый элемент как наиболее частый
most_frequent = A(1, 1);
max_count = 0;
% Для каждого элемента матрицы
for i = 1:n
for j = 1:m
current_element = A(i, j);
current_count = 0;
% Считаем, сколько раз этот элемент встречается во всей матрице
for k = 1:n
for l = 1:m
if A(k, l) == current_element
current_count = current_count + 1;
endif
endfor
endfor
10.
% Если текущий элемент встречается чаще, обновляемif current_count > max_count
max_count = current_count;
most_frequent = current_element;
endif
endfor
endfor
% 7) Вывод результатов
fprintf('\n=== РЕЗУЛЬТАТЫ ===\n\n');
% Вывод матрицы
fprintf('Матрица A(%d×%d):\n', n, m);
for i = 1:n
for j = 1:m
fprintf('%8.4f ', A(i, j));
endfor
fprintf('\n');
endfor
fprintf('\n');
11.
% Вывод суммыfprintf('Сумма элементов на пересечении чётных строк и
нечётных столбцов: %f\n', sum_even_odd);
% Вывод максимального элемента
fprintf('Максимальный элемент матрицы: %f\n', max_element);
% Вывод наиболее часто встречающегося элемента
fprintf('Наиболее часто встречающийся элемент: %f (встречается
%d раз)\n', most_frequent, max_count);