Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Цикл по параметру

Рассмотрим следующую простую задачу: требуется вычислить сумму целых чисел от М до N путем прямого суммирования. Здесь Ми N — целые числа. Задачу можно сформулировать так:

Рис.23

Алгоритм и программа решения этой задачи с использованием структуры цикл-пока представлены на рис. 23.

А теперь введем новый тип циклической структуры, который будет называться цикл по параметру,или цикл-для.Блок-схема и программа на Паскале для решения рассматриваемой задачи с использованием этой структуры приведены на рис. 24.

Здесь целая переменная / последовательно принимает значе­ния в диапазоне от М до N. При каждом значении / выполняется тело цикла. После последнего выполнения цикла при 1= N про­исходит выход из цикла на продолжение алгоритма. Цикл выпол­няется хотя бы один раз, если M<N, и не выполняется ни разу при М > N.


Рис. 24


В программе используется оператор цикла For, синтаксичес­кая диаграмма которого представлена на рис. 25.

Выполнение оператора For в первом варианте (То) происхо­дит по следующей схеме:

1. Вычисляются значения <Выражения 1> и <Выражения 2>. Это делается только один раз при входе в цикл.

2. Параметру цикла присваивается значение <Выражения 1>.

3. Значение параметра цикла сравнивается со значением <вы­ражения 2>. Если параметр цикла меньше или равен этому значе­нию, то выполняется тело цикла, в противном случае выполне­ние цикла заканчивается.

4. Значение параметра цикла изменяется на следующее значе­ние в его типе (для целых чисел — увеличивается на единицу); происходит возврат к пункту 3.

Оператор цикла Forобъединяет в себе действия, которые при использовании цикла Whileвыполняют различные операторы: присваивание параметру начального значения, сравнение с ко­нечным значением, изменение на следующее.

Как известно, результат суммирования целых чисел не зависит от порядка суммирования. Например, в рассматриваемой задаче числа можно складывать и в обратном порядке, т.е. от TV до М (N> M). Для этого можно использовать второй вариант оператора цикла For:

Summa:=0;

For I:=N DownTo M Do

Summa:=Summa+I;

Слово DownToбуквально можно перевести как «вниз до». В та­ком случае параметр цикла изменяется по убыванию, т.е. при каж­дом повторении цикла параметр изменяет свое значение на пре­дыдущее (равносильно i :=pred(i)). Тогда ясно, что цикл не выполняется ни разу, если N< M.

Работая с оператором For,учитывайте следующие правила:

• параметр цикла не может иметь тип Real;

• в теле цикла нельзя изменять переменную «параметр цикла»;

• при выходе из цикла значение переменной-параметра явля­ется неопределенным.

В следующем примере в качестве параметра цикла Forисполь­зуется символьная переменная. Пусть требуется получить на экра­не десятичные коды букв латинского алфавита. Как известно, ла­тинские буквы в таблице кодировки упорядочены по алфавиту. Вот фрагмент такой программы:

For С:='а' То 'z' Do Write (С,'-',Ord(C));

Здесь переменная с имеет тип char.

А теперь подумайте сами, как вывести кодировку латинского алфавита в обратном порядке (от ‘z’ до 'а').