Особенности оператора выбора Case




- Если существует несколько значений соответствующих одному оператору, то их можно записать через запятую, например:

Значение1, значение2, значение3: оператор1;

- <выражение> должно иметь целочисленный либо символьный тип.

- <выражение> и значения должны быть одного типа.

- Диапазоны значений указываются в виде: Макс. Значение.. Мин. Значение. В диапазон входят все значения от минимального до максимального включительно

{loadposition adsense2}

- Если для одного значения требуется выполнить несколько действий, то нужно использовать операторные скобки (begin end).

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

- Перед словом else точку с запятой можно ставить

Пример использования оператора case:

program number; { Определение времени года по номеру месяца}

var

month: integer; {номер месяца}

begin

write (’Введите номер месяца:’);

readln (month);

writeln (‘Время года:’);

case month of

1, 2, 12: writeln (’зима’);

3..5: writeln (’весна’);

6..8: writeln (’лето’);

9..11: writeln (’осень’);

else writeln (’число должно быть от 1 до 12’);

end;

end.

19. Циклический алгоритм – это алгоритм, содержащий один или несколько циклов.

Возьмем для примера задачу: найти сумму некоторого количества чисел, задаваемых пользователем.

Исходными данными в этом случае являются переменная N - количество чисел и сами эти числа. Значение очередного числа обозначим переменной x. Результатом работы алгоритма станет сумма этих чисел, которую обозначим переменной S.

S=x1+x2+x3+...+xN

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

Как же мы должны решать эту задачу? Сначала нужно запросить, сколько чисел нужно будет сложить и считать это число в переменную N. Затем нужно так организовать операторы, чтобы программа запрашивала очередное число, каждый раз складывала его с предыдущими и повторяла эту группу операторов N раз.

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

При выполнении оператора while определенная группа операторов выполняется до тех пор, пока определенное в операторе while булево условие истинно. Если условие сразу ложно, то оператор не выполнится ни разу.

Общая форма записи следующая

while <булевое выражение> do begin группа операторов end;

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

Оператор цикла с постусловием имеет следующую конструкцию:

Repeat <тело_цикла> Until <условие>;

Здесь: Repeat, Until - зарезервированные слова (повторять до тех пор, пока не будет выполнено условие);

<тело_цикла> - произвольная последовательность операторов Turbo Pascal;

<условие> - выражение логического типа.

Оператор Repeat... Until работает следующим образом. В начале выполняется тело цикла, после чего вычисляется логическое выражение следующее за словом Until, если результатом вычисления выражения является ЛОЖЬ, то операторы в теле цикла будут выполнены повторно. в противном случае, если логическое выражение имеет значение ИСТИНА, оператор цикла с постусловием прекратит свою работу.

Пример: Дана последовательность целых чисел, последним элементом которой является число 100. Вычислить среднее арифметическое элементов этой последовательности.

Program primer1; Var i, a, s, x: integer; Begin s:= 0; x:= 0; Repeat Read (a); s:= s + a; x:= x + 1; Until a = 100; s:= s / x; Write ('среднее арифметическое: ', s); End.

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

Полное число исполнений тела внутреннего цикла не превышает произведения числа итераций внутреннего и всех внешних циклов. Например, взяв три вложенных друг в друга цикла, каждый по 10 итераций, получим 10 исполнений тела для внешнего цикла, 100 для цикла второго уровня и 1000 в самом внутреннем цикле.

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

20. Циклический алгоритм – это алгоритм, содержащий один или несколько циклов.

Возьмем для примера задачу: найти сумму некоторого количества чисел, задаваемых пользователем.

Исходными данными в этом случае являются переменная N - количество чисел и сами эти числа. Значение очередного числа обозначим переменной x. Результатом работы алгоритма станет сумма этих чисел, которую обозначим переменной S.

S=x1+x2+x3+...+xN

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

Как же мы должны решать эту задачу? Сначала нужно запросить, сколько чисел нужно будет сложить и считать это число в переменную N. Затем нужно так организовать операторы, чтобы программа запрашивала очередное число, каждый раз складывала его с предыдущими и повторяла эту группу операторов N раз.

Оператор цикла с параметром: Этот оператор применяется, если требуется выполнить тело цикла заранее заданное количество раз. Параметр порядкового типа на каждом проходе цикла автоматически либо увеличивается, либо уменьшается на единицу:

for параметр:= выражение_1 to выражение_2 do оператор

for параметр:= выражение_2 downto выражение_1 do оператор

Выражения должны быть того же типа, что и переменная цикла, оператор - простым или составным.

Пример:
  Программа выводит на экран в столбик числа от 10 до 1 и подсчитывает их сумму:
var i, sum: integer; begin sum:= 0; for i:= 10 downto 1 do begin writeln(i); inc(sum, i) end; writeln('Сумма чисел: ', sum); end.

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

Полное число исполнений тела внутреннего цикла не превышает произведения числа итераций внутреннего и всех внешних циклов. Например, взяв три вложенных друг в друга цикла, каждый по 10 итераций, получим 10 исполнений тела для внешнего цикла, 100 для цикла второго уровня и 1000 в самом внутреннем цикле.

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

21. Простой массив является одномерным. Он представляет собой линейную структуру.

var ch: array [1..11] of char;

h: char;

i: integer;

begin

for i:= 1 to 11 do read (ch[i]);

for i:= 1 to 11 do write (ch[i]:3);

readln

end.

В примере выделяется область памяти под массив из 11 символов. Их индексы от 1 до 11. В процессе выполнения программы пользователь вводит 11 любых символов (например, ‘q’, ’w’, ’e’, ’2’, ’t’, ’9’, ’u’, ’I’, ’I’, ’o’, ’p’), которые записываются в ячейки массива. Текущее значение переменной i в цикле for используется в качестве индекса массива. Второй цикл for отвечает за вывод элементов массива на экран.

Ввод массива Паскаля

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



Поделиться:




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

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-07-22 Нарушение авторских прав и Нарушение персональных данных


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