Введение в информатику. Практикум

Методы разработки и анализа алгоритмов

Показывать лекцию целиком

Задачи

  • Спроектировать нисходящим методом алгоритм нахождения суммы элементов задаваемой строки или задаваемого столбца квадратной матрицы А. Указание: разбить на две задачи, указанные в условии задачи, затем каждую – на новые подзадачи и т.д.
  • Спроектировать восходящим методом алгоритм нахождения суммы элементов задаваемой строки или задаваемого столбца квадратной матрицы А. Указание: отправляться от простых задач нижнего уровня – добавление к предыдущему значению суммы нового слагаемого, переход к новому слагаемому (строке, столбцу), переход к новой строке (столбцу).
  • Спроектировать модульно и структурно алгоритм нахождения суммы элементов задаваемой строки или задаваемого столбца квадратной матрицы А. Указание: модули – суммирование элементов строки M1(k, n, s1), суммирование элементов столбца M2(m, n, s2).
  • Протестировать на полном тестовом наборе алгоритм нахождения суммы элементов задаваемой строки или задаваемого столбца квадратной матрицы А. Указание: в полный тестовый набор входят тесты а) n – некорректно задано; б) n=1 ; в) n>1 и т.д.
  • Составить нисходящим методом алгоритм вычисления наибольшего и наименьшего из заданного ряда чисел. Указание: разбить на две задачи, указанные в условии задачи, затем каждую – на новые подзадачи и т.д.
  • Составить нисходящим методом алгоритм нахождения количества чисел ряда не превосходящих среднего арифметического этого ряда. Указание: разбить на задачу поиска среднего и задачу поиска количества чисел, затем разбить их вновь на подзадачи и т.д.
  • Протестировать алгоритм сортировки ряда на минимально необходимом наборе тестов. Указание: набор включает а) n – некорректно, б) n>1 и ряд произвольный; в) n>1 и ряд упорядочен по возрастанию; г) n>1 и ряд упорядочен по убыванию.
  • Произвести трассировку алгоритма сортировки ряда для некоторого теста. Указание: "шапка" таблицы содержит объекты i, x[i], j, x[j], x[i]<x[j], y (буфер обмена).
  • Определить функцию фрагмента алгоритма, записать его кратко, а также выполнить его трассировку при указанных начальных данных:
    х:=а[0];
    for i:=1 to n do
        x:=x*s+а[i];
    writeln(х);.
    Начальные данные: n=4, а[i]=i, s=2, i=0, 1, 2, 3,4. Указание: вспомнить схему Горнера.
  • Определить функцию фрагмента алгоритма, записать его кратко, а также выполнить его трассировку при указанных начальных данных:
    b:=0;
    с:=1; 
    for i:=1 to n do
       if (i<n/2) 
         then b:=b+а[i] 
        else с:=с*а[i];.
    Начальные данные: n=8, а[i]=i, i=1, 2, ..., 8. Указание: условие i<n/2 позволяет выполнять команды b:=b+a[i], c:=c*a[i] лишь для первой половины ряда.
  • Темы научных исследований и рефератов (Интернет-листов)

  • Нисходящее проектирование алгоритмов (программ).
  • Восходящее проектирование алгоритмов (программ).
  • Структурное проектирование алгоритмов (программ).
  • Модульное проектирование алгоритмов (программ).
  • Тестирование алгоритмов (программ).
  • Верификация алгоритмов (программ).
  • Трассировка алгоритмов (программ).
  • Отладка программ.
  • Сопровождение программ.
  • Разработка программных комплексов.
  • Вернуться к учебному плану