Особенности оператора выбора 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 должны удовлетворять условию N0, так как количество слагаемых не может быть числом отрицательным.

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

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

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

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

while do begin группа операторов end;

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

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

Repeat Until ;

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

— произвольная последовательность операторов Turbo Pascal;

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

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

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

Особенности оператора выбора case 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 должны удовлетворять условию N0, так как количество слагаемых не может быть числом отрицательным.

Как же мы должны решать эту задачу? Сначала нужно запросить, сколько чисел нужно будет сложить и считать это число в переменную 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 отвечает за вывод элементов массива на экран.

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

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

Разбор задачи на оператор выбора case


Похожие статьи.

Понравилась статья? Поделиться с друзьями: