Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 03.02.2010, 15:55   #16
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Перевод кода Pascal abc в код MidletPascal

Элементарно, Ватсон.

Program x2;
var
   
abcdreal;
   
id_1id_2id_3iinteger;
   
cmd_okclickedcommand;


Procedure wait;
begin
    cmd_ok
:=CreateCommand('OK'CM_OK1);
    
AddCommand(cmd_ok);
    
Repaint;   
    
repeat 
      clicked 
:= GetClickedCommand;
      
Delay(20);
    
until clicked cmd_ok;
end;


begin
    ShowForm
;
    
id_1:= FormAddTextField('Ввести коэффициент a'''20TF_NUMERIC);
    
id_2:= FormAddTextField('Ввести коэффициент b'''20TF_NUMERIC);
    
id_3:= FormAddTextField('Ввести коэффициент c'''20TF_NUMERIC);
    
wait;
    
a:=StringToReal(FormGetText(id_1), 10);
    
b:=StringToReal(FormGetText(id_2), 10);
    
c:=StringToReal(FormGetText(id_3), 10);
    
d:=b*b-4*a*c;
    
ClearForm;
    
i:=FormAddString('D = ' d);
    if 
0 then
    begin
        i
:=FormAddString('D > 0 Два корня:');
        
i:=FormAddString('Меньший= '+(-b-sqrt(d))/2*a);
        
i:=FormAddString('Больший= '+(-b+sqrt(d))/2*a);
    
end;
    if 
0 then i:=FormAddString('D = 0 Один корень: x='+( -b/2*a));
    if 
0 then i:=FormAddString('D < 0 Нет действительных корней');
    
wait;  
end
И лучше поставить высокую степень точности (погрешность до 0.000001)
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
impersonalis (03.02.2010), im_zorg (03.02.2010), Protey (03.02.2010)
Старый 03.02.2010, 15:57   #17
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Перевод кода Pascal abc в код MidletPascal

Не знаток MidletPascal, но не стоит ли связку
if-if-if оптимизровать до if-else if-else?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 03.02.2010, 16:08   #18
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Перевод кода Pascal abc в код MidletPascal

Сообщение от impersonalis Посмотреть сообщение
Не знаток MidletPascal, но не стоит ли связку
if-if-if оптимизровать до if-else if-else?
Оно того не стоит, разницы в сотые доли миллисекунд никто не заметит.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Protey (04.02.2010)
Старый 03.02.2010, 22:07   #19
Protey
Оператор ЭВМ
 
Аватар для Protey
 
Регистрация: 02.02.2010
Сообщений: 37
Написано одно полезное сообщение
(для 2 участников)
Ответ: Перевод кода Pascal abc в код MidletPascal

Сообщение от odd Посмотреть сообщение
Элементарно, Ватсон.

Program x2;
var
   
abcdreal;
   
id_1id_2id_3iinteger;
   
cmd_okclickedcommand;


Procedure wait;
begin
    cmd_ok
:=CreateCommand('OK'CM_OK1);
    
AddCommand(cmd_ok);
    
Repaint;   
    
repeat 
      clicked 
:= GetClickedCommand;
      
Delay(20);
    
until clicked cmd_ok;
end;


begin
    ShowForm
;
    
id_1:= FormAddTextField('Ввести коэффициент a'''20TF_NUMERIC);
    
id_2:= FormAddTextField('Ввести коэффициент b'''20TF_NUMERIC);
    
id_3:= FormAddTextField('Ввести коэффициент c'''20TF_NUMERIC);
    
wait;
    
a:=StringToReal(FormGetText(id_1), 10);
    
b:=StringToReal(FormGetText(id_2), 10);
    
c:=StringToReal(FormGetText(id_3), 10);
    
d:=b*b-4*a*c;
    
ClearForm;
    
i:=FormAddString('D = ' d);
    if 
0 then
    begin
        i
:=FormAddString('D > 0 Два корня:');
        
i:=FormAddString('Меньший= '+(-b-sqrt(d))/2*a);
        
i:=FormAddString('Больший= '+(-b+sqrt(d))/2*a);
    
end;
    if 
0 then i:=FormAddString('D = 0 Один корень: x='+( -b/2*a));
    if 
0 then i:=FormAddString('D < 0 Нет действительных корней');
    
wait;  
end
И лучше поставить высокую степень точности (погрешность до 0.000001)
вот спасибочки, эх, теперь бы еще самому разобраться как ты это написал, какая команда за что отвечает, и будет просто замичательно))
(Offline)
 
Ответить с цитированием
Старый 04.02.2010, 21:24   #20
Protey
Оператор ЭВМ
 
Аватар для Protey
 
Регистрация: 02.02.2010
Сообщений: 37
Написано одно полезное сообщение
(для 2 участников)
Ответ: Перевод кода Pascal abc в код MidletPascal

i:=FormAddString('Меньший= '+(-b-sqrt(d))/2*a);

не делит на 2*а, пытался заменить на:

i:=FormAddString('Меньший= '+((-b-sqrt(d))/2*a);

компилятор ругнулся
(Offline)
 
Ответить с цитированием
Старый 04.02.2010, 21:30   #21
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Перевод кода Pascal abc в код MidletPascal

Попробуй:
i:=FormAddString('Меньший= '+(-b-sqrt(d))/(2*a)); 
Хотя я проверял по примерим из учебника вроде правильно считает.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Protey (04.02.2010)
Старый 04.02.2010, 22:26   #22
Protey
Оператор ЭВМ
 
Аватар для Protey
 
Регистрация: 02.02.2010
Сообщений: 37
Написано одно полезное сообщение
(для 2 участников)
Ответ: Перевод кода Pascal abc в код MidletPascal

а, нет, всё норм, ща на эмуляторе проверил, походу тело сглючило, всётаки зря я его 2 раза стирал и n-ное число раз ронял на бетон))

надо еще красоту навести добавив картинок)), чтобы вместо 11 килобайт, весило все 500
(Offline)
 
Ответить с цитированием
Старый 04.02.2010, 22:38   #23
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Перевод кода Pascal abc в код MidletPascal

Можешь для красоты ещё добавить рисование графика функции.
И чтоб выводило весь ход решения подробно.
Тогда программа точно будет супер.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Protey (04.02.2010)
Старый 04.02.2010, 23:36   #24
Protey
Оператор ЭВМ
 
Аватар для Protey
 
Регистрация: 02.02.2010
Сообщений: 37
Написано одно полезное сообщение
(для 2 участников)
Ответ: Перевод кода Pascal abc в код MidletPascal

Сообщение от odd Посмотреть сообщение
Можешь для красоты
на обычном паскале может и смогу, на этом - через пару лет )) уж слишком непонятно мне тут многое

UPD: не совсем понял (точнее совсем не понял) как это юзать:

Выводит картинку в буфер экрана. Координаты x и y описывают в какой точке должен будет находиться левый верхний угол картинки (отсчет ведется тоже от левого верхнего угла экрана).

procedure DrawImage(img: image; x, y: integer);
--------------------------------------------------------------------------------
Пример

begin
DrawImage(LoadImage('/logo.png'), 0, 0);
Repaint;
Delay(1000);
end.
UPD2: еее, разобрался, значит я ещё не совсем плох
UPD3: вопрос, в каком месте нужно прописать команду на прорисовку картинки, чтобы при запуске приложения показывалась картинка, и после нажатия кнопки программа продолжала работу?
(Offline)
 
Ответить с цитированием
Старый 05.02.2010, 01:11   #25
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Перевод кода Pascal abc в код MidletPascal

вставь её перед ShowForm;
Что-то типа:
DrawImage(LoadImage('/logo.png'), 00);  
   
Repaint;  
   
Delay(5000);  
ShowForm
(Offline)
 
Ответить с цитированием
Старый 05.02.2010, 03:35   #26
Protey
Оператор ЭВМ
 
Аватар для Protey
 
Регистрация: 02.02.2010
Сообщений: 37
Написано одно полезное сообщение
(для 2 участников)
Ответ: Перевод кода Pascal abc в код MidletPascal

обрубается небольшой кусок экрана:
полоска сверху - полоска снизу, тело - соник к530i
как поправить?
(Offline)
 
Ответить с цитированием
Старый 05.02.2010, 04:34   #27
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Перевод кода Pascal abc в код MidletPascal

Сообщение от Protey Посмотреть сообщение
обрубается небольшой кусок экрана:
полоска сверху - полоска снизу, тело - соник к530i
как поправить?
Поставь в настройках твоей программы (Вид - Свойства проекта или View - Project Properties если у тебя английская версия) параметр "Тип мидлета - MIDP 2.0 Весь экран" (в английской версии MIDlet Type - MIDP2.0 Full Screen).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Protey (05.02.2010)
Старый 05.02.2010, 15:38   #28
Protey
Оператор ЭВМ
 
Аватар для Protey
 
Регистрация: 02.02.2010
Сообщений: 37
Написано одно полезное сообщение
(для 2 участников)
Ответ: Перевод кода Pascal abc в код MidletPascal

сделал, спс, все гут
кстате на знаменатель всё же не делило, добавил две скобки, вроде работает

'Больший= '+(-b+sqrt(d))/(2*a)) 
(Offline)
 
Ответить с цитированием
Старый 05.02.2010, 18:15   #29
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Перевод кода Pascal abc в код MidletPascal

Ну и славно. Успехов тебе в деле изучения MP!
Я думаю, эту ветку можно закрывать и удалять.
(Offline)
 
Ответить с цитированием
Старый 03.02.2011, 13:43   #30
Twice
Оператор ЭВМ
 
Регистрация: 19.12.2010
Сообщений: 42
Написано 5 полезных сообщений
(для 7 пользователей)
Ответ: Перевод кода Pascal abc в код MidletPascal

а при TF_NUMERIC знак - же никак не поставить? нужно TF_ANY юзать?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com