Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Описание блоков укрупненной схемы алгоритма




На языке Pascal

Ввод элементов одномерных массивов

Используем процедуру вывода writeln (' Введите элементы первого массива: ') и writeln ('Введите элементы второго массива: '), которая позволит прокомментировать очередность вывода исходных мас­сивов.

Сначала выдается подсказка оператором writeln ('Введите элементы первого массива'). Затем каждый очередной элемент массива считывается с экрана оператором readln (al [ i ]), который вызывается в цикле. Цикл работает до достижения переменной i значения N, то есть до конца массива.

Аналогично, в следующем цикле вводим элементы второго массива оператором readln (a 2[ i ]).

В виде фрагмента программы это запишется следующем образом:

Writeln (' Введите элементы первого массива: ');

for i:=l to n do readln(al [i]);

Writeln ('Введите элементы второго массива:');

for i:=l to n do readln(a2[i]);


Сравнение элементов массива

Обработку массива осуществляем в цикле с предусловием. Перед началом работы цикла его параметру задаем начальное значение, то есть i = l. В условии цикла проверяется сразу два условия: условие зада­чи (al [ i ]> a 2[ i ]) и значение счетчика цикла (i <= N). Значение счетчика цикла не должно превышать конца массива, иначе программа выдаст ошибку - попытка перейти за пределы массива. Два условия объединя­ются логической операцией «И» (and). Это означает, что цикл будет выполняться только в том случае, когда истинны оба условия. Если одно из условий примет значение «ложь» (false), цикл сразу прекратит свое выполнение.

Так как по условию задачи с элементами массивов никаких действий выполнять не надо, в теле цикла просто увеличиваем значение счетчика на единицу, чтобы перейти к следующему элементу массива (i:= i + l).

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

Реализация данного рода обработки массивов программным способом запишется следующим образом:

While (al[i]>a2[i]) and (i<=n) do i:=i+l;

if i > n then writeln ('Все элементы первого массива больше элементов второго массива')

else writeln ('Элементы первого массива не превосходят элементы второго массива');

Сортировка массива

Следующий цикл реализует алгоритм сортировки массива обменом.

Запись for k:= n down to 1 do означает, что элементы массива будут обрабатываться, столько раз сколько элементов в массиве. Если предыдущий элемент больше следующего (al [ i ]> al [ i + l ]), то значения меняются местами. Для перемены местами используется буферная переменная В. Сначала в переменной В сохраняется значение предыдущего элемента массива (B:= al [ i ]). Затем элементу с этим номером присваивается значение следующего элемента массива (al [ i ]:= al [ i + l ]), после чего следующему элементу массива присваивается значение буферной переменной В.

for k:=n downto 1 do

for i:=1 to k-1 do

if al[i]>al[i+l] then begin B:=al[i]; al[i]:=al[i+l]; al[i+l]:=B; end;


Вывод преобразованного массива

После сортировки выводим преобразованный массив на экран стандартными средствами вывода write (al [ i ], ' ') - вывод элементов массива в строку через пробел.

 

Writeln (' Отсортированный массив:');

for i:=l to n do write(al[i],' ');

Листинг программы

 

Program Massiv;

uses crt;

const N=10;

var al, a2: array[l..n] of integer;

i, k, B: integer;

begin clrscr;

writeln ('Введите элементы первого массива:');

for i:=l to n do read(al[i]);

writeln ('Введите элементы второго массива:');

for i:=l to n do read(a2[i]);

i:=l;

while (al[i]>a2[i]) and (i<=n) do i:=i+l;

if i>n then writeln('Bce элементы первого массива больше элементов второго

                           массива')

else writeln ('Элементы первого массива не превосходят элементы

                   второго массива');

for k:=n downto 1 do

for i:=l to k-1 do

if al[i]>al[i+l] then begin B:=al[i]; al[i]:=al[i+l]; al[i+l]:=B; end;

writeln ('Отсортированный массив:');

for i:=l to n do write(al[i], ' ');

end.

 


Тестирование программы

Ниже приведены результаты выполнения программы на примере различных входных данных.

 

 

 

 

Приложение 3

ОБРАЗЕЦ РЕШЕНИЯ ЗАДАЧИ





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


Дата добавления: 2018-11-11; Мы поможем в написании ваших работ!; просмотров: 318 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если вы думаете, что на что-то способны, вы правы; если думаете, что у вас ничего не получится - вы тоже правы. © Генри Форд
==> читать все изречения...

2222 - | 2163 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.