Автор | Сообщение |
|
| |
Пост N: 2
Зарегистрирован: 19.03.10
|
|
Отправлено: 19.03.10 12:09. Заголовок: Помогите пожалуйста!
Здраствуйте! Очень нужна помощь, нужно написать программку Калькулятор на языке программирования Clipper, буду очень благодарен: Написать процедуру "Калькулятор", которая вызывается клавишей <F3>. Калькулятор должен выполнять 4 арифмитических действия. В нем должно быть окошко, куда вводятся числа и где отображается результат вычислений ----------- | 50.10 | -----------
|
|
|
Ответов - 64
, стр:
1
2
3
4
All
[только новые]
|
|
|
| |
Пост N: 26
Зарегистрирован: 19.03.10
|
|
Отправлено: 23.03.10 12:55. Заголовок: т.е. каталог где нах..
т.е. каталог где находится программа
|
|
|
|
| |
Пост N: 27
Зарегистрирован: 19.03.10
|
|
Отправлено: 23.03.10 13:20. Заголовок: Тут что то точно я н..
Тут что то точно я не учел, размер вашего .exe файла состовляет: 243кб, а размаер моего 201кб.
|
|
|
|
| |
Пост N: 77
Зарегистрирован: 10.07.07
|
|
Отправлено: 23.03.10 13:21. Заголовок: Извините за оффтоп P..
Извините за оффтоп PSP пишет: цитата: | У Вас что на экране после запуска Kal.exe? |
| Вспоминаю себя начинающего. На экране чаще всего вот это самое
|
|
|
|
| |
Пост N: 28
Зарегистрирован: 19.03.10
|
|
Отправлено: 23.03.10 13:24. Заголовок: После запуска открыв..
После запуска открывается окно с курсором и сразу закрывается.
|
|
|
|
| постоянный участник
|
Пост N: 346
Зарегистрирован: 27.01.07
|
|
Отправлено: 23.03.10 13:42. Заголовок: Вот: http://files.ma..
Вот: http://files.mail.ru/QTLBAC Это Clipper 5.2е + Blinker 5.1 Переименуйте в *.zip Распаковать нужно в папку C:\CL52 В папке PRG лежит исходник. Там же есть батник c.bat Просто запустите этот батник. Все должно собраться.
|
|
|
|
| |
Пост N: 29
Зарегистрирован: 19.03.10
|
|
Отправлено: 23.03.10 13:42. Заголовок: я уже и все повторил..
я уже и все повторил, результат тоже самый.
|
|
|
|
| постоянный участник
|
Пост N: 347
Зарегистрирован: 27.01.07
|
|
Отправлено: 23.03.10 13:46. Заголовок: apposs пишет: я уже..
apposs пишет: цитата: | я уже и все повторил, результат тоже самый. |
| См.выше. И еще совет: пользуйтесь каким-нибудь файл-менеджером. К примеру, Far-ом. Вам проще будет (и нам тоже ).
|
|
|
|
| |
Пост N: 30
Зарегистрирован: 19.03.10
|
|
Отправлено: 23.03.10 13:55. Заголовок: Все сработало, спаси..
Все сработало, спасибо огромное PSP. Теперь буду укорачивать код и разберусь в причина, почему у меня не запускалась прграммка.
|
|
|
|
| |
Пост N: 1473
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.03.10 13:55. Заголовок: apposs Компилируй c..
apposs Компилируй c ключом -n
|
|
|
|
| |
Пост N: 31
Зарегистрирован: 19.03.10
|
|
Отправлено: 23.03.10 13:57. Заголовок: PSP пишет: См.выше...
PSP пишет: цитата: | См.выше. И еще совет: пользуйтесь каким-нибудь файл-менеджером. К примеру, Far-ом. Вам проще будет (и нам тоже ). |
| Хорошо спасибо
|
|
|
|
| |
Пост N: 32
Зарегистрирован: 19.03.10
|
|
Отправлено: 29.03.10 06:46. Заголовок: И так, укоротил я ко..
И так, укоротил я код калькуратора, как мне нужно было. Подскажите пожалуйста как сделать, чтобы калькулятор вызывался клавишей <F3>. И еще у меня такая проблемка: после выполнения какого либо арифмитического действия, калькулятор выдает ошибку. Т.е если я пишу 2+2, по нажатию Enter он выдает правильный результат "=4", после я жму Enter, выдает ошибку. Приходиться заного запускать программку "Калькулятор" для последующего арифмитического действия. Код: #include "inkey.ch" PROCEDURE Main() PRIVATE calc_str := SPACE(255) PRIVATE back_shad := "W/N" set scor off setcolor ("w/bg+") clear Calcit() RETURN ****************** PROCEDURE Calcit() LOCAL l_eft:=SETKEY(K_LEFT,),r_ight:=SETKEY(K_RIGHT,) SETKEY(K_ALT_F1,) PARA cBack_shad,is_load_font PRIVATE x_pos:=1,y_pos:= 1 PRIVATE sav_screen,ss,st,a,str_tmp,flag,flag_err,buf,scol PRIVATE fl_mem,help_old,col_mn PRIVATE ss11, cc ************************* ** Начальные установки ** ************************* cc:= SETCURSOR() && Сохранить курсор sav_screen:=SAVESCREEN() && Сохранить экран SETCANCEL(.F.) col_mn:=SETCOLOR() ss :=0.0 st := " " flag_err:= 0 flag := 0 fl_mem := 0 INI_CALC(is_load_font) WHILE LASTKEY() <> 27 IF LEN_TRIM(calc_str) = 0 calc_str := "0"+SPACE(253) ENDIF SET COLOR TO +GR/BG SET CURSOR ON calc_str := MEMOEDIT(CALC_STR,2+y_pos, 2+x_pos, 2+y_pos, 20+x_pos, .T. ,"press_d", LEN(calc_str) ) SET CURSOR OFF IF flag = 1 && ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЯ st := STRTRAN(calc_str,"Н"," ") st := STRTRAN(st,chr(10)," ") st := STRTRAN(st,chr(13)," ") st := STRTRAN(st,"="," ") st:=STRTRAN(st,"%","/100*") st_1 := SUBSTR(st,1,1) && ОЦЕНКА ПЕРВОГО СИМВОЛА СТРОКИ IF (st_1 >= "0" .and. st_1 <= "9") .or. st_1 = "+" .or. st_1 = "-" .or. st_1 = "(" ss := &st && ВЫЧИСЛЕНИЕ ELSE flag_err := 1 && ОШИБКА ENDIF IF flag_err = 0 && ЕСЛИ ОШИБКИ ВЫЧИСЛЕНИЯ НЕТ str_tmp:=ALLTRIM(STR(ss)) calc_str := ALLTRIM(STR(ss))+SPACE(255-LEN(str_tmp)) flag := 0 *********************** &&-- ОБРАБОТКА ОШИБКИ ВЫРАЖЕНИЯ -------------- ELSE buf:=SAVESCREEN(2+y_pos, 2+x_pos, 2+y_pos, 18+x_pos) scol := SETCOLOR() SET COLOR TO *+R/G @ 2+y_pos, 2+x_pos SAY " ERROR! PRESS SPACE" INKEY(0) flag_err := 0 ENDI ENDI END ********************************** ** ОБРАБОТКА ЦИФРОВЫХ КЛАВИШ ** ********************************** FUNCTION PRESS_D key := LASTKEY() DO CASE **************************** ** арифметические действия ** **************************** CASE key = 42 y1 := 5+y_pos x1 := 1+x_pos ch := '*' CASE key = 47 y1 := 5+y_pos x1 := 5+x_pos ch := '/' CASE key = 43 y1 := 5+y_pos x1 := 9+x_pos ch := '+' CASE key = 45 y1 := 5+y_pos x1 := 13+x_pos ch := '-' CASE key = 46 y1 := 5+y_pos x1 := 17+x_pos ch := '.' ENDCASE *************************** ** обработка знака = , enter ** *************************** IF key = 61 .or. key = 13 KEYBOARD CHR(23) flag := 1 ENDI ******************************* ** ПРОРИСОВКА КАЛЬКУЛЯТОРА ** ******************************* PROC INI_CALC(is_load_font) is_load_font:=IF(is_load_font=NIL,.F.,is_load_font) SET COLOR TO +G/B @ 1+y_pos, 1+x_pos, 3+y_pos, 22+x_pos BOX IF(!is_load_font," "," ") FUNCTION LEN_TRIM PARAMETERS str RETU LEN(ALLTRIM(str)) RETURN
|
|
|
|
|
| постоянный участник
|
Пост N: 351
Зарегистрирован: 27.01.07
|
|
Отправлено: 29.03.10 12:03. Заголовок: Могу скинуть докумен..
Могу скинуть документацию в формате NortonGuide по Clipper 5.2 Надо?
|
|
|
|
| |
Пост N: 33
Зарегистрирован: 19.03.10
|
|
Отправлено: 29.03.10 12:19. Заголовок: Да надо PSP, скинь п..
Да надо PSP, скиньте пожалуйста.
|
|
|
|
| постоянный участник
|
Пост N: 352
Зарегистрирован: 27.01.07
|
|
Отправлено: 29.03.10 12:30. Заголовок: http://webfile.ru/43..
|
|
|
|
| |
Пост N: 34
Зарегистрирован: 19.03.10
|
|
Отправлено: 29.03.10 12:32. Заголовок: Спасибо вам большое ..
Спасибо вам большое PSP.
|
|
|
|
| |
Пост N: 35
Зарегистрирован: 19.03.10
|
|
Отправлено: 29.03.10 12:45. Заголовок: Файлобменник перегру..
|
|
|
|
| |
Пост N: 36
Зарегистрирован: 19.03.10
|
|
Отправлено: 29.03.10 12:47. Заголовок: Все скачал! :sm36: ..
Все скачал!
|
|
|
|
| |
Пост N: 37
Зарегистрирован: 19.03.10
|
|
Отправлено: 01.04.10 02:48. Заголовок: Блин ни чего не полу..
Блин ни чего не получается, что же это такое. Как сделать что бы при делении на "0", программа выдовала ошибку. Не могу использовать правильно IF .. ELSE .. . Вот отрывок из кода IF flag = 1 && ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЯ st := STRTRAN(calc_str,"Н"," ") st := STRTRAN(st,chr(10)," ") st := STRTRAN(st,chr(13)," ") st := STRTRAN(st,"="," ") st:=STRTRAN(st,"%","/100*") st_1 := SUBSTR(st,1,1) && ОЦЕНКА ПЕРВОГО СИМВОЛА СТРОКИ IF (st_1 >= "0" .and. st_1 <= "9") .or. st_1 = "+" .or. st_1 = "-" .or. st_1 = "(" ss := &st && ВЫЧИСЛЕНИЕ ELSE flag_err := 1 && ОШИБКА ENDIF IF flag_err = 0 && ЕСЛИ ОШИБКИ ВЫЧИСЛЕНИЯ НЕТ str_tmp:=ALLTRIM(STR(ss)) calc_str := ALLTRIM(STR(ss))+SPACE(255-LEN(str_tmp)) flag := 0 *********************** &&-- ОБРАБОТКА ОШИБКИ ВЫРАЖЕНИЯ -------------- ELSE buf:=SAVESCREEN(2+y_pos, 2+x_pos, 2+y_pos, 18+x_pos) scol := SETCOLOR() SET COLOR TO *+R/G @ 2+y_pos, 2+x_pos SAY " ERROR!" INKEY(0) flag_err := 0 ENDI ENDI Ппомогите!
|
|
|
|
| постоянный участник
|
Пост N: 356
Зарегистрирован: 27.01.07
|
|
Отправлено: 01.04.10 09:33. Заголовок: Переменная flag_err ..
Переменная flag_err будет равна 1, если не выполнится условие (st_1 >= "0" .and. st_1 <= "9") .or. st_1 = "+" .or. st_1 = "-" .or. st_1 = "(". Переменная st_1 равна первому символe строки st. Если st - это выражение, которое должен вычислить калькулятор, то первый символ ничего не даст при определении деления на 0.
|
|
|
|
| |
Пост N: 38
Зарегистрирован: 19.03.10
|
|
Отправлено: 02.04.10 11:11. Заголовок: PSP покажите пожалуй..
PSP покажите пожалуйста на примере, как осуществить "деление на ноль запрещено"
|
|
|
Ответов - 64
, стр:
1
2
3
4
All
[только новые]
|
|