- •Оглавление
- •Постановка задачи
- •Поиск минимальных элементов в строках массивов и создание линейного массива из их произведения
- •Сортировка нечетных элементов полученного массива по возрастанию.
- •Вывод отсортированного массива
- •Блок-схема алгоритма
- •Разработка программы на языке pascal
- •Описание блоков укрупненной схемы алгоритма на языке Pascal Ввод элементов двух двумерных массивов
- •Сортировка нечетных элементов полученного массива по возрастанию
- •Вывод отсортированного массива
- •Текст программы
- •Поиск минимальных элементов в строках массивов и создание линейного массива из их произведения
- •Тестирование программы
- •Список литературы
Описание блоков укрупненной схемы алгоритма на языке Pascal Ввод элементов двух двумерных массивов
В начале программы выводится подсказка о вводимых данных. Для ввода и вывода данных в языке Паскаль предусмотрены следующие процедуры ввода-вывода: Read, Readln, Write, Writeln. Часто эти процедуры называют операторами.
Процедура чтения Read обеспечивает ввод числовых данных, символов, строк для их последующей обработки. Значения переменных должны вводиться в строгом соответствии с синтаксисом языка Паскаль. Основные устройства ввода - клавиатура и дисковый файл. Программа получает входные данные из файла Input и помещает результат обработки в файл Output. Стандартно файлу Input назначена клавиатура, файлу Output – экран терминала.
Процедура чтения Readln аналогична Read. Единственное отличие состоит в том, что если в программе несколько процедур Readln, то после считывания значений переменных для одной процедуры Readln, данные для следующей процедуры будут считываться с начала новой строки.
Процедуры записи Write и Writeln предназначены для вывода констант различных типов, значений переменных или выражений. Число параметров – произвольное. Данные выводятся на экран. Из констант наиболее часто выводятся строки текста (строковые константы заключаются в апострофы). Если в конструкции вывода записано выражение, оно сначала будет вычислено, а затем выполнен вывод полученного результата.
Процедура Writeln аналогична Write, отличие заключается в том, что после вывода последней переменной из списка, курсор автоматически переходит в начало новой строки. Инструкция Writeln без параметров переводит курсор в начало следующей строки, что позволяет, например, отделять результаты работы программы друг от друга пустыми строками.
Вернемся к программе. С помощью оператора вывода write('Введите количество строк и столбцов массива до 10 через пробел: ') выводится подсказка о выводимых данных. Далее каждое введённое значение поочерёдно считываются оператором ввода readln(n,m). Затем с помощью writeln('Исходный массив А') выводится комментарий ‘Исходный массив А’.
Далее с помощью вложенного цикла заполняется первый массив.
Цикл с параметром в Паскале записывается с помощью оператора for. Оператор повтора for часто называют оператором цикла с параметром, так как число повторений задается переменной, называемой параметром цикла, или управляющей переменной, которая на каждом шаге цикла автоматически изменяет свое значение ровно на единицу – поэтому ее и называют счетчиком.
Оператор повтора for состоит из заголовка (строка, содержащая for..to(downto)..do ) и тела цикла. Оператор обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все значения параметра цикла от начального до конечного с шагом +1(to) или -1(downto).
Если требуется выполнить после do несколько операторов, они обрамляются операторными скобками begin и end, образуя тем самым составной оператор. Составной оператор воспринимается как один оператор.
Во внутреннем цикле for j:=1 to m do оператор присваивания с помощью функции random вводит элементы двумерного массива А (A[i,j]:=random(10)+1).
Оператор присваивания можно считать основным оператором языка Паскаль, т. к. именно в нем выполняются практически все действия по обработке данных. Оператор присваивания используется для изменения значений переменных, в том числе и для вычислений по формулам — оператор предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, стоящей в левой части.
После оператора присваивания оператор вывода write(A[i,j]:3) выводит элементы заполняемого массива на экран (запись write(A[i,j]:3) означает, что для вывода каждого элемента на экран отводится 3 позиции). Оба эти оператора заключены в операторные скобки begin – end.
Вывод элементов массива в стандартной форме записи выполняется с помощью оператора writeln (без параметра), который переводит курсор в начало следующей строки экрана после вывода текущей строки матрицы. Этот оператор находится во внешнем цикле for i:=1 to n do вместе с внутренним, заключенный в операторные скобки.
Таким же образом заполняем массив B.
Рассмотренный фрагмент блок-схемы для реализации ввода элементов двух двумерных массивов на языке Pascal будет представлен в следующем виде:
write('Введите количество строк и столбцов массива до 10 через пробел: ');
readln(n,m);
writeln('Исходный массив А');
for i:=1 to n do
begin
for j:=1 to m do
begin
A[i,j]:=random(10)+1;{Ввод массива А}
write(A[i,j]:3);
end;
writeln;
end;
writeln('Исходный массив Б');
for i:=1 to n do
begin
for j:=1 to m do
begin
B[i,j]:=random(10)+1;{Ввод массива Б}
write(B[i,j]:3);
end;
writeln;
end;
