Тип данных Char. Функции Ord, Chr.

Мы с Вами уже рассмотрели типы данных, которые позволяют хранить и обрабатывать целые числа (integer) и дробные числа (real). Теперь рассмотрим тип данных, позволяющий хранить и обрабатывать различные символы. Символы – это все буквы и значки, ...

Тип данных String в Pascal.

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

Использование program, begin…end, write, readln, Uses Crt, Clrscr.

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

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

Подпрограммы, определенные пользователем.

Технология программирования с использованием подпрограмм предусматривает разбиение программ на логически связанные, но функционально-замкнутые компоненты, имеющие свое имя, что дает следующие ...

Итерационные циклы.

Если число повторений заранее не известно и решение о завершении цикла принимается на основе анализа некоторого условия, то такой повторяющийся вычислительный процесс называется итерационным циклом.

...

Помимо условного оператора If в языке программирования Pascal существует оператор выбора Case of. Рассмотрим его применение на примере программы, которая выводит на экран то или иное сообщение, в зависимости от введенного числа.

Вывод сообщения на экран с помощью If.


program vetvlenija7;
uses crt;
var NUM :integer;
begin
clrscr;
writeln(‘Введите число от 1 до 4:’);
readln (NUM);
if NUM=0 then
writeln (‘Нуль’);
if NUM=1 then
writeln (‘Один’);
if NUM=2 then
writeln (‘Два’)
if NUM=3 then
writeln (‘Три’)
if NUM=4 then
writeln (‘Четыре’);
readln
end.

Эта программа выводит на экран сообщение (Нуль, Один и т. д.) в зависимости от того какое мы введем число. Однако, ту же задачу можно выполнить более простым способом с помощью оператора Case of.

Использование Case Of.


program vetvlenija7;
uses crt;
var NUM :integer;
begin
clrscr;
writeln(‘Введите число от 0 до 4:’);
readln (NUM);
case NUM of
0:writeln (‘Нуль’);
1:writeln (‘Один’);
2:writeln (‘Два’);
3:writeln (‘Три’);
4:writeln (‘Четыре’);
end;
readln
end.

В строке №8 записывается оператор выбора Case Of. Сначала записывается слово Case, затем записывается переменная, затем слово Of. После служебного слова Of идет перечисление всех возможных значений переменной (строка №9 - №13), а через двоеточие указывается действие, которое нужно сделать, если переменная принимает то или иное значение. Таким образом, если мы вводим с клавиатуры 0, то на экран выводится сообщение «Нуль» (строка №9), если вводим 1, то выводится сообщение «Один» (строка №10) и т.д.

Нам не нужно каждый раз писать конструкцию If…Then.
Достаточно указать CASE «переменная» OF, а затем для каждого значения этой переменной через двоеточие прописать вывод на экран. После перечисления всех операторов необходимо поставить служебное слово End.

case of

Запустим программу и введем любое число от 0 до 4 (например, 4)

case of.


Напишем программу, которая определяет квартал года по введенному числу месяца.

Использование Case Of Else.


program vetvlenija8;
uses crt;
var NUM :integer;
begin
clrscr;
write (‘Введите номер месяца’);
readln (NUM);
case NUM of
1,2,3: writeln (‘Первый квартал’);
4,5,6: writeln (‘Второй квартал’);
7,8,9: writeln (‘Третий квартал’);
10,11,12: writeln (‘Четвертый квартал’)
else
writeln (‘Вы неправильно указали месяц’)
end;
readln
end.

В строке №8 записываем оператор выбора Case Of. После слова Of (в строках №9 - №12) указываем возможные значения нашей переменной. Причем несколько значений можно указать в одной строке. Например, в строке №9 мы указываем 3 значения для переменной и действие, которое нужно совершить, если будут введены эти переменные. Т.е. если мы вводим с клавиатуры 1 или 2 или 3, то на экран выводится сообщение «Первый квартал».

В строке №13 записывается служебное слово Else. Если мы вводим с клавиатуры число, которое лежит вне диапазона чисел от 1 до 12, то должно совершиться действие, которое указывается после слова Else (строка №14).

Записываем программу в Паскале, запускаем ее и проверяем работоспособность, вводя различные числа.

case of else

case of else.


Дополнение к материалу.

В данном примере вместо перечисления значений переменной можно использовать диапазон значений переменной. Например, строку №9 можно записать так: 1..3: writeln (‘Первый квартал’); Т.е. сначала указывается первое значение переменной, а затем через 2 точки указывается последнее значение переменной.


Следующая статья : Циклы в Паскаль.


Комментарии  

 
0 # Юрий 20.03.2012 17:04
А в строку 3 Примера№23. Вывод сообщения на экран с помощью If. просится NAM.
Ответить
 
 
+11 # Zzzzzz 04.12.2012 14:58
Cool 8)
Ответить
 
 
+9 # Нео 16.12.2012 14:31
Das ist fantastisch! :lol:
Ответить
 
 
+7 # Нео 16.12.2012 14:33
А теперь вопрос можно ли case вказывать как меньше 3 или больше 100?
Ответить
 
 
0 # nexta 13.03.2016 16:36
используешь

case NUM of
3:оператор;
...
100:оператор;
else
оператор;
Ответить
 
 
+2 # I 20.12.2012 13:57
а как с помощью case допустим пишешь букву и он выводит комментарий???
Ответить
 
 
+3 # Zmey 14.02.2013 12:31
Case n of
a:writeln('Bukva A');
b:writeln('Bukva B');
C:...
Ответить
 
 
0 # Nastya 06.02.2014 08:06
только где буквы нужно поставить апострофы, иначе программой будут читаться как переменные
Ответить
 
 
+2 # Yury 09.01.2017 11:00
Человек вообще-то правильно сказал, а вы минусы ставите. Так придет кто-то и подумает, что неправильно подсказала. Если n имеет тип char, то действительно верной будет конструкция:
Case n of
'a': ;
'b': ;

То что выше без кавычек будет верно ТОЛЬКО В ОДНОМ случае: когда перед этим написано
const a = 'a' (или любая другая буква) и т.д.
Ответить
 
 
-1 # BIG CRAB 10.01.2013 14:08
спасибо )
помогли с билетом при подготовке :-)
Ответить
 
 
-2 # AndreW 27.02.2013 14:53
Спасибо, помогли 8)
Ответить
 
 
-2 # саня 02.04.2014 06:04
:o :o :o :o :o :o :o :o :o :o :o
Ответить
 
 
+2 # Леха 02.04.2014 12:24
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;
Var I: Integer;
A,Q,E:string;
Begin
Write('Think of a number of from 1 to 5 and press Enter');
ReadLn;
WriteLn('This number is greater than or equal to two?');
ReadLn(A);
If A='No'
Then I:=1
Else
Begin
WriteLn('This number is split into two?');
ReadLn(Q);
End;
Case Q Of
'Yes': WriteLn('This number is more than three?');
ReadLn(E); If E='Yes' Then I:=4
Else I:=2;
'No': WriteLn('This number is more than four?');
ReadLn(E); If E='Yes' Then I:=5
Else I:=4;
end;
ReadLn;
{ TODO -oUser -cConsole Main : Insert code here }
End.
Выдает ошибку:[Error] Project2.dpr(25 ): Incompatible types: 'Integer' and 'String' что делать?
Ответить
 
 
+4 # ivan 02.01.2015 05:25
Возможно все дело в оперторе case при работе со строковыми данными
Ответить
 
 
-8 # ти баран 11.11.2015 13:13
кей так не працює йому можна присвоювати тіки чилса
Ответить
 
 
0 # zulika 17.04.2014 18:51
sposibo pomogli :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
Ответить
 
 
0 # dfyz 19.06.2014 17:39
как с помощю оператора case выбрать модуль
Ответить
 
 
-2 # гьаджимуса 28.04.2015 15:32
;-)
Ответить
 
 
0 # GOOD BOY 24.12.2015 21:26
Выходит ошибка с надписью "Ожидалась константа". Дело в том что у меня в операторе CASE вместо элемента списка стоит перемененная, буква которая с каждым запуском программы разная из-за рандома. Так-вот можно ли поставить переменную как элемент списка выбора в CASE что-бы ошибки не было. :P
Ответить
 
 
0 # илья 16.01.2016 07:23
:lol: :lol: :lol: :lol: :lol:
Ответить
 
 
0 # спс 23.08.2016 10:35
:lol:
Ответить
 
 
-5 # влад 11.11.2016 13:16
:-x :o :oops: :P :sigh: всё правильно я программист))
Ответить
 
 
-1 # Андрей 19.11.2016 17:17
Помогите пожалуйста с 2-мя задачами в паскале!!!!!!!! !!! 1)Нарисовать N кругов с радиусом от 5 до 50 в случайном месте случайным цветом в рамке. 2) Найти сумму 1/2+2/3+3/4+... +29/30
Ответить
 
 
-2 # дб 05.12.2016 18:23
:sigh: :roll: :P :sad: :sad: :-|
Ответить
 
 
0 # DixonAlex 02.03.2017 12:00
Харё ляпать смайловски и прочие бредовины!!!
Ответить
 
 
0 # DixonAlex 02.03.2017 12:01
Это я про комментосы.
Ответить
 
 
-1 # Zoila 06.04.2017 13:00
Does your website have a contact page? I'm having trouble locating it but,
I'd like to shoot you an email. I've got some ideas for your blog you might be interested
in hearing. Either way, great site and I look forward to seeing it grow
over time.

Also visit my page - indian: http://bit.ly/2lZh8pz
Ответить
 
 
-1 # Zack 06.04.2017 19:23
Tremendous issues here. I'm very happy to peer your post.

Thanks so much and I'm taking a look forward to contact you.
Will you kindly drop me a e-mail?

Also visit my site :: indian: http://bit.ly/2lZh8pz
Ответить
 

Добавить комментарий

Защитный код
Обновить

   ГлавнаяПаскальВетвления в Паскаль