Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вопросы по информатике.docx
Скачиваний:
81
Добавлен:
25.03.2016
Размер:
362 Кб
Скачать
☆

Вопрос 25.

Если в массиве представлены два индекса, то это двумерный массив – матрица.

Структура записи и синтаксис аналогичны одномерному массиву.

А11 А12 А13. . .А1m

А21 А22 А23. . .А2m

. . . . . . . . . . . . . . . . . . .

An1 An2 An3. . .Anm

Здесь: n – строка m – столбец.

Можно записать: DIM A(N,M), где N – кол-во строк, а M – кол-во столбцов.

Если число строк равно числу столбцов (N=M), то матрица квадратная, появляется главная диагональ (I(от 1 до N)=J(от 1 до M)).

Ввод и вывод элементов матрицы организуется с помощью вложенных циклов.

1 Ввод элементов матрицы.

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

2 Вывод элементов матрицы.

FOR I=1 TO N

FOR J=1 TO M

PRINT A(I,J);

NEXT J

PRINT

NEXT I

Вопрос 26.

Нахождение минимального элемента в матрице.

REM min

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

Min:= A(1,1)

FOR I=1 TO N

FOR J=1 TO M

IF A(I,J) <=Min THEN Min:=A(I,J)

NEXT J

NEXT I

PRINT «min=», min.

END

Нахождение максимального элемента в матрице.

REM max

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

Max:= A(1,1)

FOR I=1 TO N

FOR J=1 TO M

IF A(I,J) >=Max THEN Max:=A(I,J)

NEXT J

NEXT I

PRINT «max=», max. END.

Нахождение минимального элемента каждой строки и запись его в массив.

REM min

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

FOR I=1 TO N Min (I):= A(I,1) FOR J=1 TO M IF A(I,J) <= Min (I) THEN Min (I):= A(I,J) NEXT J NEXT I PRINT “Вывод массива минимальных” FOR I=1 TO N PRINT Min (I) NEXT I END Аналогично находят максимальный элемент каждой строки. Также аналогичным методом находят максимальный и минимальный элемент каждого столбца.

Вопрос 27.

Запись суммы каждой строки в массиве.

REM сумма

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

FOR I=1 TO N S (I):=0 FOR J=1 TO M S(I):=S(I)+A(I,J) NEXT J NEXT I PRINT “Вывод массива суммы строк” FOR I=1 TO N PRINT S(I) NEXT I END

Запись произведения каждой строки в массиве. REM произведение

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

FOR I=1 TO N P (I):=1 FOR J=1 TO M P(I):=P(I)+A(I,J) NEXT J NEXT I PRINT “Вывод массива произведения строк” FOR I=1 TO N PRINT P(I) NEXT I END

Запись суммы каждой строки в дополнительный столбец

REM сумма

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

FOR I=1 TO N A(I,M+1):=0 FOR J=1 TO M A(I,M+1):=A(I,M+1)+A(I,J) NEXT J NEXT I PRINT “Вывод матрицы с дополнительным столбцом” FOR I=1 TO N FOR J=1 TO M PRINT A(I,J) NEXT J PRINT NEXT I END

Запись произведения каждой строки в дополнительный столбец.

REM Произведение

PRINT «Введите кол-во строк матрицы»

INPUT N

PRINT «Введите кол-во столбцов матрицы»

INPUT M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

PRINT «Введите»; I; J; «Элемент матрицы»

INPUT A(I,J)

NEXT J

NEXT I

FOR I=1 TO N A(I,M+1):=1 FOR J=1 TO M A(I,M+1):=A(I,M+1)*A(I,J) NEXT J NEXT I PRINT “Вывод матрицы с дополнительным столбцом” FOR I=1 TO N FOR J=1 TO M PRINT A(I,J) NEXT J PRINT NEXT I END

Вопрос 28. Кроме стандартных функций, в языке QBASIC допускается употребление функций, определяемых пользователем. Описав соответствующим образом такую функцию, программист может обращаться к ней так же, как и к стандартным. Это целесообразно в том случае, когда по ходу решения задачи необходимо многократно вычислять выражение одного и того же вида при различных значениях некоторых параметров. Для описания нестандартной функции служит оператор определения функции:

DEF FNa(x)=E

где DEF - определить; FNa - имя функции, состоящее из обязательных букв FN и произвольных a, позволяющих различать несколько заданных функций; x - формальные параметры (переменные); Е - арифметическое выражение, зависящее от параметров а

Пример: DFF FNA(B)=SIN(B)* COS(B) Имена переменных, входящих в состав выражения Е, но не являющихся формальными аргументами, должны совпадать с именами, используемыми в программе и должны быть определены до обращения к данной функции. QBASIC позволяет определить нестандартные функции с использованием верхнего меню: - Alt ---> Редактирование ---> Новая FUNCTION . . . - запрашивается имя новой функции a - появляется окно для создания новой функции с именем a

FUNCTION a END FUNCTION

В данном окне производится создание функции "a" как в обычном редакторе QBASIC. Вводятся необходимые формальные параметры выражения для определения тех действий, которые функция должна осуществить. После определения функции необходимо войти в верхнее меню: - Alt ---> Просмотр ---> SUBs. . . ---> - выбрать имя своего файла, в который хотите вернуться. При следующем сохранении вашего файла в нём появится строчка:

DECLARE FUNCTION a( ),

говорящая о том, что в данном файле есть функция a с параметрами, указанными в скобках. Для внесения изменений в функцию необходимо - Alt ---> Просмотр ---> SUBs. . . ---> имя функции.