русс | укр

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

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

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

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


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

Оператор цикла FOR


Дата добавления: 2013-12-23; просмотров: 1149; Нарушение авторских прав


Циклы

End.

Else Instruction

. . . . . . . . . . . . . . . . . . . .

Case S of

Условный оператор CASE

If S then A

Условный оператор IF

Выбор

Выбор действия в зависимости от выполнения условия может быть реализован при помощи инструкций IF и CASE.

Оператор IF реализует алгоритмическую конструкцию РАЗВИЛКА и изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия. Существует два варианта оператора:

else B ; { полная развилка }

и

If S then A ; { укороченная развилка }.

В этих операторах:

S ¾ некоторое логическое выражение, истинность которого проверяется;

A¾ оператор, который выполняется, если выражение S истинно;

B ¾ оператор, который выполняется, если выражениеS ложно.

Так как условный оператор IFявляется единым предложением, ни перед then, ни перед else точку с запятой ставить нельзя.

Пример 1:

Вычислить значение функции y, заданной выражением

Блок-схема решения данного примера представлена на рис. 11.

Рис.11. Блок-схема примера 1.

Программа (полная развилка):

Program Example_1 ;

Var

x, y : Real ;

Begin

Write (‘ Введите число x’) ;

ReadLn (x) ;

If x > 0 then y := ln(x)

else

If x = 0 then y := 1

else y := exp(x) ;

WriteLn(‘ Значение y=‘, y)

End.

 

Программа (укороченная развилка):

Program Example_1 ;

Var x, y : Real ;

Label 1, 2 ,3 ;

Begin

Write(‘ Введите число x’) ;

ReadLn (x) ;

If ( x > 0 ) then Go to 1 ;

If ( x = 0 ) then Go to 2 ;

y := exp(x) ;

Go to 3;

1: y := ln(x) ;

Go to 3;

2: y := 1 ;

3: WriteLn(‘ Значение y=‘, y)

End.

С помощью этого оператора можно выбрать вариант из любого количества вариантов. Структура этого оператора в Turbo Pascal:



C1: Instruction_1 ;

C2: Instruction_2 ;

CN: Instruction_N ;

В этой структуре:

S ¾ выражение порядкового типа, значение которого вычисляется:

C1, C2, . . . , CN ¾ константы, с которыми сравнивается значение выражения S;

Instruction_1, Instruction_2, Instruction_N ¾ операторы, из которых выполняется тот, с константой которого совпадает значение выражения S;

Instruction ¾ оператор, который выполняется, если значение выражения Sне совпадает ни с одной из констант C1, C2, . . . , CN.

Ветвь оператора else является необязательной. Если она отсутствует и значение выражения S не совпадает ни с одной из перечисленных констант, весь оператор рассматривается как пустой. В отличие от оператора IF перед словом else точку с запятой можно ставить.

Если для нескольких констант нужно выполнить один и тот же оператор, их можно перечислить через запятую (или даже указать диапазон, если возможно) сопроводив их одним оператором.

 

 

Пример 2.

Program Example_2 ;

Var i : Integer ;

Begin

ReadLn( i ) ;

Case i of

0, 2, 4, 6, 8 : WriteLn(‘Четная цифра ‘) ;

1, 3, 5, 7, 9 : WriteLn(‘Нечетная цифра ‘) ;

10 .. 100 : WriteLn(‘Число от 10 до 100 ‘) ;

else

WriteLn(‘Отрицательное число или больше 100 ‘)

end

end.

При решении многих задач некоторую последовательность действий приходится выполнять несколько раз. Такие повторяющиеся действия называются циклами и реализуются в программе с использованием инструкций циклов. В языке Паскаль циклические вычисления реализуются при помощи операторов FOR, WHILEи REPEAT.

Оператор цикла FOR организует выполнение одного оператора заранее известное число раз.

 

Существует два варианта оператора:

For I := I1 to I2 do Instruction ;

For I := I1 downto I2 do Instruction ;

В этих операторах:

I ¾ параметр цикла, являющийся переменной порядкового типа;

I1 ¾ выражение, определяющее начальное значение параметра цикла;

I2 ¾ выражение, определяющее конечное значение параметра цикла;

Instruction ¾ выполняемый оператор.

I1 иI2 ¾ должны быть совместимы для присваивания с параметром цикла.

Алгоритм, соответствующий инструкции FOR для первого варианта оператора представлен на рис. 12а, для второго варианта ¾ на рис. 12б.

Рис.12. Блок-схема, соответствующая инструкции FOR.

 

Цикл действует таким образом. Сначала вычисляются и запоминаются начальное I1 и конечное I2 значения параметра цикла. Далее параметру цикла I присваивается начальное значение I1. Затем значение параметра цикла сравнивается со значением I2. Далее, пока параметр цикла меньше или равен конечному значению (в первом варианте) или больше или равен, конечному значению (во втором варианте), выполняется очередная итерация цикла; в противном случае происходит выход из цикла. Выполнение очередной итерации включает в себя сначала выполнение оператора Instruction, а затем присваивание параметру цикла следующего большего значения (в первом варианте оператора) или следующего меньшего значения (во втором варианте).

Естественно, если в первом варианте значение I1 больше I2 или во втором варианте меньше I2, оператор не выполняется ни разу.

После выхода из цикла параметр цикла становится неопределенным, за исключением случая, когда выход из цикла был осуществлен с помощью оператора GOTO или стандартной процедуры BREAK.

Пример 3. Вычислить значения выражений

и при

Рис.13. Блок-схема примера 3.

Программа:

Program Example_3 ;

Var I : Integer ;

x, y, d, z : Real ;

Begin

For I := 1 to 4 do

Begin

d := sqr(x) + 1 ;

y := sqrt(d) / ln(abs(x)) ;

z := exp((1/3)*ln(d)) / exp(-sqr(x)) ;

WriteLn(‘x=‘,x,’ y=‘,y);

x := x + 0.2 ;

end

end.

Пример 4. Вычислить значения функции

при

Рис.14. Блок-схема примера 4.

Программа:

Program Example_4 ;

Var x : Integer ;

y : Real ;

Begin

For x := 6 downto 1 do

Begin

If ( x > 3 ) Then y := sqr(sin(x))

else If ( x = 3 ) Then y := 1

else y := cos(x*sqr(x)) ;

WriteLn(‘x=‘,x,’ y=‘,y);

end

end.



<== предыдущая лекция | следующая лекция ==>
Условие | Оператор безусловного перехода GOTO


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


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

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

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


 


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

 
 

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

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