Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
posobie.doc
Скачиваний:
27
Добавлен:
31.03.2015
Размер:
1.43 Mб
Скачать

6. Метод

Чтение числа и значений элементов массива согласно их размещению во входной форме.

7. Описание процедурысделаем сразу на Паскале.

8. Кодирование на паскале

Определение глобальных типов(интерфейс для параметров нестандартных типов)

По описанию входов и выходов подзадач выберем:

n:byte(стандартный тип),

s:real(стандартный тип),

элементы матрицы – real(стандартный тип).

Параметром нестандартного типа является только массив. При этом все три фактических параметра – массива должны принадлежать этому типу. Поэтому в качестве границы массива в описании типа необходимо взять значение максимальной из трех фактических границ.

Тогда глобальные объекты:

const

nmax=20;

type

massiv=array[1..nmax] of real;

Описание процедуры и вызовы. Реализуем варианты 1 и 2 из табл. 6.1

•• Описание

Вариант 1. Файловая переменная открытого файла передается как глобальная

procedure input(var n:byte; var mas:massiv);

var

i:byte;

begin

readln(dat,n);

for i:=1 to n do

readln(dat,mas[i]);

end;

Вариант 2. файловая переменная открытого файла передается как параметр

procedure input(var n:byte; var mas:massiv; var dat1:text);

var

i:byte;

begin

readln(dat1,n);

for i:=1 to n do

readln(dat1,mas[i]);

end;

•• Вызовы

Подзадача

n

mas

Вариант 1

Вариант 2

A0.3.1

na

a

input(na,a);

input(na,a,dat);

A0.3.2

nb

b

input(nb,b);

input(nb,b,dat);

A0.3.3

nc

c

input(nc,c);

input(nc,c,dat);

Задача A0.2

1. Задача A0.2. Вывести в файл, представленный вторым параметром программы, число элементов и значения элементов одномерного массива согласно выходной форме.

Уточнение. Число элементов выводится по образцам 2,4,6. Тексты этих образцов различаются наличием в них разных символов – имен массивов. Формально это три разных текстовых константы.

Чтобы одна процедура могла реализовать эти три образца, надо организовать передачу в процедуру имени массива. Для процедуры это будет входной параметр, но связанный не с решением задачи, а с организацией вывода, т.е. служебный параметр.

2. Входные данные

цел n– число элементов массива; во внутреннем представлении;

вещ mas[n] – исходный массив; во внутреннем представлении;

симв name_mas– имя выводимого массива (служебный параметр).

3. Выходные данные

Отсутствуют (во внешнем представлении согласно выходной форме).

Оформление заголовка и вызова процедуры

Анализ специфики вывода и технических аспектов

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

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

Можно в программе создать файл, выведя в него заголовок, и закрыть его. Тогда процедура может открывать его для добавления в конец – операцией append. Для вывода результатов (уже вне процедуры) снова придется открывать файл операциейappend. Все это усложнит программу. Для программы с внутренними процедурами представляется разумным отдать предпочтение решению с лучшей структурой и более наглядному – как при вводе.

Откроем файл вне процедуры. Тогда, как и в случае ввода, для процедуры файловая переменная открытого файла будет представлять служебное входное данноеи может передаваться либо как глобальная, либо как параметр. Это варианты 1 и 2 таблицы 6.1 (см. § 6 .3, с. 84).

При передаче через список параметров файловая переменная здесь также должна описываться как var.

Назначение файла предшествует открытию, т.е. делается тоже вне процедуры.

Реализуем оба варианта.

Вид– общего вида

Имя–output

Заголовок– процoutput(n,mas);

Вызов – осуществляется трижды, для каждого из массивов.

Соответствие формальных и фактических параметров и вызовы:

Подзадача

n

mas

A0.3.1

na

a

A0.3.2

nb

b

A0.3.3

nc

c

Вызовы запишем в головной модуль после кодирования процедур.

4. Аномалиине рассматриваем

5. Функциональные тестыте же, что для задачи в целом

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