Программирование на Basic Массивы
Массивы Массив – это набор однотипных данных (чисел, символов, слов), которые хранятся в одном месте памяти компьютера в упорядоченных по номерам ячейках. Массив имеет: - Имя - Тип (%- целочисленный, $ - символьный, без знака – вещественный) - Размерность – количество элементов - Индекс – номер элемента Каждый элемент массива в общем виде описывается как В(I), где В - имя массива I – номер или индекс элемента массива
Массивом называется упорядоченная совокупность однородных величин, обозначенных каждая одним и тем же именем с различными целочисленными индексами, изменяющимися по порядку. Массив - это набор однородных данных (чисел, символов, слов). Основные определения Одномерный массив Двумерный массив Трехмерный массив
Если адрес элемента массива определяется одним индексом, то такой массив называется одномерным. Массивы бывают и многомерными. Примеры: Трёхмерный массив (координата точки в пространстве) Одномерный массив (координата точки на числовой прямой) Двумерный массив (координата точки на плоскости)
Одномерный массив Одномерный массив можно рассматривать как список однотипных элементов. Например, список фамилий студентов группы – одномерный массив, численные данные о средней температуре за месяц - одномерный массив, буквы русского алфавита - одномерный массив. В Бейсике элементы массива располагаются в последовательных ячейках памяти. Это означает, что массив занимает непрерывную область памяти. Прежде чем мы сможем обращаться к массиву из программы, надо указать, сколько памяти необходимо для размещения массива. Всему массиву, определяется объемом памяти, занимаемым одним элементом массива умноженным на число элементов в массиве. Поэтому нужно указать максимальное число элементов массива. В Бейсике фирмы Microsoft описание размера массива делается с помощью оператора DIM, который имеет следующий синтаксис: DIM имя массива (максимальное число элементов массива) Например: DIM S(5) S имя массива, 5- максимальное число элементов массива, DIM M(25) M имя массива, 25- максимальное число элементов массива.
1 способ (заполнение массива с помощью оператора присваивания) Присваивание значений элементам массива CLS 10 DIM S(5) в этой строке объявлен массив с именем S и пятью элементами 11 S(1)=53 12 S(2)=31 13 S(3)=-32 в этих строках элементам массива присваиваются значения 14 S(4)=44 15 S(5)= PRINT "S(1) равно " ; S(5) 17 PRINT "S(2) равно " ; S(4) 18 PRINT "S(3) равно " ; S(3) в этих строках на экран последовательно 19 PRINT "S(4) равно " ; S(2) выводятся значения элементов массива 20 PRINT "S(5) равно " ; S(1) Результаты работы этой программы будут выглядеть так:
2 способ (заполнение массива с помощью оператора ввода Присваивание значений элементам массива CLS INPUT Введите количество элементов массива; N DIM A(N) FOR I =1 TO N PRINT Введите; i ; элемент массива INPUT A(I) NEXT I FOR I=1 TO N PRINT A(I) NEXT I Результаты работы программы для 3-х элементов будут выглядеть так: Введите 1 элемент массива ? 23 Введите 2 элемент массива ? -54 Введите 3 элемент массива ?
3 способ (заполнение массива с помощью оператора DATA ) Присваивание значений элементам массива CLS DATA 23, 13, 98, -8, 7 DIM M(5) FOR I=1 TO 5 READ M(I) PRINT M(I) NEXT I Результаты работы этой программы будут выглядеть так:
4 способ (заполнение массива с помощью генератора случайных чисел) Присваивание значений элементам массива DIM S(IOO) FOR i=1 ТО 100 S(i) = 1+INT(1000*RND) NEXT i
Перед тем как начать работать с массивом, нужно зарезервировать для него место в памяти. Для этого имеется оператор DIM (от английского слова dimention –объём, величина, размер, измерить) Пример. DIM А(10) Обычно говорят, что зарезервировано место под 10 элементов массива А, однако в самом деле резервируется 11, т.к. нумерация ячеек начинается с 0. Но так как нам привычнее начинать считать с 1, то первая («нулевая») ячейка просто-напросто не используется. Способы заполнения одномерных массивов Непосредственное С клавиатуры Заранее известными При помощи присваивание значениями стандартных функций значений элементам DIM D(3) INPUT N =, N DATA 23, -13, 9.8, 77, 45 RANDOMIZE TIMER D(1)=12.6 DIM M(N) DIM M(5) INPUT «N=»; N D(2)=5.96 FOR I = 1 TO N FOR I = 1 TO 5 DIM M(N) D(3)=98 INPUT M(I) READ M(I) FOR I = 1 TO N NEXT I NEXT I M(I) = INT(RND(1)*100) NEXT I Подведём итог
Задачи 1. Подсчитайте произведение элементов массива. 2. Вычислите значения функции Y=X*X для X=2,4,6,8,...,36 и разместите их в одномерном массиве Y. 3. Измените порядок значений элементов массива на обратный. 4. "Сожмите" числовой массив, выбросив из него отрицательные числа. 5. Задан массив и некоторое число. Найти, на каком месте расположено число в массиве. 6. Напечатайте первую сотню простых чисел. 7. Поверните квадратный массив на 90, 180, 270 градусов по часовой стрелке. 8. Выясните, есть ли одинаковые числа в одномерном массиве, в двумерном массиве. 9. Подсчитайте количество уникальных чисел в массиве. 10. Задан массив чисел. Замените каждое число суммой предыдущих: а) включая заменяемое; б) исключая заменяемое.
Задачи 11. Задан одномерный массив из 10 элементов. Увеличить положительные числа в 3 раза, уменьшить отрицательные в 2 раза. 12. Задан массив из N элементов. Определить максимальный элемент. 13. Определить сумму элементов с четным индексом. 14. Определить y, если x=x1,x2,x3...x10: y=2*x2-4*x+sin2x 15. Заданы два одномерных массива. Напечатать все элементы массивов, полученных путем суммирования и вычитания элементов исходных массивов с одинаковыми индексами. 16. Заполнить данную таблицу элементами, значения которых равны их удвоенному порядковому номеру. 17. Составить программу замены отрицательных элементов таблицы их квадратами. 18. Написать программу удвоения каждого элемента одномерного массива. 19. Написать программу переписи элементов одного одномерного массива в другой. 20. Дана целочисленная таблица. Изменить все элементы этой таблицы на противоположные по знаку.
Задачи 21. Найти заданный элемент в одномерном массиве. Напечатать индекс найденного элемента. 22. Написать программу для определения сколько раз число 10 встречается среди элементов одномерного массива. 23. Найдите количество элементов этой таблицы, больших среднего арифметического всех ее элементов. 24. Найти наименьший элемент одномерного массива. 25. Найти наибольший элемент одномерного массива. 26. Найти наименьший элемент двумерного массива. 27. Найти наибольший элемент двумерного массива.
1. Подсчитайте произведение элементов массива. INPUT размер массива;N DIM S(N) P=1 FOR i=1 ТО N S(i) = INT(RND(1)*10) P=P*S(i) NEXT i PRINT Массив FOR i=1 ТО N PRINT S(i); NEXT I PRINT Произведение элементов;P END
2. Вычислите значения функции Y=X*X для X=2,4,6,8,...,36 и разместите их в одномерном массиве Y. DIM Y(18) FOR x=2 ТО 36 STEP 2 i=x/2 Y(i) = X*X NEXT x PRINT Массив FOR i=1 ТО 18 PRINT Y(i); NEXT I END
3. Измените порядок значений элементов массива на обратный.
4. "Сожмите" числовой массив, выбросив из него отрицательные числа. INPUT размер массива; N DIM A(N) K=0 FOR i=1 TO N PRINT введите;i;элемент массива INPUT A(i) IF A(i)
5. Задан массив и некоторое число. Найти, на каком месте расположено число в массиве. INPUT число;C INPUT размер массива; N DIM A(N) PRINT массив FOR i=1 TO N A(i)=INT(RND(1)*100) IF A(i)=C THEN K=I PRINT A(i); NEXT i PRINT элемент массива равный числу;С;расположен на;K;месте
6. Напечатайте первую сотню простых чисел. DIM A(100)
7. Поверните квадратный массив на 90, 180, 270 градусов по часовой стрелке.
8. Выясните, есть ли одинаковые числа в одномерном массиве, в двумерном массиве.
9. Подсчитайте количество уникальных чисел в массиве.
10. Задан массив чисел. Замените каждое число суммой предыдущих: а) включая заменяемое; б) исключая заменяемое.
14. Определить y, если x=x1,x2,x3...x10: y=2*x2-4*x+sin2x DIM X(10),Y(10) FOR i=1 TO 10 X(i)=INT(RND(1)*10) Y(i)=2*X(i)^2-4*X(i)+SIN(X(i))^2 ?X(i);Y(i) NEXT i END
17. Составить программу замены отрицательных элементов таблицы их квадратами. INPUT N,M DIM A(N,M) FOR i=1 TO N FOR j=1 TO M A(i,j)= INT(RND(1)*10)*(-1)^(INT(RND(1)*10) ?A(i,j); IF A(i,j)
18. Написать программу удвоения каждого элемента одномерного массива. INPUT размер массива; N DIM A(N) PRINT массив; удвоенный массив FOR i=1 TO N A(i)=INT(RND(1)*100) PRINT A(i),A(i)*2 NEXT i
22. Написать программу для определения сколько раз число 10 встречается среди элементов одномерного массива. INPUT размер массива; N DIM A(N) K=0 FOR i=1 TO N A(i)=INT(RND(1)*100) IF A(i)=10 THEN K=K+1 PRINT A(i); NEXT I PRINT количество элементов равных 10;K END
24. Найти наименьший элемент одномерного массива. INPUT N DIM A(N) FOR i=1 TO N A(i)= INT(RND(1)*10) NEXT i K=1 MIN=A(1) FOR i=2 TO N IF A(i)