Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Описание алгоритма Евклида блок-схемой





На рис. 3.12 приведена блок-схема алгоритма Евклида.

Рис. 3.12. Блок-схема алгоритма Евклида

 

Структура алгоритма - цикл-пока с вложенным ветвлением. Цикл повторяется, пока значения М и N не равны друг другу. В ветвлении большее из двух значений заменяется на их разность.

А теперь посмотрите на трассировочную таблицу алгоритма для исходных значений М = 32, N = 24.

Шаг Операция M N Условие
  ввод М      
  ввод N      
  M ¹ N     32 ¹ 24, да
  M>N     32>24, да
  M:=M-N      
  M ¹ N     8 ¹ 24, да
  M>N     8>24, нет
  N:=N-M      
  M ¹ N     8 ¹ 16, да
  M>N     8>16, нет
  N:=N-M      
  M ¹ N     8 ¹ 8, нет
  вывод M      
  конец      

В итоге получился верный результат.

Программа на АЯ и на Паскале

Запишем алгоритм на АЯ и программу на Паскале.

алг Евклид цел М, N нач вывод " Введите М и N" ввод М, N пока М N, повторять нц если M>N то M:=M-N иначеN:=N-M кв кц вывод "НОД=",М кон Program Evklid; var M, N: integer; begin writeln('Введите М и N'); readln(M, N); while M<>N do begin if M>N then M:=M-N else N:=N-M end; write('Н0Д=',М) end.

 

Вопросы и задания

1. Выполните на компьютере программу Evklid. Протестируйте ее на значениях М= 32, N = 24; М = 696, N = 234.

2. Составьте программу нахождения наибольшего общего делителя трех чисел, используя следующую формулу:

НОД(А, B, С) = НОД(НОД(А, В), С).

3. Составьте программу нахождения наименьшего общего кратного (НОК) двух чисел, используя формулу:

А × В = НОД(А, В) × НОК(А, В).

 

 

Таблицы и массивы

Изучая базы данных, электронные таблицы, вы познакомились с табличным способом организации данных. Вы уже знаете, что большие наборы данных удобно представлять в табличном виде. В таблицах могут храниться данные разных типов. На практике чаще всего приходится встречаться с таблицами, содержащими числовые и символьные (текстовые) данные.

Что такое массив

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

Месяц                        
Температура -21 -18 -7,5 5,6     22,2     5,4 -7 -18

Такую таблицу называют линейной. Она представляет собой последовательность упорядоченных чисел. Для обозначения этих чисел используют индексированные имена. Например, через Т[1] обозначается температура в январе (первом месяце года), Т[5] - температура в мае и т. д.

В программировании линейная таблица называется одномерным массивом. В нашем примере Т - это имя массива. Элементы массива пронумерованы. Порядковый номер элемента называется его индексом. Каждый элемент массива обозначается индексированным именем в следующей форме:

<имя массива> [<индекс>]

Индекс записывается в квадратных скобках: Т[2], Т[10], Т[12]. Индексы могут представляться не только в виде констант, но и в виде целых переменных и даже выражений целого типа: T[i], T[k], T[i+k], T[2*k]. Важно следить, чтобы значения индексов не выходили за допустимые границы. В примере с температурами они должны лежать в диапазоне от 1 до 12.

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

Массив - это пронумерованная конечная последовательность однотипных величин.

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

Описание и ввод значений в массив на Алгоритмическом языке

Запишем алгоритм ввода значений в массив температур. Сначала посмотрим, как это делается на АЯ. Рассмотрим два варианта алгоритмов на АЯ, использующих разные способы организации цикла.

алг Ввод массива, вариант 1
вещ таб Т[1:12]
цел I
нач I:=1
пока I<=12, повторять
нц
вывод ("Т[," I, "]=")
ввод (Т[I])
I:=I+1
кц
кон

алг Ввод массива, вариант 2
вещ таб Т[1:12]
цел I
нач
для I от 1 до 12 шаг 1 повторять
нц
вывод ("Т[",I,"]= ")
ввод (Т[I])
кц
кон

Обратите внимание на вторую строку алгоритмов. В ней присутствует описание массива температур. В Алгоритмическом языке массив называется таблицей. Запись
вещ таб Т[1:12]
описывает таблицу (массив) вещественного типа, имя которого Т и элементы пронумерованы от 1 до 12.

Цикл с параметром в АЯ

В первом варианте алгоритма используется уже знакомая вам алгоритмическая структура цикла с предусловием. Переменная I играет роль параметра цикла, изменяющегося от 1 до 12 с шагом 1. Внутри цикла она используется в качестве индекса в обозначении элементов цикла: Т[I].

Ввод организован в режиме диалога. Вы уже знаете, что это обязательное условие дружественности интерфейса программы. Перед вводом каждого очередного элемента таблицы на экран будет выводиться его имя. Это результат выполнения команды вывод "Т[", I, "]=". После этого программист должен ввести с клавиатуры соответствующее число (команда ввод Т[I]):

Т[1]= -21

Т[2]= -18

Т[3]= -7.5 и т. д.

Во втором варианте используется алгоритмическая структура, которая называется "цикл с параметром". Ее общая форма такая:

для <параметр цикла> от <начальное значение параметра> до <конечное значение параметра> шаг <величина приращения параметра> повторять
нц
<тело цикла>
кц

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







Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.