- •§1. Начало программирования на языке Паскаль.
- •Краткое знакомство.
- •Функциональные клавиши Турбо Паскаль.
- •§2. Алфавит языка Паскаль. Переменные. Типы переменных Алфавит языка Паскаль.
- •Стандартные математические функции
- •Типы переменных
- •§3. Операторы присваивания.
- •Оператор ввода-вывода.
- •Арифметические операции.
- •Стандартные функции
- •Правила записи арифметических выражений.
- •Правила записи стандартных функций.
- •Оператор ввода .
- •Оператор вывода .
- •§4. Структура программы.
- •Первая программа.
- •Эксперименты с программой.
- •§5. Разветвляющие алгоритмы. Составной оператор
- •Оператор if или условный оператор
- •Блок-схема полного у словного оператора
- •Блок-схема неполного у да Условие словного оператора
- •§6. Оператор цикла с параметром Циклический алгоритм
- •Цикл с предусловием «Пока»
- •Цикл с постусловием «До»
- •Цикл с параметром «Для» Цикл с параметром «Для»
- •Блок-схема цикла «for»
- •§7. Базовые циклические алгоритмы
- •1. Алгоритм вычисления суммы чисел.
- •2. Подсчет количества чисел удовлетворяющих заданному условию.
- •3. Вычислить сумму чисел, кратных 3, из десяти чисел введенных с клавиатуры.
- •4. Алгоритм вычисления n!.
- •5. Алгоритм вычисления аn.
- •§8. Цикл с предусловием while
- •Блок-схема цикла «Пока»
- •§9. Оператор цикла с постусловием Repeat
- •Блок-схема цикла «До»
- •§10. Эксперимент с программой. Лабораторная работа
- •§11. Оператор варианта выбора
- •§12. Типы определенные пользователем Раздел описания типов
- •Перечислимый тип данных
- •§13. Вложенные циклы
- •§14. Одномерные массивы Работа с элементами
- •Способы задания значений элементов массива
- •Алгоритмы работы с массивами
- •Эксперименты с программой
- •§15. Обработка символьных массивов. Данные символьного типа.
- •Описание строковых переменных
- •Операции над строковыми переменными
- •§16. Двумерные массивы Работа с элементами
- •5.Вычисление суммы элементов всего двумерного массива.
- •6. Задача поиска максимального (минимального) элемента и его индексов.
- •7. Алгоритм поиска минимального элемента и его индексов для всего массива.
- •8. Квадратные матрицы.
- •Примеры решения задач
- •§17. Подпрограммы
- •Процедура в Паскале и ее формат.
- •Функции
- •§18. Примеры рекурсивного программирования
- •Задачи с рекурсивной формулировкой
- •Задачи, из постановки которых можно извлечь рекурсию
- •Задачи, которые можно решить как частный случай обобщенной
- •Задачи, в которых можно использовать характеристику или свойство функции
- •§19. Графика
- •Установка цвета и стиля заполнения
- •Процедуры создания графических примитивов
- •1. Текущий указатель.
- •2. Вывод точки
- •3. Вывод отрезка
- •4. Построение прямоугольника
- •5. Построение дуг, окружностей, эллипсов.
- •6. Построение закрашенного эллипса:
- •7. Заполнение внутренней или внешней области замкнутой фигуры.
- •Материалы для дополнительного чтения. §20. Файловый тип данных
- •Связь переменной файлового типа с файлом на диске.
- •Чтение из файла.
- •Закрытие файла
- •Признак конца файла
- •Запись в файл
- •Прямой доступ к элементам файла
- •§21. Текстовые файлы
- •§22. Множества
- •Операции над множествами
- •Операция определения принадлежности элемента множеству
- •Сравнение множеств
- •§23. Комбинированный тип данных (записи)
- •2. С использованием оператора присоединения.
- •§24. Приближенные вычисления.
- •§25. Основы структурного программирования
- •10. Комплексный пример
- •Содержание
§11. Оператор варианта выбора
Сase <порядковая переменная> of
<константа 1>: <оператор 1>;
<константа 2>: <оператор 2>;
......
<константа n>: <оператор n>;
[Else <оператор >; ]
end;
Если порядковая переменная равна одной из перечисленных констант, то выполняется соответствующий оператор. Затем управление передается за пределы оператора выбора. Если значение переменной не совпадает ни с одной константой, то выполняется оператор, стоящий после Else, если он есть, либо управление передается на оператор, следующий за End.
Задача 1: Составьте программу, в которой определяется, какой буквой - гласной или согласной - является введенный символ английского алфавита.
Решение :
Разделим все символы на три группы :
гласные буквы английского алфавита;
согласные буквы английского алфавита;
символы, не являющиеся буквами английского алфавита.
Program ех4;
var ch : char;
begin
Writeln(‘Введите символ’);
Readln(ch);
Case ch of
‘a’,’e’,’i’,’o’,’u’ : writeln(‘Это гласная’);
‘a’...’z’ : Writeln(‘это согласная’);
else writeln(‘это не английский алфавит’);
end;
end.
Задача 2. Мастям игральных карт условно присвоены следующие порядковые номера: «пики»-1, «трефы»-2, «бубны»-3, «червы»-4. По заданному номеру масти m (1m4) определить название соответствующей масти.
Program mast;
var m:integer;
begin
write(‘введите номер масти’); readln(m);
case m of
1 : writeln(‘пики’);
2 : writeln(‘трефы’);
3 : writeln(‘бубны’);
4 : writeln(‘червы’)
else writeln(‘вы ввели неправильный номер’);
end;
end.
§12. Типы определенные пользователем Раздел описания типов
В языке Паскаль все данные, используемые программой, должны принадлежать к какому-либо заранее известному типу данных.
Тип данных определяет:
формат представления данных в памяти ЭВМ;
множество допустимых значений;
множество допустимых операций.
Все простые типы можно разделить на стандартные и пользовательские. Стандартные типы данных рассматривались в задании1.
Пользовательские типы объявляются в разделе описания типов, который открывается словом Type.
Type
week=(sunday, monday, tuesday, wednesday, thursday,
friday, satufday);
work_week=monday..friday;
day=1..31;
Обратите внимание на то, что при объявлении пользовательских типов между их именем и конструкцией, определяющей тип, ставится знак равенства.
Перечислимый тип данных
Этот тип данных получил название перечисляемого, потому что он задается в виде перечисления некоторых значений. Эти значения образуют упорядоченное множество и являются константами. Для объявления переменной список возможных значений, разделенных запятой, указывается в круглых скобках.
Например,
Var month(january, february, march, april, may, june, july, august, september, october, november, december);
Порядок элементов перечисляемого типа определяется порядком их следования в описании. Левый имеет минимальное значение.
В любом порядковом типе для каждого значения, кроме первого, существует предшествующее значение, и для каждого значения, кроме последнего, существует последующее значение. В языке Паскаль имеются стандартные функции, которые позволяют определять предшествующее и последующее значения для заданного значения:
функция Pred(x) определяет значение, предшествующее х;
функция Ord(x) возвращает порядковый номер величины х;
функция Succ(x) определяет значение, следующее за х.
К переменным перечисляемого типа можно применять операции сравнения. Так, например, february<november.
Задача 3.Вычислить значения :
а) Ord(august);
б) Ord(succ(september));
в) Pred(Pred(december)).
Задача 4. Имеются описания :
var x,y : (winter, spring, summer, autumn);
t : (cold, warm);
а) Допустимы ли присваивания :x:=spring; t:=warm: t:=hot; y:=x; y:=t;
б) Вычислить значения выражений :
spring<summer;
autumn<winter;
Succ(spring);
Pred(autumn);
Ord(spring);
winter<=summer;
spring<>warm;
Pred(spring);
Pred(cold);
Pred(autumn) + Ord(cold);
в) Допустим ли оператор цикла с заголовком : For x:=spring To autumn Do
Задача 5. Даны описания следующих переменных :
VAR m, m1: (january, february, march, april, may, june, july, august,
september, october, november, december);
k: 1..maxint; n: 1..12;
Присвоить переменной m1:
а) название месяца, следующего за месяцем m;
б) название k-го месяца после месяца n.
Задача 6. Имеются описания :
VAR d: ‘0’..’9’; k: 0..9; n: integer;
а) Какие значения может принимать переменная d ? Каков ее базовый тип? Допустимы ли присваивания : d:=’7’; d:=’a’; d:=7 ?
б) Какие значения может принимать переменная k ? Каков ее базовый тип ? Допустимы ли присваивания : k:=5; k:=10; k:=-0: k:=’5’ ?
в) Есть ли ошибки в операторе :
if k+n>7*k then k:=abs(n) mod 10
else d:=chr(k+Ord(‘0’) ?
