Использование program, begin…end, write, readln, Uses Crt, Clrscr.

В этом уроке мы напишем самую простую программу, состоящую всего из пяти строк. Эта программа будет выводить сообщение на экран. Для написания программы нам необходимо знать как работают операторы Write, Readln, а также понять для чего нужны ...

Применение логических операций с оператором IF.

В данном уроке мы рассмотрим применение логической операции And с условным оператором If.

Тип данных Char. Функции Ord, Chr.

Мы с Вами уже рассмотрели типы данных, которые позволяют хранить и обрабатывать целые числа (integer) и дробные числа (real). Теперь рассмотрим тип данных, позволяющий хранить и обрабатывать различные символы. Символы – это все буквы и значки, ...

Циклы и массивы

Циклы с параметром. Оператор FOR.

Эти циклы организуются в программах, где заранее известно число повторений. При этом повторное выполнение сопровождается изменением управляющего параметра (переменной цикла).

Манипулирование строками STRING.

В языке Паскаль при работе с текстами чаще всего используются короткие строки типа STRING. Стандартные процедуры READLN(St), WRITE(St) и WRITELN(St) поддерживают ввод и вывод строк переменной длины ...

Под вложенным арифметическим циклом понимают такую алгоритмическую структуру, при которой в тело одного цикла с параметром включен другой цикл со своим параметром.

Другими словами составная инструкция:

FOR      I :=...
DO       FOR J:=...
             DO    ...
является признаком вложенного арифметического цикла.
Пример 20. Вычислить

Vlozhennihyj arifmeticheskiyj cikl

Для решения этой задачи необходима дополнительная переменная, как иногда говорят, рабочая ячейка R для накопления в процессе вычисления S вложенной суммы:

Vlozhennihyj arifmeticheskiyj cikl.

PROGRAM PR20;
VAR     
R, S: REAL;
К, P: INTEGER;
BEGIN
S:=0;
FOR K:=1 TO 10
DO BEGIN
       R:=0;
       FOR  P:=1 T0 15
       DO R := R + SQR(K - P);
       S:=S + K*K*K*R
       END;
WRITELN('S=', S:10:8)
END.

Vlozhennihyj arifmeticheskiyj cikl..

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

Пример 21. Используя вложенный цикл, определить число счастливых билетов S, номера которых меняются от 000001 до 999999.
В основе алгоритма решения этой задачи лежит принцип десятичного счетчика, имеющего шесть разрядов. Роль разрядов играют индексы в следующем порядке I, J, К, L, М, N. Счастливым называется такой номер, у которого три левых разряда в сумме равны сумме трех правых разрядов, то есть I+J + K = L + M + N.
PROGRAM PR21;
VAR     
S: REAL;
I, N, J, K, L, M: INTEGER;
BEGIN
S:=-l;
FOR I := 0 TO 9
DO FOR J:=0 TO 9
         DO FOR  K:=0 TO 9
                  DO FOR  L:=0 TO 9
                           DO    FOR  M:=0 TO 9
                                       DO    FOR N:=0 TO 9
                                                   DO   
                                                   IF      I+J + K = L+M + N
                                                   THEN S:=S+ 1;
WRITELN('ЧИСЛО счастливых билетов = ', S:6:0)
END.
В связи с тем, что номер 000000 в катушке билетов отсутствует, то этот номер нужно вычесть из найденного числа. Это можно сделать разными способами. В предложенном алгоритме это реализовано так S := -1. Это решение логично. При исходном состоянии счетчика: I = 0, J = 0, К = 0, L = 0, М = 0, N = 0, условие  I + J + K = L +М + N принимает значение TRUE, и S становится равным нулю S = -1 + 1 = 0. Таким образом, все переменные приняли исходное значение для дальнейших расчетов. Вы можете купить ноутбук для игр по оптимальной и доступной цене. Игровые ноутбуки можно купить недорого от лучших мировых производителей компьютерной техники.

Vlozhennihyj arifmeticheskiyj cikl...Основным достоинством вложенного цикла является возможность в выражениях (в заголовке цикла или его теле) использовать параметры внешних циклов. Например, в описанном выше примере, в теле цикла с параметром N используются также текущие значения параметров I, J, К, L, М внешних циклов по отношению к этому циклу. К параметрам внутренних циклов из внешнего цикла не должно быть обращений. Транслятор с Паскаля такие обращения не проверяет, но для внешних циклов значения параметров внутренних циклов не определено. Допускается выход из тела цикла FOR ... DO ... любого уровня вложения на любой предыдущий уровень до полного завершения цикла с помощью оператора GOTO, но не рекомендуется это делать. При выходе из цикла (досрочном или нормальном) значение параметра цикла становится неопределенным. Можно непосредственно из цикла завершить работу программы. Для этой цели используют оператор HALT [(Код)], где код — это необязательный параметр, представляющий собой целое число типа WORD, которое является кодом возврата вашего ЕХЕ модуля.


Предыдущая статья: Арифметический цикл с рекуррентной зависимостью.
Оглавление: Лекции по Pascal.
Следующая статья: Вложенный арифметический цикл. Часть 2.


Добавить комментарий

Защитный код
Обновить

   ГлавнаяПаскальЛекции по Паскаль