- •Введение
- •Лабораторная работа № 1 Программирование алгоритмов линейной структуры
- •Задания для подготовки к работе
- •Контрольные вопросы
- •Лабораторная работа № 2 Программирование алгоритмов разветвляющейся структуры
- •Задания для подготовки к работе
- •Варианты заданий
- •Контрольные вопросы
- •Контрольные вопросы
- •Контрольные вопросы
- •Лабораторная работа № 5 Использование подпрограмм при работе с двумерными массивами
- •Задания для подготовки к работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 6 Использование функций при работе со строками
- •Задания для подготовки к работе
- •Варианты заданий
- •Контрольные вопросы
- •Контрольные вопросы
- •Лабораторная работа № 8 Обработка файлов
- •Задания для подготовки к работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 9 Создание гибких подпрограмм для обработки матриц произвольного порядка с фиксированным базовым типом
- •Задания для подготовки к работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 10 Динамические переменные
- •Задания для подготовки к работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа №11 Основные понятия языка Си
- •Задания для подготовки к работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа №12 Побитовые операции в Си и в Турбо Паскале
- •Задание для подготовки к работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 13 Преобразование типов
- •Задания для подготовки к работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа №14 Одномерные массивы
- •3Адaнuя для подготовки к работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа №15 Массивы и указатели
- •Задания для подготовки к работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа №16 Свободные массивы строк
- •Задания для подготовки к работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 17 Файлы в языке Си
- •Задания для подготовки к работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 18 Использование подпрограмм с параметрами функционального типа и нетипизованными параметрами
- •Задания для подготовки к работе
- •Контрольные вопросы
- •Приложение
- •Задание варианта № 31
Приложение
1. Пример оформления лабораторной работы из числа работ №1 – №4
ЛАБОРАТОРНАЯ РАБОТА № 2
Программирование алгоритмов разветвляющейся структуры
Цель работы: получение навыков разработки алгоритмов разветвляющейся структуры, кодирования полученных алгоритмов, отладки и тестирования программ с разветвлениями.
Задания для подготовки к работе
Изучить логический тип, правила вычисления значений логических выражений в языке Турбо Паскаль.
Изучить возможности языка Паскаль для организации бинарного и множественного ветвлений.
Разработать алгоритм и составить программу для решения задачи соответствующего варианта.
Подобрать наборы тестовых данных.
Задание варианта № 31
Определить, принадлежит ли точка P(x,y) четырехугольнику ABCD (область W).
Решение задачи
Запишем уравнения прямых, отрезки которых являются сторонами четырехугольника ABCD.
AB: y= x+ 1,
BC: y= x+1,
CD: y = x 1,
DA: y = x 1.
Четырехугольник ABCD описывается следующей системой неравенств:
Описание алгоритма
Тестовые данные
№ |
Исходные данные |
Результаты | |
x |
y |
Сообщение на экране | |
1 |
1 |
0 |
Точка (1, 0) принадлежит области W |
2 |
1 |
1 |
Точка (1, 1) не принадлежит области W |
Текст программы
Program Point_in_area;
var x, y: real;
begin
write (‘Введите координаты точки ’);
read (x, y);
writeln (‘Точка (‘,x: 3: 2, ’,’, y: 3 : 2,’);
if abs(y) >1 abs(x) then
writeln (‘ не’);
writeln(‘ принадлежит области W’)
end.
Анализ допущенных ошибок
Перед if была пропушена ";" . Это синтаксическая ошибка.
2. Пример оформления лабораторной работы из числа работ №5 – №18
ЛАБОРАТОРНАЯ РАБОТА № 5
Использование подпрограмм при работе с двумерными массивами
Цель работы: получение навыков работы с подпрограммами и двумерными массивами.
Задания для подготовки к работе
Изучить способы описания и использования многомерных массивов; назначение подпрограмм, их описание и обращение к подпрограммам.
Разбить задачу соответствующего варианта на подзадачи таким образом, чтобы решение каждой подзадачи описывалось подпрограммой, а основная программа состояла бы из последовательности вызовов подпрограмм. Размеры матриц задать константами.
Для каждой подзадачи описать спецификацию и блок-схему алгоритма. Спецификация содержит заголовок подпрограммы, назначение, входные и выходные параметры.
Подобрать наборы тестовых данных.
Задание варианта № 31
Дана целочисленная матрица. Определить количество строк данной матрицы, упорядоченных по неубыванию элементов.
Блок-схема алгоритма
Описание структур данных
Число строк m и число столбцов n матрицы – константы.
Для хранения матрицы используем массив строк. Строка – одномерный целочисленный массив длины n.
const m=5;
n=4;
type t_diap=1..n;
t_row=array[t_diap] of integer;
t_matr=array[1..m] of t_row;
Описание подпрограмм
Спецификация.процедуры Read_matr.
Заголовок: procedure Read_matr (var a:t_matr).
Назначение. Ввод целочисленной матрицы а размером mn (m=5, n=4).
Входные параметры: нет
Выходные параметры: a.
Блок-схема процедуры
Спецификация функции sort_arr.
Заголовок: function sort_arr (const a:t_row): boolean; .
Назначение. Возвращает true, если массив a размера n=4 упорядочен по неубыванию, и false в противном случае.
Входные параметры: a.
Выходные параметры: нет.
Блок-схема функции
Блок-схема алгоритма решения задачи c предопределенными блоками
Тестовые данные | ||
№ |
Исходные данные |
Результат |
|
a матрица размера 54 |
Число упорядоченных строк k |
1 |
2 | |
2 |
0 |
Текст программы
Program Rows_number;
Const m=5;
n=4;
type t_diap=1..n;
t_row=array[t_diap] of integer;
t_matr=array[1..m] of t_row;
procedure read_matr(var a: t_matr);
var i, j: byte;
begin
for i:=1 to m do
for j:=1 to n do
read(a[i, j]);
end;
function sort_arr(const a:t_matr):boolean;
var i:t_diap;
begin
i:=2];
while (i<=n)and(a[i1]<=a[i]) do
i:=i+1;
sort_arr:=i>n
end;
var a:t_matr;
i, k: byte;
min: integer;
begin
write(‘Введите матрицу ’,m,’’,n);
read_matr(a);
k:=0;
for i:=1 to m do
if sort_arr (a[i]) then k:=k+1;
if k>0 then writeln(‘Число упорядоченных строк=’,k)
else writeln(‘Упорядоченных строк нет’)
end.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ………………………………………………………………….3
ЛАБОРАТОРНАЯ РАБОТА № 1 Программирование алгоритмов линейной структуры……………………3
ЛАБОРАТОРНАЯ РАБОТА № 2 Программирование алгоритмов разветвляющейся структуры…….…….7
ЛАБОРАТОРНАЯ РАБОТА № 3 Программирование алгоритмов циклической структуры……………....10
ЛАБОРАТОРНАЯ РАБОТА №4 Обработка одномерных массивов…………………………………….....13
ЛАБОРАТОРНАЯ РАБОТА №5 Использование подпрограмм при работе с двумерными массивами………………………………………………………………….16
ЛАБОРАТОРНАЯ РАБОТА №6 Использование функций при работе со строками……………..……...…19
ЛАБОРАТОРНАЯ РАБОТА №7 Использование комбинированного и множественного типа……….…..22
ЛАБОРАТОРНАЯ РАБОТА №8…. Обработка файлов…………………………………………………….…...27
ЛАБОРАТОРНАЯ РАБОТА №9 Создание гибких подпрограмм для обработки матриц произвольного порядка с фиксированным базовым типом……….……32
ЛАБОРАТОРНАЯ РАБОТА №10 Динамические переменные………………………………………….……37
ЛАБОРАТОРНАЯ РАБОТА №11 Основные понятия языка Си……………………………………….……..40
ЛАБОРАТОРНАЯ РАБОТА №12 Побитовые операции в Си и в Турбо Паскале……………………..…….44
ЛАБОРАТОРНАЯ РАБОТА №13 Преобразование типов……………………………………………..………46
ЛАБОРАТОРНАЯ РАБОТА №14 Одномерные массивы……………………………………..………….……49
ЛАБОРАТОРНАЯ РАБОТА №15. Массивы и указатели……………………………………………..………..52
ЛАБОРАТОРНАЯ РАБОТА №16 Свободные массивы строк…………………………………………..…….56
ЛАБОРАТОРНАЯ РАБОТА №17 Файлы в языке Си………………………………………………………....59
ЛАБОРАТОРНАЯ РАБОТА № 18 Использование подпрограмм с параметрами функционального типа инетипизованными параметрами………………………………………….64
Приложение………………………………………………………….…….66
*
* Серия – последовательность одинаковых подряд идущих символов.