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

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

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

 
 Ответить  Открыть новую тему 
> Калькулятор
сообщение
Сообщение #1


Новичок
*

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

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


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


mea culpa
*****

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

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


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


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


Новичок
*

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

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


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

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


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


mea culpa
*****

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

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


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


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


Новичок
*

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

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


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

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


mea culpa
*****

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

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


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


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


Новичок
*

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

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


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

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


mea culpa
*****

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

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


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


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


Новичок
*

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

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


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


Прикрепленные файлы
Прикрепленный файл  CALCULAT.PAS ( 3.92 килобайт ) Кол-во скачиваний: 356
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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;

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

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


Новичок
*

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

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


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


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


Гость






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


Новичок
*

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

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


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


Новичок
*

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

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


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


Новичок
*

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

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


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


Гость






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

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


Новичок
*

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

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


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

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


Гость






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


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

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


Новичок
*

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

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


Ну вот действительно сюрприз! smile.gif Там же inc'и. Я даже без понятия как ограничить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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

 





- Текстовая версия 9.09.2025 15:44
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name