Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal / Delphi / Основы программирования и алгоритмические языки [13].doc
Скачиваний:
63
Добавлен:
02.05.2014
Размер:
660.48 Кб
Скачать

Описание процедурыOutputVector

  • В заголовке процедуры описаны параметры: N,передаваемый из основной программы;A - массив выводимых элементов матрицы.

  • Описана локальная переменная i: integer- параметр циклаfor.

  • В процедуре в цикле for выводятся значения элементов массива А. В операторе вывода Write(A[i]:11,’ ’)задан формат для выводимого элемента массива: A[i]:11, который показывает, что для вывода значения элемента массива Аотводится11позиций.

  • Затем управление передается основной программе.

Описание функции Summa

  • В заголовке функции описаны параметры: k -число считываемых отрицательных элементов массива к<=N; N - размерность массива,А- массив элементов. ФункцияSummaописана, какExtended.

  • В теле функции задается счетчик отрицательных элементов массива Кк, ему присваивается начальное значение1 (Kk:=1). Начальное значение суммы равно 0 (s:=0).

  • В цикле forот единицы до Nсчитается сумма первыхKотрицательных элементов массива:

  1. проверяется A[i]<0(отрицательное число) и одновременно проверяется значение счетчика Кк<=K (не превышает числа считываемых отрицательных элементов массива K);

  2. S:=S+A[i];

  3. счетчик отрицательных чисел увеличивается на единицу Кк:=Кк+1.

  • После окончания цикла функции Summaприсваивается значение полученной суммы всех отрицательных чисел -Summa:=S.

  • Управление передается в основную программу.

Описание главной программы

  1. В теле основной программы в цикле Repeat ... Until очищается экран(ClrScr).

  2. Производится решение задачи для одного комплекта входных данных N, K, A:

  • Через вызов процедуры Input(invN,NN,N)осуществляется ввод длины массиваN<=NN (переменные invN, NNявляются входными, переменнаяN- результат работы процедуры).

  • Через эту же процедуру Input(invK,N,K)осуществляет ввод числа считываемых отрицательных элементов массива К<=N (переменныеinvК, Nпередаются из основной программы в процедуру, значение переменнойKвозвращается из процедуры в основную программу).

  • Процедура InputVector(N,A)осуществляет ввод элементов массива А (значение переменной Nпередается из основной программы, значение элементов массиваАпередается из процедуры).

  • Процедура OutputVector(N,A)осуществляет вывод элементов массива А ( значение переменной Nи значения элементов массива Апередаются из основной программы).

  • Выводится значение суммы через функцию Summa(k,N,A) (значение параметров К, N, Aпередается из основной программы);

  • На экране появляется сообщение «Опять? (Y/N)».

  • Переменной chприсваивается значение нажатой клавишиch:=ReadKeyи в зависимости от ответа управление передается на начало цикла (ch:=’Y’) или программа заканчивает выполнение(ch:= ‘N’).

Приложение 5 пример выполнения контрольной работы № 4

ЛИСТИНГ ПРОГРАММЫ Work4.pas- см. Прил. 1.

В контрольной работе № 4задана квадратная матрица Аразмером N * N (N<=10), состоящая из действительных элементов. Необходимо найти среднее арифметическое значение элементов каждого из столбцов этой матрицы.

Имя программы - WORK4.

  • В поле описания библиотек и констант заданы стандартный модуль CRT, определена константа N=10.

  • Описан собственный тип данных ArrayA для описания массива размеромN * N, элементы которого имеют тип Real, - Type ArrayA=Array[1..N,1..N]of Real.

  • Описаны переменные: целочисленная k: Integer, массив A:ArrayA; символьная переменнаяch: char.

  • Далее идут описания процедур InputN, InputMatrix, OutputMatrix, и Evaluate.

  • Записана главная программа, которая вызывает нужные процедуры и функции, согласно алгоритму решения задачи.