forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Примеры простейших программ (http://forum.boolean.name/showthread.php?t=2509)

alien 25.01.2007 15:49

Примеры простейших программ
 
Приветствую всех участников этого форума !!!
Сюда занесли поисковики при попытке наити описание работы с
программой Midlet Pascal 2.02 . Русская справка очень скудна а примеры
что я встречал либо очень сложны либо направлены на помощь по созданию игр где не стоит задача ввода \ вывода данных.
Цель которой я задался ,а именно попробовать написать нормальный калькулятор для своего допотопного sie MC60 как раз при первой же пробе уткнулась в проблему вывода цифровой информации.
Перечитывая этот форум наткнулся на похожую тему,однако мысль в ней не была закончена и я не смог всего усвоить.Поэтому прошу помощи
в этой теме .К примеру как будет выглядеть простейшая программа извлечения квадратного корня из введенного числа ? Думаю исходник выложенный тут многое прояснит для начинающих и меня в том числе.
Заранее благодарен !!!

ARV 25.01.2007 16:51

Re: Примеры простейших программ
 
вот так можно увидеть результат извлечения корня из 2:
Код:

begin
 DrawText('корень из 2 =',10,10);
 DrawText(''+sqrt(2),10,30);
 delay(5000);
end.

но по-моему, начинающему легче от этого не станет :)
Не понимаю, в чем проблема при выводе цифровой информации?

ARV 25.01.2007 16:58

Re: Примеры простейших программ
 
Вложений: 2
А вот для начинающих думаю будет удобно (и полезно) использовать мой модуль, который эмулирует некое подобие текстового дисплея на экране телефона. Мне этот модуль помогает исследовать всякие алгоритмы... Комментарии в модуле описывают все его функции.
Основной плюс: весь вывод идет как в старом добром паскале - через Write и Writeln, строки переносятся при достижении края экрана, никакого Repaint делать не надо. То есть просто пишем
Код:

begin
  writeln('Hello, Word!');
  waitanykey;
end.

и наслаждаемся :)

alien 25.01.2007 21:40

Re: Примеры простейших программ
 
Проблемы возникают при выводе переменных из форм :

program sqrt01;
var okCommand:command;
c:Integer;
r:Integer;
d:real;
c1:string;
begin
okCommand := createCommand('OK', CM_OK, 1);
showForm;
addCommand(okCommand);
c:= formAddTextField('подкоренное число', '', 10, TF_numeric);
while (getClickedCommand <> okCommand) do
delay(100);
c1:= FormGetText(c);
r:= StringToInteger(c1);
showCanvas;
DrawText(''+sqrt(r),10,30);
repaint;
delay(6000);
end.
Подобное не работает.
Конечно вопрос чайнеческий но очень бы хотелось узнать почему ???

ARV 25.01.2007 21:50

Re: Примеры простейших программ
 
а у меня твой код прекрасно работает... да и должен работать, судя по программе... в чем дело-то? что происходит в твоем случае?

IVenoMI 28.01.2007 19:03

Re: Примеры простейших программ
 
Код полностью рабочий...

Org 04.02.2007 13:10

У меня такая же проблема. При присвоении переменной значения из текстового поля оно всегда равно нулю

Нашел решение проблемы! Если все операции над переменными (а также присвоение им значений из текстового поля) производить после перехода в графический режим (ShowCanvas;), то все вычисления проходят на ура.

alien 21.02.2007 21:09

Re: Примеры простейших программ
 
Благодарю за отклики !

В случае первого примера проблемы были с самим компилятором.Просто
переписал текст заново и всё заработало...
Работаем далее...
Вследующем примере никак не могу добится очищения экрана 'canvas'
Результаты расчета накладываются друг на друга.... :(


program NewProject2;
var
ok,back,clicked:command;
c:Integer;
r:Integer;
d:real;
c1:string;
begin
playAlertSound;
repeat

showForm;
ok := createCommand('Cчитать',CM_OK, 1);
addCommand(ok);
setColor(0, 0, 255);
setTicker('Сделал я ....');
c:= formAddTextField('Лечимое число', '', 10, TF_numeric);
repaint;
while (getClickedcommand <> ok) do
delay(100);
removeCommand(back);
removeCommand(ok);
showCanvas;
c1:= FormGetText(c);
r:= StringToInteger(c1);
ok := createCommand('Далее',CM_OK, 1);
addCommand(ok);
back:=createCommand('Выход', CM_Exit, 1);
addCommand(back);
drawtext(''+sqrt(r),10,30);
repaint;
repeat
clicked := getClickedCommand;
until clicked <> emptyCommand;
removeCommand(back);
removeCommand(ok);
clearform;
until clicked = back;
playAlertSound;
delay(100);
end.
И это еще не все . есть затруднение с использованием предупреждения showAlert . Как вывести простой текст в окне предупреждения ? Пример в русском хелпе почемуто не работает...

IVenoMI 21.02.2007 22:21

Re: Примеры простейших программ
 
Попрбуй пример в родном хэлпе :D

alien 21.02.2007 23:35

Re: Примеры простейших программ
 
По поводу очитски экрана придумал, но это не то конечно

setColor(255, 255, 255);
fillRect(0, 0, 101, 80);
repaint;

рисует на мнгновение белый прямоугольник на весь экран.

А вот с предупреждением чегото не разбирусь..

IVenoMI 22.02.2007 05:22

Re: Примеры простейших программ
 
собственно это иесть наиболее употребимый способ..

ARV 22.02.2007 11:39

Re: Примеры простейших программ
 
А что с предупреждением не так?

alien 27.02.2007 19:34

Re: Примеры простейших программ
 
C ним в принципе понятно.Просто мой мс60 его не переваривает.покажет и далее все: или зацикливается мидлет или выходит.НО вобщем то не особенно оно нужно .Абсолютно бесполезная вещь.Это я так для развития.

Вот связался я с этим калькулятором.Оказалось сложно сделать его удобным .Все упирается в поля для ввода с их ограничениями... а так же в нелюбовь телефона к реальным числам.

Вопрос1: как правильно оформить функцию StringToReal ?
var
a:real;
b:string;
a:= StringToReal(b;5);

Возникает error in parameter 1(со вторым параметром и без него.и что значит второй параметр? база для преобразования??)

Вопрос2 из другой области:как все таки реализовать загрузку миди на мидп1 ? и что для этого нужно ? может кто сталкивался...

http://neten.org 27.02.2007 19:37

Re: Примеры простейших программ
 
Можно так:
drawtext(' '+real,0,0);

alien 01.03.2007 17:02

Re: Примеры простейших программ
 
Оказалось что с реальными числами у мр вообще не лады
корень из 121 почему то 10.9997 ? Вообще кто нибудь может пример привести работы сними.Думал я там почастям с ними работать с целой и дробной отдельно ,однако до этого не доходит или мидлет зависает или еще чего.

Ну че там с музой на мидп1 ? Есть ли вообще библиотеки для мр на работу с файловой системой сименсов мидп 1 ?Если да то где можно достать и где ознакомится ?


Часовой пояс GMT +4, время: 02:51.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot