- •Введение
- •1. Программирование на языке Паскаль
- •1.1. Структура программы
- •1.2. Типы данных
- •1.2.1. Целый тип данных
- •1.2.2. Логические типы данных – Boolean
- •1.2.3. Данные символьного типа
- •1.3. Операторы языка программирования Турбо Паскаль
- •1.3.1. Операции в Турбо Паскаль
- •1.3.2. Правила вычисления выражений
- •1.3.3. Встроенные функции в Турбо Паскаль
- •1.3.4. Описание констант и переменных
- •1.3.5. Операторы в Турбо Паскаль
- •Вопросы для самопроверки
- •Лабораторная работа №1 Организация программ линейных структур
- •2. Организация форматного вывода данных на языке Паскаль
- •Варианты задания
- •3. Организация программ разветвляющихся структур
- •3.1. Полная форма условного оператора
- •3.2. Краткая форма условного оператора
- •Вопросы для самопроверки
- •Лабораторная работа №3 Организация программ разветвляющихся структур
- •Варианты заданий
- •4. Организация циклических процессов
- •Лабораторная работа №4 Составление циклических программ
- •Варианты заданий
- •Методические указания
- •Варианты заданий
- •5. Программирование структур с вложенными циклами
- •Вопросы для самопроверки
- •Лабораторная работа №5 программирование структур с вложенными циклами. Вычисление суммы ряда
- •Методические указания
- •Варианты заданий
- •6. Перечислимые и ограниченные типы данных
- •6.1 Перечислимый тип данных
- •6.2. Ограниченный тип данных
- •6.3. Оператор выбора (варианта)
- •Вопросы для самопроверки
- •Лабораторная работа №6 Перечислимые и ограниченные типы данных
- •Варианты заданий.
- •7. Регулярные типы данных
- •7.1. Одномерные массивы
- •7.1.1. Краткая форма объявления одномерного массива
- •7.1.2. Полная форма объявления одномерного массива
- •7.1.3. Доступ к элементам массива
- •Вопросы для самопроверки
- •Лабораторная работа №7_1 регулярные типы данных. Массивы
- •Варианты заданий
- •7.2. Двумерные массивы
- •Вопросы для самопроверки
- •Лабораторная работа №7_2 регулярные типы данных. МАтрицы
- •Варианты заданий
- •7.3. Сортировка элементов массива
- •7.3.1. Сортировка методом «пузырька»
- •7.3.2. Сортировка вставками
- •7.3.3. Сортировка посредством выбора
- •7.3.4. Быстрая сортировка
- •8. Составление программ с использованием подпрограмм
- •8.1. Область видимости идентификатора переменной
- •8.2. Подпрограммы - процедуры (procedure)
- •8.2.1. Формальные и фактические параметры
- •Вопросы для самопроверки
- •8.3. Подпрограммы-функции (function)
- •Вопросы для самопроверки
- •Лабораторная работа №8_2 составление программ с использованием подпрограмм - функций
- •Варианты заданий
- •8.4. Рекурсия
- •8.4.1. Вычисление факториала
- •8.4.2. Формы рекурсивных процедур
- •8.4.3. Числа Фибоначчи
- •Вопросы для самопроверки
- •9. Модули
- •Вопросы для самопроверки
- •Лабораторная работа №9 составление программ с использованием модулей
- •Варианты заданий
- •10. Строковые типы данных (String)
- •10.1 Операции со строками
- •10.2. Стандартные процедуры и функции для строк
- •10.3. Хранение строк
- •Вопросы для самопроверки
- •Лабораторная работа №10 обработка символьной информации
- •Варианты заданий
- •11. Комбинированные типы. Записи (Record)
- •11.1 Записи с фиксированными частями
- •11.2. Оператор with…do
- •11.3. Вариантные записи
- •Вопросы для самопроверки
- •Лабораторная работа №11 Комбинированные типы. Записи
- •Варианты заданий
- •12. Файлы
- •12.1. Классификация файлов
- •12.1.1. Чтение файла
- •12.1.2. Запись файла
- •Вопросы для самопроверки
- •Лабораторная работа №12 организация работы с внешней памятью
- •Варианты заданий
- •13. Множества
- •13.1. Объявление множества
- •13.2. Операции над множествами
- •13.3. Сравнение множеств
- •13.4. Старшинство множественных операций
- •Вопросы для самопроверки
- •Лабораторная работа №13 множества
- •Варианты заданий
- •Библиографический список
Вопросы для самопроверки
Дайте определение множеству?
Что означает «пустое множество»?
Как определить мощность множества?
Каков формат объявления переменной типа множество?
Какие существуют операции над множествами?
Какие операции отношения применимы для сравнения множеств?
Каков формат процедуры include?
Каков формат процедуры exclude?
Каков порядок выполнения множественных операций?
Лабораторная работа №13 множества
Цель работы. Получить навыки в задании переменных множественного типа и выполнении простейших операций над ними.
Задание. Работа с множественными типами данных.
Постановка задачи. Ознакомиться с конечным и упорядоченным множеством символов.
Варианты заданий
Подсчитать количество цифр в исходной символьной строке и написать все, кроме пробелов, знаков операций и знаков препинания.
Подсчитать количество букв в исходной символьной строке и напечатать все, кроме цифр, включая пробелы, знаки операций и препинания.
Из множества целых чисел от1 до 30 выделить множество простых чисел.
Имеются два множества символьного типа: X=[A,B,D,R,H]; Y=[R,A,H,D]. Сформировать новое множество X(Y*Y)+(Y-Y) и вывести его на печать.
Сформировать множество LAT, в которое входят только латинские буквы, встретившиеся во входной строке.
Построить и напечатать множество, элементами которого являются встречающиеся в последовательности цифры от 0 до 9 и знаки арифметических операций.
Задать два произвольных символьных множества и произвести с ними все возможные операции.
Дан текст, содержащий N символов. Распечатать, какие из указанных символов (L, T, Z) входят в данный текст.
Подсчитать количество цифр в исходной символьной строке и напечатать все, кроме пробелов и знаков операций.
Напечатать множество, элементами которого являются встречающиеся в последовательности буквы от F до М и знаки арифметических операций.
Пусть A есть множество, определенное с базовым типом х. Предположим, что low и high являются соответственно первым и последним значением базового типа х. Определить количество элементов во множестве А.
Даны два множества A и В с одним и тем же базовым типом. Определить суммарное количество элементов в A и В.
Даны два множества A и В с одним и тем же базовым типом. Определить новое множество, равное пересечению элементов A и В.
Даны два множества A и В с одним и тем же базовым типом. Определить разность элементов A и В.
Даны два множества A и B с одним и тем же базовым типом. Напишите программу, проверяющую принадлежность A к В.
Даны два множества A и B с одним и тем же базовым типом. Напишите программу, проверяющую идентичность элементов A и В.
Содержимое всего множества нельзя отпечатать непосредственно предложением writeln. Для заданного множества A и его базового типа x (первый и последний элементы которого есть low и high) напишите процедуру, печатающую элементы множества A.
Даны два множества A и В. Постройте из них следующее множество: A*В- A.
Даны два множества A и В. Постройте из них следующее множество: A - (A - В).
Даны два множества A и В. Постройте из них следующее множество: (A+В) - (A - В) - (В - A).
Даны два множества A и В. Постройте из них следующее множество: (A - В)+(B- A)+A*В.
Дан текст из цифр и строчных латинских букв, за которыми следует точка. Определить, каких букв - гласных (а, е, i, о, и) или согласных - больше в этом тексте.
Написать функцию, подсчитывающую общее количество цифр и знаков «+», «-», «*», входящих в строку s.
Дано 100 целых чисел от 1 до 50. Определить, сколько среди них чисел Фибоначчи. Числа Фибоначчи можно определить следующим образом: Первое и второе равны 1; каждое последующее (начиная с третьего) есть сумма двух предшествующих. Вот так выглядит начало такой последовательности: 1,1,2,3,5,8,...
Написать функцию, определяющую количество дней в месяце m (не високосного года). В современном (григорианском) календаре каждый год, номер которого делится на 4, является високосным, за исключением тех, которые делятся на 100 и не делятся на 400. Например, 1900 г. - не високосный, 2000 г. - високосный.
Даны два множества A и В. Постройте из них следующее множество: A*(A- B).
Даны два множества A и В. Постройте из них следующее множество: A + (A + В).
Даны два множества A и В. Постройте из них следующее множество: (A+В) * (A - В) + (В - A).
Даны два множества A и В. Постройте из них следующее множество: (A - В)*(B- A)-A*В.
Дан текст из цифр и строчных латинских букв, за которыми следует точка. Определить, каких букв – заглавных (A, E, F, H, L) или строчных - больше в этом тексте.
Приложение 1
Тестовые вопросы для проверки теоретического материала по разделу «основы алгоритмизации и программирования»
Шестиугольник на блок-схеме обозначает процесс
вычислений;
останова программы;
принятия решения;
модификации;
передачи данных;
пуска программы
подпрограмму.
Описательная часть программы Турбо Паскаль включает раздел
констант;
переменных;
функций;
типов;
подключения модуля;
процедур;
меток;
операторов;
заголовок программы;
Заголовок основной программы в среде Турбо Паскаль обозначают служебным словом
var
label
type
procedure
end.
const
end;
function
begin
begin…end
uses
program <имя программы>
Служебным словом file обозначают тип
целый;
типизированный файл;
одномерный массив;
вещественный;
символьный;
текст;
записи;
строковый;
перечисляемый;
логический;
двумерный массив;
тип-диапазон;
нетипизированный файл;
множество;
Тип данных shortint в среде Турбо Паскаль занимает памяти (в байтах)
1
2
4
6
8
Оператор объявления новой константы
const <имя константы> : <значение>;
var <имя переменной> = <тип>;
const <имя константы> : <тип>;
type <имя типа> = <тип>;
var <имя переменной> : <значение>;
type <имя типа> : <тип>;
const <имя константы> = <значение>;
var <имя переменной> = <значение>;
type <имя типа> : <значение>;
Простая форма условного оператора
if < условие > then <оператор>;
if < условие > then begin < оператор >; end else < оператор >;
if < условие > then begin < оператор >; end;
if < условие > then < оператор > else < оператор >;
if < условие > then begin < оператор >; end else begin < оператор >; end;
if < условие > then < оператор > else begin < оператор >; end;
К данным типа диапазон применимы функции и операторы
Succ
writeln
Pred
Readln
:=
Ord
Краткая форма объявления типа данных «строка» имеет вид
var <имя пер.> : string;
var <имя пер.> : text;
var <имя пер.> : array <нач_индекс..кон_индекс> of <тип элементов>;
var <имя пер.> : file of <тип>;
var <имя пер.> : record <имя поля> : <тип>; end;
var <имя пер.> : array <нач_индекс1..кон_индекс1, нач_индекс2..кон_индекс2> of <тип элементов>;
var <имя пер.> : file;
Объявление одномерного массива размерностью 10 элементов вещественного типа
Var a : array[1..10] of real;
Var a : array[1..10, 1..2] of integer;
Var a : array[1..10, 2..3] of string;
Var a : array[0..9, 4..6] of real;
Var a : array[3..12] of char;
Var a : array[0..9] of integer;
Var a : array[2..11] of integer;
Var a : array[0..9] of string;
Var a : array[3..12, 0..1] of char;
Оператор вывода значений элементов двумерного массива
For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random;
For i:=1 to 10 do For j:=1 to 10 do readln(a[I, j]);
For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random(11);
For i:=1 to 10 do For j:=1 to 10 do writeln(a[I, j]);
For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random-5;
For i:=1 to 10 do For j:=1 to 10 do read(a[I, j]);
For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random(11)-5;
For i:=1 to 10 do For j:=1 to 10 do write(a[I, j]);
Произведение отрицательных элементов массива
For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then inc(k);
For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:=k*1;
For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then dec(k);
For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:= k*a[i];
For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:=k+1;
For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:= k+a[i];
Стандартная функция Турбо Паскаля преобразует строковый аргумент в его численное представление
Length();
Upcase();
Copy();
Pos();
Insert();
Delete();
Val();
Оператор Турбо Паскаля после создания текстового файла позволяет ввести в файл дополнительную информацию
Assign();
Reset();
Read();
Close();
Eof();
Append();
Eol();
Rewrite();
Write();
Erase();
Результатом оператора include([3..9],2) является
True
[0,12,3,4,5,6]
[2,3..9]
[2,3,4,5,6,7,8,9]
[3,6]
False
[ ]
[6,7,8,9]
[0,1,2,3,6]
Приложение 2
Горячие клавиши
Горячая клавиша |
Эквивалентная команда меню ТП |
Функция |
[F1] |
- |
Активизация окна контекстно-зависимой помощи |
[Ctrl+F1] |
Help/Topic search |
Активизация синтаксической справки, то есть справки об операторе, на который указывает маркер |
[Shift+F1] |
Help/Index |
Вызов содержания справочной подсистемы |
[F2] |
File/Save |
Сохранение на диске файла из активного окна |
[Ctrl+F2] |
Run/Program reset |
Установка программного счётчика на начало программы и закрытие всех ранее открытой программой файлов |
[F3] |
File/Open |
Открытие нового окна и загрузка в него выбранного файла |
[Alt+F3] |
Window/Close |
Закрытие активного окна |
[Alt+F5] |
Debug/User screen |
Переключение на пользовательский экран |
[F6] |
Window/Next |
Переход к следующему окну |
[Shift+F6] |
Window/Previous |
Возврат к предыдущему окну |
[F7] |
Run/Trace Into |
Трассировка программы пооператорно с пооператорным выполнением всех подпрограмм |
[F8] |
Run/Step over |
Трассировка программы пооператорно с выполнением подпрограмм без пооператорной детализации |
[F9] |
Compile/Make |
Компиляция и редактирование связей программы |
[Alt+F9] |
Compile/Compile |
Компиляция программы из активного окна |
[Ctrl+F9] |
Run/Run |
Компиляция и выполнение программы под выполнением интегрированной инструментальной оболочки |
[F10] |
- |
Активизация строки меню |
[Alt+F10] |
- |
Вызов локального меню |
[Alt+Литера] |
- |
Открытие озаглавленного выбранной литерой подчинённого меню из строки меню |
[Alt+Backspace] |
Edit/Undo |
Отмена всех изменений в текущей строке |
[Alt+X] |
File/Exit |
Завершение сеанса работы с ТП с сохранением (после подтверждения) файлов, изменённых редактором текста |
[Alt+Цифра] |
- |
Переход к окну с указанным номером |
[Alt+0] |
Window/List |
Вызов окна, в котором содержится список всех открытых окон |
[Ctrl+Del] |
Edit/Clear |
Удаление выделенного блока |
[Ctrl+Ins] |
Edit/Copy |
Копирование блока в буфер промежуточного хранения |
[Shift+Del] |
Edit/Cut |
Перенос выделенного блока в буфер промежуточного хранения |
[Shift+Ins] |
Edit/Paste |
Копирование блока из буфера промежуточного хранения в окно редактирования |