Главная страница
Навигация по странице:

  • Практическое занятие

  • Лабораторная работа Алгоритмы и программы решения задач комбинаторики. лаба1. Алгоритмы и программы решения задач комбинаторики


    Скачать 84.64 Kb.
    НазваниеАлгоритмы и программы решения задач комбинаторики
    АнкорЛабораторная работа Алгоритмы и программы решения задач комбинаторики
    Дата08.10.2020
    Размер84.64 Kb.
    Формат файлаdocx
    Имя файлалаба1.docx
    ТипОтчет
    #141806

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

    САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ

    ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

    «ЛЭТИ» им. В.И. УЛЬЯНОВА(ЛЕНИНА)

    Кафедра радиотехнической электроники

    ОТЧЕТ

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

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

    Тема: Алгоритмы и программы решения задач комбинаторики

    Студентка гр. 9205 ______________________ Нимкаева Е.Д.

    Преподаватель ______________________ Староверов Е.Н.

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

    2020

    1.1 Алгоритм «Сортировка вставкой»

    Цель: изучение и программирование алгоритма сортировки

    Постановка задачи

    Задан алгоритм сортировки вставкой и вектор исходных данных S(n)

    • Реализовать в Matlab алгоритм сортировки (по возрастанию) для n вектора исходных данных

    • Получить в Excel текстовые результаты сортировки

    • Провести сортировку вектора исходных данных

    • Определить число перестановок элементов вектора (М)

    • Сравнить полученные результаты с тестовыми

    • Оформить отчет

    Практическое занятие: разработка алгоритма и программы сортировки двумерного массива по отдельным строкам/столбцам по возрастанию/убыванию.


    A[j]<=A[j+1]

    М=0, Р=0

    Конец

    Р=0,

    Р=А[j],

    A[j]=A[j+1],

    A[j+1]=P,

    M=M+1

    J=I,0,-1

    i=0,4,1

    Ввод n, A[n]

    Начало


    да нет


    Вывод М, А[n]


    clear all;
    M=0;
    P=0;
    n=input('Введите размер массива=');
    if n<=0
    disp('Массив не может содержать отрицательное или нулевое кол-во элементов)')
    else
    for i=1:n
    A(i)=input('Введите элемент');
    end
    disp(A)
    for i=2:1:n
    for j=(i-1):-1:1
    if A(j)<=A(j+1)
    P=A(j);
    A(j)=A(j+1);
    A(j+1)=P;
    M=M+1;
    end
    end
    end
    disp(A)
    disp(M)
    end

    После отчистки значений предыдущего массива (1) задаётся количество элементов (2). Далее, кол-во элементов проверяется на натуральность (3) и, если кол-во элементов не является натуральным числом, то программа выводит на экран ошибку (5) и останавливается. Если кол-во элементов является натуральным числом, то циклическим оператором присваивается значение каждому элементу (9-11). Полученный массив выводится в неотсортированном виде (12). Далее, циклический оператор, перебирая порядковые номера элементов с конца (13-14), сравнивает их и в случае нарушения свойства возрастания (15) меняет значение элементов выбранной пары (16-18) и засчитывает это как перестановку (19).
    Последней операцией является вывод отсортированного массива (22) и количе ство перестановок (23).




    clear all;
    M=0;
    n=input('Введите размер массива');
    for i=1:n
        A(i)=input('Введите элемент');
    end
    for j=2:n
        k=j;
        m=j-1;
        c=0;
        while m>0
            if A(k)>A(m)
                c=A(k);
                A(k)=A(m);
                A(m)=c;
                c=c+1;
            end
            k=k-1;
            m=m-1;
        end
        if c==0
            j=n+1;
        end
    end
    disp ('полученный массив')

    disp(A);


    написать администратору сайта