- •Глава I. Основные сведения.
- •Глава II .Решение задач.
- •Глава III . Дополнительные сведения о tb.
- •Предисловие
- •Глава I. Основные сведения
- •1. Введение
- •Понятие об алгоритмах.
- •Понятие о программировании.
- •Этапы решения задач с помощью компьютера.
- •2. Основы языка turbo basic
- •2.1 Алфавит языка.
- •2.2 Типы данных.
- •2.3 Выражения в Бейсике. Стандартные функции.
- •2.4 Среда программирования TurboBasic
- •2.5 Работа в непосредственном режиме
- •2.6 Структура программ. Оператор присваивания.
- •2.7 Операторы ввода/вывода.
- •2.8 Работа с блоком данных
- •Организация графического экрана. Операторы графики.
- •2.10 Функции обработки символьных (литерных) величин.
- •3.Управляющие конструкции.
- •3.1 Операторы цикла.
- •3.2 Условный оператор.
- •3.3 Подпрограммы.
- •3.4 Функции пользователя.
- •Глава II. Решение задач.
- •4. Работа с функциями.
- •4.2 Функции обработки числовых данных.
- •4.3 Генерация случайных чисел.
- •5. Массивы
- •5.1 Понятие массива.
- •5.2 Задачи на обработку одномерных массивов.
- •5.3 Сортировка массивов
- •5.4 Двумерные массивы
- •6. Практика программирования.
- •Задачи обработки целых чисел.
- •6.2 Построение графика функции.
- •Простейший графический редактор.
- •Моделирование хода часов.
- •Программирование справочных систем.
- •1 Закон ньютона
- •2 Закон ньютона
- •3 Закон ньютона
- •Программирование игр.
- •Глава 3. Дополнительные сведения о тв.
- •Звук и музыка.
- •Графический оператор draw.
- •9. Операторы get и put
- •10. Файлы. Работа с файлами.
- •10.1 Файлы последовательного доступа
- •10.2. Файлы прямого доступа
- •Сообщения об ошибках
- •Список команд, операторов, функций.
- •Ascii – коды
- •Список рекомендуемой литературы
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
Задания для самостоятельной работы.
Отсортировать одномерный массив по убыванию.
В двумерном массиве подсчитать сумму элементов в каждом столбце.
Найти максимальный элемент в каждой строке двумерного массива.
6. Практика программирования.
Задачи обработки целых чисел.
Целый класс задач посвящен обработке целых чисел. В этом пункте приводятся некоторые из них.
Определение четности.
Требуется определить, является заданное целое число N четным или нечетным. Для решения задачи необходимо проверить: если N четное, то оно кратно двум и значение N/2 совпадает со значением INT(N/2) – целой частью.
INPUT"Введите целое число N=";N
LET S$="нечетное"
IF N/2=INT(N/2) THEN S$="четное"
? "Число";N;S$
Нахождение делителей числа.
Требуется найти и напечатать все делители числа 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 не принято считать простым, так как оно ничего не дает в образовании новых чисел множительным путем.
Требуется найти все простые числа от 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
Вычисление степени числа 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
Прогрессии.
В математике рекуррентными последовательностями называются последовательности вида:
Un=a1*Un-1+a2*Un-2+…+ak*Un-k, где а1,а2,…,аk – некоторые постоянные. Число k определяет, сколько предыдущих элементов участвуют в образовании очередного, поэтому k называют степенью рекурсивности. Простейшим примером рекуррентных последовательностей являются арифметическая и геометрическая прогрессии.
арифметическая: аn=аn-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
Задания для самостоятельной работы.
Для натурального числа N определить кратно ли оно 3.
Для натуральных чисел N и M определить, являются ли они взаимно простыми (то есть не имеют общих делителей кроме 1).
Составить программу печатающую геометрическую прогрессию.