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

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

Функции LENGTH и CONCAT.

Функция Length возвращает в качестве значения длину строки. Например, если в строковой переменной «stroka» записано слово «Pascal», то Length(stroka) будет равно 6. Эта операция аналогична операции Ord(stroka[0]), которую мы разбирали в 1-м уроке. ...

Abs, Sqr в Pascal.

Abs - функция языка Паскаль, которая вычисляет модуль числа.
Sqr - функция языка Паcкаль, которая возводит число в квадрат.

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

Массив строк типа STRING.

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

Работа со строковыми данными.

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

Помимо условного оператора 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.
 
 
+5 # Zzzzzz 04.12.2012 14:58
Cool 8)
 
 
+5 # Нео 16.12.2012 14:31
Das ist fantastisch! :lol:
 
 
+7 # Нео 16.12.2012 14:33
А теперь вопрос можно ли case вказывать как меньше 3 или больше 100?
 
 
+1 # nexta 13.03.2016 16:36
используешь

case NUM of
3:оператор;
...
100:оператор;
else
оператор;
 
 
+2 # I 20.12.2012 13:57
а как с помощью case допустим пишешь букву и он выводит комментарий???
 
 
+2 # Zmey 14.02.2013 12:31
Case n of
a:writeln('Bukva A');
b:writeln('Bukva B');
C:...
 
 
-2 # Nastya 06.02.2014 08:06
только где буквы нужно поставить апострофы, иначе программой будут читаться как переменные
 
 
0 # BIG CRAB 10.01.2013 14:08
спасибо )
помогли с билетом при подготовке :-)
 
 
0 # AndreW 27.02.2013 14:53
Спасибо, помогли 8)
 
 
0 # саня 02.04.2014 06:04
:o :o :o :o :o :o :o :o :o :o :o
 
 
+1 # Леха 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' что делать?
 
 
+3 # ivan 02.01.2015 05:25
Возможно все дело в оперторе case при работе со строковыми данными
 
 
-3 # ти баран 11.11.2015 13:13
кей так не працює йому можна присвоювати тіки чилса
 
 
+2 # 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 выбрать модуль
 
 
0 # гьаджимуса 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:
 
 
-11 # влад 11.11.2016 13:16
:-x :o :oops: :P :sigh: всё правильно я программист))
 
 
-4 # Андрей 19.11.2016 17:17
Помогите пожалуйста с 2-мя задачами в паскале!!!!!!!! !!! 1)Нарисовать N кругов с радиусом от 5 до 50 в случайном месте случайным цветом в рамке. 2) Найти сумму 1/2+2/3+3/4+... +29/30
 
 
0 # Casil 16.03.2018 10:36
uses graphABC;
var x1,y1,x2,y2,i,n,x,y,r:integer;
begin
randomize;
write('n=');
readln(n);
x1:=20;
y1:=20;
x2:=windowwidth-20;
y2:=windowheight-20;
setbrushstyle(bsClear);
setpenwidth(5);
setpencolor(clRed);
rectangle(x1,y1,x2,y2);
setpenwidth(2);
for i:=1 to n do
begin
r:=5+random(46) ;
x:=x1+r+5+rando m(x2-2*(x1+r)-1 0);
y:=y1+r+5+rando m(y2-2*(y1+r)-1 0);
setpencolor(clr andom);
circle(x,y,r);
end;
end.
 
 
-8 # дб 05.12.2016 18:23
:sigh: :roll: :P :sad: :sad: :-|
 
 
0 # gex 06.11.2017 18:00
спасибо очень нужная команда :lol: :lol: :lol:
 
   ГлавнаяПаскальВетвления в ПаскальПрименение логических операций с оператором IF.