|
Основной форум Сюда все проблемы связанные с программированием. |
03.02.2010, 15:55
|
#16
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Перевод кода Pascal abc в код MidletPascal
Элементарно, Ватсон.
Program x2; var a, b, c, d: real; id_1, id_2, id_3, i: integer; cmd_ok, clicked: command;
Procedure wait; begin cmd_ok:=CreateCommand('OK', CM_OK, 1); AddCommand(cmd_ok); Repaint; repeat clicked := GetClickedCommand; Delay(20); until clicked = cmd_ok; end;
begin ShowForm; id_1:= FormAddTextField('Ввести коэффициент a', '', 20, TF_NUMERIC); id_2:= FormAddTextField('Ввести коэффициент b', '', 20, TF_NUMERIC); id_3:= FormAddTextField('Ввести коэффициент c', '', 20, TF_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 d > 0 then begin i:=FormAddString('D > 0 Два корня:'); i:=FormAddString('Меньший= '+(-b-sqrt(d))/2*a); i:=FormAddString('Больший= '+(-b+sqrt(d))/2*a); end; if d = 0 then i:=FormAddString('D = 0 Один корень: x='+( -b/2*a)); if d < 0 then i:=FormAddString('D < 0 Нет действительных корней'); wait; end.
И лучше поставить высокую степень точности (погрешность до 0.000001)
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
|
|
03.02.2010, 15:57
|
#17
|
Зануда с интернетом
Регистрация: 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
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Перевод кода Pascal abc в код MidletPascal
Сообщение от impersonalis
Не знаток MidletPascal, но не стоит ли связку
if-if-if оптимизровать до if-else if-else?
|
Оно того не стоит, разницы в сотые доли миллисекунд никто не заметит.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.02.2010, 22:07
|
#19
|
Оператор ЭВМ
Регистрация: 02.02.2010
Сообщений: 37
Написано одно полезное сообщение (для 2 участников)
|
Ответ: Перевод кода Pascal abc в код MidletPascal
Сообщение от odd
Элементарно, Ватсон.
Program x2; var a, b, c, d: real; id_1, id_2, id_3, i: integer; cmd_ok, clicked: command; Procedure wait; begin cmd_ok:=CreateCommand('OK', CM_OK, 1); AddCommand(cmd_ok); Repaint; repeat clicked := GetClickedCommand; Delay(20); until clicked = cmd_ok; end; begin ShowForm; id_1:= FormAddTextField('Ввести коэффициент a', '', 20, TF_NUMERIC); id_2:= FormAddTextField('Ввести коэффициент b', '', 20, TF_NUMERIC); id_3:= FormAddTextField('Ввести коэффициент c', '', 20, TF_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 d > 0 then begin i:=FormAddString('D > 0 Два корня:'); i:=FormAddString('Меньший= '+(-b-sqrt(d))/2*a); i:=FormAddString('Больший= '+(-b+sqrt(d))/2*a); end; if d = 0 then i:=FormAddString('D = 0 Один корень: x='+( -b/2*a)); if d < 0 then i:=FormAddString('D < 0 Нет действительных корней'); wait; end.
И лучше поставить высокую степень точности (погрешность до 0.000001)
|
вот спасибочки, эх, теперь бы еще самому разобраться как ты это написал, какая команда за что отвечает, и будет просто замичательно))
|
(Offline)
|
|
04.02.2010, 21:24
|
#20
|
Оператор ЭВМ
Регистрация: 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
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Перевод кода Pascal abc в код MidletPascal
Попробуй:
i:=FormAddString('Меньший= '+(-b-sqrt(d))/(2*a));
Хотя я проверял по примерим из учебника вроде правильно считает.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
04.02.2010, 22:26
|
#22
|
Оператор ЭВМ
Регистрация: 02.02.2010
Сообщений: 37
Написано одно полезное сообщение (для 2 участников)
|
Ответ: Перевод кода Pascal abc в код MidletPascal
а, нет, всё норм, ща на эмуляторе проверил, походу тело сглючило, всётаки зря я его 2 раза стирал и n-ное число раз ронял на бетон))
надо еще красоту навести добавив картинок)), чтобы вместо 11 килобайт, весило все 500
|
(Offline)
|
|
04.02.2010, 22:38
|
#23
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Перевод кода Pascal abc в код MidletPascal
Можешь для красоты ещё добавить рисование графика функции.
И чтоб выводило весь ход решения подробно.
Тогда программа точно будет супер.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
04.02.2010, 23:36
|
#24
|
Оператор ЭВМ
Регистрация: 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
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Перевод кода Pascal abc в код MidletPascal
вставь её перед ShowForm;
Что-то типа:
DrawImage(LoadImage('/logo.png'), 0, 0); Repaint; Delay(5000); ShowForm;
|
(Offline)
|
|
05.02.2010, 03:35
|
#26
|
Оператор ЭВМ
Регистрация: 02.02.2010
Сообщений: 37
Написано одно полезное сообщение (для 2 участников)
|
Ответ: Перевод кода Pascal abc в код MidletPascal
обрубается небольшой кусок экрана:
полоска сверху - полоска снизу, тело - соник к530i
как поправить?
|
(Offline)
|
|
05.02.2010, 04:34
|
#27
|
Мастер
Регистрация: 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)
|
|
Сообщение было полезно следующим пользователям:
|
|
05.02.2010, 15:38
|
#28
|
Оператор ЭВМ
Регистрация: 02.02.2010
Сообщений: 37
Написано одно полезное сообщение (для 2 участников)
|
Ответ: Перевод кода Pascal abc в код MidletPascal
сделал, спс, все гут
кстате на знаменатель всё же не делило, добавил две скобки, вроде работает
'Больший= '+(-b+sqrt(d))/(2*a))
|
(Offline)
|
|
05.02.2010, 18:15
|
#29
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Перевод кода Pascal abc в код MidletPascal
Ну и славно. Успехов тебе в деле изучения MP!
Я думаю, эту ветку можно закрывать и удалять.
|
(Offline)
|
|
03.02.2011, 13:43
|
#30
|
Оператор ЭВМ
Регистрация: 19.12.2010
Сообщений: 42
Написано 5 полезных сообщений (для 7 пользователей)
|
Ответ: Перевод кода Pascal abc в код MidletPascal
а при TF_NUMERIC знак - же никак не поставить? нужно TF_ANY юзать?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:25.
|