Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TurboBasic.doc
Скачиваний:
6
Добавлен:
21.11.2019
Размер:
493.57 Кб
Скачать

5.4 Двумерные массивы

Массивы, элементы которых расположены в виде таблицы или матрицы, называются двумерными. В таком массиве каждый элемент определяется двумя индексами – номером строки и номером столбца.

DIM A(N,M) –описывает двумерный массив, содержащий N строк и M столбцов. Для решения задач с двумерными массивами применяются те же методы, что и для одномерных. Место элемента в двумерном массиве определяется двумя индексами, поэтому программы большинства задач строятся на использовании вложенных циклов. Обычно внешний цикл работает по строкам таблицы, а внутренний по столбцам.

Пример 1: ввод и печать двумерного массива.

CLS:DIM A(5,4)

FOR I=1 TO 5

FOR J=1 TO 4

A(I,J)=INT(RND*200)-100

NEXT J,I

FOR I=0 TO 5

FOR J=0 TO 4

? A(I,J);

NEXT J

?

NEXT I

Пример 2: подсчет суммы значений элементов массива в каждой строке.

СLS;DIM A(4,4)

FOR I=0 TO 4

FOR J=0 TO 4

A(I,J)=INT(RND*200)-100

? A(I,J);

NEXT J: ?

NEXT I

FOR I=0 TO 4

S=0

FOR J=0 TO 4

S=S+A(I,J)

NEXT J

? "Сумма значений элементов ";I;" строки:";S

NEXT I

Пример 3:Поиск минимального элемента двумерного массива.

СLS

INPUT"Введите количество строк";N

INPUT"Введите количество столбцов";M

DIM A(N,M)

FOR I=1 TO N

FOR J=1 TO M

A(I,J)=INT(RND*200)-100

? A(I,J);

NEXT J:?:NEXT I

P=A(1,1);K=1;L=1

FOR I=1 TO N

FOR J=1 TO M

IF P<=A(I,J) THEN 10

P=A(I,J):K=I:L=J

10 NEXT J

NEXT I

?"Максимальный элемент";P

Задания для самостоятельной работы.

  1. Отсортировать одномерный массив по убыванию.

  2. В двумерном массиве подсчитать сумму элементов в каждом столбце.

  3. Найти максимальный элемент в каждой строке двумерного массива.

6. Практика программирования.

    1. Задачи обработки целых чисел.

Целый класс задач посвящен обработке целых чисел. В этом пункте приводятся некоторые из них.

  1. Определение четности.

Требуется определить, является заданное целое число N четным или нечетным. Для решения задачи необходимо проверить: если N четное, то оно кратно двум и значение N/2 совпадает со значением INT(N/2) – целой частью.

INPUT"Введите целое число N=";N

LET S$="нечетное"

IF N/2=INT(N/2) THEN S$="четное"

? "Число";N;S$

  1. Нахождение делителей числа.

Требуется найти и напечатать все делители числа N, включая 1. Число А является делителем числа В, если В делится на А нацело. Будем проверять являются ли делителем числа N числа начиная с 1 до N/2. Проверку, является ли число I делителем будем производить в цикле. Условием будет равенство N/I=INT(N/I).

INPUT"Введите целое число N=";N

C=INT(N/2)

?"Делители числа";N

FOR I=1 TO C

IF N/I<>INT(N/I) THEN 10

? I;

10 NEXT I

?N

  1. Нахождение простых чисел.

Каждое натуральное число можно получить в виде суммы единиц. Совсем иначе дело обстоит с умножением. Здесь не только не существует числа, произведение которого на себя дало бы все остальные числа, но, что гораздо хуже, существует бесконечно много чисел, которые невозможно представить в виде произведения без своего собственного участия. Такие числа принято называть простыми. Определение простых чисел в курсе математики формулируется следующим образом: простым числом называется натуральное число, которое не имеет делителей, отличных от себя и от единицы. Число 1 не принято считать простым, так как оно ничего не дает в образовании новых чисел множительным путем.

Требуется найти все простые числа от 2 до N и напечатать их. Проверяем каждое значение на отсутствие делителей перебором чисел от 2 до N-1. Условие делимости нацело N/D=INT(N/D)

5 CLS

INPUT"Введите интервал для от 2 до:";K

IF K<=2 THEN 5

?"Простые числа "

N=2

7 FOR D=2 TO N-1

IF N/D=INT(N/D) THEN 10

NEXT D

?N

N=N+1

10 IF N<K THEN 7

  1. Вычисление степени числа 2.

Требуется составить программу, печатающую числа 2n: N=N+1; X=2^N. Однако такой способ не рационален. Вычислим первые 6 значений:

21=2

22=2*2=4

23=4*2=8

24=8*2=16

25=16*2=32

26=32*2=64

Вместо того чтобы каждый раз перемножать N двоек, лучше один раз умножить на 2 предыдущее значение 2n=2*2n-1 . То же самое можно выразить соотношением Un=2*Un-1, где U1=2. Такой способ задания числовых последовательностей, когда следующие элементы определяются через значения предыдущих, называется возвратным или рекуррентным.

Если N будет пробегать натуральный ряд (N=N+1), то каждый раз удваивая Х (Х=Х+Х) получим таблицу квадратов.

CLS

LET X=1

2 N=N+1

X=X+X

? N,X

IF N<21 THEN 2

  1. Прогрессии.

В математике рекуррентными последовательностями называются последовательности вида:

Un=a1*Un-1+a2*Un-2+…+ak*Un-k, где а12,…,аk – некоторые постоянные. Число k определяет, сколько предыдущих элементов участвуют в образовании очередного, поэтому k называют степенью рекурсивности. Простейшим примером рекуррентных последовательностей являются арифметическая и геометрическая прогрессии.

  • арифметическая: аnn-1+b, a1=a;

  • геометрическая: an=an-1*b, a1=a.

Требуется составить программу печатающую арифметическую прогрессию с начальным элементом А и разностью В: А, А+В, А+2*В, А+3*В,…,А+N*В. Исходные данные А и В. Обозначим за N=N+1 номер очередного элемента последовательности.

CLS

INPUT A,B

5 N=N+1

? N,A

A=A+B

IF N<21 THEN 5

Задания для самостоятельной работы.

  1. Для натурального числа N определить кратно ли оно 3.

  2. Для натуральных чисел N и M определить, являются ли они взаимно простыми (то есть не имеют общих делителей кроме 1).

  3. Составить программу печатающую геометрическую прогрессию.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]