3. Массивы в Pascal
Массив — это множество величин, имеющих одно и то же имя и номер по порядку.
В математике подобное называется последовательностью, можно сказать, что последовательность — это одномерный массив. В математической последовательности каждый следующий элемент записывается по определённому правилу (формуле), в одномерном массиве могут быть произвольные числа (либо символы, либо слова).
Размер массива — это количество элементов в массиве.
Размерность массива определяется количеством входящих в него индексов.
Массивы бывают: одномерные, двумерные, многомерные.
Индекс определяет положение элемента в массиве (нумерация начинается с \(1\)).
Рис. \(1\). Индекс и значение массива
Примеры массивов
что такое размерность массива(QBasic).
тут просто задача :нати произведение всех элементов массива,меньших 0. РАЗМЕРНОСТЬ МАССИВА — 10.найти произведение всех елементов массива вещественных чисел, меньших заданного числа. можешь чайнику обьяснить что это обозначает?
Лучший ответ
число индексов для доступа к элементу массива. Например вектор — один индекс a, матрица — два a[i,j], объёмная матрица — три a[i,j,k] . и т. д. Кажется максимальная допустимая размерность равна семи
Нада различать размер массива и размерность. размер — это просто число элементов, а размерность — число индексов. Отрицательным ни то ни другое быть не может
Остальные ответы
у тебя есть массив, в которой всего 10 элементов (это и есть размерность) и есть число, с которым надо сравнивать каждый элемент. ввести переменную для подсчета произведения, начальное значение, которой равно 1.все.
Вот собственно решение твоей задачи
CLS
INPUT «Input Digit»; ch% ‘Ввод задонного числа меньше которого умножаются массивы
DIM a(10) ‘Объявление массива
RANDOMIZE TIMER
p = 1
FOR s% = 1 TO 10
a(s%) = INT(RND * 100) ‘Заполнение всех элементов массива случаеными числами (от 0 до 99)
IF a(s%) = 0 THEN a(s%) = 1 ‘Проверка чтоб элемент массива не был равен нулю
IF ch% > a(s%) THEN p = p * a(s%) ‘Проверка элемента массива на условие меньше заданного числа
Индексация и размерность массива
Добрый день) Есть метод, который получает на вход вектор 100х1 и матрицу 100х100 и рассчитывает расстояние между ними. Также 2 переменные p1 и p2 (w = 100). Переменные введены для того, чтобы указывать размерность массивов. Для первого случая нам необходимо найти расстояние матрицы 80х100, поэтому переменные p1 = 0, p2 = 79. Для второго найти расстояние 20х100, p1 = 80, p2 = 99. Проблема в том, что когда я ищу расстояние для массива 20х100 и дохожу до этой строки
distance[i] = Math.round(Math.sqrt(rezult));
то тут я хочу обратится к 80 елементу, хотя мой массив состоит только с 20) Не могу сообразить как переписать индексацию массива, чтобы выводить еллементы по 20? Думала как-то вроде так:
distance[p2 - p1 - i] = Math.round(Math.sqrt(rezult));
но не работает), не хочется костыли писать) Код метода:
double[] distance(int[] etalonVector, int[][] convertToMatrix, int p1, int p2) < int[] etalon = etalonVector; int [][] matrix = convertToMatrix; double [] distance = new double[p2 - p1 + 1]; for (int i = p1; i < p2; i++)< double rezult = 0; for (int j = 0; j < w; j++)< rezult+= Math.pow(etalon[i] - matrix[i][j], 2); >try < distance[p2 - p1 - i] = Math.round(Math.sqrt(rezult)); >catch(ArrayIndexOutOfBoundsException e) < System.out.println("exception when " + i); >> return distance; > Вывод: exception when 80 exception when 81 exception when 82 exception when 83 exception when 84 exception when 85 exception when 86 exception when 87 exception when 88 exception when 89 exception when 90 exception when 91 exception when 92 exception when 93 exception when 94 exception when 95 exception when 96 exception when 97 exception when 98 exception when 80 exception when 81 exception when 82 exception when 83 exception when 84 exception when 85 exception when 86 exception when 87 exception when 88 exception when 89 exception when 90 exception when 91 exception when 92 exception when 93 exception when 94 exception when 95 exception when 96 exception when 97 exception when 98
Developing.ru
Размерность массива. Массив: как получить количество его размерностей? VBA.
Весь MS Office, программирование на Visual Basic for Applications и MS VB
tolikt Сообщения: 93 Зарегистрирован: 29 окт 2005, 12:33 Откуда: NewVasюbirsk
10символов
Diment Сообщения: 135 Зарегистрирован: 04 сен 2006, 11:39 Откуда: Кисловодск
когда ты объевляешь массив. в твоем случае
dim aArray(10) as String
если размер массива заранее не известен то он объевляется через ReDim, а верхнюю и нижнюю границу массива можно узнать через UBound и LBound соответственно. синтаксис этих ф-й можешь выяснить через справку
shvm Сообщения: 10 Зарегистрирован: 16 апр 2007, 09:32
Функции
UBound(ArrayName[,Dimension])
и
LBound(ArrayName[,Dimension])
tolikt Сообщения: 93 Зарегистрирован: 29 окт 2005, 12:33 Откуда: NewVasюbirsk
Так и думал, что не совсем поняли меня. :-))
Dim aArray(10) ‘количество размерностей — 1
Dim bArray(10, 20) ‘количество размерностей — 2
Dim cArray(10, 20, 15) ‘количество размерностей — 3
Dim fArray(10, 3, 4 To 8, 5, 22, 5 To 10, 6) ‘количество размерностей — 7
Как получить количество размерностей для каждого массива?
Например:
MsgBox ФункцияПодсчётаЧислаРазмерностей(fArray)
должен выдать 7.
ЗЫ: Для чего это надо:
Есть некая подпрограммка для некоей обработки массивов. В неё передаются массивы разных размерностей. И в процессе обработки нужно определить, например, UBound(fArray [,Dimension]) для всех или некоторых размерностей. И тут надо знать это самое [,Dimension].
Что-то типа того:
Dim Z(3, 5, 8, 5 To 12, 4, 3 To 10, 4 To 22)
On Error Resume Next
Err.Clear
i = 1
While Err.Number = 0
B = UBound(Z, i)
i = i + 1
Wend
MsgBox i — 2
‘ выдаёт 7
Sherlock Holms Сообщения: 10 Зарегистрирован: 02 дек 2006, 20:40
Может создать еще один массив, в котором хранить размерности массивов, возможно еще какую-нибудь инфу о массиве, ну имя его, например.
Игорь Акопян Сообщения: 1419 Зарегистрирован: 13 окт 2004, 17:11 Откуда: СПБ Контактная информация:
можно как-то так
[syntax=vb]
Sub qwe()
Dim MyArray(1 To 10, 5 To 15, 10 To 20)
Dim i As Integer, UB As Integer
On Error GoTo Err
i = 0
Do
i = i + 1
UB = UBound(MyArray, i)
Loop Until False
Err:
i = i — 1 ‘ максимальная размерность
End Sub
[/syntax]
Игорь Акопян Сообщения: 1419 Зарегистрирован: 13 окт 2004, 17:11 Откуда: СПБ Контактная информация:
" писал(а): Что-то типа того:
дык так и сделай
tolikt Сообщения: 93 Зарегистрирован: 29 окт 2005, 12:33 Откуда: NewVasюbirsk
Sherlock Holms, dummy писал(а): Может создать еще один массив, в котором хранить размерности массивов, возможно еще какую-нибудь инфу о массиве, ну имя его, например.
В том-то и дело, что заранее о массиве ничего не известно: ни количество размерностей, ни границы его.
Игорь Акопян, Moderator&Куратор писал(а): дык так и сделай
Очень не нравится что-либо с On Error. В некоторых ситуациях (сейчас не могу точно вспомнить, в каких) даже при On Error всё равно выдаётся ошибка и приходится усложнять код для исключения возможной ошибки.
Просто думал, есть какой-то более простой и надёжный способ получить размерность массива.
Пока, естественно, пользуюсь тем, что есть. ибо пока вроде как работает.