IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Калькулятор
Mnogosisa_pravda_ona
сообщение 24.01.2009 20:11
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


Как так сделать, чтобы выбор цифры осуществлялся нажатием клавиши "Enter" столько раз сколько одинаковых цифр надо выбрать.Например, выбрал кнопку "1" и нажал "Enter" три раза, должно получится 111. Я думаю вы меня поняли, что я хочу узнать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 19)
Unconnected
сообщение 24.01.2009 20:20
Сообщение #2


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


А как выбирается цифра?


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Mnogosisa_pravda_ona
сообщение 24.01.2009 20:36
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


с помощью стрелок.
Вот так выглядит калькулятор

Сообщение отредактировано: volvo - 18.02.2009 22:45


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 24.01.2009 20:49
Сообщение #4


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Т.е. у тебя вообще только интерфейс пока что? Нажатия на цифры вообще не обрабатываются?


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Mnogosisa_pravda_ona
сообщение 24.01.2009 20:51
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


ну операции "+","-","/","*" написаны.Вот теперь с цифрами вожусь

Добавлено через 8 мин.
Вот задать кол-во цифр я могу,а вот чтоб решал уже пользователь, не получается.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 24.01.2009 21:19
Сообщение #6


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Ну, как вариант, можно завести двумерный массив, в него "перенести" весь твой интерфейс завести две переменные для хранения координат,и, при нажатии, например, стрелки вправо, прибавлять к переменной, отвечающей за столбцы, единицу. А при нажатии Enter узнавать, чему равны координаты, и брать из матрицы цифру с такими координатами.


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Mnogosisa_pravda_ona
сообщение 24.01.2009 21:21
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


Я кстате напутал не стрелками прибавлять а "Enter'ом", А можешь пример привести? а то у меня с представлением плохо

Сообщение отредактировано: Mnogosisa_pravda_ona - 24.01.2009 21:23
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 24.01.2009 21:40
Сообщение #8


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Для начала покажи то, что ты уже сделал, а то я так и не понял твоего интерфейса...


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Mnogosisa_pravda_ona
сообщение 24.01.2009 21:48
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


Короче я хочу сделать калькулятор как windows'e только вместо мышкой, управлять стрелками и выбирать Enter'om.
Вот код


Прикрепленные файлы
Прикрепленный файл  CALCULAT.PAS ( 3.92 килобайт ) Кол-во скачиваний: 222
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.01.2009 22:20
Сообщение #10


Гость






Mnogosisa_pravda_ona, все довольно просто, свой цикл while true do меняешь вот на этот:
count := 0;
while true do begin
ch := #1;
while (ch <> #13) and (ch <> #0) do ch := readkey;
if ch = #0 then ch := readkey;
case ch of
#72: kn:=kn-1;
#80: kn:=kn+1;
#75: kn:=kn-1;
#77: kn:=kn+1;
#13:
begin
case kn of
1: begin plus; textcolor(red); lett := '+'; end;
2: begin minus; textcolor(red); lett := '-'; end;
3: begin multiply; textcolor(red); lett := '*'; end;
4: begin separate; textcolor(red); lett := '/'; end;
5, 6, 7, 9, 10, 11, 12, 13, 15, 16:
begin
for i := 0 to 9 do
if digits[i] = kn then a := i;
textcolor(green);
lett := chr(a + ord('0'));
end;


18: exit;
end;
gotoxy(8+count,4); write(lett); inc(count);
end;

end;
if kn=0 then kn:=18;
if kn=19 then kn:=1;
buttoms(kn);
end;
, и добавляешь вот такие константы/переменные:
const
digits: array[0 .. 9] of integer = (
11, 5, 9, 12, 15, 6, 10, 13, 16, 7
);
var
count: integer;
lett: char;

Попробуй, посмотри что получится.

А вообще, твою программу можно сократить наполовину...
 К началу страницы 
+ Ответить 
Mnogosisa_pravda_ona
сообщение 24.01.2009 22:46
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


Не понимаю.Считает что неправильно вызвана процедура.


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.01.2009 23:17
Сообщение #12


Гость






Я тоже не понимаю, что там у тебя происходит. Вот этот файл прекрасно компилируется и работает:
Прикрепленный файл  calc_01.pas ( 4.35 килобайт ) Кол-во скачиваний: 420
 К началу страницы 
+ Ответить 
Mnogosisa_pravda_ona
сообщение 24.01.2009 23:23
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


Спасибо,теперь итог буду делать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Mnogosisa_pravda_ona
сообщение 25.01.2009 0:02
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


А вот ещё вопрос появился.Совсем не подумал как вводить второе число?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Mnogosisa_pravda_ona
сообщение 25.01.2009 16:15
Сообщение #15


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


Никто не поможет со вторым числом?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 25.01.2009 17:11
Сообщение #16


Гость






А что со вторым числом? Точно так же, как и первое... Только введи доп. переменную, скажем, isSecond: Boolean, в начале присвой ее False, и при нажатии любой из НЕцифровых кнопок меняй на True. Вот тебе и будет индикатор, какое число считывается в настоящий момент, если False - то первое, если True - то второе...

Можно сделать эту переменную не Boolean, а Byte, тогда сможешь вводить таким же образом и третье, и четвертое и т.д. числа...
 К началу страницы 
+ Ответить 
Mnogosisa_pravda_ona
сообщение 25.01.2009 17:18
Сообщение #17


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


А т.е. надо ко второму числу присвоить другую переменную(напрмер integer) и завести второй массив для ввода повторяющихся цифр?А ещё как можно ограничить ввод цифр в пределах моей нарисованной строки?

Сообщение отредактировано: Mnogosisa_pravda_ona - 25.01.2009 17:19
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 25.01.2009 18:12
Сообщение #18


Гость






Цитата
т.е. надо ко второму числу присвоить другую переменную(напрмер integer) и завести второй массив для ввода повторяющихся цифр?
Я этого не говорил... Вот то, что касается ввода двух чисел:
Прикрепленный файл  calc_02.pas ( 5.14 килобайт ) Кол-во скачиваний: 396


(после ввода первого числа жмешь знак, операции, потом второе число, потом "="... А вот потом - сюрприз! Можешь вводить еще один знак, и еще одно число, и так далее, пока не надоест, и не выйдешь из программы. Только еще раз повторяю: все действия - через знак "=" !!!)

Как ограничить ввод цифр - попробуй подумать сам...
 К началу страницы 
+ Ответить 
Mnogosisa_pravda_ona
сообщение 25.01.2009 21:40
Сообщение #19


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


Ну вот действительно сюрприз! smile.gif Там же inc'и. Я даже без понятия как ограничить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TheDimaT
сообщение 19.01.2012 22:30
Сообщение #20


Гость






program Calkulytor;
uses crt;
var
a, b, c, d: real;

begin
writeln('----------------------------------КАЛЬКУЛЯТОР!----------------------------------');
writeln('Выбирете действие');
writeln('1-Сложение (+)');
writeln('2-Вычитание (-)');
writeln('3-Умножение (*)');
writeln('4-Деление (/)');
writeln('5-Квадрат числа (a2)');
writeln('6-Куб числа (a3)');
writeln('7-Корень числа (^)');
readln(b);
if b = 2 then
begin
writeln('Уменьшаемое=');
readln(a);
writeln('Вычитаемое=');
readln©;
d := a - c;
writeln('Разница чисел равно: ', d);
writeln('-------------------------------------КОНЕЦ!-------------------------------------');
end;
if b = 1 then
begin
writeln('1-ое Слагаемое=');
readln(a);
writeln('2-ое Слагаемое=');
readln©;
d := a + c;
writeln('Сумма чисел равно: ', d);
writeln('-------------------------------------КОНЕЦ!-------------------------------------');
end;
if b = 3 then
begin
writeln('1-ый Множитель=');
readln(a);
writeln('2-ой Множитель=');
readln©;
d := a * c;
writeln('Произвидение чисел равно: ', d);
writeln('-------------------------------------КОНЕЦ!-------------------------------------');
end;
if b = 4 then
begin
writeln('Делимое=');
readln(a);
writeln('Делитель=');
readln©;
d := a / c;
writeln('Частное чисел равно: ', d);
writeln('-------------------------------------КОНЕЦ!-------------------------------------');
end;
if b=5 then
begin
writeln('Число А=');
readln(a);
d:= a * a;
writeln('Число равно: ', d);
writeln('-------------------------------------КОНЕЦ!-------------------------------------');
end;
if b=6 then
begin
writeln('Число А=');
readln(a);
d:= a * a * a;
writeln('Число равно: ', d);
writeln('-------------------------------------КОНЕЦ!-------------------------------------');
end;
if b=7 then
begin
writeln('Число А=');
readln(a);
d:=sqrt(a);
writeln('Число равно: ', d);
writeln('-------------------------------------КОНЕЦ!-------------------------------------');
end;
end.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:24
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"