4 массива в VB

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Veronica
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 16.05.2006 (Вт) 11:17

4 массива в VB

Сообщение Veronica » 16.05.2006 (Вт) 14:53

Надо создать 3 массива
-с ростом
-с фамилией
-с именем

Создать 4ый массив ,который состоит из этих 3х , отсортированных по алфавиту имени.

Подсчитать кол-во элементов в массиве.

Помогите плизз!!

Объясните хоть как делать.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 16.05.2006 (Вт) 15:09

Alibek, не закрывай тему.
Может действительно, помочь девчонке? Может она горит желанием научиться VB?
А я все практикую лечение травами...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.05.2006 (Вт) 15:16

Создаешь три массива нужного тебе размера:
Код: Выделить всё
Dim aHeight(1 To 10) As Single, aLastName(1 To 10) As String, aFirstName(1 To 10) As String

(либо Dim aHeight() и затем ReDim aHeight(1 To 10))

Заполняешь их.

Создаешь четвертый массив
Код: Выделить всё
Dim aResult(1 To 10) As String

, состоящий из элементов
Код: Выделить всё
aResult(i) = aLastName(i) & " " & aFirstName(i) & " - " & Format$(aHeight(i), "0.0")


И сортируешь его. Примеры и алгоритмы сортировок есть и на этом форуме, и на других сайтах.
Lasciate ogni speranza, voi ch'entrate.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 16.05.2006 (Вт) 15:19

Veronica

Давай попробуем объяснить тебе в двух словах как это сделать...

1. Массив создается так: dim arr_name (1 to N) as string, где arr_name - имя массива, N - размерность (кажись тебе надо было ее определить?). Слово string означает что ячейки в массиве будут иметь строковый тип. Для массива с ростом следует поставить integer (хотя бы).
2. Обращаться к элементу массива так: arr_name(i) = "наша строка". Тут i означает индекс массива, значение в кавычках - то, что мы пишем в нужную ячейку.

Итак, этого пока достаточно чтоб написать хоть что-то. Если я увижу, что ты стараешься - помогу дальше...
А я все практикую лечение травами...

Veronica
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 16.05.2006 (Вт) 11:17

Сообщение Veronica » 16.05.2006 (Вт) 15:33

Использовать надо ListBox или TextBox?

Veronica
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 16.05.2006 (Вт) 11:17

Сообщение Veronica » 16.05.2006 (Вт) 15:45

Написала до

Dim name(1 To 5) As String, surname(1 To 5) As String, Height(1 To 5) As Integer

Name(0)= "Иван" Print

и вылезла ошибка Compile error , Expexted :AS

Как исправить ?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.05.2006 (Вт) 15:48

Взять книгу "VB для чайников" и прочитать страниц десять.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.05.2006 (Вт) 15:49

Во-первых, Name(1), а не Name(0).
Во-вторых, Name является зарезерированным ключевым словом, его нельзя использовать.
Lasciate ogni speranza, voi ch'entrate.

Veronica
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 16.05.2006 (Вт) 11:17

Сообщение Veronica » 16.05.2006 (Вт) 15:57

И опять ошибка -

Invalid outside procedure

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.05.2006 (Вт) 16:00

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 16.05.2006 (Вт) 16:05

Использовать надо ListBox или TextBox?

Для чего?
И опять ошибка

Могу взглянуть на полный код получившегося модуля?
А я все практикую лечение травами...

Veronica
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 16.05.2006 (Вт) 11:17

Сообщение Veronica » 16.05.2006 (Вт) 16:07

Dim aName(1 To 5) As String, aSurname(1 To 5) As String, aHeight(1 To 5) As Integer

aName(1) = "Иван"
aSurname(1) = "Петров"
aHeight(1) = "178"

....пока все.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 16.05.2006 (Вт) 16:10

Дело в том, что все действа нужно выполнять в процедурах.

Положи на форму кнопку, щелкни по ней два раза - увидишь что-то вроде
Код: Выделить всё
private sub command1_click()
end sub
Вот в теле процедуры и пиши код...
А я все практикую лечение травами...

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 16.05.2006 (Вт) 16:14

aHeight(1) = "178"

Помнишь я говорил что в кавычках записываются строки? А массив aHeight у тебя какого типа?
А я все практикую лечение травами...

Veronica
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 16.05.2006 (Вт) 11:17

Сообщение Veronica » 16.05.2006 (Вт) 16:15

В теле процедуры поставила , но по нажатию кнопки(в режиме запуска) ничего не происходит.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 16.05.2006 (Вт) 16:19

Конечно. Ты же просто заполняешь массивы, но действий, оповещающих пользователя о чем либо ты не делаешь. Попробуй вставить после всех своих действий в процедуру такой код
Код: Выделить всё
msgbox "Массивы заполнены!"
А я все практикую лечение травами...

Veronica
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 16.05.2006 (Вт) 11:17

Сообщение Veronica » 16.05.2006 (Вт) 16:19

Twister писал(а):
aHeight(1) = "178"

Помнишь я говорил что в кавычках записываются строки? А массив aHeight у тебя какого типа?


Integer стоит.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 16.05.2006 (Вт) 16:21

Integer стоит.
Чуть-чуть шевели серыми клеточками. :wink: Кавычки убрать.
А я все практикую лечение травами...

Veronica
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 16.05.2006 (Вт) 11:17

Сообщение Veronica » 16.05.2006 (Вт) 16:23

msgbox "Массивы заполнены!" работает , но хотелось ,что бы и в Listbox'ах отображалась информация
aName(1) = "Иван"
aSurname(1) = "Петров"
aHeight(1) = "178"

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 16.05.2006 (Вт) 16:27

Кинь на форму нужное кол-во листбоксов. Заполняем их в цикле (хотя можно не использовать массивы, а сразу заполнить их):
Код: Выделить всё
list1.clear
for i=1 to 10
list1.Add arr_name(i)
next
Расскажи-ка мне, что ты поняла? Что этот код делает?
А я все практикую лечение травами...

Veronica
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 16.05.2006 (Вт) 11:17

Сообщение Veronica » 16.05.2006 (Вт) 16:30

Выводит в листбокс информацию из массива , наверно.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 16.05.2006 (Вт) 16:33

:shock: Да, но я расчитывал что ты поняла как он это делает. С английским у тебя как?
А я все практикую лечение травами...

Veronica
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 16.05.2006 (Вт) 11:17

Сообщение Veronica » 16.05.2006 (Вт) 16:35

хорошо....

Private Sub Command1_Click()
Dim aName(1 To 5) As String, aSurname(1 To 5) As String, aHeight(1 To 5) As Integer

aName(1) = "Èâàí"
aSurname(1) = "Ïåòðîâ"
aHeight(1) = 178

List1.Clear
For i = 1 To 5
List1.Add aName(1)
Next

End Sub

Так ?

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 16.05.2006 (Вт) 16:38

Ну ошибок если не выдает, значит все ок. Заполняй остальные элементы...
А я все практикую лечение травами...

Veronica
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 16.05.2006 (Вт) 11:17

Сообщение Veronica » 16.05.2006 (Вт) 16:40

Выделяет Private Sub Command1_Click()

и пишет при старте - Method or data member not found

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 16.05.2006 (Вт) 16:47

У... прости. В торопях не заметил, надо .AddItem вместо .Add
Последний раз редактировалось Twister 16.05.2006 (Вт) 16:53, всего редактировалось 1 раз.
А я все практикую лечение травами...

Veronica
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 16.05.2006 (Вт) 11:17

Сообщение Veronica » 16.05.2006 (Вт) 16:49

Еще я исправила
For i = 1 To 1

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 16.05.2006 (Вт) 16:56

For i = 1 To 1
Эта строчка означает, что цикл будет крутиться и увеличивать переменную i от единицы до последнего числа. Если элементов в массиве 10, то и ставить нужно 10.
А я все практикую лечение травами...

Veronica
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 16.05.2006 (Вт) 11:17

Сообщение Veronica » 16.05.2006 (Вт) 17:00

1)...тогда данные несколько раз копируются ((
2)Как внедрить
Dim aResult(1 To 10) As String
aResult(i) = aName(i) & " " & aSurname(i) & " - " & Format$(aHeight(i), "0.0") в четвертый листбокс ?

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 16.05.2006 (Вт) 17:04

тогда данные несколько раз копируются
Ты заполнила все массивы до конца?
Как внедрить в четвертый листбокс?
Заполнить массив в цикле (ты привела правильный код) и в цикле (в этом же) добавить...
А я все практикую лечение травами...

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20

    TopList