Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_raboty.doc
Скачиваний:
65
Добавлен:
11.03.2015
Размер:
517.63 Кб
Скачать

Приложение

1. Пример оформления лабораторной работы из числа работ №1 – №4

ЛАБОРАТОРНАЯ РАБОТА № 2

Программирование алгоритмов разветвляющейся структуры

Цель работы: получение навыков разработки алгоритмов разветвляющейся структуры, кодирования полученных алгоритмов, отладки и тестирования программ с разветвлениями.

Задания для подготовки к работе

  1. Изучить логический тип, правила вычисления значений логических выражений в языке Турбо Паскаль.

  2. Изучить возможности языка Паскаль для организации бинарного и множественного ветвлений.

  3. Разработать алгоритм и составить программу для решения задачи соответствующего варианта.

  4. Подобрать наборы тестовых данных.

Задание варианта № 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

Использование подпрограмм при работе с двумерными массивами

Цель работы: получение навыков работы с подпрограммами и двумерными массивами.

Задания для подготовки к работе

  1. Изучить способы описания и использования многомерных массивов; назначение подпрограмм, их описание и обращение к подпрограммам.

  2. Разбить задачу соответствующего варианта на подзадачи таким образом, чтобы решение каждой подзадачи описывалось подпрограммой, а основная программа состояла бы из последовательности вызовов подпрограмм. Размеры матриц задать константами.

  3. Для каждой подзадачи описать спецификацию и блок-схему алгоритма. Спецификация содержит заголовок подпрограммы, назначение, входные и выходные параметры.

  4. Подобрать наборы тестовых данных.

Задание варианта № 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;

Описание подпрограмм

  1. Спецификация.процедуры Read_matr.

  1. Заголовок: procedure Read_matr (var a:t_matr).

  2. Назначение. Ввод целочисленной матрицы а размером mn (m=5, n=4).

  3. Входные параметры: нет

  4. Выходные параметры: a.

Блок-схема процедуры

  1. Спецификация функции sort_arr.

  1. Заголовок: function sort_arr (const a:t_row): boolean; .

  2. Назначение. Возвращает true, если массив a размера n=4 упорядочен по неубыванию, и false  в противном случае.

  3. Входные параметры: a.

  4. Выходные параметры: нет.

Блок-схема функции

Блок-схема алгоритма решения задачи c предопределенными блоками

Тестовые данные

Исходные данные

Результат

a  матрица размера 54

Число упорядоченных строк 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[i1]<=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

*

* Серия – последовательность одинаковых подряд идущих символов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]