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

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

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

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

Ответ
 
Опции темы
Старый 11.10.2009, 12:50   #1
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Чет не пашет( Спецы посмотрите а???

Создаю первую програму для нахождения синусов,косинусов ну и т.д. пока работает только синус, и тот не хочет выводить ответ.
Вот собственно код:
Program math;
   procedure menu;
var  STReal:real;
     str:string;
     itemId,STI:integer;
     sinI,cosI,tgI,ctgI,id:real;
     cmd, cmdOK, cmdExit: command;
     exit: boolean;
Begin
ShowMenu('Главное меню',CH_IMPLICIT);
        id:=MenuAppendString('sin');
        id:=MenuAppendString('cos');
        id:=MenuAppendString('tg');
        id:=MenuAppendString('ctg');
        id:=MenuAppendString('Выход');
        cmdOK:=CreateCommand('ОК', CM_OK, 1);
        cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
        AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
        AddCommand(cmdExit);
        Repaint;
        cmd := EMPTYCOMMAND;
        repeat
            cmd:=GetClickedCommand;
            if cmd=cmdExit then Halt;
            Delay(50); // Вставь тут небольшую паузу. Система же должна считывать клавиатуру.    
        until cmd=cmdOk;
        repaint;
        ShowForm;
        if MenuGetSelectedIndex=0 then
          Begin
          cmdOK:=CreateCommand('ОК', CM_OK, 1);
        cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
        AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
        AddCommand(cmdExit);
        Repaint;
        cmd := EMPTYCOMMAND;
        repaint;
          itemId:=FormAddTextField('Введите число','',20,TF_NUMERIC);
          repaint;
          str:=FormGetText(itemId);
                STI:=StringToInteger(str);
                STReal:=StringToReal(str,STI);
                sinI:=sin(STReal);
                repeat
                      cmd:=GetClickedCommand;
                      if cmd=cmdExit then Halt
                      else if cmd=cmdOk then DrawText('Sin числа'+STReal+'='+SinI,5,5);
                      Delay(50); // Вставь тут небольшую паузу. Система же должна считывать клавиатуру.    
                      until cmd=cmdOk;
                repaint;
          end; else 
        if MenuGetSelectedIndex=1 then
        Begin
          end; else 
        if MenuGetSelectedIndex=2 then 
        Begin
          end; else 
        if MenuGetSelectedIndex=3 then
        Begin
          end; else 
        if MenuGetSelectedIndex=4 then Halt;
repaint; 
End;
Begin
menu;
repaint;
end.
Помогите решыть проблему
(Offline)
 
Ответить с цитированием
Старый 11.10.2009, 15:35   #2
demon112
Знающий
 
Регистрация: 18.03.2009
Сообщений: 223
Написано 10 полезных сообщений
(для 17 пользователей)
Ответ: Чет не пашет( Спецы посмотрите а???

Program math;
   procedure menu;
var  STReal:real;
     str:string;
     itemId:integer;
     sinI,cosI,tgI,ctgI,id:real;
     cmd, cmdOK, cmdExit: command;
Begin
 ShowForm;
 ShowMenu('Главное меню',CH_IMPLICIT);
 id:=MenuAppendString('sin');
 id:=MenuAppendString('cos');
 id:=MenuAppendString('tg');
 id:=MenuAppendString('ctg');
 id:=MenuAppendString('Выход');
 cmdOK:=CreateCommand('ОК', CM_OK, 1);
 cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
 AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
 AddCommand(cmdExit);
 cmd := EMPTYCOMMAND;
   repeat
     cmd:=GetClickedCommand;
     if cmd=cmdExit then Halt;  
   until cmd=cmdOk;
 ShowForm;
 if MenuGetSelectedIndex=0 then
      Begin
      cmdOK:=CreateCommand('ОК', CM_OK, 1);
      cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
      AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
      AddCommand(cmdExit);
      itemId:=FormAddTextField('Введите число с точностьюдо сотых','',20,TF_ANY);
        repeat
        Delay(50);
        cmd:=GetClickedCommand;
        until cmd=cmdOk;
      showCanvas; // переход в режим канвас
      str:=FormGetText(itemId);
     { STI:=StringToInteger(str); эту строку я ваще не понял }
      STReal:=StringToReal(str,100); // так как с точностью до сотых то вводим 100, можно увеличить в случаи необходимости
      sinI:=sin(STReal);
      cmd:=GetClickedCommand;
      if cmd=cmdExit then Halt;
      setcolor(0,0,0);
      DrawText('Sin числа'+STReal+'='+sinI,5,5);
      repaint;
      delay(10000);
      end else 
 if MenuGetSelectedIndex=1 then
     Begin
     end else 
 if MenuGetSelectedIndex=2 then 
     Begin
     end else 
 if MenuGetSelectedIndex=3 then
     Begin
     end else 
 if MenuGetSelectedIndex=4 then Halt;
End;
Begin
menu;
end.
__________________
И суслики вам не помогут
(Offline)
 
Ответить с цитированием
Старый 13.10.2009, 23:20   #3
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Ответ: Чет не пашет( Спецы посмотрите а???

Всмисле?????????
__________________




(Offline)
 
Ответить с цитированием
Старый 14.10.2009, 15:44   #4
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Чет не пашет( Спецы посмотрите а???

Program math;

procedure menu;
var  
STReal:real;
     
strwork:string;
     
itemId:integer;
     
Iid:real;
     
cmdcmdOkcmdExitcommand;
Begin
    repeat
    ShowForm
;
    
ShowMenu('Главное меню',CH_IMPLICIT);
    
id:=MenuAppendString('sin');
    
id:=MenuAppendString('cos');
    
id:=MenuAppendString('tg');
    
id:=MenuAppendString('ctg');
    
id:=MenuAppendString('Выход');
    
cmdOk:=CreateCommand('ОК'CM_OK1);
    
cmdExit:=CreateCommand('Выход'CM_EXIT2);
    
AddCommand(cmdOk); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
    
AddCommand(cmdExit);
    
repeat
        cmd
:=GetClickedCommand;
        
Delay(50);
        if 
cmd=cmdExit then Halt;  
    
until cmd=cmdOk;
    
ClearForm;
    if 
MenuGetSelectedIndex<>4 then
    begin
        id 
:= MenuGetSelectedIndex;
        
cmdOk:=CreateCommand('ОК'CM_OK1);
        
cmdExit:=CreateCommand('Выход'CM_EXIT2);
        
AddCommand(cmdOk);
        
AddCommand(cmdExit);
        
itemId:=FormAddTextField('Введите число с точностью до сотых','',20,TF_NUMERIC);
        
repeat
            Delay
(50);
            
cmd:=GetClickedCommand;
             if (
cmd cmdExitthen Halt;
        
until cmd cmdOk;
        
str:=FormGetText(itemId);
        
//STI:=StringToInteger(str); эту строку я ваще не понял
        
STReal:=StringToReal(str10); // так как с точностью до сотых то вводим 100, можно увеличить в случаи необходимости
        
if (id 0then begin I:=sin(STReal); work:='sin'end;
        if (
id 1then begin I:=cos(STReal); work:='cos'end;
        if (
id 2then begin I:=tan(STReal); work:='tan'end;
        if (
id 3then begin I:=tan(STReal); work:='ctg'end;
        
ShowCanvas;
        
setcolor(255,255,255); FillRect(0,0,GetWidth,getHeight);
        
setcolor(0,0,0);
        
DrawText(work ' ('+STReal+') = ' I55);
        
repaint;
        
delay(10000);
    
end;
    else 
Halt;
    
until false;
End;

Begin
    menu
;
end
Теперь всё пашет. Даже синусы с косинусами и проч.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
JACUK (14.10.2009)
Старый 14.10.2009, 16:16   #5
demon112
Знающий
 
Регистрация: 18.03.2009
Сообщений: 223
Написано 10 полезных сообщений
(для 17 пользователей)
Ответ: Чет не пашет( Спецы посмотрите а???

если надо воспользуйся функцией function toDegrees(num: real):real; Преобразует заданный угол из радиан в градусы.
__________________
И суслики вам не помогут
(Offline)
 
Ответить с цитированием
Старый 14.10.2009, 20:26   #6
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Ответ: Чет не пашет( Спецы посмотрите а???

Спасибо СПЕЦЫ)))
Отдельное спасибо ODD!!!
Выложу мой код,ето просто капец)))
Подскажите пожалуста почему у меня на екран ответ не выводился???
__________________





Последний раз редактировалось JACUK, 15.10.2009 в 00:29.
(Offline)
 
Ответить с цитированием
Старый 15.10.2009, 09:48   #7
demon112
Знающий
 
Регистрация: 18.03.2009
Сообщений: 223
Написано 10 полезных сообщений
(для 17 пользователей)
Ответ: Чет не пашет( Спецы посмотрите а???

showCanvas; // переход в режим канвас - ты эту функцию забыл использовать... функции drawtext repaint - это функции канвас, на формах (ShowForm) они не работают....
__________________
И суслики вам не помогут
(Offline)
 
Ответить с цитированием
Старый 29.10.2009, 21:10   #8
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Ответ: Чет не пашет( Спецы посмотрите а???

Вот как обещал мой код))))
Program math;
   procedure menu;
var  STReal:real;
     str:string;
     itemId,STI, a,b,c,d,e:integer;
     sinI,cosI,tgI,ctgI,id:real;
     cmd, cmdOK, cmdExit,OK, clicked: command;
     exit: boolean;
Begin
ShowMenu('Главное меню',CH_IMPLICIT);
        a:=MenuAppendString('sin');
        b:=MenuAppendString('cos');
        c:=MenuAppendString('tg');
        d:=MenuAppendString('ctg');
        e:=MenuAppendString('Выход');
        
        cmdOK:=CreateCommand('ОК', CM_OK, 1);
        cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
        AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
        AddCommand(cmdExit);	
        Repaint;
        cmd := EMPTYCOMMAND;
        repeat
            cmd:=GetClickedCommand;
            if cmd=cmdExit then Halt;
            Delay(50); // Вставь тут небольшую паузу. Система же должна считывать клавиатуру.    
        until cmd=cmdOk;
        repaint;
        ShowForm;
        if MenuGetSelectedIndex=a then
          Begin
          itemId:=FormAddTextField('Введите число','',20,TF_NUMERIC);
                       

                       cmdOK:=CreateCommand('ОК', CM_OK, 1);
        cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
        AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
        AddCommand(cmdExit);
        Repaint;
        cmd := EMPTYCOMMAND;
        str:=FormGetText(itemId);
                 repeat 
                         delay(100);  
                         clicked := getClickedCommand;  
                         if cmd=cmdExit then Halt;
                         
                 until clicked = cmdOK;
                 if cmd=cmdOk then begin
                 str:=FormGetText(itemId);
                STI:=StringToInteger(str);
                STReal:=StringToReal(str,STI);
                sinI:=sin(STReal);
                ClearForm;
        setcolor(255,255,255); 
        FillRect(0,0,GetWidth,getHeight);
        setcolor(0,0,0);
        
        
        DrawText('gh'+sinI, 10, 20);
        repaint;
                delay(10000);
                end;
                end; else
       if MenuGetSelectedIndex=b then
        Begin
        itemId:=FormAddTextField('Введите число','',20,TF_NUMERIC);
          cmdOK:=CreateCommand('ОК', CM_OK, 1);
                       cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
                       AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
                       AddCommand(cmdExit);
                       Repaint;
                       cmd := EMPTYCOMMAND;
                        repeat
                               cmd:=GetClickedCommand;
                               if cmd=cmdExit then Halt;
                               Delay(50); // Вставь тут небольшую паузу. Система же должна считывать клавиатуру.    
                               until cmd=cmdOk;
                               repaint;
                str:=FormGetText(itemId);
                STI:=StringToInteger(str);
                STReal:=StringToReal(str,STI);
                cosI:=cos(STReal);
                DrawText('Cos числа'+STReal+'='+CosI,5,5);
                repaint;
          end; else 
        if MenuGetSelectedIndex=c then 
        Begin
        itemId:=FormAddTextField('Введите число','',20,TF_NUMERIC);
          cmdOK:=CreateCommand('ОК', CM_OK, 1);
                       cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
                       AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
                       AddCommand(cmdExit);
                       Repaint;
                       cmd := EMPTYCOMMAND;
                        repeat
                               cmd:=GetClickedCommand;
                               if cmd=cmdExit then Halt;
                               Delay(50); // Вставь тут небольшую паузу. Система же должна считывать клавиатуру.    
                               until cmd=cmdOk;
                               repaint;
                str:=FormGetText(itemId);
                STI:=StringToInteger(str);
                STReal:=StringToReal(str,STI);
                tgI:=sin(STReal);
                DrawText('Tg числа'+STReal+'='+tgI,5,5);
                repaint;
          end; else 
        if MenuGetSelectedIndex=c then
        Begin
        itemId:=FormAddTextField('Введите число','',20,TF_NUMERIC);
          cmdOK:=CreateCommand('ОК', CM_OK, 1);
                       cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
                       AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
                       AddCommand(cmdExit);
                       Repaint;
                       cmd := EMPTYCOMMAND;
                        repeat
                               cmd:=GetClickedCommand;
                               if cmd=cmdExit then Halt;
                               Delay(50); // Вставь тут небольшую паузу. Система же должна считывать клавиатуру.    
                               until cmd=cmdOk;
                               repaint;
                str:=FormGetText(itemId);
                STI:=StringToInteger(str);
                STReal:=StringToReal(str,STI);
                ctgI:=cos(STReal)/sin(STReal);
                DrawText('Ctg числа'+STReal+'='+ctgI,5,5);
                repaint;
          end; else 
        if MenuGetSelectedIndex=d then Halt;
End;
Begin
menu;
repaint;
end.
И всеравно не пашет(((
__________________




(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посмотрите пожалуйста что неправильно. newman C++ 11 08.01.2008 16:29
компилируется,но не пашет( carmageddonist Основной форум 28 12.01.2007 11:55


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


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