
- •Программирование на языке паскаль Учебное пособие
- •1. Общая характеристика языков программирования
- •1.1. Языки программирования
- •1.2. Трансляторы
- •1.3. История создания языков
- •1.4. Базовые структуры языков программирования
- •Контрольные вопросы
- •2. Описание языка паскаль
- •2.1. Основные объекты языка
- •2.2. Структура Паскаль-программы
- •2.3. Типизация данных
- •2.4. Объявление данных
- •Контрольные вопросы
- •3. Простые операторы. Ввод/вывод данных
- •3.1. Оператор присваивания и выражения
- •3.2. Операторы вызова процедур. Ввод/вывод данных
- •3.2.1. Процедуры ввода read и readln
- •Общая форма записи оператора
- •3.2.2. Процедуры вывода write и writeln
- •Контрольные вопросы
- •Каково назначение процедуры writeln без параметров? Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •4. Структурные операторы. Организация ветвлений и циклов
- •4.1. Составной и пустой операторы
- •4.2. Организация ветвлений. Операторы выбора
- •4.2.1. Оператор ветвления if
- •4.2.2. Оператор варианта case
- •Общая форма записи
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •4.3. Организация циклов. Операторы повторения
- •4.3.1. Оператор while
- •4.3.2. Оператор repeat
- •4.3.3. Оператор for
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •5. Организация подпрограмм. Процедуры и функции
- •5.1. Процедуры и их типизация
- •5.1.1. Встроенные процедуры
- •5.1.2. Процедуры пользователя
- •5.1.3. Процедуры без параметров
- •5.1.4. Фактические и формальные параметры
- •5.1.5. Локальные и глобальные переменные
- •5.1.6. Процедуры с параметрами-значениями
- •5.1.7. Процедуры с параметрами-переменными
- •5.1.8. Комбинированные процедуры
- •5.2. Функции пользователя. Рекурсивные функции
- •5.2.1. Определение функции
- •О бщая форма записи заголовка функции
- •5.2.2. Функции пользователя
- •5.2.3. Рекурсивные функции
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •6. Массивы. Данные типа array
- •Одномерные массивы
- •Общая форма записи
- •Общая форма записи
- •6.2. Многомерные массивы
- •6.3. Способы работы с массивами
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •Обработка литерных величин. Данные типа char и string
- •7.1. Тип данных char
- •Работа программы
- •7.2. Массивы литер
- •7.3. Тип данных string
- •7.4. Строковые функции и процедуры
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •8. Множества. Данные типа set
- •О бщий вид регулярного типа
- •8.1. Определение типа set
- •8.2. Операции над множествами
- •8.2.1. Принадлежность множеству
- •8.2.2. Сравнение множеств
- •8.2.3. Действия над множествами
- •8.3. Вывод множеств
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •9. Комбинированный тип. Данные типа record
- •9.1. Оператор типа record
- •9.2. Оператор with
- •9.3. Записи с вариантами
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •10. Файловый тип
- •10.1. Определение и описание типизированного файла
- •Общая форма записи
- •10.2. Типы файлов. Процедура работы с файлами
- •10.3. Основные приемы работы с файлами
- •10.4. Текстовые файлы
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Типизированные файлы
- •Текстовые файлы
- •Программирование графики
- •Основные понятия компьютерной графики
- •Формирование изображения на экране
- •Инициализация графического режима
- •Простейшие графические операторы (процедуры)
- •Основные приемы работы с графикой
- •Работа с цветом
- •Заполнение (закрашивание) произвольной замкнутой фигуры
- •Построение простейших геометрических фигур
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Библиографический список
Контрольные вопросы
Величины каких типов данных можно объединять во множество?
Чем отличается объединение элементов множества от массива?
Можно ли во множестве узнать число элементов множества по его объявлению?
Какие операции возможны над множествами?
Как определить принадлежность элемента множеству?
Как можно добавлять новые элементы к множеству?
Как удалить из множества A элементы, содержащиеся в другом множестве B?
Какая операция и какой оператор используются для вывода элементов множества?
Задания для самостоятельной работы
Пример 1. Дано натуральное число n. Найти все цифры, не входящие в десятичную запись данного числа в порядке их возрастания.
Решение. Решение задачи состоит из двух этапов. Сначала надо, выделяя с помощью операций Div и Mod, сформировать множество из всех цифр числа n, а потом, перебирая все цифры от 0 до 9, проверить их вхождение в найденное ранее множество.
Type mn = set of 0..9;
Var s: mn; n: longint; I, k: integer;
Begin
Wrietln (‘введите число n’); readln (n);
S:= []; {Образование пустого множества}
{Формирование множества цифр числа n}
While n <> 0 do
Begin
k: = n Mod 10;
n:= n Div 10;
s:= s+ [k]
end;
{Вывод цифр числа n в порядке возрастания}
For i:= 0 to 9 do if i In s then write (i:2);
Readln
End.
Пример 2. «Решето Эратосфена». Найти все простые числа от 2 до n, где число n вводится с клавиатуры.
Решение. Метод «решета Эратосфена» заключается в следующем: формируется множество М, состоящее из всех чисел промежутка [1..n]. Затем из него удаляются все элементы, кратные 2б 3б 4 и так далее до числа n Div 2, кроме самих этих чисел. После такого просеивания в множестве M останутся только простые числа.
Var M: set of byte;
i, k, n: integer;
Begin
Writeln (‘введите число n (не более 255 – byte) ‘); readln (n);
M := [2..n]; {Начально значение множества М из всех чисел промежутка}
For k := 2 to n Div 2 do {Перебор все делителей}
For i := 2 to n do {Все числа промежутка}
If (i Mod k = 0) and (i <> k) then M := M – [k];
{ Если число i кратно k и не равно ему, то его удаляем из множества М }
For I := 1 to n do if I In M then write (i:3); {Распечатка простых чисел}
Readln
End.
Варианты заданий
Задание 1. Написать программу, вычисляющую значение выражения:
[2..13] * [3,13..60] + [4..10] - [5..15] * [4..6,12..14].
[2..10] - [4,6] - [2..12] * [8..15].
(['0'..'4'] + ['7'..'9']) * (['а','3'] + ['Е','5'..'8'])
(['a'..'z'] + ['A'..'Z']) * (['c'..'f'] + ['Q'..'T']).
Задание 2. Дана непустая последовательность слов из строчных латинских букв. Слова разделены запятой, за последним словом - точка. Напечатать в алфавитном порядке:
Все гласные буквы, которые входят в каждое слово.
Все гласные, которые входят только в одно слово.
Все согласные, которые входят только в одно нечетное слово;
Все согласные, которые не входят ни в одно слово.
Задание 3. Напечатать в алфавитном порядке все буквы текста, входящие в него:
ровно один раз;
не менее двух раз;
не более двух раз;
более двух раз.