Главная
Регистрация
Вход
Авторизироваться
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 7
  • «
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • »
Модератор форума: ADMIN, Nextik  
Новые форматы
12121Дата: Четверг, 27.01.2011, 14:26 | Сообщение # 16
Программист
Группа: Проверенные
Сообщений: 357
Награды: 4
Репутация: « 290 »
Статус: Offline
кажется Keemulator нужна java машина . Можешь другим эмулятором пользоваться.
 
NextikДата: Четверг, 27.01.2011, 14:32 | Сообщение # 17
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
Ох, точно, на Windows 2009 была обновлённая версия машины java, вот почему у меня не открывается проект...
Ладно с эмулятором я проблему решу, теперь ещё один вопрос.
Про функции я знаю только что значение переменной она может передовать другим переменным, но для чего же нужны функции??? Я использую только процедуры в проектах, ну и иногда вставляю функции из других проектов, например функция перевода строк в русские буквы. Что же могут функции?
 
12121Дата: Четверг, 27.01.2011, 15:10 | Сообщение # 18
Программист
Группа: Проверенные
Сообщений: 357
Награды: 4
Репутация: « 290 »
Статус: Offline
Функции во всём идентичны процедурам, за исключением того, что они могут возвращать значения.
Это из справки.
И функции и процедуры нужны что бы легче понимать и отлаживать код. Ведь легче отладить маленький отдельный кусочек. И потом этот кусочек можно много раз использовать.


Сообщение отредактировал 12121 - Четверг, 27.01.2011, 15:11
 
NextikДата: Четверг, 27.01.2011, 19:48 | Сообщение # 19
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
В общем как я понял функции это то же что и процедуры только функции могут возвращать значения, а процедуры нет. Теперь ещё один маленький вопросик.
Зачем в коде после имени процедуры или функции пишут ещё что-то. Вот пример:
Code
Procedure load_game(v,w:integer);
//код процедуры
end;
 
12121Дата: Пятница, 28.01.2011, 11:25 | Сообщение # 20
Программист
Группа: Проверенные
Сообщений: 357
Награды: 4
Репутация: « 290 »
Статус: Offline
v,w:integer ? Это данные передаваемые в функцию.
И все это есть в справке. Читай.
 
NextikДата: Пятница, 28.01.2011, 13:39 | Сообщение # 21
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
Следующие примеры показывают объявление двух процедур; одна из них не имеет аргументов, а другая процедура получает 2 аргумента:
Code

      program procedureSample;     
      var n: integer; { эта переменная видима в главном      
                        блоке программы и во всех      
                        процедурах и функциях }     

      procedure noArgs;     
      begin     
        n := 5;     
      end;     

      procedure twoArgs(a: integer; b: string);     
      var len: integer; { эта переменная доступна только     
                          внутри процедуры и она     
                          переинициализируется при каждом     
                          вызове процедуры }     
      begin     
        len := length(b);     
        n := a + len;     
      end;     

      begin     
        noArgs; { вызываем первую процедуру }     
        twoArgs(n, 'Some string'); { вызываем вторую процедуру }     
      end.

Я в справке нашёл тока это, я бы не задавал вопрос если бы нашёл в справке нужную информацию.
А вот из учебника VB 6.0 я нашёл то что мне нужно, посмотрите:

Рассмотрим пример процедуры, которая будет выводить на экран сообщение "Hello World!":

Code
Private Sub ShowMessage()
        MsgBox "Hello World!"
End Sub

Что можно сказать об этой процедуре? Процедура имеет тип Private, т.е. доступна будет только из кода именно той формы (модуля), где она объявлена (вспомните типы объявления переменных). Данная процедура не содержит параметров, о чём нам говорят пустые круглые скобки.. Назначение - вывести сообщение Hello World на экран.

MsgBox - это встроенная функция Visual Basic, которая выводит на экран окно с сообщением, заданным в качестве параметра. Остальные параметры необязательны (их всего 5). Подробнее о функции MsgBox можно прочитать здесь.

Как вызвать процедуру? Для этого достаточно написать имя процедуры:

Code
ShowMessage

А можно и так:

Code
Call ShowMessage' более наглядные вариант

Оба этих варианта абсолютно эквивалентны. Но для вызова процедур всё-таки лучше использовать второй вариант.

Теперь давайте изменим эту процедуру и добавим к ней параметр, значение которого будет выводиться функцией MsgBox (вместо Hello World):

Code
Private Sub ShowMessage(message As String)
        MsgBox message
End Sub

Теперь при вызове процедуры необходимо указать параметр:

Code
Call ShowMessage ("Наша первая процедура")

Результатом выполнения такой процедуры будет вывод на экран сообщения: "Наша первая процедура". Скобки, окружаемые параметр обязательны, если перед именем процедуры стоит оператор Call. Если Call отсутствует, то скобки ставить не нужно.

Давайте рассмотрим подробнее что же происходит при вызове нашей процедуры. Встретив строку с вызовом нашей процедуры Visual Basic проверяет, нужны ли данной процедуре параметры. Убедившись в том, что нужны (параметр message) он передает в процедуру строку "Наша первая процедура". Т.е. фактически в процедуре происходит присвоение переменной message значения "Наша первая процедура". Ну а далее происходит вызов функции MsgBox и вывод сообщения на экран. Если количество параметров, передаваемых при вызове процедуры не совпадёт с количеством параметров в объявлении процедуры - Visual Basic сгенерирует ошибку

Вот тут наглядно написано всё о процедурах. А в нашей справке этого не ссыщешь, а жаль... Было бы намного легче понимать. Там ещё и про функции всё написано... Не учебник а мечта программиста на MidletPascal...

Сообщение отредактировал Nextik - Пятница, 28.01.2011, 13:49
 
12121Дата: Пятница, 28.01.2011, 15:06 | Сообщение # 22
Программист
Группа: Проверенные
Сообщений: 357
Награды: 4
Репутация: « 290 »
Статус: Offline
Да в справке конечно очень коротко. Подходит для тех кто знает какой нибудь язык. А если ничего не знаешь лучше начать с другого языка по которому больше информации и который в будущем пригодится. Самые популярные сейчас - Java, C#, C++. Наверно лучше с них и начинать.
А расписывать подробно MidletPascal только из за того что кто то решил учить его как первый язык никто не будет.
Спрашивай что непонятно постараюсь ответить подробнее.


Сообщение отредактировал 12121 - Пятница, 28.01.2011, 15:08
 
NextikДата: Пятница, 28.01.2011, 21:15 | Сообщение # 23
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
Насчёт модулей всё понятно, раньше я не понимал как работать со своими типами данных, когда прочитал учебник VB 6.0 получил общее представление о них и думал, что смогу ими пользоваться, но не тут то было... Столкнулся с некоторыми трудностями, вот что было написано в учебнике:

Записи

Те, кто программировал на других языках программирования (таких, как C и Pascal), наверняка сталкивались с понятием структура ©, и записью (Record в паскале). В Visual Basic аналогом структуры является запись. Запись - это новый, определяемый программистом тип данных, который состоит из одной и более переменных внутри. Давайте рассмотрим это на примере. Например, необходимо в программе хранить массив студентов. Причём каждый студент имеет свои характеристики: ФИО, Возраст, Ниличие Грамот. Конечно, для хранения таких данных можно использовать, например, массив, имеющий две размерности. Но это не лучший вариант. Лучше всего здесь подходят Записи! Затем из записи можно будет сделать массив! Чтобы определить запись в программе нужно использовать зарезервированное слово Type. Заканчивается запись словами End Type:

Code
Private Type Student ' вместо Private могло быть и Public
     FIO As String
     Age As Byte
     HasGramot As Boolean
End Type

Заметьте, что Dim перед именем переменной указывать не нужно. Итак, мы определили запись в программе. Теперь можно объявлять переменные, имеющий тип - Student (т.е. наша новая запись). Например:

Code
Dim newStud As Student

Слово Student синим выделяться не будет, т.к. синию подсветку имеют только зарезервированные слова, встоенные в Visual Basic

Теперь, к полям записи можно обращаться при помощи точки:

Code
newStud.FIO = "Василий Васильевич Пупкин"
newStud.Age = 19
newStud.HasGramot = False

Всё как в паскале. (ну, и почти как в С).

Visual Basic предоставляет возможность не указывать каждый раз имя переменной типа запись, при обращении к её элементам. Это особенно полезно, когда запись имеет много внутренних членов. Для этого есть слово With:

Code
With newStud
     .FIO = "Бабай Бабаевич Бабаев"
     .Age = 20
     .HasGramot = True
End With

Настало время объявить массив элементов типа запись (точнее типа Student):

Code
Dim myStudArray (20) As Student

Здесь мы объявили массив из 21 студента. Теперь можно обращаться к элементам массива точно так же, как мы это делали раньше:

Code
myStudArray(0).FIO = "Билл Гейтс Пупкинович"

Как видите всё гениальное просто! Особенно в Visual Basic! :)

Сейчас напишу свой тип данных, проверь меня если что:

Code
Program nextik;
type pixel=record  
posX,posY:integer; //Позиция
green,blue,red:integer;//Цвет пикселя
end;  
//Объявляю свой тип данных
var
star:pixel;
//Процедура задания параметров в переменной
Procedure load_parametres;
begin
star.posX:=10;
star.posY:=12;
star.green:=200;
star.blue:=150;
star.red:=30;
end;
//Основной код программы
Begin
load_parametres;
//остальной код и всё такое...
end.

Теперь вопрос:
Как мне нарисовать этот пиксель? В примере желательно.

 
lgorДата: Суббота, 29.01.2011, 16:53 | Сообщение # 24
Группа: Удаленные





Чтобы работал Keemulator, надо скачать и установить java platform se binary. Бесплатная, весит около 10 Мб.
По вопросам c midletpascal прекрасно подходит литература по обычному паскалю.

>>Как мне нарисовать этот пиксель? В примере желательно.

Я бы написал процедуру
procedure drawpixel(a:pixel);
begin
setcolor(a.red,a.green,a.blue);
plot(a.posx,a.posy);
end;

В программе не забыть repaint

 
NextikДата: Суббота, 29.01.2011, 17:39 | Сообщение # 25
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
Quote (lgor)
В программе не забыть repaint

Это и так понятно.
Quote (lgor)
Чтобы работал Keemulator, надо скачать и установить java platform se binary

Она у меня стоит, но походу очень корявая потому что при её установке комп попросту зависал, так что переустановка думаю должна помочь.
А так спасибо за помощь smile И ещё, где её можно скачать???


Сообщение отредактировал Nextik - Суббота, 29.01.2011, 17:50
 
NextikДата: Суббота, 29.01.2011, 19:39 | Сообщение # 26
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
Всё скачал, переустановил, пошла как родненькая smile . Ну, спасибо за помощь. Возможно скоро придумаю свой формат чего-нибудь smile и выложу его здесь как моё первое творение.

Сообщение отредактировал Nextik - Суббота, 29.01.2011, 19:49
 
NextikДата: Понедельник, 31.01.2011, 08:39 | Сообщение # 27
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
Снова нужна помощь... Люди, объясните как сделать карту, которая будет читаться из ресурса? Или подскажите в каком месте искать...

Сообщение отредактировал Nextik - Понедельник, 31.01.2011, 17:46
 
IvanNesДата: Вторник, 01.02.2011, 10:33 | Сообщение # 28
Середняк
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: « 7 »
Статус: Offline
Ну это... Порыскай по форуму.. это ты уж точно найдёшь biggrin


 
NextikДата: Вторник, 01.02.2011, 13:53 | Сообщение # 29
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
Ладно, постараюсь найти что-нибудь...
 
NextikДата: Вторник, 01.02.2011, 20:53 | Сообщение # 30
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
Люди, проблемка с Keemulator. Он графику всю отображает мягко говоря "хреново", как настроить чтобы он отображал графику так как есть, вот скриншот того как он отображает

Если что могу скинуть исходник проекта.
Прикрепления: 8991767.png (30.2 Kb)


Сообщение отредактировал Nextik - Вторник, 01.02.2011, 20:54
 
  • Страница 2 из 7
  • «
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • »
Поиск: