Реферат Курсовая Конспект
Методические указания Изучаем тему Массивы: Метод - раздел Образование, Министерство Образования Российской Федерации Казанский Государствен...
|
Министерство образования Российской Федерации
КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ
Нижнекамский химико-технологический институт
Методические указания
Составители: старший преподаватель В.А. Садыкова
старший преподаватель Т.А. Хрузина
Изучаем тему «Массивы»: Метод. указания по информатике/ Казан. гос. технол. ун-т, Нижнекамский хим. - технол. ин-т; Сост.: В.А. Садыкова, Т.А. Хрузина. Казань, 2002. с.
Методические указания предназначены для студентов, изучающих язык программирования QBASIC.
Данные указания содержат все необходимые материалы для организации изучения темы «Массивы». В методических указаниях рассматриваются основные понятия и приемы работы с одномерными и двумерными массивами. Предлагаются практические задания для приобретения навыков работы. Для каждой темы приводятся задачи для дополнительного решения. В методических указаниях приведены примеры программ, демонстрирующие работу основных операторов языка QBASIC. Каждая строка программы снабжена пояснениями. Предлагаются варианты задач для организации самостоятельной работы студентов.
Подготовлены на кафедре математики и информатики НХТИ КГТУ.
Печатаются по решению методической комиссии специальностей технологического профиля.
Рецензенты:
часть первая
Пример
А(1) – первый элемент одномерного массива А;
А(i) – i-й элемент одномерного массива А.
Часто в литературе одномерным массивам соответствует понятие последовательность или вектор.
Пример
A=(-5, 4, 10, 0.5, 1) – пример одномерного массива, состоящего из 5 чисел.
Двумерный массив описывает в программе прямоугольную таблицу или матрицу.
Пример
- пример двумерного массива, состоящего из 3 строк и 3 столбцов.
Элементы матрицы обозначаются переменной с двумя индексами. Первый индекс определяет номер строки, а второй – номер столбца.
Пример
С(I,J) – элемент, находящийся на пересечении i-й строки и j-ого столбца;
C(1,2) – элемент, находящийся на пересечении первой строки и второго столбца.
Пример
DIM A$(15), NAME(20)
Этим оператором одновременно можно:
- определить имя массива;
- определить тип элементов массива;
- определить размер используемого массива;
- определить размерность массива.
Определяется тип элементов массива
DIM A % ( 13 )
Определяется имя массива Определяется размер и размерность
Массива
Рис.2. Структура оператора объявления массива.
На рисунке 2, например, объявлен массив под именем А, представляющий собой последовательность из 13 целых чисел.
Тест
Данные | Результат | |
n=5 | A=(3, 50, -20, 4, 0) | 50, -20, 0 |
Блок-схема алгоритма
Начало
Ввод n
i=1,n
Ввод Ai
i=1,n
+ AiMOD10=0 -
Вывод Ai
Конец
Примеры решения типовых задач
С использованием одномерных массивов
Определение суммы, произведения, количестваэлементов массива
Алгоритм решения
Допускается что начальное значение суммы или количества равно нулю (для произведения за начальное значение принимается 1). Затем циклически производится сложение (перемножение) элементов массива.
Программная реализация
для подсчета суммы | для подсчета произведения |
S = 0 FOR i = 1 TO n S = S + A(i) NEXT i | P = 1 FOR i = 1 TO n P = P * A(i) NEXT i |
пример 3
Дан массив чисел. Найти сумму положительных элементов.
Тест
Данные | Результат | |
N=5 | A=(3, 5, -2, 4, 0) | S=12 |
Блок-схема алгоритма
Начало
Ввод n
i=1,n
Ввод Ai
S=0
i=1,n
+ Ai > 0 -
S = S+Ai
S
Конец
Пример 4
Дан массив целых чисел. Найти количество четных и нечетных значений.
Алгоритм решения
Допускается, что первый элемент массива является наибольшим (наименьшим). Циклически все последующие элементы сравниваются с допустимым. Если текущее значение больше допустимого максимума, то оно принимается за новое наибольшее значение. В противном случае наибольшее значение остается прежним. Этот процесс продолжается до тех пор, пока не будут сравнены все элементы массива.
Пример 5
Дан массив чисел. Поменять местами первый и максимальный элемент массива.
Тест
Данные | Результат | |
N=5 | A=(3, 5, -2, 4, 0) | A=(5, 3, -2, 4, 0) |
Блок-схема алгоритма
Начало
Ввод n
i=1,n
Ввод Ai
max=Ai ; K=1
i=2,n
+ Ai>max -
max=Ai ; K=i
Обмен значений
элементов А1 и АК
i=1,n
Вывод Ai
Конец
Пример 6
Дан массив чисел. Найти сумму положительных элементов до и после максимального значения. Сравнить полученные значения.
Алгоритм решения
Нахождение первого вхождения определенного значения производится в цикле, проверяя каждый раз заданное условие поиска для текущего значения Ai. Если текущее значение удовлетворяет условию, то запоминается номер (индекс) найденного элемента и процесс поиска прекращается.
Пример 7
Дан массив чисел. Найти первый положительный элемент массива.
Тест
Данные | Результат | |
n=5 | A=(-3, 5, -2, 4, 0) | A(2) = 5 |
Исполнение алгоритма
i | Проверка условия | Первый положительный элемент | L (номер первого положительного) |
A(1)>0 (ложь) -3>0 | |||
A(2)>0 (истина) 5>0 | А(2)=5 |
Блок-схема алгоритма
Начало
Ввод n
i=1,n
Ввод Ai
i=1
Ai<=0 ; i<=n
i=i+1
i
Конец
Программа
Способ (с помощью оператора цикла FOR...NEXT)
CLS
INPUT "введи размер массива " ; n
DIM A(n)
PRINT "введи массив"
'Цикл по элементам массива
FOR i = 1 TO n
'Ввод элементов массива0
INPUT A(i)
NEXT i
FOR i = 1 TO n
'Поиск первого положительного элемента
IF A(i) > 0 THEN L = i : EXIT FOR
NEXT i
IF L = 0 THEN
PRINT "положительных элементов нет "
ELSE
PRINT "номер первого положительного элемента =" ; L
PRINT "его значение =" ; A(L)
END IF
ЕND
Способ (с помощью оператора цикла WHILE...WEND)
CLS
INPUT "введи размер массива " ; n
DIM A(n)
PRINT "введи массив"
'Цикл по элементам массива
FOR i = 1 TO n
'Ввод элементов массива
INPUT A(i)
NEXT i
'Присваивание начального значения счетчика цикла
i=1
'Поиск первого положительного элемента
WHILE A(i)<=0 OR i < = n
i = i + 1
WEND
IF I = n + 1 THEN
PRINT "положительных элементов нет "
ELSE
PRINT "номер первого положительного элемента =" ; i
PRINT "его значение =" ; A(i)
END IF
END
Пример 8
Дан массив чисел. Найти номер нулевого элемента после первого четного числа в массиве.
Определение K-го вхождения определенного значения
Алгоритм решения
Нахождение К-го вхождения определенного значения производится по аналогии с предыдущим типом задач, за исключением того, что здесь должен дополнительно присутствовать счетчик вхождения определенного значения.
Пример 9
Дан массив чисел. Найти номер третьего элемента, который принадлежит интервалу (а,b).
Тест
Данные | Результат | |||
N=10 | A=(-3, 5, -2, 4, 0, 7, 2, 8, 3, -2) | a = 1 | b = 5 | A(7) = 2 |
Блок-схема алгоритма
Начало
Ввод n,
a, b
i=1,n
Ввод Ai
K=0 ; i=1
K <3;i<=n
+ Ai>=a -
Ai<=b
L=i ; K=K+1
i=i+1
L
Конец
Программа
Способ (с помощью оператора цикла FOR...NEXT)
CLS
INPUT "введи размер массива " ; n
DIM A(n)
INPUT "введи интервал (a,b) " ; a, b
PRINT "введи массив"
'Цикл по элементам массива
FOR i = 1 TO n
'Ввод элементов массива
INPUT A(i)
NEXT i
'Поиск третьего элемента, принадлежащего (a,b)
FOR i = 1 TO n
IF A(i) >= a AND A(i) <= b THEN L = i : K = K + 1
IF K = 3 THEN EXIT FOR
NEXT i
IF K < 3 THEN
PRINT " третьего элемента, принадлежащего (а,b) нет "
ELSE
PRINT "номер третьего элемента, принадлежащего (а,b)=" ; L
PRINT "его значение =" ; A(L)
END IF
ЕND
Способ (с помощью оператора цикла WHILE...WEND)
CLS
INPUT "введи размер массива " ; n
DIM A(n)
INPUT "введи интервал (a,b) " ; a, b
PRINT "введи массив"
'Цикл по элементам массива
FOR i = 1 TO n
'Ввод элементов массива
INPUT A(i)
NEXT i
'Присваивание начального значения счетчика цикла
i = 1
'Присваивание начального значения счетчика вхождения
K = 0
'Поиск третьего элемента, принадлежащего (a,b)
WHILE K < 3 OR i < = n
IF A(i) >= a AND A(i) <= b THEN L = i : K = K + 1
i = i + 1
WEND
IF K < 3 THEN
PRINT " третьего элемента, принадлежащего (а,b) нет "
ELSE
PRINT "номер третьего элемента, принадлежащего (а,b)=" ; L
PRINT "его значение =" ; A(L)
END IF
END
пример 10
Дан массив чисел. Заменить второй максимальный элемент на 1.
программа
CLS
INPUT "введи размер массива " ; n
DIM A(n)
PRINT "введи массив"
FOR i = 1 TO n
'Ввод элементов массива
INPUT A(i)
NEXT i
'Определение начального значения максимума
MAX = A(1)
'Нахождение наибольшего значения
FOR I = 2 TO n
IF A(i) > MAX THEN MAX = A(i)
NEXT i
'Определение второго по порядку максимального значения и замена его на 1
FOR i = 1 TO n
IF A(i) = MAX THEN L = i : K = K + 1
IF K = 2 THEN A(L) = 1 : EXIT FOR
NEXT i
FOR i = 1 TO n
'Вывод массива на печать
PRINT A(i);
NEXT i
END
Блок-схема алгоритма
Начало
Ввод n
i=1,n
ввод Ai
i=1
Ai<=0 ; i<=n
i=i+1
K=i
i=K,n
Ai = Ai + 1
n=n-1
i=1,n
Вывод Ai
Конец
Пример 12
Дан массив чисел. Удалить все максимальные значения.
Вставка элемента в заданную позицию
Алгоритм решения
Допустим, что необходимо включить число В в массив в К позицию. Для этого необходимо передвинуть все элементы, начиная с К позиции, вправо на одну позицию. Сдвиг должен производиться с конца, в противном случае все элементы с К+1 позиции будут замещены элементом А(К). Затем в К позицию записывается число В.
Программная реализация
FOR i = n TO K STEP –1
A(i+1) = A(i)
NEXT i
A(K) = B
n = n + 1
Пример 13
Дан массив чисел. Вставить во вторую позицию число равное минимальному значению массива
Тест
Данные | Результат | |
n=5 | A=(3, 5, -2, 4, 0) | A=(5, -2, 3, -2, 4, 0) |
Блок-схема алгоритма
Начало
Ввод n
i=1,n
ввод Ai
min=A1
i<=n
Ai<min
min=Ai
i=n,2
Ai+1 = Ai
A2=min
n=n+1
i=1,n
Вывод Ai
Конец
Пример 14
Дан массив чисел. Вставить два числа ноль в начало массива.
Примеры решения типовых задач
С использованием двумерных массивов
Определение суммы, произведения, количества в каждой строке или столбце
Пример 15
Дана матрица чисел. Найти сумму положительных элементов в каждой строке матрицы.
Тест
Данные | Результат | |
n = 3, m = 3 | ||
Блок-схема алгоритма
Начало
Ввод n,m
Ввод массива А
i=1,n
S=0
j=1,m
+ Aij>0 -
S=S+Aij
Bi=S
Вывод
массива В
Конец
Пример 16
Дана матрица чисел. Найти номер столбца, где все элементы четные.
Определение максимального и минимального значения в каждой строке или столбце матрицы
Пример 17
Дана матрица чисел. Поменять местами первый и максимальный элемент массива в каждой строке.
Тест
Данные | Результат | |
n = 3, m = 3 | ||
Блок-схема алгоритма
Начало
Ввод n,m, массив А
i=1,n
max=Ai1 ; K=1
j=2,m
+ Aij>max -
max=Aij ; K=j
Обмен значений
элементов Аi1 и АiК
Вывод матрицы А
Конец
Пример 18
Дан массив чисел. Найти номер столбца, где минимум наименьший.
Определение первого вхождения определенного значения в каждую строку и столбец матрицы
Алгоритм решения
Данный тип задач решается следующим образом: в качестве одномерного массива берется строка (столбец), а затем ведется поиск первого включения элемента аналогично тому способу, который мы описывали ранее. Этот процесс повторяется для каждой строки (столбец).
Пример 19
Дана матрица чисел. Найти первый отрицательный элемент в каждом столбце матрицы.
Тест
Данные | Результат | |
n = 3, m = 3 | ||
Блок-схема алгоритма
Начало
Ввод n,m
Ввод матрицы А
j=1,m
i=1
Aij>=0 ; i<=n
i=i+1
B(j)=A(i,j)
Вывод массива В
Конец
Программа
Способ (используя оператор цикла FOR...NEXT)
CLS
INPUT "введи размер матрицы " ; n, m
DIM A(n, m)
PRINT "введи матрицу"
'Цикл по столбцам матрицы
FOR j = 1 TO m
'Цикл по строкам матрицы
FOR i = 1 TO n
'Ввод элементов массива
INPUT A(i,j)
NEXT i, j
FOR j = 1 TO m
FOR i = 1 TO n
'Поиск первого отрицательного элемента в каждом столбце
IF A(i,j) < 0 THEN L = i : EXIT FOR
NEXT i
B(j) = A(L,j)
NEXT j
FOR j = 1 TO m
PRINT B(j)
NEXT j
ЕND
Способ (с помощью оператора цикла WHILE...WEND)
CLS
INPUT "введи размер матрицы " ; n, m
DIM A(n, m)
PRINT "введи матрицу"
'Цикл по столбцам матрицы
FOR j = 1 TO m
'Цикл по строкам матрицы
FOR i = 1 TO n
'Ввод элементов массива
INPUT A(i,j)
NEXT i, j
FOR j = 1 TO m
'Присваивание начального значения счетчика цикла по строкам
i=1
'Поиск первого положительного элемента по столбцам
WHILE A(i,j)>=0 OR i < = n
i = i + 1
WEND
B(j) = A(i,j)
NEXT j
FOR j = 1 TO m
PRINT B(j)
NEXT j
END
пример 20
Дана матрица чисел. Заменить первый нулевой элемент в каждой строке на 1.
Программа
CLS
INPUT "введи размер матрицы " ; n, m
DIM A(n, m)
PRINT "введи матрицу"
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) = 0 THEN K = j : EXIT FOR
NEXT j
'Замена первого нулевого элемента на 1
A(i,K) = 1
NEXT i
FOR i = 1 TO n
FOR j = 1 TO m
'Вывод матрицы
PRINT A(i,j);
NEXT j
NEXT i
END
Пример 21
Дана матрица чисел. Найти максимальный элемент главной диагонали матрицы.
Тест
Данные | Результат | |
n = 3, m = 3 | MAX = A(3,3)=4 | |
Блок-схема алгоритма
Начало
Ввод n, массив А
max=A11 ; K=1
i=2,n
j=1,n
+ i=j ; Aij>MAX -
MAX=Aij K=i
Вывод MAX
Конец
Удаление строки или столбца из матрицы
Алгоритм решения
Допустим, что требуется удалить строку (столбец) под номером К. Для этого необходимо все строки, следующие за строкой под номером К, переместить на строку вверх. При удалении столбцов – все столбцы, следующие после столбца под номером К, перемещаются влево на один столбец.
Программная реализация
Удаление строки | Удаление столбца |
FOR i = K TO n - 1 FOR j = 1 TO m A(i,j) = A(i + 1,j) NEXT j,i n = n – 1 | FOR j = K TO m – 1 FOR i = 1 TO n A(i,j) = A(i, j + 1) NEXT i,j m = m – 1 |
Пример 22
Дана матрица чисел. Найти минимальный элемент побочной диагонали матрицы. Удалить строку, где находится минимальный элемент.
Тест
Данные | Результат | |
n = 3 | ||
Блок-схема алгоритма
Начало
Ввод n, массив А
min=A1n ; K=1
i=2,n
j=1,n
+ i+j=n+1;Aij<MIN -
MIN=Aij K=i
+ -
i=K,n-1
-
j=1,n
Aij=Ai+1j
Вывод массива Aij
Конец
Пример 23
Дана матрица чисел. Удалить все столбцы, где есть нули.
Программа
CLS
INPUT "введи размер матрицы " ; n,m
DIM A(n, m), B(m)
PRINT "введи матрицу"
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 flag = 1
NEXT i
'Если в столбце нулевой элемент найден, то номер столбца запоминается в массиве В
IF flag = 1 THEN L = L + 1: B(L) = j
flag = 0
NEXT j
C = 0
FOR z = 1 TO L
FOR j = B(z - C) TO m – 1
FOR i = 1 TO n
A(i,j) = A(i, j + 1)
NEXT i,j
C = C + 1
m = m – 1
NEXT z
FOR i = 1 TO n
FOR j = 1 TO m
'Вывод элементов матрицы
PRINT A(i,j);
NEXT j
NEXT i
END
Пример 24
Дан двумерный массив. Вставить в него строку из чисел 100 после строки с номером s.
Тест
Данные | Результат | |
n = 3 s = 1 | ||
Блок-схема алгоритма
Начало
Ввод n,m,s
Ввод матрицы А
i=n,s+1
j=1,m
Ai+1j=Aij
j=1,m
As+1j=100
Вывод массива A
Конец
Пример 25
Дан двумерный массив. Вставить в него строку из нулей после первой из строк, количество нулей в которой равно заданному числу.
Часть вторая
Задания для организации самостоятельной работы студентов
Вариант 1.
1.Дан одномерный массив. Удалить первый четный и первый нечетный элемент до первого отрицательного элемента.
2.Дан двумерный массив. Вставить массив В после строки с минимальным количеством положительных элементов
Вариант 2.
1.Дан одномерный массив. Вставить элемент m1 после первого четного и после первого нечетного элемента.
2.Дан двумерный массив. Удалить строку с минимальным количеством положительных элементов.
Вариант 3.
1.Дан одномерный элемент. Удалить max и min до первого четного элемента.
2.Дан двумерный массив. Вставить массив В после строки с минимальным количеством отрицательных элементов
Вариант 4.
1.Дан одномерный элемент. Вставить элемент m1 до max и до min.
2.Дан двумерный массив. Удалить строку с минимальным количеством отрицательных элементов
Вариант 5.
1.Дан одномерный элемент. Удалить первый отрицательный элемент между min и max.
2.Дан двумерный массив. Вставить массив В после строки с минимальным количеством четных элементов.
Вариант 6.
1.Дан одномерный элемент. Вставить элемент с номером m1 до и после первого отрицательного элемента.
2.Дан двумерный массив. Удалить строку с минимальным количеством четных элементов.
Вариант 7.
1.Дан одномерный элемент. Удалить первый отрицательный и первый положительный элемент после элемента с номером m1
2.Дан двумерный массив. Вставить массив В после строки с минимальной суммой элементов кратных 3.
Вариант 8.
1.Дан одномерный элемент. Вставить первый отрицательный и первый положительный элемент после элемента с номером m1
2.Дан двумерный массив. Удалить строку с минимальной суммой элементов кратных 3.
Вариант 9.
1.Дан одномерный элемент. Удалить min и max после элемента с номером m1.
2.Дан двумерный массив. Вставить массив В после строки с минимальным произведением положительных элементов.
Вариант 10.
1.Дан одномерный элемент. Вставить min и max после элемента с номером m1.
2.Дан двумерный массив. Удалить строку с минимальным произведением положительных элементов.
Вариант 11.
1.Дан одномерный элемент. Удалить max и min между элементами с номером m1 и m2.
2.Дан двумерный массив. Вставить массив В после строки с минимальной суммой элементов кратных 5.
Вариант 12.
1.Дан одномерный элемент. Вставить max и min до первого нулевого элемента.
2.Дан двумерный массив. Удалить строку с минимальной суммой элементов кратных 5.
Вариант 13.
1.Дан одномерный элемент. Удалить первый отрицательный и первый положительный элемент после max.
2.Дан двумерный массив. Вставить массив В после строки, где все элементы нулевые.
Вариант 14.
1.Дан одномерный элемент. Вставить max и min после элементов с номером m1 и m2.
2.Дан двумерный массив. Удалить строку, где все элементы нулевые.
Вариант 15.
1.Дан одномерный элемент. Удалить первый элемент кратный 3 и первый элемент кратный 5 перед min.
2.Дан двумерный массив. Вставить массив В после строки, где все элементы нулевые.
Вариант 16.
1.Дан одномерный элемент. Вставить первый отрицательный и первый положительный элемент после max.
2.Дан двумерный массив. Удалить строку, где все элементы четные.
Вариант 17.
1.Дан одномерный элемент. Удалить первый четный и первый нечетный элемент после min
2.Дан двумерный массив. Вставить массив В после строки, где все элементы четные.
Вариант 18.
1.Дан одномерный элемент. Вставить первый элемент кратный 3 и первый элемент кратный 5 перед min.
2.Дан двумерный массив. Удалить строку, где все элементы положительные.
Вариант 19.
1.Дан одномерный элемент. Удалить первый элемент кратный 3 и первый элемент не кратный 3 перед max.
2.Дан двумерный массив. Вставить массив В после столбца, где все элементы положительные.
Вариант 20.
1.Дан одномерный элемент. Вставить первый четный и первый нечетный элемент после min
Дан двумерный массив. Удалить строку с максимальным количеством четных элементов.
Вариант 21.
Дан одномерный элемент. Удалить max и min между первым четным элементом и первым элементом кратный 3.
Дан двумерный массив. Вставить массив В после столбца с максимальным количеством четных элементов.
Вариант 22.
1.Дан одномерный элемент. Вставить первый элемент кратный 3 и первый элемент некратный 3 перед max.
2.Дан двумерный массив. Удалить строку с максимальной суммой элементов, принадлежавших интервалу [3,5].
Вариант 23.
Дан одномерный элемент. Удалить первый нулевой и max после первого неположительного элемента.
Дан двумерный массив. Вставить массив В после столбца с максимальным количеством четных элементов.
Вариант 24.
Дан одномерный элемент. Вставить max и min до и после первого четного элемента.
2.Дан двумерный массив. Удалить строку с максимальным произведением элементов, кратных числу С.
Вариант 25.
1.Дан одномерный элемент. Удалить первый нулевой элемент между max и min.
2.Дан двумерный массив. Вставить массив В после столбца с максимальной суммой элементов, принадлежавших интервалу [3,5].
Вариант 26.
Дан одномерный элемент. Вставить первый нулевой и max после первого неположительного элемента.
2.Дан двумерный массив. Удалить столбец, где все элементы неотрицательные.
Вариант 27.
1.Дан одномерный элемент. Удалить max и min до первого нулевого элемента.
2.Дан двумерный массив. Вставить массив В перед столбцом с максимальным средним арифметическим четных элементов.
Вариант 28.
1.Дан одномерный элемент. Вставить max и min до элементов с номером m1 и m2.
2.Дан двумерный массив. Удалить столбец, где все элементы принадлежат интервалу [3,5].
Вариант 29.
Дан одномерный элемент. Удалить все отрицательные элементы из массива.
2.Дан двумерный массив. Вставить массив В перед столбцом, где все элементы неотрицательные.
Вариант 30.
1.Дан одномерный элемент. Вставить первый элемент, больше заданного значения С после первого четного элемента.
2.Дан двумерный массив. Удалить столбец, где все элементы не принадлежат интервалу [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
Задача 3 (стр.62)
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 C
FOR i = 1 TO n
S = 0
FOR j = 1 TO m
S = S + A(i, j)
NEXT j
IF S <= C THEN K = i: EXIT FOR
NEXT i
FOR i = K TO n - 1
FOR j = 1 TO m
A(i, j) = A(i + 1, j)
NEXT j, i
n = n - 1
FOR i = 1 TO n
FOR j = 1 TO m
PRINT A(i, j);
NEXT j
NEXT i
END
Задача 4 (стр. 67)
CLS
INPUT n, m
DIM A(n + 1, m + 1)
FOR i = 1 TO n
FOR j = 1 TO m
INPUT A(i, j)
NEXT j, i
min = A(1, 1)
K1 = 1
K2 = 1
FOR i = 1 TO n
FOR j = 1 TO m
IF A(i, j) < min THEN min = A(i, j): K1 = i: K2 = j
NEXT j, i
FOR i = n TO K1 STEP -1
FOR j = 1 TO m
A(i + 1, j) = A(i, j)
NEXT j, i
n = n + 1
FOR j = 1 TO m
A(K1, j) = 0
NEXT j
FOR j = m TO K2 STEP -1
FOR i = 1 TO n
A(i, j + 1) = A(i, j)
NEXT i, j
m = m + 1
FOR i = 1 TO n
A(i, K2) = 0
NEXT i
FOR i = 1 TO n
FOR j = 1 TO m
PRINT A(i, j);
NEXT j
NEXT i
END
ЛИТЕРАТУРА
1.Г. Зельднер. Программируем на языке QBASIC 4.5. –М.: ABF, 1996.
2.О.И. Мельникова, А.Ю. Бонюшкина. Начала программирования на языке QBASIC. – М.: ЭКОМ, 1997.
Содержание
Часть первая
1. Предварительные сведения . . . . .1.1.Объявление массива. . . . . .1.2. Ввод и вывод элементов массива. . . . .
Примеры решения типовых задач с использованием одномерных массивов . . . . . .
Часть вторая
Задания для организации
Самостоятельной работы студентов . . . . .
Ответы на дополнительные задачи . . . . .
Литература . . . . . . . . .
Лицензия № 0243 от 20.01.99 г.
Подписано в печать . . 2001 г. Формат 60´84 1/16
Бумага писчая. Печать RISO. усл. печ. л.
4 уч.-изд. л. Тираж 100 экз. Заказ «С»
Издательство Казанского математического общества
420008, Казань, Университетская, 17 – 319
[В1]
[В2]
[В3]
[В4]
[В5]
[В6]
– Конец работы –
Используемые теги: методические, указания, Изучаем, тему, Массивы, метод0.094
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Методические указания Изучаем тему Массивы: Метод
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов