Case of паскаль примеры
Оператор выбора Case Of в Pascal.
Помимо условного оператора If в языке программирования Pascal существует оператор выбора Case of. Рассмотрим его применение на примере программы, которая выводит на экран то или иное сообщение, в зависимости от введенного числа.
Вывод сообщения на экран с помощью If.
Эта программа выводит на экран сообщение (Нуль, Один и т. д.) в зависимости от того какое мы введем число. Однако, ту же задачу можно выполнить более простым способом с помощью оператора Case of.
Использование Case Of.
В строке №8 записывается оператор выбора Case Of. Сначала записывается слово Case, затем записывается переменная, затем слово Of. После служебного слова Of идет перечисление всех возможных значений переменной (строка №9 — №13), а через двоеточие указывается действие, которое нужно сделать, если переменная принимает то или иное значение. Таким образом, если мы вводим с клавиатуры 0, то на экран выводится сообщение «Нуль» (строка №9), если вводим 1, то выводится сообщение «Один» (строка №10) и т.д.
Нам не нужно каждый раз писать конструкцию If…Then.
Достаточно указать CASE «переменная» OF, а затем для каждого значения этой переменной через двоеточие прописать вывод на экран. После перечисления всех операторов необходимо поставить служебное слово End.
Запустим программу и введем любое число от 0 до 4 (например, 4)
Напишем программу, которая определяет квартал года по введенному числу месяца.
Использование Case Of Else.
В строке №8 записываем оператор выбора Case Of. После слова Of (в строках №9 — №12) указываем возможные значения нашей переменной. Причем несколько значений можно указать в одной строке. Например, в строке №9 мы указываем 3 значения для переменной и действие, которое нужно совершить, если будут введены эти переменные. Т.е. если мы вводим с клавиатуры 1 или 2 или 3, то на экран выводится сообщение «Первый квартал».
В строке №13 записывается служебное слово Else. Если мы вводим с клавиатуры число, которое лежит вне диапазона чисел от 1 до 12, то должно совершиться действие, которое указывается после слова Else (строка №14).
Записываем программу в Паскале, запускаем ее и проверяем работоспособность, вводя различные числа.
Дополнение к материалу.
В данном примере вместо перечисления значений переменной можно использовать диапазон значений переменной. Например, строку №9 можно записать так: 1..3: writeln (‘Первый квартал’); Т.е. сначала указывается первое значение переменной, а затем через 2 точки указывается последнее значение переменной.
Урок 7. Оператор выбора Сase
Урок из серии: «Язык программирования Паскаль»
В этом уроке будет рассмотрено использование оператора выбора Select Case.
На предыдущем уроке было показано, как использовать оператор If … hten для выбора одного из двух возможных продолжений алгоритма.
Если один оператор If может обеспечить выбор из двух альтернатив, то оператор выбора case позволяет сделать выбор из произвольного числа имеющихся вариантов.
С помощью операторе If … them тоже можно организовать проверку более двух условий, если использовать вложенные операторы If … then, но запись с оператором Select Case получается более компактной и более понятной.
Оператор выбора case состоит из выражения, называемого селектором (selection — выбор альтернативы) и списка операторов, каждому из которых предшествует список констант выбора (список может состоять из одной константы).
Здесь ветвь else заключается в квадратные скобки, что говорит о том, что эта часть оператора выбора не обязательна.
Алгоритм выполнения оператора выбора:
- Вычисляется выражение, которое должно принимать значение, принадлежащее порядковому типу (например, оно не может быть вещественного типа).
- В случае если результат вычисления равен одной из перечисленных констант, то выполняется соответствующий оператор. Затем управление передается за пределы оператора выбора.
- Если значение выражения не совпадает ни с одной константой, то выполняется оператор, стоящий после else, если он есть, либо управление передается на оператор end и выполнение программы продолжается.
Для одной альтернативы вместо одного оператора можно указать несколько операторов, заключив их в операторные скобки.
Правила использования оператора:
- Тип константы должен совпадать с типом выражения
- В этой конструкции перед else стоит точка с запятой.
- Все константы в альтернативах должны быть уникальны в пределах оператора выбора (т.е. повторение констант в альтернативах не допускается).
Пример 1. По введенному номеру дня недели вывести на экран его название.
Пример 2. В восточном календаре принят 60-летний цикл, состоящий из 12-летних подциклов, обозначаемых названиями цвета: зеленый, красный, желтый, белый и черный.
В каждом подцикле годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи.
По номеру года выведите его название, если 1984 год был началом цикла — годом зеленой крысы.
Пример 3. Составьте программу, которая по заданному году и номеру месяца определяет количество дней в этом месяце.
Задания для самостоятельного выполнения
- Составьте программу, которая переводила бы арабские цифры в римские.
- Составить программу, которая по номеру месяца определяла время года.
В этом уроке было показано, как использовать оператор Select Case для выбора из нескольких вариантов.
Проверь себя!
На следующем уроке Вы познакомитесь со средой программирования Pascal ABC.
лабы по информатике, егэ
лабораторные работы и задачи по программированию и информатике, егэ по информатике
Pascal: Занятие №2. Часть 2: Оператор выбора в паскале
Оператор выбора в Паскале
- Оператор case в Паскале используется в тех случаях, когда в зависимости от значения какой-либо переменной нужно выполнить те или иные действия (простые или составные операторы).
- Если вариантов всего два, то можно обойтись и условным оператором IF, с которым мы уже знакомы. Но если их, к примеру, десять, то использовать конструкцию if then else в pascal становится совсем нецелесообразно. В этом случае оптимален оператор CASE варианта.
Рассмотрим использование оператора выбора в языке Паскаль на конкретном примере.
Особенность: Выбор не из двух, а из нескольких вариантов в зависимости от отметки.
Результат выполнения с использованием условного оператора if:
var otmetka:integer; begin writeln(‘Отметка?’); readln(otmetka); if (otmetka=1) or (otmetka=2) then writeln (‘кошмар!’) else if otmetka=3 then writeln(‘плохо’) else if otmetka=4 then writeln(‘неплохо’) else if otmetka=5 then writeln(‘отлично!’) else writeln(‘таких отметок не бывает’); end.
Данный пример демонстрирует нерациональную работу программиста и слишком запутанный код. Гораздо лаконичнее выглядит код при использовании оператора выбора.
Результат выполнения с использованием оператора выбора case:
var otmetka:integer; begin writeln(‘отметка?’); readln(otmetka); case otmetka of 1,2 : writeln (‘кошмар!’); 3: writeln(‘плохо’); 4: writeln(‘неплохо’); 5: writeln(‘отлично!’); else writeln(‘таких отметок не бывает’); end end.
Блок-схема, соответствующая оператору выбора:
- Чтобы задать диапазон значений, используется один из двух вариантов:
- Перечисление через запятую:
. case x of: 1,2,3,4,5: writeln(‘от одного до пяти’); .
. case x of: 1..5: writeln(‘от одного до пяти’); .
Перечисление или диапазон
- После служебного слова case может стоять имя переменной или арифметическое выражение целого типа:
или символьного типа (char):
Символьный тип char в Паскале
Для решения следующей задачи пригодится тип char — символьный.
Переменная данного типа объявляется так:
c: char;
и присваивает значения следующим образом:
c:=’a’;
Операторы условия и выбора
Тема: Оператор выбора CASE. Решение задач.
Ранее Вы познакомились с условным оператором If, который позволяет программе выполнять переходы на ту или иную ветвь по значению булева условия. Используя несколько операторов If, можно производить ветвление по последовательности условий. В приведенном фрагменте показано, как при помощи ряда операторов If можно преобразовать целое число (в диапазоне 0-9) к его словесному представлению:
Вы уже, наверное, представили, насколько этот подход однообразный и утомительный. Язык Паскаль предоставляет для этих целей другую управляющую структуру (оператор выбора case), которая позволяет построить ветвление по ряду условий в форме, более удобной для чтения программ.
Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит так называемый ключ выбора (или селектор) — выражение любого типа (кроме типов REAL и STRING).
Общая форма записи следующая:
Оператор выбора работает следующим образом. Сначала вычисляется значение выражения, стоящее после зарезервированного слова case, а затем выполняется оператор (или составной оператор), соответствующий результату вычисления выражения.
Может случиться, что в списке выбора не окажется константы равной вычисленному значению ключа. В этом случае управление передается оператору, стоящему за словом ELSE.
Если один оператор выполняется при нескольких значениях, то их можно перечислить через запятую.
Оператором может являться не только простой оператор, но также составной и пустой операторы.
Любому заданному значению селектора соответствует лишь один вход в списке операторов. Константы должны принадлежать тому же типу, что и селектор. Если селектор принимает значение, которому не соответствует ни один вход, то будет выполняться оператор, следующий за словом else. Если же этого оператора нет, то никакие альтернативы не будут выполняться.
Если оператор должен выполняться при нескольких значениях селектора следующих друг за другом, образуя некоторый промежуток, то это можно записать в более сжатой форме. Например,
Посмотрите, в каких вариантах еще можно использовать оператор выбора при решении задачи.
Задача. Написать программу преобразования цифр в слова.
Выберите с учителем задачи для самостоятельного решения.
- Написать алгоритм, позволяющий получить словесное наименование школьных оценок.
Написать алгортм, классифицирующий треугольники (остроугольные, прямоугольные, тупоугольные), если даны углы.
Написать алгоритм, который по номеру дня недели — целому числу от 1 до 7 выдавать в качестве результата количество уроков в классе в соответствующий день.
Написать алгоритм нахождения числа дней в месяце, если даны: Номер месяца n — целое число а, равное 1 для високосного года и равное 0 в противном случае.
По номеру дня недели вывести его название.
В зависимости от того введена ли открытая скобка или закрытая, напечатать «открытая круглая скобка» или «закрытая фигурная скобка». (Учитывать круглые, квадратные, фигурные скобки).
В зависимости от введённого символа L, S, V программа должна вычислять длину окружности; площадь круга; объём цилиндра.
По введенному числу от 0 до 15 вывести название цвета, соответствующего этому коду.
Определить, является ли введенная буква русского алфавита гласной.
Написать программу, которая бы предлагала меню для вывода графических объектов, и рисовала бы соответствующий выбору.
Придумайте шуточный тест с выдачей шуточных результатов.
Напишите программу, которая по введенному числу из промежутка 0..24, определяет время суток.
Напишите программу, которая по введенному номеру месяца високосного или невисокосного года, выводит количество дней в месяце.
Вычислить значение функции по одной из формул:
Оператор выбора case of
Всем привет, мы учимся программировать каждый день, мы взбираемся на горы кода, чтобы понять, что мы допустили ошибку в самом начале и спуститься вниз. Но пока мы еще ни разу не спустились, ну или не осознали своей ошибки, давайте продолжим учиться писать сайты и программировать. На прошлом уроке мы изучили циклы в Pascal, я надеюсь вы потренировались дома и не забываете это делать, иначе нахрена вам это нужно. Так вот, поехали =)
Оператор case of
Давайте попробуем сформулировать определения нашего оператора.
Оператор case — он же кейс, он же чемодан. Предназначен для переноса данных, информации и денег, а так же багажа на отдых в Тайланд. Повторите это правило 10 раз пока оно не уложится в голове.
А кого эти шутки за триста уже достали, давайте откроем Pascal.
Открыли? Закройте, оно вам не нужно.
Все открываем и пишем все как обычно:
Кто написал сам и не подсмотрел, большой молодец. Кстати, если вам важно, как я показываю это все на видео (в отдельном окне, типо командная строка или же в том же окне Pascal)? Напиши в комменты или в ВК.
Поехали дальше.
Сначала напишем код, потом будем объясняться друг другу.
Давайте, объявим переменную со строковым типом данных.
Далее, напишем вывод информации, зададим вопрос пользователю и предложим варианты ответа.
- program pr1;
- uses crt;
- var
- a : string;
- begin
- clrscr;
- writeln ( ‘О каком из языков вы хотите узнать?’ );
- writeln ( ‘css, html, pascal, php’ );
- readkey;
- end.
После, как мы вывели информацию на экран, считаем, введенную пользователем, информацию в переменную а.
- program pr1;
- uses crt;
- var
- a : string;
- begin
- clrscr;
- writeln ( ‘О каком из языков вы хотите узнать?’ );
- writeln ( ‘css, html, pascal, php’ );
- readln (a);
- readkey;
- end.
Отлично, теперь перейдем непосредственно к самому оператору case.
Все выглядит в 5 этапов, это так, можно для себя подчеркнуть.
- Вводим системное слово case
- Через пробел, пишем название переменной из которой берем информацию
- Вводим через пробел системное слово of
- Далее идет тело оператора case
- И в конце ставим end;
Пока ни чего не понятно про оператор case и нахрена он вам сдался? Продолжаем не останавливаемся. Теперь напишем, по вышесказанный пяти пунктам, в нашу программу код:
- program pr1;
- uses crt;
- var
- a : string;
- begin
- clrscr;
- writeln ( ‘О каком из языков вы хотите узнать?’ );
- writeln ( ‘css, html, pascal, php’ );
- readln (a);
- case a of
- тело оператора
- end;
- readkey;
- end.
Дальше, что будем писать в тело оператора? Кто догадался, тому пять, а может шесть раз объясняли, что такое оператор case.
В тело оператора пишем варианты выбора, помните, выше мы просили пользователя ввести инфу и предлагали варианты ответов, так вот эти самые варианты мы и должны написать.
Но писать нужно правильно.
Так как, у нас переменная строкового типа, значит она будет содержать в себе строку соответственно. Значит, мы должны писать варианты в апострофах. Слушаем дальше, каждый вариант пишем отдельно, после варианта ставим двоеточие и открываем уже его тело, тело варианта. Тело состоит из логических скобок и нужных вам действий с этим вариантом.
Давай напишем все варианты.
- program pr1;
- uses crt;
- var
- a : string;
- begin
- clrscr;
- writeln ( ‘О каком из языков вы хотите узнать?’ );
- writeln ( ‘css, html, pascal, php’ );
- readln (a);
- case a of
- ‘css’ :
- begin
- действия
- end;
- ‘html’ :
- begin
- действия
- end;
- ‘pascal’ :
- begin
- действия
- end;
- ‘php’ :
- begin
- действия
- end;
- end;
- readkey;
- end.
Теперь отложим дело в сторону, закроем глаза и отдохнем.
Отдохнули? Подъем.
Теперь, забыли написанный выше код на время.
Включаем фантазию, представьте к вам пришел некий человек, пусть будет Василий.
В руках у него чемодан, ну или КЕЙС.
Он спрашивает — О каком из языков ты бы хотел узнать?
Ты ему говоришь свой вариант.
Вася открывает КЕЙС и показывает имеющиеся у него варианты.
Если у него есть такой вариант, который нужен тебе, то он тебе его отдает, если нет, то выдает — извиняй бро, такого не держим, то есть информирует об ошибке и отсутствии нужного нам варианта.
Это и есть работ оператора CASE. Врубились? Если нет, прочитайте еще раз и сравните с нашим кодом выше.
Теперь нам осталось дописать действия к нашим вариантам в КЕЙСЕ и информировать пользователя об ошибке, в случае, если его вариант отсутствует в нашем ящике пандоры.
В роли действий, мы просто будем выводить информацию об выбранном языке, ошибка у оператора CASE, пишется после оператор ELSE.
- program pr1;
- uses crt;
- var
- a : string;
- begin
- clrscr;
- writeln ( ‘О каком из языков вы хотите узнать?’ );
- writeln ( ‘css, html, pascal, php’ );
- readln (a);
- case a of
- ‘css’ :
- begin
- writeln ( ‘CSS — Это каскадные таблицы стилей’ );
- end;
- ‘html’ :
- begin
- writeln ( ‘HTML — Это язык гипертекстовой разметки’ );
- end;
- ‘pascal’ :
- begin
- writeln ( ‘PASCAL — Это язык, на котором написана эта программа’ );
- end;
- ‘php’ :
- begin
- writeln ( ‘PHP — Это язык на котором пишут движки для сайтов’ );
- end;
- end;
- else writeln ( ‘Ошибка, перезапустите программу!’ );
- readkey;
- end.
Вот и все, осталось запустить и проверить работу программы и оператора case.
Запускаем case
Запускаем и видим первое:
- О каком из языков вы хотите узнать?
- css, html, pascal, php
Выбираем любой из 4 вариантов, пишем выбранный вариант:
- О каком из языков вы хотите узнать?
- css, html, pascal, php
- pascal
И нажимаем ENTER. Ииии программа на выдает:
- О каком из языков вы хотите узнать?
- css, html, pascal, php
- pascal
- PASCAL — Это язык на котором написана эта программа
О чудо оно разговаривает.
Программа работает как нужно, мы можем выбрать любой из 4 вариантов и программа нам выдаст информацию об выбранном нами языке.
В случае если вы ввели вариант, который в КЕЙСЕ не содержится, Вася вам скажет — Ошибка, перезапустите программу :D.
Кстати, программа будет реагировать как ошибка, если вы введет один из вариантов кейса в другом регистре. Например, в кейсе мы написали маленькими буквами, а программе дали ответ большими буквами, он среагирует как ошибка, имейте ввиду =)
Заключение
Вот и все, думаю работа оператора case of вам теперь понятна.
Вот вам домашнее задание дети:
Помните мы писали калькулятор в одном из уроков, так вот. Перепишите или напишите свой калькулятор, только с использованием уже не условий, а с использованием оператора case of.
Всем спасибо за урок, пока =)