Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Топ:
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Спецификация
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;
|
|
|
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!