- •Министерство образования и науки российской федерации
- •Оглавление предисловие
- •Составление структурных схем алгоритмов и программ
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Пример 4
- •Пример 5
- •Задания
- •Алфавит языка pascal. Типы данных. Раздел описаний. Оператор присваивания. Ввод-вывод. Составление простейших программ
- •Стандартные процедуры
- •Стандартные функции
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Задания
- •Использование переменных логического типа. Логический оператор присваивания
- •Логический оператор присваивания
- •R операция_сравнения s
- •Пример 1
- •Задания
- •4. Программирование разветвляющихся структур
- •4.1. Использование в программах условного оператора
- •Пример 1
- •Задания
- •4.2. Использование в программах оператора варианта
- •Case выражение-селектор of метка_случая : оператор;
- •Пример 1
- •Задания
- •5. Использование переменных типа char
- •Задания
- •6. Реализация циклических структур
- •6.1. Применение оператора цикла с параметром
- •Шаг изменения параметра цикла:
- •Пример 1
- •Задания
- •Пример 2
- •Пример 3
- •Задания
- •Пример 4
- •Задания
- •Таким образом изображаются циклы в структурных схемах (в лабораторных работах, курсовых работах и т.Д.). Пример 5
- •Задания
- •Задания
- •Пример 6
- •Задания
- •Не смотря на то, что есть еще другие операторы цикла, обычно вводят и выводят массивы с помощью оператора цикла с параметром.
- •6.2. Применение оператора цикла с постусловием
- •Пример 1
- •Задания
- •6.3. Применение оператора цикла с предусловием
- •Основные различия между операторами циклов с постусловием и предусловием
- •Пример 1
- •Задания
- •6.4. Работа с двухмерными массивами.
- •Задания
- •Пример 1
- •Задания
- •7. Поиск и сортировка числовых данных
- •Пример 1
- •Задания
- •8. Решение задач с применением подпрограмм
- •Procedure имя(список параметров);
- •Var идентификаторы:имя типа;...; var идентификаторы: имя типа
- •Var идентификаторы:имя типа;...;var идентификаторы: имя типа;...; идентификаторы:имя типа;...;идентификаторы:имя типа
- •Идентификаторы:имя типа;идентификаторы:имя типа; ...;идентификаторы:имя типа
- •Локальные переменные доступны только внутри процедур, в которых они определены!
- •Пример 1
- •Задания
- •9. Использование переменных перечисляемого типа
- •Ввод и вывод значений переменных перечисляемого типа запрещен.
- •Задания
- •10. Использование переменных ограниченного типа
- •Задания
- •11. Использование переменных множественного типа
- •Var идентификатор : set of порядковый тип;
- •Запрещен.
- •Правила приоритета для множественных операций:
- •Задания
- •12. Использование записей
- •With префикс[,префикс [...]] do оператор
- •Пример 1
- •Задания
- •13. Работа со строками
- •Каждая переменная типа string вводится отдельной процедурой readln
- •Пример 1
- •Задания
- •14. Работа с файлами
- •Пример 1
- •Пример 2
- •Пример 3
- •Задания
- •Библиографический список
9. Использование переменных перечисляемого типа
Перечисляемый тип (или перечислимый) описывается путем перечисления имен КОНСТАНТ, представляющих упорядоченное множество его значений.
Первая константа имеет порядковый номер 0, вторая - 1 и т.д.
Пример:
type
Color=(White,Red,Blue,Yellow,Purple,Green,Orange,Black);
Day =(Mon,Tue,Wed,Thu,Fri,Sat,Sun);
В перечислении все имена должны быть различными.
Пример неправильного описания:
type Workday=(Mon,Tues,Wed,Thur,Fri,Sat);
Free=(Sat,Sun);
В данном случае описание неверно, так как тип константы Sat определен неоднозначно.
Стандартный тип Boolean можно было бы описать так:
type Boolean=(false,true);
На множестве значений любого перечисляемого типа определены все возможные операции отношения _, !=, <>, <, <=, >= и >. Необходимо, чтобы оба операнда относились к одному и тому же типу. Значения порядковых номеров констант определяются очередностью их записи при описании типа.
На множествах значений порядковых типов определены стандартные функции:
ord(X) - порядковый номер X, например ord(Blue)=2;
pred(X) - значение, предыдущее X, например pred(Blue)=Red;
succ(X) - значение, следующее за X, например succ(Blue)=Yellow.
Ввод и вывод значений переменных перечисляемого типа запрещен.
Следующая программа иллюстрирует некоторые операции над данными, относящимися к перечисляемому типу.
type
Color=(White,Red,Blue,Yellow,Purple,Green,Orange,Black);
var
C,C1,X,Y:Color;
i:integer;
begin
readln(i);
case i of { задание значения для С1 }
0 : C1:=White;
1 : C1:=Red
else C1:=Black
end;
for C:=Black downto C1 do
i:=i-1;
case C1 of { вывод значения С1 }
White : writeln('White');
Red : writeln('Red');
Black : writeln('Black')
end
end.
Задания
№1. Имеются описания
type Sezon=(Zima,Vesna,Leto);
var x,y:Sezon;
t:(Teplo,Holodno);
a) Допустимы ли присваивания:
1) x:=ZimA; 2) y:=x; 3) y:=Vecna;
4) t:=Teplo; 5) y:=t; 6) t:=Jarko?
б) Вычислить значения выражений;
1) Vesna<Leto; 2) Zima<=Leto; 3) Osen<Zima;
4) Vesna<>Teplo; 5) succ(Vesna); 6) pred(Vesn);
7) succ(Osen); 8) pred(Holodno)
в) Вычислить значения выражений:
1) ord(Vesna); 2) ord(Leto)+ord(Holodno)
г) Допустим ли оператор цикла с заголовком
for x:=Zima to Leto do ?
д) Допустимы ли следующие операции ввода-вывода:
1) read(x); 2) write(Leto);
3) writeln('Зимой ',t)?
№2. Имеются описания:
type Sezon=(Zima,Vesna,Leto,Osen);
Mesyc=(Jun,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,
Oct,Nov,Dec);
Var m:Mesyc; s:Sezon;
Написать программу для определения s - сезона, на который приходится месяц m.
№3. Имеются описания:
type Edinica=(mm,sm,dm,m,km);
{мм, см, дм, м, км}
Dlina =real;
var x:Dlina; p:Edinica;
Написать программу, которая значение переменной x, означающей некоторую длину в единицах p, заменяет на величину этой же длины в метрах.
№4. Имеются описания:
type Kurs = (S,V,U,Z); { север, восток, юг, запад }
Prikaz = (vpered,vpravo,nazad,vlevo);
var K1,K2:Kurs; Pr:Prikaz;
Корабль сначала шел по курсу K1, а затем его курс был изменен согласно приказу Pr. Определить K2 - новый курс корабля.
№5. Имеются описания:
type Nota =(do,re,mi,fa,sol,lya,si);
Interval=(sekunda,terciya,kvarta,kvinta,sekta,septima);
var N1,N2:Nota; i:Interval;
Определить i-интервал, образованный нотами N1 и N2 (N1?N2). Секунда - это интервал из двух соседних (по кругу) нот (например, ре и ми, си и до), терция - интервал через ноту (например, фа и ля, си и ре) и т.д.