Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы и величины исп Чертежн.doc
Скачиваний:
13
Добавлен:
01.03.2025
Размер:
531.46 Кб
Скачать
    1. Исполнение алгоритмов

Чтобы лучше понять работу того или иного алгоритма, полезно проследить ее по шагам без использования компьютера. Это легко сделать, если алгоритм управляет каким-то исполнителем — можно моделировать действия исполнителя и следить за результатом.

Если алгоритм работает с величинами, для пошаговой проверки удобно пользоваться специальной формой записи, которую мы разберем на примере. Пусть выполнен вызов "сумма цифр (197, х)". Исполнение тела алгоритма "сумма цифр" можно в этом случае представить так:

nn:=n 197

s:=0 0

нц пока nn > 0 да да да нет

с:= mod (nn, 10) 7 9 1

s := s + с 7 16 17

nn := div (nn, 10) 19 1 0

кц

В этой записи правее каждой команды алгоритма записаны последовательно результаты ее выполнения. Например, первая команда nn := n выполняется один раз, и величина nn получает значение 197. Команда с := mod (nn, 10) выполняется три раза, при ее выполнении величина с последовательно получает значения 7, 9 и 1, т. е. значения цифр исходного числа в обратном порядке.

ЗАДАЧИ И УПРАЖНЕНИЯ

1. Составьте алгоритмы со следующими заголовками:

а) алг расстояние до стены вправо (рез цел n)

дано |правее Робота есть стена

надо |положение Робота не изменилось, n = число шагов, которое надо сделать Роботу,

|чтобы подойти к стене вплотную (т. е. число клеток между Роботом и стеной)

б) алг расстояния вправо и влево (рез цел n1, n2)

дано | правее и левее Робота есть стены

надо | положение Робота не изменилось, n1 = расстояние вправо до стены,

| n2 = расстояние влево до стены

в) алг к ближайшей стене вправо или влево

дано | правее и левее Робота есть стены

надо | Робот подошел к ближайшей из этих стен

г) алг подсчет числа опасных клеток (рез цел n)

дано | Робот на клетку левее тупика, уходящего вправо

надо | положение Робота не изменилось, n = число клеток, в которых и температура, и

|уровень радиации более чем вдвое выше средних значений в тупике

2. Составьте алгоритм, который вычисляет:

а) количество максимальных среди трех чисел а, b, с;

б) количество разных среди трех чисел а, b, с;

в) среднее по величине среди трех чисел а, b, с;

г) расстояние от точки на числовой оси с координатой х до ближайшей точки отрезка [0, 1];

д) наименьший делитель целого числа n > 0, отличный от 1;

е) последнюю цифру в десятичной записи целого числа n > 0;

ж) количество цифр в десятичной записи целого числа n > 0;

з) старшую цифру в десятичной записи целого числа n > 0.

3. Составьте схему пошагового выполнения алгоритма Евклида (А58) при а = 14, b= 21.