Разработка подпрограммы vvdiap — КиберПедия 

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Разработка подпрограммы vvdiap

2022-11-14 24
Разработка подпрограммы vvdiap 0.00 из 5.00 0 оценок
Заказать работу

Спецификация

1. Назначение: ввод и контроль за правильностью ввода диапазона значений элементов двумерного массива (результат истина при правильно заданном диапазоне значений).

2. Имя: vvdiap

3. Вид: функция

4. Перечень параметров:

Таблица 19.1. Перечень параметров

Статус Назначение Имя Тип Вид
Выход Начало диапазона значений beg integer параметр-переменная
Выход Конец диапазона значений fin integer параметр-переменная
Возвращаемый результат Результат проверки правильности ввода диапазона vvdiap boolean -

5. Заголовок подпрограммы:

function vvdiap(var beg,fin:integer):boolean;

 

Метод решения

1) Получаем от пользователя границы диапазона

2) Если диапазон содержит значений больше, чем количество элементов в массиве, то результат функции истина, что означает – диапазон задан верно, в противном случае результат функции – ложь.

Текст функции

{ввод диапазона значений}

function vvdiap(var beg,fin:integer):boolean;

begin

writeln('Начало и конец диапазона значений?');

readln(beg,fin);

if fin-beg+1>=4*n*n

then vvdiap:=true

else vvdiap:=false

end;

Разработка подпрограммы zapoln

Спецификация

1. Назначение: заполнение двумерного массива, содержащего 2*n строк и 2*n столбцов, разными целыми случайными числами из диапазона от beg по fin. Контроль за правильностью ввода диапазона значений элементов двумерного массива

2. Имя: zapoln

3. Вид: процедура

4. Перечень параметров:

Таблица 19.2. Перечень параметров

Статус Назначение Имя Тип Вид
Вход Начало диапазона значений beg integer параметр-значение
Вход Конец диапазона значений fin integer параметр-значение
Выход Двумерный массив разных целых случайных чисел из заданного диапазона a t2n параметр-переменная-

Примечание: тип t2n и поименованные константы n, mдолжны быть определены до текста подпрограммы

type t2n=array[1..2*n,1..2*n] of integer;

5. Заголовок подпрограммы:  procedure zapoln(beg,fin:integer; var a: t2n);

Метод решения

Формируем все элементы массива. Для этого перебираем все индексы (по строкам и столбцам) - "i:=1(1)2n: "j:=1(1)2n:

Для каждого формируемого элемента (очередной формируемый элемент располагается в строке i и столбце j):

1) устанавливаем флаг (признак) существования значения в массиве в истину

2) пока существует очередное сгенерированное случайное значение в массиве (признак имеет значение истина) повторяем:

а) формируем новое целое случайное значение в интервале от beg по fin, используя формулу

x:=round(random*(fin-beg)+beg);

б) сбрасываем флаг существования значения в массиве (признаку присваиваем значение ложь);

в) проверяем существование сгенерированного значения х в массиве. Для этого перебираем все полностью заполненные строки с 1 по i-1, в каждой из этих строчек перебираем все столбцы.

" ii:=1(1)i-1:

" jj:=1(1)2n:

Если очередной проверяемый элемент совпадает со сгенерированным значением х, то устанавливаем флаг существования значения в массиве (признаку присваиваем значение истина)

если a[ii,jj]=x => pr:=true;

г) после этого отдельно проверяем i-ую строку массива, так как она заполнена не полностью, а только по j-1 столбец:

" jj:=1(1)j-1:

если a[i,jj]=x => pr:=true

3) завершение цикла пока говорит о том, что последнее сгенерированное случайное значение х не существует в заполненной части двумерного массива, заносим это значение в очередной формируемый элемент массива a[i,j]:=x

Информационная модель

  Таблица 19.3. Информационная модель

Назначение Имя Тип
Индекс строки формируемого элемента i integer
Индекс столбца формируемого элемента j integer
Индекс строки массива при проверке существования значения ii integer
Индекс столбца массива при проверке существования значения jj integer
Очередное случайное значение x integer
Флаг (признак) существования значения pr Boolean

Текст процедуры

procedure zapoln(beg,fin:integer; var a: t2n);

var i,ii,j,jj,x:integer;

pr:boolean;

begin

for i:=1 to 2*n

do for j:=1 to 2*n

do begin

     pr:=true;

     while pr

     do begin

          x:=round(random*(fin-beg)+beg);

          pr:=false;

          for ii:=1 to i-1

          do for jj:=1 to 2*n

             do if a[ii,jj]=x

                then pr:=true;

          for jj:=1 to j-1

          do if a[i,jj]=x

             then pr:=true

        end;

     a[i,j]:=x

   end;

end;

Разработка подпрограммы vivod

Спецификация

1. Назначение: вывод на экран двумерного массива, содержащего 2*n строк и 2*n столбцов целых чисел

2. Имя: vivod

3. Вид: процедура

4. Перечень параметров:

Таблица 19.4. Перечень параметров

Статус Назначение Имя Тип Вид
Вход Двумерный массив целых чисел a t2n параметр-переменная

Примечание: тип t2n и поименованная константа n должны быть определены до текста подпрограммы

type t2n=array[1..2*n,1..2*n] of integer;

5. Заголовок подпрограммы: procedure vivod(var a:t2n);

Метод решения

Перебираем строки двумерного массива " i:=1(1)2 n:

Для каждой строки:

1) выводим очередную i строку. Для этого перебираем все столбцы строки и выводим на экран очередной элемент (без перевода курсора в начало следующей строки экрана):

                                         " j:=1(1)2 n: вывод(a [ i, j ])

переводим курсор на экране в начало следующей строки (обращаемся к процедуре writeln без параметров)

Информационная модель

Таблица 19.5. Информационная модель

Назначение Имя Тип
Индекс строки i integer
Индекс столбца j integer

Текст процедуры

procedure vivod(var a:t2n);

var i,j:integer;

begin

for i:=1 to 2*n

do begin

  for j:=1 to 2*n

  do write(a[i,j]:3);

  writeln

end;

end;


Поделиться с друзьями:

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.018 с.