- •Часть первая
- •Предварительные сведения
- •Индекс элемента массива
- •1.1. Объявление массива
- •Dim имя1 (индекс1) [, имя2 (индекс2), ...]
- •[Нижний to] верхний [, нижний to] верхний ...
- •1.2. Ввод и вывод элементов массива
- •1.3. Задачи для дополнительного решения
- •2. Примеры решения типовых задач с использованием одномерных массивов
- •2.1. Определение суммы, произведения, количестваэлементов массива
- •2.2. Задачи для дополнительного решения
- •2.3. Определение максимального и минимального значения в массиве
- •2.4. Задачи для дополнительного решения
- •2.5. Определение первого вхождения определенного значения
- •1 Способ (с помощью оператора цикла for...Next)
- •2 Способ (с помощью оператора цикла while...Wend)
- •2.6. Задачи для дополнительного решения
- •2.7. Определение k-го вхождения определенного значения
- •1 Способ (с помощью оператора цикла for...Next)
- •2 Способ (с помощью оператора цикла while...Wend)
- •2.8. Задачи для дополнительного решения
- •Удаление элемента из массива
- •Задачи для дополнительного решения
- •Вставка элемента в заданную позицию
- •Задачи для дополнительного решения
- •3. Примеры решения типовых задач с использованием двумерных массивов
- •3.1. Определение суммы, произведения, количества в каждой строке или столбце
- •3.2. Задачи для дополнительного решения
- •3.3. Определение максимального и минимального значения в каждой строке или столбце матрицы
- •3.4. Задачи для дополнительного решения
- •3.5. Определение первого вхождения определенного значения в каждую строку и столбец матрицы
- •1 Способ (используя оператор цикла for...Next)
- •2 Способ (с помощью оператора цикла while...Wend)
- •3.6. Задачи для дополнительного решения
- •3.7. Главная и побочная диагональ матрицы
- •Задачи для дополнительного решения
- •Удаление строки или столбца из матрицы
- •Задачи для дополнительного решения
- •3.10.Включение строки или столбца в матрицу
- •3.11. Задачи для дополнительного решения
- •Часть вторая задания для организации самостоятельной работы студентов
- •Дан одномерный элемент. Удалить все отрицательные элементы из массива.
- •Задача 3 (стр.62)
- •Задача 4 (стр. 67)
- •2. Примеры решения типовых задач с использованием одномерных массивов . . . . . .
- •420008, Казань, Университетская, 17 – 319
Дан одномерный элемент. Удалить все отрицательные элементы из массива.
Дан двумерный массив. Вставить массив В перед столбцом, где все элементы неотрицательные.
Дан одномерный элемент. Вставить первый элемент, больше заданного значения С после первого четного элемента.
Дан двумерный массив. Удалить столбец, где все элементы не принадлежат интервалу [1,2].
Ответы на дополнительные задачи
Задача 4 (стр.10)
CLS
INPUT n
DIM A(n)
FOR i = 1 TO n
INPUT A(i)
NEXT i
FOR i = 1 TO n
IF A(i) >= 0 THEN PRINT A(i)
NEXT i
FOR i = 1 TO n
IF A(i) < 0 THEN PRINT A(i)
NEXT i
END
Задача 7 (стр.10)
CLS
INPUT n
DIM A(n, n)
FOR i = 1 TO n
FOR j = 1 TO n
INPUT A(i, j)
NEXT j, i
FOR i = 1 TO n
FOR j = 1 TO n
IF i < j THEN PRINT A(i, j)
NEXT j, i
END
Задача 5 (стр. 13)
CLS
INPUT n
FOR i = 1 TO n
INPUT A(i)
NEXT i
S1 = 0
FOR i = 1 TO n
IF A(i) > 0 THEN S1 = S1 + A(i)
NEXT i
S2 = 0
FOR i = 1 TO n
IF A(i) < 0 THEN S2 = S2 + A(i)
NEXT i
C = S1 / ABS(S2)
PRINT C
END
Задача 10 (стр.14)
CLS
DIM C(11)
FOR i = 1 TO 11
INPUT C(i)
NEXT i
K = 0
FOR i = 1 TO 11 - 1
IF C(i) MOD 3 = 0 AND C(i + 1) MOD 3 = 0 THEN K = K + 1
NEXT i
IF K <> 0 THEN
PRINT "такие пары есть, их количество="; K
ELSE
PRINT "таких пар нет"
END IF
END
Задача 15 (стр. 14)
CLS
INPUT n, m
DIM A(n), B(m)
FOR i = 1 TO n
INPUT A(i)
NEXT i
FOR i = 1 TO m
INPUT B(i)
NEXT i
S1 = 0
FOR i = 1 TO n
S1 = S1 + A(i)
NEXT i
S2 = 0
FOR i = 1 TO m
S2 = S2 + B(i)
NEXT i
IF S1 > S2 THEN SWAP A(3), B(5) ELSE SWAP B(4), A(6)
FOR i = 1 TO n
PRINT A(i)
NEXT i
FOR i = 1 TO m
PRINT B(i)
NEXT i
END
Задача 1 (стр.18)
CLS
INPUT n
DIM A(n)
FOR i = 1 TO n
INPUT A(i)
NEXT i
min = A(1)
FOR i = 2 TO n
IF A(i) < min THEN min = A(i)
NEXT i
K = 1
FOR i = 1 TO n
IF A(i) = min THEN K = K + 1
NEXT i
PRINT K
END
Задача 3 (стр.18)
Задача 15 (стр. 19)
CLS
INPUT n, m
DIM A(n), B(m)
FOR i = 1 TO n
INPUT A(i)
NEXT i
FOR i = 1 TO m
INPUT B(i)
NEXT i
min = A(1)
KA = 1
FOR i = 2 TO n
IF A(i) < min THEN min = A(i): KA = i
NEXT i
max = B(1)
KB = 1
FOR i = 2 TO m
IF B(i) > max THEN max = B(i): KB = i
NEXT i
SA = 0
FOR i = 1 TO n
SA = SA + A(i)
NEXT i
SB = 0
FOR i = 1 TO m
SB = SB + B(i)
NEXT i
IF SA > SB THEN SWAP B(KB), A(KA)
FOR i = 1 TO n
PRINT A(i)
NEXT i
FOR i = 1 TO m
PRINT B(i);
NEXT i
END
Задача 3 (стр.23)
CLS
INPUT n
DIM X(n)
FOR i = 1 TO n
INPUT X(i)
NEXT i
FOR i = 1 TO n
IF X(i) < 0 THEN m = i: EXIT FOR
NEXT i
S = 0
P = 1
IF m <> 0 THEN
FOR i = 1 TO m
P = P * X(i)
S = S + P
NEXT i
ELSE
FOR i = 1 TO n
P = P * X(i)
S = S + P
NEXT i
END IF
PRINT S
END
Задача 14 (стр.24)
CLS
INPUT n
DIM A(n), B(n)
FOR i = 1 TO n
INPUT A(i)
NEXT i
FOR i = 1 TO n
IF A(i) > 0 THEN K1 = i: EXIT FOR
NEXT i
FOR i = 1 TO n
IF A(i) < 0 THEN K2 = i: EXIT FOR
NEXT i
FOR i = 1 TO n
IF A(i) MOD 2 = 0 THEN B(i) = K1 * A(i) ELSE B(i) = K2 * A(i)
NEXT i
FOR i = 1 TO n
PRINT B(i);
NEXT i
END
Задача 3 (стр.28)
CLS
INPUT n
DIM A(n)
FOR i = 1 TO n
INPUT A(i)
NEXT i
K = 0
FOR i = 1 TO n
IF A(i) MOD 2 = 0 THEN K = K + 1
IF K = 2 THEN L = i: EXIT FOR
NEXT i
IF L <> 0 THEN
FOR i = 1 TO n
A(i) = A(i) * A(L)
NEXT i
END IF
FOR i = 1 TO n
PRINT A(i);
NEXT i
END
Задача 3 (стр. 33)
CLS
INPUT n
DIM A(n)
FOR i = 1 TO n
INPUT A(i)
NEXT i
FOR i = 1 TO n
IF A(i) MOD 2 = 0 THEN K1 = i: EXIT FOR
NEXT i
L = 0
FOR i = 1 TO n
IF A(i) MOD 2 = 0 THEN L = L + 1
IF L = 2 THEN K2 = i: EXIT FOR
NEXT i
FOR j = 1 TO K2 - K1 - 1
FOR i = K1 + 1 TO n - 1
A(i) = A(i + 1)
NEXT i
n = n - 1
NEXT j
FOR i = 1 TO n
PRINT A(i);
NEXT i
END
Задача 3 (стр.38)
CLS
INPUT n
DIM A(n + 1)
FOR i = 1 TO n
INPUT A(i)
NEXT i
min = A(1)
L = 1
FOR i = 2 TO n
IF A(i) < min THEN min = A(i): L = i
NEXT i
FOR i = n TO L + 1 STEP -1
A(i + 1) = A(i)
NEXT i
A(L + 1) = 0
n = n + 1
FOR i = 1 TO n
PRINT A(i);
NEXT i
END
Задача 2 (стр. 43)
CLS
INPUT n, m
DIM A(n, m), B(n)
FOR i = 1 TO n
FOR j = 1 TO m
INPUT A(i, j)
NEXT j, i
INPUT A, B
FOR i = 1 TO n
K = 0
FOR j = 1 TO m
IF A(i, j) >= A AND A(i, j) <= B THEN K = K + 1
NEXT j
B(i) = K
NEXT i
FOR i = 1 TO n
PRINT B(i);
NEXT i
END
Задача 7 (стр.43)
CLS
INPUT n, m
DIM A(n, m)
FOR i = 1 TO n
FOR j = 1 TO m
INPUT A(i, j)
NEXT j, i
INPUT A
FOR i = 1 TO n
K = 0
FOR j = 1 TO m
IF A(i, j) MOD 10 = A THEN K = K + 1
NEXT j
IF K <> 0 THEN
PRINT "В строке"; i; "имеются, их количество="; K
ELSE
PRINT "В строке"; i; "нет таких чисел"
END IF
NEXT i
END
Задача 10 (стр.43)
CLS
INPUT n, m
DIM A(n, m) AS INTEGER
FOR i = 1 TO n
FOR j = 1 TO m
INPUT A(i, j)
NEXT j, i
FOR i = 1 TO n
K = 0
FOR j = 1 TO m
IF A(i, j) > 0 THEN K = K + 1
NEXT j
IF K = m THEN PRINT i: EXIT FOR
NEXT i
END
Задача 3 (стр.49)
CLS
INPUT n, m
DIM A(n, m), B(m)
FOR i = 1 TO n
FOR j = 1 TO m
INPUT A(i, j)
NEXT j, i
FOR j = 1 TO m
MAX = A(1, j)
FOR i = 1 TO n
IF A(i, j) > MAX THEN MAX = A(i, j)
NEXT i
B(j) = MAX - A(1, j)
NEXT j
FOR j = 1 TO m
PRINT B(j);
NEXT j
END
Задача 4 (стр.53)
CLS
INPUT n, m
DIM A(n, m)
FOR i = 1 TO n
FOR j = 1 TO m
INPUT A(i, j)
NEXT j, i
FOR j = 1 TO m
FOR i = 1 TO n
IF A(i, j) < 0 THEN K1 = i: EXIT FOR
NEXT i
FOR i = 1 TO n
IF A(i, j) = 0 THEN k2 = i: EXIT FOR
NEXT i
SWAP A(K1, j), A(k2, j)
NEXT j
FOR i = 1 TO n
FOR j = 1 TO m
PRINT A(i, j);
NEXT j
NEXT i
END
Задача 9 (стр.54)
CLS
INPUT n, m
DIM A(n, m), B(n)
FOR i = 1 TO n
FOR j = 1 TO m
INPUT A(i, j)
NEXT j, i
FOR i = 1 TO n
FOR j = 1 TO m
IF A(i, j) MOD 3 = 0 THEN K = A(i, j): EXIT FOR
NEXT j
B(i) = K
NEXT i
max = B(1)
L = 1
FOR i = 2 TO n
IF B(i) > max THEN max = B(i): L = i
NEXT i
PRINT "max="; max, "L="; L
END
Задача 15 (стр.54)
CLS
INPUT n, m
DIM A(n, m), B(m)
FOR i = 1 TO n
FOR j = 1 TO m
INPUT A(i, j)
NEXT j, i
FOR j = 1 TO m
FOR i = 1 TO n
IF A(i, j) MOD 3 = 0 THEN K = A(i, j): EXIT FOR
NEXT i
B(j) = K
IF B(j) <> 0 THEN
FOR i = 1 TO n
A(i, j) = A(i, j) / B(j)
NEXT i
END IF
NEXT j
FOR i = 1 TO n
FOR j = 1 TO m
PRINT A(i, j);
NEXT j
NEXT i
END
Задача 10 (стр.57)
CLS
INPUT n
DIM A(n, n)
FOR i = 1 TO n
FOR j = 1 TO n
INPUT A(i, j)
NEXT j, i
max = A(1, 1)
K1 = 1
K2 = 1
FOR i = 1 TO n
FOR j = 1 TO n
IF (A(i, j) > max AND i = j) OR (A(i, j) > max AND i + j = n + 1) THEN
max = A(i, j)
K1 = i
K2 = j
END IF
NEXT j, i
C = n MOD 2 + 1
SWAP A(K1, K2), A(C, C)
FOR i = 1 TO n
FOR j = 1 TO n
PRINT A(i, j);
NEXT j
NEXT i
END
