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

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

Перевод числа из десятичной системы счисления в шестнадцатеричную.

Напишем программу, которая вводит с клавиатуры целое число в диапазоне от 0 до 15 и преобразует его к шестнадцатеричной системе счисления. Напомню, что в шестнадцатеричной системе счисления числа в диапазоне от 0 до 9 соответствуют таким же числам в ...

Функции Pred, Succ в Pascal.

В данном уроке мы рассмотрим функции, применяемые к типу CHAR. Функция Pred возвращает в качестве значения предшествующий символ, а функция Succ возвращает последующий символ.

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

Массив строк типа STRING.

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

Массив символов.

Одномерный массив символов по своим свойствам существенно отличается от всех остальных массивов языка Паскаль. Свойства одномерного массива символов приближены к свойствам коротких строк (String).

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

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

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.


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