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

СТРУКТУРЫ

Читайте также:
  1. II. Типичные структуры и границы
  2. III. Анализ результатов психологического анализа 1 и 2 периодов деятельности привел к следующему пониманию обобщенной структуры состояния психологической готовности.
  3. Абсолютные и относительные показатели изменения структуры
  4. Абсолютные и относительные показатели изменения структуры
  5. Абстрактные структуры данных
  6. Адаптивные и механистические организационные структуры
  7. Адаптивные структуры
  8. Адаптивные структуры управления
  9. Адаптивные структуры управления
  10. Алгоритм определения предпочтительной организационной структуры управления диверсифицированной фирмы
  11. Анализ ассортимента и структуры продукции
  12. Анализ возможностей корпорации анализ продукции, анализ внутренней структуры, анализ внешнего окружения

 

Для составления программы циклической структуры используются операторы цикла FOR, REPEAT, WHILE.

Оператор цикла FOR используется, когда известно число повторений. При этом различают две формы записи:

1. Оператор с организацией счета при изменении параметра цикла от начального (меньшего) значения до конечного (большего) значения этого параметра цикла. Такой оператор цикла имеет вид:

FOR K: = NZ TO KZ DO S;

2. Оператор с организацией счета при изменении параметра цикла от начального (большего) значения до конечного (меньшего) значения этого параметра цикла. Такой оператор цикла имеет вид:

FOR K: = NZ DOWNTO KZ DO S;

Здесь К — параметр цикла (целочисленная переменная); NZ, KZ — выражения, задающие соответствующее начальное и конечное значения параметра цикла; S — простой или составной оператор.

Оператор цикла выполняется следующим образом. Параметру цикла К присваивается начальное значения NZ. Затем управление передается в тело цикла и выполняется оператор S, после выполнения которого параметр цикла меняет свое значение на (единицу) (шаг изменения параметра цикла). При этом шаг равен +1, если используется оператор цикла с ключевым словом ТО (случай 1), а если используется оператор цикла с ключевым словом DOWNTO (случай 2), то шаг равен –1. Далее измененное значение параметра цикла сравнивается с конечным значением KZ и, если параметр цикла не превышает КZ (случай 1) или превышает KZ (случай 2), то управления передается в тело цикла и выполняется оператором S; в противном случае осуществляется выход из цикла.

Рассмотрим фрагменты записи операторов цикла:

1) Y: = 0; FOR I = 3 TO 5 DO Y = Y + 1;

2) Y: = 0; FOR I = 12 DOWNTO 6 DO Y = Y + 1;

В результате выполнения первого оператора цикла параметр цикла 1 будет изменятся от начального значения I = 3 до конечного значения I = 5 с шагом, равным +1, причем по окончании цикла Y = 3. При выполнении второго оператора цикла параметр цикла I будет изменятся от начального значения I = 12 до конечного значения I = 6 с шагом, равным . По окончании цикла Y = 7.

Пример 1. Найти: составить программу с применением оператора цикла FOR.

 

PROGRAM SUMFOR;

VAR X,Y: REAL;

I, N: INTEGER;

BEGIN

WRITELN (‘ Ввести N, X’);

READ (N, X);

Y: = 0;

FOR I: = 1 TO N DO

Y: = Y + COS (I + SQR ( X ) / 4 );

WRITELN (‘ N = ‘, N, ‘ ‘, ‘ X = ‘, X);

WRITELN (‘ Y = ‘, Y);

END.

 

Оператор цикла WHILE позволяет организовать цикл, количество повторений которого зависит от включенного в него условия, т.е. цикл с неизвестным числом повторений. Этот оператор имеет вид:

WHILE LV DO S;

где LV логическое выражение;

S — простой или составной оператор.

Выполнение оператора начинается с проверки выражения LV. Если логическое выражение имеет значение TRUE, то выполняется оператор S до тех пор, пока выражение LV не примет значение FALSE. В этом случае уравнение передаётся оператору, следующему за оператором S. Если же выражение LV принимает значение FALSE при первоначальной проверке, то оператор S не выполняется ни разу. При этом чтобы выйти из цикла, внутри него нужно изменить значения переменных, входящих в логическое выражение. Иначе оператор цикла будет выполняться бесконечное число раз.

Пример 2. Используя условия примера 1, программу запишем в виде:

 

PROGRAM SUMWHL;

VAR X, Y: REAL;

I, N: INTEGER;

BEGIN

WRITELN (‘ ВВЕСТИ N, X’);

READ (N, X);

Y:= 0;

I:=1;

WHILE I <= N DO

BEGIN {открываем операторные скобки}

Y=Y + COS (I+ SQR ( X )/ 4 );

I:=I+1;

END; {закрываем операторные скобки}

WRITELN (‘N =’, N,’ ‘,’ X = ‘,X);

WRITELN (‘Y =’,Y);

END.

Оператор цикла REPEAT также позволяет организовать цикл с неизвестным числом повторений. Такой оператор имеет вид:

REPEAT S

UNTIL LV

Здесь S — простой или составной оператор;

LV — логическое выражение.

Выполнение оператора REPEAT начинается с вычисления оператора S и продолжается до тех пор, пока не выполняется LV, т.е. когда логическое выражение примет значение FALSE (ложь). Из этого следует, что проверка LV проводится после каждой итерации и в случае принятия LV значения TRUE (правда) осуществляется выход из цикла. При использовании составного оператора S операторные скобки (BEGIN и END) не требуются. Кроме того, оператор, стоящий перед словом UNTIL, не имеет после себя точки с запятой.

 

XVII. МАССИВЫ

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

Массив представляет собой набор конечного числа элементов одинакового типа. Объявление массивов происходит в разделе описания переменных следующим образом:

VAR <имя массива>: ARRAY [n..m] OF <тип элементов>,

где n — начальное значение индекса массива;

m — конечное значение индекса массива.

В учебном пособии будут использоваться массивы типа INTEGER (целые) и REAL (дробные). Элементы обозначаются именем массива и следующим за ним в квадратных скобках индексом.

Для ввода (вывода) элементов массива используются операторы READ (READLN) (WRITE (WRITELN)), записанные в цикле.

Например: FOR I: = 1 TO 10 DO

READ (A[I]);

Пример 3. Составить программу для вычисления сумм S элементов числовой последовательности А1, А2, …, А10 по формуле

S = А1+ А2+ … +А10.

Входными данными являются значения членов последовательности и число членов последовательности; выходными сумма членов последовательности.

Для решения задачи используется циклический алгоритм. Подготовка цикла заключается в задание начального значения суммы, равного 0.

В качестве параметра цикла берём номер члена последовательности.

Начальное значение параметра цикла равно i, конечное — числу членов последовательности, шаг цикла +1.

В теле цикла выполняется суммирование. Окончание цикла будет при значении параметра цикла, превышающего количество членов последовательности.

Числовую последовательность а1, а2, …, а10 обозначим как массив действительных чисел с именем — А.

Сумму членов — через S.

Размерность массива — n, параметр цикла — i.

Программа вычисления группы членов числовой последователь-ности имеет вид:

PROGRAM PR 1;

CONST N=10; {РАЗМЕРНОСТЬ МАССИВА А}

VAR A: ARRAY [1..N] OF REAL; {ОПИСАНИЕ МАССИВА А}

S: REAL; {ИНДЕНТИФИКАТОР СУММЫ}

I: INTEGER; {ПАРАМЕТР ЦИКЛА}

BEGIN

{ВВОД ИСХОДНЫХ ДАННЫХ}

WRITELN (‘ВВЕСТИ 10 ЭЛЕМЕНТОВ МАССИВА ЧЕРЕЗ ПРОБЕЛ’);

FOR I: = 1 TO N DO

READ (A [1]);

{ВЫЧИСЛЕНИЕ СУММЫ}

S: = 0; {ПОДГОТОВКА ЦИКЛА}

FOR I: = 1 TO N DO

S: = S + A [ I ];

{ПЕЧАТЬ}

WRITELN; {ПРОПУСК СТРОКИ}

WRITELN (“ СУММА РАВНА “, S:7:3);

WRITELN (“ ВЫЧИСЛЕНИЯ ЗАКОНЧЕНЫ ”);

END.

 

Результат работы программы выглядит следующим образом:

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.)