¨ Переменной ch присваивается значение нажатой клавиши ch:=ReadKey и в зависимости от ответа управление передается на начало цикла (ch:=’Y’) или программа заканчивает выполнение (ch:= ‘N’).
пример выполнения контрольной работы № 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.
· Записана главная программа, которая вызывает нужные процедуры и функции, согласно алгоритму решения задачи.
Описание процедуры InputN
¨ В заголовке процедуры описан один формальный параметр:
выходное k (значение определяется в процедуре и передается в основную про- грамму).
¨ В цикле Repeat ...Until (K<=N) and (K>1) вводится значение переменной K - Readln(K) с проверкой (т.е. вводимое K должно быть больше единицы и меньше либо равно N - заданному по условию максимальному значению размера массива А). Затем управление передается в основную программу.
Описание процедуры InputMatrix.
¨ В заголовке процедуры описаны параметры: K - входной параметр, передаваемый из основной программы, и A -выходной параметр (массив вводимых в процедуре элементов матрицы А).
¨ Описаны локальные целочисленные переменные i (счетчик числа строк), j (счетчик числа столбцов) - integer.
¨ В процедуре в двойном цикле for по переменным i, j вводятся значения элементов массива А[I,J]: Readln(A[I,J].
¨ Затем управление передается основной программе.
Описание процедуры OutputMatrix.
Поскольку алгоритм вывода матрицы структурно ничем не отличается от алгоритма ее ввода (см. Соответствующие блок-схемы в прил. 1), то и оформление процедуры почти одинаково. Обратите, пожалуйста, внимание на то, что массив А - теперь параметр входной ( т.е. известный), поэтому ключевое слово Var отсутствует. В двойном цикле for реализован построчный вывод на экран исходной матрицы. В формате вывода под выводимое значение элементов матрицы отводится 7 позиций, в том числе две позиции для вывода дробной части:
Write(A[i,j]:7:2,’ ‘).
Следующий оператор вывода без параметров Writeln позволяет закончить вывод одной строки матрицы и перейти на следующую.
Описание процедуры Evaluate.
¨ В заголовке процедуры описаны параметры: K, A как входные параметры.
¨ Описаны локальные переменные i (счетчик числа строк), j (счетчик числа столбцов) как integer и stolb (вещественный массив длиной N - array [1..N] of Real), sr (рабочая переменная типа Real для подсчета суммы элементов в данном столбце).
¨ В двойном цикле for считается среднее арифметическое значение для каждого столбца и сохраняется в одномерном массиве Stolb:
1) цикл начинается по столбцам j от 1 до k ;
2) затем в цикле по строкам i считается сумма элементов в данном столбце sr;
3) и вычисляется среднее арифметическое значение для каждого столбца путем деления вычисленной суммы на количество строк Stolb[j]:=sr/k.
¨ Значение элементов одномерного массива среднего арифметического значения столбцов Stolb[j] в цикле for выводится на экран.
Замечание. Средние арифметические значения каждого из столбцов матрицы можно вычислять и тут же выдавать на экран. Этот вариант пригоден только тогда, когда значения средних арифметических больше ни для чего НЕ нужны (как в нашем случае). Тогда надобность в массиве Stolb и дополнительном цикле for отпадает. В этом случае подпрограмма Evaluate будет иметь следующий вид:
Procedure Evaluate(k:integer; A:arrayA);
Var i,j:integer;
sr:real;
Begin
Writeln('------- Cреднее арифметическое каждого из столбцов -------');
for j:=1 to k do {------- цикл по столбцам ------- }
Begin
sr:=0;
for i:=1 to k do {------- цикл по строкам ------- }
sr:=sr+A[i,j]; {вычисление суммы элементов по столбцам
матрицы A}
Writeln ('Cтолбец [',j,']= ', sr/k :7:2);
End;
End;
Описание главной программы
· В теле основной программы в цикле Repeat ... Until очищается экран (ClrScr).
· Путем вызова процедуры InputN(k) вводится значение k - фактическое число строк и столбцов исходной матрицы A.
· Путем вызова процедуры InputMatrix(k,A) вводим значения элементов исходной матрицы А.
· Опять очищаем экран (ClrScr).
· Через вызов процедуры OutputMatrix(k,A) выводим на экран значения элементов исходной матрицы А.
· Через вызов процедуры Evaluate(k,A) определяем значения средних арифметических каждого из столбцов и выводим их на экран.
· Затем следует запрос «Опять? (Y/N)».
· Переменной ch присваивается значение нажатой клавиши ch:=ReadKey и в зависимости от ответа управление передается или на начало цикла (ch:=’Y’) для повторного счета, но уже с другими исходными данными, или программа заканчивает выполнение (ch:= ‘N’).
Основные функции среды ТУРБО ПАСКАЛЬ
Система программирования ТУРБО ПАСКАЛЬ представляет собой совокупность компилятора языка программирования ПАСКАЛЬ и инструментальной программной оболочки. Для вызова ТУРБО ПАСКАЛЯ следует дать команду:
TURBO
По этой команде в память загружается файл TURBO.EXE, на экране монитора появляется оболочка ТУРБО ПАСКАЛЯ. Верхняя строка оболочки содержит «главное меню» режимов работы ТУРБО ПАСКАЛЯ, нижняя строка - краткую справку о назначении основных функциональных клавиш. Центральная часть экрана принадлежит окну редактора для ввода и редактирования текста программы. Под верхней строкой в центре двойной рамки приводится имя дискового файла ( новому файлу присваивается имя NONAME00.PAS). Цифра в верхнем правом углу окна редактора обозначает номер окна редактирования. В ТУРБО ПАСКАЛЕ можно одновременно работать с 9 программами, каждая из которых располагается в отдельном окне редактора. Кроме окон редактора используются окна: отладочного режима, вывода результатов работы программы, справочной службы, стека, регистров.
Для перехода в главное меню необходимо нажать клавишу F10, поместить курсор на нужную функцию, нажать ENTER. В появившемся ниспадающем меню выбрать необходимую опцию и нажать ЕNTER. Например, для сохранения текста программы на диске нужно нажать F10, переместить курсор на FILE, затем SAVE и нажать ENTER, в появившемся диалоговом окне задать имя файла, под которым ваша программа будет храниться на диске. Отметим, что имя файла, под которым текст программы хранится на диске, не эквивалентен имени программы, заданным в первой строке программы, написанной на Паскале.
Функциональные клавиши
Функциональные клавиши используются для быстрого управления средой ТУРБО ПАСКАЛЯ. Они обозначаются F1,..., F12 и располагаются в верхнем ряду клавиатуры.
Назначения функциональных клавиш:
· F1 - вызов справки;
· F2 - записать программу на диск;
· F3 - открыть записанную программу на диске в окне редактора;
· F4 - используется в отладочном режиме;
· F5 - распахнуть активное окно на весь экран;
· F6 - сделать активным следующее окно;
· F7 - используется в отладочном режиме;
· F8 - используется в отладочном режиме;
· F9 - компилировать программу, но не выполнять ее;
· F10 - перейти к диалоговому выбору режима работы;
· Ctrl-F9 - компилировать программу, загрузить ее в оперативную память (или записать на диск) и выполнить, после чего вернуться в среду ТУРБО ПАСКАЛЬ;
· Alt-F5 - сменить окно редактора на окно вывода результатов программы;
· Alt-X - выход из ТУРБО ПАСКАЛЯ;
Текстовый редактор среды
Текстовый редактор предназначен для создания и редактирования текста программы. Для создания текста его вводят с клавиатуры, нажимая в конце каждой строки клавишу ENTER.
Для того, чтобы исправить ошибки, которые были допущены при наборе программы, необходимо переместить курсор( небольшой мигающий прямоугольник в окне редактора) с помощью клавиш перемещения курсора ¬ ® ¯ в нужное место и исправить ошибку.
Команды текстового редактора.
· PgUp - переместить курсор на страницу вверх;
· PgDn - переместить курсор на страницу вниз;
· HOME -переместить курсор в начало строки;
· END -переместить курсор в конец строки;
· Ctrl-PgUp -переместить курсор в начало текста;
· Ctrl-PgDn -переместить курсор в конец текста;
· BACKSPACE -стереть символ слева от курсора;
· DEL -стереть символ справа от курсора;
· CtrL-Y -стереть строку, на которой располагается курсор;
· ENTER - вставить новую строку;
· Ctrl-Q L - восстановить текущую строку (действует, если курсор не покидал измененную строку);
· Ctrl-K B - пометить начало блока;
· Ctrl-K K - пометить конец блока;
· Ctrl-K Y - стереть блок;
· Ctrl-K C - копировать блок;
· Ctrl-K V - переместить блок;
· Ctrl-K W - записать блок в дисковый файл;
· Ctrl-K R - прочитать блок из дискового файла;
· Ctrl-K P - напечатать блок;