Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Содержание сайт... 65535
Вызов хранимых ... 65535
Эмулятор микроп... 65535
Приложение «Про... 64067
Организация зап... 62739
Оператор выбора... 62511
Invision Power ... 62156
Подключение Mic... 60914
Модуль Forms 59875
Создание отчето... 59794
ТЕХНОЛОГИИ ДОСТ... 55983
Программируемая... 55431
Пример работы с... 53078
Имитационное мо... 51362
21 ошибка прогр... 46355
Реклама
http://www.unfire-shop.ru/aptechka.html что входит в состав аптечки.
Сейчас на сайте
Гостей: 12
На сайте нет зарегистрированных пользователей

Пользователей: 13,057
новичок: Aidar
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Компьютерный магазин на Turbo Pascal (База данных) + Пояснительная записка
моделирование процесса поступления заявок в ЭВМ на GPSS + Пояснительная ...
База данных студентов на Delphi (файл записей) + Блок схемы

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Оператор выбора case


Если один оператор if может обеспечить выбор из двух альтернатив, то оператор выбора case позволяет сделать выбор из произвольного числа имеющихся вариантов.
Формат записи оператора case:
case <выражение-селектор > of
<список значений1>: <оператор1;>
<список значений 2>: <оператор2;>

<список значений N>: <операторN>
else <оператор>
end;



Оператор case работает следующим образом. Сначала вычисляется значение выражения-селектора, затем в последовательности операторов отыскивается такой, которому предшествует константа, равная вычисленному значению. Если ни одна из констант не равна вычисленному значению, выполняется оператор, стоящий за словом else. Если слово else отсутствует, выполняется оператор, находящийся за словом end, т. е. первый оператор за границей case.
Селектор должен относиться к одному из целочисленных типов (находящихся в диапа-зоне — 32768..32767): булевскому, литерному или пользовательскому. Список констант выбора состоит из произвольного количества значений, или диапазонов, отделенных друг от друга запятыми. Границы диапазона записываются двумя константами через разграничитель " .. ". Тип констант в любом случае должен совпадать с типом селектора. В синтак-сическом описании, приведенном выше, предполагается использование одного оператора для каждой альтернативы, но при необходимости можно задать несколько операторов, сгруппировав их в составной оператор. В то же время ветвь else допускает использование последовательности операторов, разделенных символом ";".
При использовании оператора выбора case должны .выполняться следующие правила:
1. Значения выражения "переключателя", записанного после служебного слова case, должны принадлежать дискретному типу (лат. discretus — прерывистый, дробный, состоящий из отдельных частей); для целого типа они должны лежать в диапазоне integer.
2. Все константы, предшествующие операторам альтернатив, должны иметь тип, совместимый с типом выражения.
3. Все константы в альтернативах должны быть уникальны в пределах оператора варианта (т. е. повторения констант в альтернативах не допускаются); диапазоны не должны пересекаться и не должны содержать констант, указанных в данной или других альтернативах.
Ниже приведены типичные формы записи оператора case.

Селектор интервального типа:
case I of
1..10 : Writeln ('число ', I:4, ' в диапазоне 1 - 10');
11..20 : Writeln ('число ', I:4, ' в диапазоне 11 - 20');
21.. 30 : Writeln ('число ', 1:4, ' в диапазоне 21 - 30 ')
else Writeln ('число', I:4, ' вне пределов контроля')
end;



Селектор целочисленного типа:
case I of
1 : Z := I + 10;
2 : Z := I + 100;
3 : Z := I + 1000
end;



Селектор перечисляемого пользовательского типа:
var
Season: (Winter, Spring, Summer, Autumn);
begin

case Season of
Winter : Writeln ('Winter');
Spring : Writeln ('Spring');
Summer : Writeln ('Summer');
Autumn : Writeln ('Autumn')
end;
end;



Пример программы с использованием оператора case, которая по введенному вами номеру дня недели выводит на экран видеомонитора его название на русском языке.
program Day_Week;
var Day : byte;
begin
Write ('Введите номер дня недели (от 1 до 7) :');
Readln (Day);
case Day of {Вычисление значения выражения и выбор}
1: Writeln ('Понедельник');
2: Writeln ('Вторник');
3: Writeln ('Среда');
4: Writeln ('Четверг');
5: Writeln ('Пятница');
6: Writeln ('Суббота');
else
Writeln ('Воскресенье');
end;
end.



В данном примере на экран видеомонитора выводится приглашение "Введите номер дня недели с клавиатуры считывается целочисленное значение дня недели и присваивается переменной Day. Затем в зависимости от значения селектора DAY обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора. Например, если значение Day равно 3, то реализуется оператор
Writeln ('Cpeдa')


Если значение Day равно 7, а ни одна из констант не равна этому значению селектора, то выполняется оператор, стоящий за словом else (на экран выводится текст 'Воскресенье'). Если слово else отсутствует, активизируется оператор, находящийся за словом end;, т. е. первый оператор за границей case. Если значение Day не равно значению ни одной из констант выбора (например, Day=8 или Day=0), то активизируется оператор, находящийся за словом end;, т. е. первый оператор за границей case — оператор end.
Опубликовал Kest April 03 2010 20:22:41 · 2 Комментариев · 62511 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Артур November 19 2014 02:35:55
Спасибо за информацию, отличная статья smiley
Мелисса May 13 2015 20:49:15
Есть программа:

program calcus;
uses crt;
var x,y,z:integer;
s:string;
begin
clrscr;
writeln('vvedite cifru 1');
readln(x);
writeln('vvedite znak operacii');
readln(s);
writeln('vvedite cifru 2');
readln(y);
if s=('+') then z:=x+y;
if s=('-') then z:=x-y;
if s=('*') then z:=x*y;
if s=('/') then z:=x div y;
writeln('otvet: ',z);
readln;
end.

Нужно заменить if/than на case/of. помогите пожалуйста, кто знает.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

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

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Crystal Button
С. Г. Горнаков - ...
Черный круг двига...
Tenis [Исходник н...
Пятнашки и крести...
SearchAndReplace
Карта сайта
Trojan [Исходник ...
DelTrayIcon [Исхо...
Система баннеро...
Советы от Даниилы...
PHP/MySQL для нач...
FilesInfo
SUIPack
GPSS World Studen...
Самоучитель PHP 4
PDA версия сайта
TDBF
Ics
CarGame [Исходник...

Топ загрузок
Приложение Клие... 100366
Delphi 7 Enterp... 82062
Converter AMR<-... 20046
Borland C++Buil... 11039
GPSS World Stud... 10378
Borland Delphi ... 8030
Turbo Pascal fo... 6957
Visual Studio 2... 4961
Калькулятор [Ис... 4253
FreeSMS v1.3.1 3508
Случайные статьи
Файловый ввод-вывод
Проверка балланса....
Инсталляция библио...
Прекращение отладк...
Интим магазин
Таблица 7.3. Прави...
СТРУКТУРА МОДУЛЯ M...
Кому адресована эт...
3.1. Программа обр...
Блоки работы с при...
Процедура проверки...
Можно ли в Интерне...
ПРИМЕР ЭЛЕКТРОННОГ...
Указатель "примеча...
ByteSub
Клавиатура и мышь
1.4.1. Адаптеры да...
Генерирование сигн...
Нумералы
Рассмотрим выполне...
Навигация по данны...
Битовые поля в язы...
4.3. Понимание про...
Формулы
Настройка зон безо...
Статистика



Друзья сайта
Программы, игры
Wydruki kolor plotowanie warszawa.

Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?