- •Основы алгоритмизации и программирования
- •Введение
- •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. Организация форматного вывода данных на языке Паскаль
- •Вопросы для самопроверки
- •Лабораторная работа №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. Двумерные массивы
- •Полная форма описания матрицы:
- •Формирование элементов случайным образом:
- •Формирование элементов матрицы при вводе с клавиатуры:
- •Фрагменты программ по обработке 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_1 составление программ с использованием подпрограмм - процедур
- •Методические указания
- •Варианты заданий
- •8.3. Подпрограммы-функции (function)
- •Вопросы для самопроверки
- •Лабораторная работа №8_2 составление программ с использованием подпрограмм - функций
- •Варианты заданий
- •8.4. Рекурсия
- •8.4.1. Вычисление факториала
- •8.4.2. Формы рекурсивных процедур
- •8.4.3. Числа Фибоначчи
- •Вопросы для самопроверки
- •9. Модули
- •Структура модуля
- •Interface
- •Implementation
- •Вопросы для самопроверки
- •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. Запись файла
- •Вопросы для самопроверки
- •13.1. Объявление множества
- •13.2. Операции над множествами
- •13.3. Сравнение множеств
- •Include (s, I);
- •13.4. Старшинство множественных операций
- •Вопросы для самопроверки
- •Лабораторная работа №13 множества
- •Варианты заданий
- •Горячие клавиши
- •Библиографический список
- •Оглавление Введение 3
- •1. Программирование на языке Паскаль 5
- •1.1. Структура программы 5
- •2. Организация форматного вывода данных на языке Паскаль 17
- •Лабораторная работа №7_1.
- •Лабораторная работа №7_2.
- •Лабораторная работа №8_2.
Interface
Const n = 5; m = 5;
Type matr = array [1..n,1..m] of real;
mass1 = array [1..n] of real;
mass2 = array [1..m] of real;
var i1, j1, t, b : integer;
new : real;
Procedure wwod (var d : matr);
Procedure wuwod (var d : matr);
Procedure SortElem (i : integer; var d : matr);
Function Sum (i : integer; d:matr) : real;
Procedure SortRow (var d:matr; q : mass1);
Implementation
Procedure wwod;
begin
randomize;
for i1 := 1 to n do
for j1 := 1 to m do
d[i1,j1] := random;
end;
Procedure wuwod;
begin
for i1 := 1 to n do begin
for j1 := 1 to m do begin
write(d[i1,j1]:6:2); end;
writeln; end;
end;
procedure SortElem;
begin
b := m;
while b <> 0 do
begin
t := 0;
for j1 := 1 to B-1 do
begin
if d[i,j1] > d[i,j1+1] then
begin
new := d[i,j1];
d[i,j1] := d[i,j1+1];
d[i,j1+1] := new;
t := j1;
end;
end;
b := t;
end;
end;
Function Sum;
var s : real;
begin
s := 0;
for j1 := 1 to m do
if d[i,j1] > 0 then s := s + d[i,j1];
Sum := s;
end;
Procedure SortRow;
var new1 : mass2;
begin
b := n;
while b <> 0 do
begin
t := 0;
for i1 := 1 to b-1 do
begin
if q[i1] < q[i1+1] then
begin
for j1 := 1 to m do
begin
new1[j1] := d[i1,j1];
d[i1,j1] := d[i1+1,j1];
d[i1+1,j1] := new1[j1];
end;
new := q[i1];
q[i1] := q[i1+1];
q[i1+1] := new;
t := i1;
end;
end;
b := t;
end;
end;
end.
Листинг основной программы
Program First;
Uses crt, second2;
var i2, j : integer;
a : matr;
s1 : mass1;
begin
clrscr;
wwod(a);
writeln('***********');
for i2 := 1 to n do
begin
SortElem(i2,a);
s1[i2] := Sum(i2,a);
writeln('[',i2,']=',s1[i2]:6:2);
end;
wuwod(a);
writeln('***********');
SortRow(a,s1);
wuwod(a);
readln;
end.
Вопросы для самопроверки
Дайте определение модуля?
Какова структура модуля?
В чём заключается назначение заголовка модуля?
В чём заключается специфика интерфейсной части модуля?
В чём назначение реализационной части модуля?
Каково назначение инициализационной части модуля?
Как осуществляется компиляция, сохранение модуля на диске и подключение модуля во внешних программах?
Лабораторная работа №9
составление программ с использованием модулей
Цель работы. Получение навыков в написании программ с использованием модулей.
Задание. Организация программ с использованием модулей.
Постановка задачи. По своему варианту написать программу, в которой подсоединяется модуль, содержащий подпрограммы - процедуры и - функции. Изучить структуру модуля, его разделы. Определиться с подпрограммами в модуле, которые могут использоваться внешними программами.
Варианты заданий
Оформить в основной программе вызов процедур и функций, содержащихся в модуле, в соответствии с вариантами заданий лабораторной работы №10.
10. Строковые типы данных (String)
Тип данных String (строка) специально предназначен для обработки строк (цепочек символов, то есть элементов типа char). Он не относится к простым типам данных и занимает промежуточное место между простыми и структурированными типами данных.
Тип String во многом похож на одномерный массив:
array[0..n] of char, где n <= 255.
Используя краткий и полный формат, переменную типа String можно описать следующим образом:
Var
S : string;
S1 : string[10];
S2 : string[255];
Если максимальный размер строки не указан, то он автоматически принимается равным 255 (максимально возможная длина строки).
Полный формат описания строк используется, если они используются в качестве параметров подпрограмм.
Строки могут выводиться на экран монитора посредством стандартных процедур Write и Writeln и вводиться с помощью стандартной процедуры Read или Readln.
10.1 Операции со строками
Существует два пути для обработки переменных типа String.
Первый путь предполагает обработку всей строки как единого целого, то есть единого объекта.
Например, присвоение строчной переменной за одну операцию значения целой строки символов:
Character_string1 := ‘Это – строка!’;
К строкам можно применять операцию конкатенации, которая обозначается знаком “+”. Конкатенация – это объединение строк.
Например,
Character_string1 := ‘Это’ + ‘ – ‘ + ‘строка!’;
Операцию слияния строк str1 и str2 выполняет и функция Concat(str1, str2).
Второй путь рассматривает строку как составной объект, состоящий из отдельных символов, то есть элементов типа Char, которые при обработке доступны каждый в отдельности по номеру их позиции. Иными словами, к любому символу в строке можно обратиться так же, как к элементу одномерного массива.
К отдельному символу строки можно применять те же операции, что и к переменной типа Char.
Например, взаимные операции присвоения значений:
Var s : string;
…..
s[1] := ‘A’;