Статьи Галерея Форум Чат Файлы HowTo Ссылки Поиск
Текущее время: 02 апр 2020, 03:02




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: VisualBasic-таки vs. GamBAS v.1.0?
СообщениеДобавлено: 14 янв 2005, 19:11 
Заглянувший

У нас с: 25.09.2004
Сообщения: 37
Откуда: Москва
Гм, буду краток до беспредела: Gambas является единственной работоспособной и в целом вполне полноценной альтернативой VBA или VisualStudio-VB.NET. Всё бы замечателно, я так и вовсе просто в восторге от Gambas'а, но... создаётся откровенно неблагоприятное с точки зрения перспектив моего освоения Linux в качестве рабочего места программиста на BASIC'е (я вообще-то программы расчёта аппаратов хим. прома и различных "деталей машин" пишу, так что использование "безграничных возможностей" таких языков, как Kylix(Pascal) или C++ для меня как-то не очень принципиально) из-за одной досадной мелочи: Gambas не умеет создавать матрицы (т.е любые массивы с кол-вом размерностей >1) с динамическими границами. Т.е нельзя, к примеру, создавать в процедуре динамический массив с кол-вом столбцов и строк, задающимися в качестве входных параметров процедуры (пример примитвный и нежизненный, но мысль позволяет передать). Может, я чего не понимаю? Подскажите, как всё-таки обстоит ситуация с поддержкой динамических массивов в Gambas'е, если вы совершенно неожиданным образом сталкивались с subject'ом данного топика

_________________
Мыслите Масштабно!


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 14 янв 2005, 20:05 
Заглянувший

У нас с: 20.12.2004
Сообщения: 29
Откуда: Минск
а массив указателей там тоже создавать нельзя?
Может лучше взять что-нибудь более вменяемое?
С хотябы или Перл какой.
Или надо много работать с гуи? В этом случае вроде tcl/tk советуют.


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 14 янв 2005, 20:19 
Заглянувший

У нас с: 20.12.2004
Сообщения: 29
Откуда: Минск
ещё в MSDN написано:
MSDN писал(а):
To declare a single-dimensional array variable

In your declaration, add one pair of parentheses after the variable name, as in the following example:
Dim MySingleArray() As Integer
To declare a multidimensional array variable

In your declaration, add one pair of parentheses after the variable name and place commas inside the parentheses to separate the dimensions, as in the following example:
Dim My4DArray(,,,) As Short ' Four-dimensional array.
To declare a jagged array variable

In your declaration, add as many pairs of parentheses after the variable name as there are levels of nested arrays, as in the following example:
Dim MyJaggedArray()()() As Byte ' Array of arrays of Byte arrays.

А на http://www.binara.com/gambas-wiki/stati ... ation.html
есть пример
DIM Matrix[3, 3] AS FLOAT
судя по всему это и есть твоя матрица.


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 15 янв 2005, 13:40 
Заглянувший

У нас с: 25.09.2004
Сообщения: 37
Откуда: Москва
В том-то и дело, что размерность матрицы можно задавать только статически, а любая универсальная процедура, работающая с данными, размер которых заранее неизвестен (обработка текстовых строк в алгоритмах поиска образца, к примеру), должна создавать массив динамически (с размерностью, заданной переменными величинами)

_________________
Мыслите Масштабно!


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 17 янв 2005, 18:55 
Заглянувший

У нас с: 20.12.2004
Сообщения: 29
Откуда: Минск
drvtiny, я в общем совсем не спец в области ВБ, но могу посоветовать создать класс, который будет тебе выдавать по двум индексам элемент матрицы (ну и сохранять их). А хранить их можно в однмерном динамическом массиве. Вполне стандартная методика, думаю на ВБ она тоже реализуема.


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 18 янв 2005, 14:56 
Заглянувший

У нас с: 25.09.2004
Сообщения: 37
Откуда: Москва
Да, и если можно, подскажите, где там в Mozille FireFox настраивается кодировка отправляемых сообщений (это я из моей любимой Oper'ы пишу) Предыдущее сообщение очевидно по каким-то загадочным причинам в cp1251 ушло...

_________________
Мыслите Масштабно!


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 18 янв 2005, 15:51 
Заглянувший

У нас с: 20.12.2004
Сообщения: 29
Откуда: Минск
понятия "класс" и "объект" используются для сокрытия реализации и объединения данных и кода, и если этим за тебя занимается язык, то это не значит что ты ими не пользуешься :)


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 20 янв 2005, 17:05 
Заглянувший

У нас с: 25.09.2004
Сообщения: 37
Откуда: Москва
Ну во первых я вообще старюсь избегать применения ООП (проектирование класса отнимает порой больше времени, нежели написани основного кода), а во-вторых я в принципе не понимаю при чём тут ООП - то, что Вы предлагаете реализуется написанием подпрограммы (что-нибудь типа SUB doRetMatrixEl(Vector AS Array[]) ) Меня ведь интересует другое - можно ли всё-таки на Gambas'е создавать переменные-массивы с плавающими границами (как в QuickBASIC'е, к примеру) или нельзя. Если всё-таки нельзя, то я и мучаться, совершая всякие обходные манёвры не буду и продолжу писать код исключительно под DOS и Windows.

_________________
Мыслите Масштабно!


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 20 янв 2005, 18:15 
Заглянувший

У нас с: 20.12.2004
Сообщения: 29
Откуда: Минск
я не использовал gambas и мне негде проверить, но если он совместим с VB на столько, на скольок обещает - до ответ Да. Многомерные динамические массивы там создавать можно.
А наличие класса ещё не означает наличие ООП.


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 26 фев 2005, 21:26 
drvtiny, попробуй создать модуль, а в нем
public matrix(1 to 5,1 to 5) as integer
или
private /-/-/-/-/-/-/

кстати где можно достать gambas?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 27 фев 2005, 00:43 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 06.10.2002
Сообщения: 563
Откуда: Southampton
У нас по силлабусу по компьютингу в колледже изучается VB :ass: (хотя я всё равно на С пишу... :P)

В ВижуалВасике это делается оператором ReDim - смотреть в его сторону


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 06 мар 2005, 13:14 
Короче, покопался я в этой програмке, сразу приступив к массивам, и вот что я придумал.
---------------------------------------------------
# Gambas Form File 1.0
{ Form1 Form
Move(341,114,400,400)
Text = ("")
Border = Window.Fixed
{ Button1 Button
Move(104,112,96,40)
Text = ("Button1")
}
}
---------------------------------------------------
' Gambas module file
PRIVATE matrix[5,5] AS Integer
PUBLIC SUB mass(znach AS Integer, i AS Integer, j AS Integer )
matrix[i,j]=znach
END

PUBLIC FUNCTION pechat(i AS Integer, j AS Integer) AS Integer

form1.znach=matrix[i,j]

END
---------------------------------------------------
' Gambas class file
PUBLIC znach AS Integer

PUBLIC SUB Button1_Click()
DIM I AS Integer
DIM J AS Integer
FOR I=0 TO 4
FOR J=0 TO 4
znach=Int(Rnd*10)+5
module1.mass(znach,I,J)
NEXT
NEXT
FOR I=0 TO 4
FOR J=0 TO 4
module1.pechat(I,J)
PRINT znach;
NEXT
PRINT
NEXT
END
----------------------------------------------------
Если в VB работал, то разберешся, но это не лучшый вариант, я так думаю, не могли они убрать такую нежную штуку.
пользуйся на здаровье, придумоешь иное напиши на мыло.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 08 июн 2005, 18:00 
Заглянувший

У нас с: 20.09.2004
Сообщения: 16
Откуда: Минск
Так тут тоже статичный массив. Где динамика то ?


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
[ All resources are available under GNU GPL ] [ Support ] [ Hosted by DataHata | MyCloud.by ] [ Powered by phpBB® Forum Software © phpBB Group ]

LVEE Winter LVEE Rambler's Top100