Лабораторная работа №3 (к §7)

   Программирование основных алгоритмических конструкций

   В курсе информатики, изучавшемся вами в 8—9 классах, вы знакомились с языком программирования. Наиболее распространенными в российских школах являются языки Бейсик (версия QBasic) и Паскаль (версия PascalABC). В таблице на форзацах показано, как на этих языках выглядят основные алгоритмические конструкции. Если же вы изучали другой язык, то описание этих конструкций вам напомнит учитель или вы найдете его в соответствующем справочнике.

   А теперь выполните несколько заданий.

   1. Запрограммируйте алгоритм Евклида — он приведен в объяснительном тексте § 7. Протестируйте вашу программу на небольших числах, для которых легко найти НОД и без компьютера. Убедившись, что программа работает правильно, найдите НОД (178 357, 1 049 254).

   2. Модифицируем алгоритм следующим образом:

Алгоритм НОДм
цел: m, n, k;
{ Запросить m;
   Запросить n;
   k:= m + n;
   Делать пока (не (n = 0))
{ m:= n;
   n:= k mod n;
   k:= m;
}
Сообщить m;
}

   Запрограммируйте и отладьте модифицированный алгоритм.

   Давайте сравним эффективность этих двух алгоритмов. Для этого в программы надо вставить операторы, показывающие время.
   В языке Бейсик можно воспользоваться функцией TIMER. По команде t = TIMER переменной t будет присвоено значение, равное числу секунд, которые прошли от 0 часов текущих суток.
   В языке Паскаль для вывода времени нужно записать следующую конструкцию:

   Uses Dos;
   Var h, m, s, ss: word;
   begin
      gettime(h, m, s, ss);
   end.

   Переменной h будет присвоен текущий час, переменной m - минуты, s — секунды, ss — миллисекунды.

   3. По результатам исполнения алгоритмов НОД и НОДм заполните таблицу:

http://informat45.ucoz.ru/practica/10_klass/gein/10-3/10-3-1.png

   Для каждой пары чисел найдите отношение времени работы алгоритма НОД к времени работы алгоритма НОДм. Как, на ваш взгляд, можно охарактеризовать это отношение?

   4. Запрограммируйте алгоритм, представленный схемой алгоритма в задании 18 из § 7. Запустите отлаженную программу для некоторых начальных данных. Подтвердилась ли ваша гипотеза о том, для чего предназначен этот алгоритм?

   5. Запрограммируйте алгоритм, приведенный в задании 23 из § 7. Напомним, что операция LEN(W) в языке Бейсик записывается LEN(W$), а в языке Паскаль — length(W), операция Часть (S, a, b) в языке Бейсик записывается MID$(S$, а, b), а в языке Паскаль — COPY(S, a, b).


Используемая литература:
Информатика и ИКТ. учебник для 10 кл. общеобразоват. учреждений : базовый и профил. уровни / А. Г. Гейн, А. Б. Ливчак, А. И. Сенокосов, Н. А. Юнерман. - 2-е изд. - М.: Просвещение, 2012. - 272 с. : ил.