Добавил:
t.me мой будущий Dungeon Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
11.06.2025
Размер:
101.84 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра микро- и наноэлектроники

отчет

по лабораторной работе

по дисциплине «Информационные технологии»

Тема: «Алгоритм поиска медианы и генерирования перестановок»

Студент гр. 1282

БОГДАН

Преподаватель

Фирсов Д. Д.

Санкт-Петербург

2022

Задание 1.

Задача:

Ввести с клавиатуры элементы массива размерности N (размерность так же задается пользователем вручную). Основываясь на алгоритме, представленном в блок-схеме на рисунке 1, составить код программы, реализующий алгоритм поиска медианы в заданном массиве. В результате работы алгоритма должен происходить вывод значения найденной медианы (медиана – значение центрального элемента массива для массивов нечетной размерности, для четной размерности – сумма двух центральных элементов деленная на 2).

Ход работы:

n=input('Введите количество элементов массива ');

A=input('Введите элемент массива ');

if mod(n,2)~=0

for i=1:n

na=0;

ma=0;

for j=1:n

if A(j)~=A(i)

if A(j)>A(i)

na=na+1;

else

ma=ma+1;

end

end

end

if na==ma

disp(A(i))

end

end

end

if mod(n,2)==0

for i=1:(n-1)

for j=(i+1):n

q=i;

while A(j)<A(q)

q=j;

P=A(i);

A(i)=A(q);

A(q)=P;

end

end

end

disp((A(n/2)+A(n/2+1))/2)

end

Листинг программы:

Для нечетного кол-ва элементов:

введите количество элементов массива 5

введите элементы массива [34 32 100 67 45]

100

Для четного кол-ва элементов:

введите количество элементов массива 6

введите элемент массива [23 45 66 88 95 1]

77

Задание 2

Задача:

Ввести с клавиатуры размерность массива N. Автоматически заполнить массив значениями от 1 до N с шагом 1. Применяя рекурсивный алгоритм генерации перестановок получить и вывести на экран все возможные комбинации значений массива.

Ход работы:

n = input ('Введите количество элементов массива ');

disp (n);

global A

for k=1:n

A(k)=round(n*rand);

end

disp (A);

Generate(1, n);

function Generate(k, n)

global A

if k == n

for i = 1:n

fprintf('%i', A(i));

end

fprintf('\n')

else

for j = k:n

Swap(k, j);

Generate(k+1, n);

Swap(k, j);

end

end

end

function Swap(k, j)

global A

t = A(k);

A(k) = A(j);

A(j) = t;

end

Листинг программы:

введите количество элементов массива 3

3

1 2 3

123

132

213

231

321

312

Вывод: В ходе выполнения лабораторной работы был реализован алгоритм поиска медианы и генерирования перестановок, а также рекурсивный алгоритм генерации перестановок. Результатом первого задания алгоритма стал вывод значения найденной медианы, а второй вывод на экран всех возможных комбинаций значений массива.

Соседние файлы в папке ЛР5