русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Лабораторная работа №6


Дата добавления: 2014-11-28; просмотров: 616; Нарушение авторских прав


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

Для организации циклов с заранее неизвестным числом повторений (а также и для организации циклов с известным числом повторений) используют оператор цикла с предусловием (оператор while) и оператор цикла с постусловием (оператор repeat). Вид оператора цикла с предусловием:

While b do s;

Здесь b – логическое выражение, s – тело цикла. При выполнении оператора сначала проверяется логическое выражение, а затем выполняется тело цикла, т.е. операторы циклической части. Цикл повторяется, пока логическое выражение истинно. Когда оно становится ложным, происходит выход из цикла. Если с самого начала логическое выражение ложно, тело цикла не выполнится ни разу. Если тело цикла является составным оператором, т. е. состоит из нескольких операторов, его необходимо ограничить операторными скобками begin и end.

Вид оператора цикла с постусловием:

repeat s until b;

Здесь s – тело цикла, b - логическое выражение. При выполнении оператора сначала выполняется тело цикла, а затем проверяется логическое выражение. Цикл повторяется, пока логическое выражение ложно. Когда оно становится истинным, происходит выход из цикла. Таким образом, если даже логическое условие изначально истинно, обеспечивается, по крайней мере, одно выполнение тела цикла.

Операторы While и Repeat позволяют организовывать итерационные циклы, в которых происходит последовательное приближение к искомому значению с заданной точностью. Условием выхода из цикла является достижение заданной точности.

Пример 1. Найти k, при котором значение суммы s=3+6+9+...+3k становится больше t при вводе t с клавиатуры.

Решение. Каждое слагаемое равно произведению числа 3напорядковый номер этого слагаемого. Поэтому можно организовать цикл, в котором s находится путем прибавления предыдущего значения s к порядковому номеру слагаемого, умноженному на 3. В цикле также должен увеличиваться на единицу порядковый номер слагаемого. Перед циклом следует обнулить начальное значение s и задать начальное значение k. Выход из цикла происходит, когда s станет больше t. Поскольку количество повторений заранее неизвестно, можно использовать для организации цикла операторы While или Repeat, но нельзя использовать оператор For.



Существуют значения t (например, при t = –5), при которых цикл не должен быть выполнен ни разу. В этом случае для организации цикла надо использовать оператор While. Если производится суммирование, обязательно присвоить начальное значение s=0. Следует учесть, что сначала происходит увеличение k, а затем расчет s. Поэтому первоначальное значение k=0. Ниже приведён текст программы.

Uses Crt; {Подключение модуля crt}

Var {Описание переменных}

s,k:integer;

t:real;

Begin

Clrscr; {Очистка экрана}

Write('t= ');

Readln(t); {Ввод значения t}

s:=0; k:=0; {Начальные значения s и k}

While s<=t do {Начало цикла/проверка условия}

begin

k:=k+1; {Увеличение k в цикле}

s:=s+3*k; {Расчет s}

end; {Окончание цикла}

Writeln('k= ',k); {Вывод на экран найденного значения k}

Readln;

End.

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

Решение. Длину земной параллели можно найти по формуле D=2prp=2przcos(a), где rp - радиус параллели, rz - радиус Земли, a - угловая величина параллели (см. рис). Длину следует рассчитывать и выводить на экран 10 раз по одной и той же формуле, изменяя только угол a (0, 10,…,90°). Поэтому организуем цикл, в котором рассчитывается длина параллели и выводятся на экран значения угла и длины параллели. В цикле также необходимо увеличивать значение угла a на 10°. Перед циклом следует задать начальное значение a, равное 0.

Поскольку в Паскале тригонометрические функции рассчитываются от углов, выраженных в радианах, то угловую величину параллели следует переводить из градусов в радианы по выражению ap/180.

Число повторений в цикле известно (равно 10), поэтому для организации цикла можно использовать операторы For, While или Repeat.

Текст программы при использовании оператора Repeat:

Uses Crt;

Var

rz,alfa:integer;

dlina:real;

Begin

Clrscr; {Очистка экрана}

rz:=6370; {Значение радиуса Земли}

alfa:=0; {Начальное значение широты (экватор)}

Repeat {Начало цикла}

dlina:=rz*cos(alfa*pi/180)*2*pi; {Расчет длины параллели}

Writeln(alfa:3,' ',dlina:7:1); {Вывод на экран}

alfa:=alfa+10; {Увеличение широты}

Until alfa>90; {Конец цикла/проверка условия}

Readln;

End. {Конец программы}



<== предыдущая лекция | следующая лекция ==>
Задание | Задания


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.328 сек.