Новые форматы
| |
12121 | Дата: Четверг, 27.01.2011, 14:26 | Сообщение # 16 |
Программист
Группа: Проверенные
Сообщений: 357
| кажется Keemulator нужна java машина . Можешь другим эмулятором пользоваться.
|
|
| |
Nextik | Дата: Четверг, 27.01.2011, 14:32 | Сообщение # 17 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| Ох, точно, на Windows 2009 была обновлённая версия машины java, вот почему у меня не открывается проект... Ладно с эмулятором я проблему решу, теперь ещё один вопрос. Про функции я знаю только что значение переменной она может передовать другим переменным, но для чего же нужны функции??? Я использую только процедуры в проектах, ну и иногда вставляю функции из других проектов, например функция перевода строк в русские буквы. Что же могут функции?
|
|
| |
12121 | Дата: Четверг, 27.01.2011, 15:10 | Сообщение # 18 |
Программист
Группа: Проверенные
Сообщений: 357
| Функции во всём идентичны процедурам, за исключением того, что они могут возвращать значения. Это из справки. И функции и процедуры нужны что бы легче понимать и отлаживать код. Ведь легче отладить маленький отдельный кусочек. И потом этот кусочек можно много раз использовать.
Сообщение отредактировал 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
| 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 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
| Да в справке конечно очень коротко. Подходит для тех кто знает какой нибудь язык. А если ничего не знаешь лучше начать с другого языка по которому больше информации и который в будущем пригодится. Самые популярные сейчас - 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 Она у меня стоит, но походу очень корявая потому что при её установке комп попросту зависал, так что переустановка думаю должна помочь. А так спасибо за помощь И ещё, где её можно скачать???
Сообщение отредактировал Nextik - Суббота, 29.01.2011, 17:50 |
|
| |
Nextik | Дата: Суббота, 29.01.2011, 19:39 | Сообщение # 26 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| Всё скачал, переустановил, пошла как родненькая . Ну, спасибо за помощь. Возможно скоро придумаю свой формат чего-нибудь и выложу его здесь как моё первое творение.
Сообщение отредактировал 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
| Ну это... Порыскай по форуму.. это ты уж точно найдёшь
|
|
| |
Nextik | Дата: Вторник, 01.02.2011, 13:53 | Сообщение # 29 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| Ладно, постараюсь найти что-нибудь...
|
|
| |
Nextik | Дата: Вторник, 01.02.2011, 20:53 | Сообщение # 30 |
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация:
« 42 »
Статус: Offline
| Люди, проблемка с Keemulator. Он графику всю отображает мягко говоря "хреново", как настроить чтобы он отображал графику так как есть, вот скриншот того как он отображает Если что могу скинуть исходник проекта.
Сообщение отредактировал Nextik - Вторник, 01.02.2011, 20:54 |
|
| |
|