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

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

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

> ЗАДАЧА ПРО ФУнкцию.., ПОМОГИТЕ
RAPON
сообщение 12.05.2007 7:25
Сообщение #1


Новичок
*

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

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


ТАКАЯ ЗАДАЧА:
Написать функцию, обеспечивающую ввод с клавиатуры положительного двухзначного числа. При нажатии пользователем какой-либо клавиши соответствующей ей символ должен появляться на экране только в том случае, если этот символ является цифрой. Функция должна позволять пользователю редактировать введенное число при помощи клавиши <BackSpace>. Если пользователь ввел хотя бы одну цифру, то при нажатии клавиши <Enter> функция должна завершать работу и возвращать введенное пользователем число вызвавшей ее процедуре.
ПОЖАЛУЙСТА ПОМОГИТЕ ,напишите программу...ИЛИ хотя бы обьясните суть задачи..А то я чето так и не понял всей сути задачи..ПОМОГИТЕ!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 19)
Ozzя
сообщение 12.05.2007 7:43
Сообщение #2


Гуру
*****

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

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


Продолжение экспериментов со строкой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
AAAAAAA
сообщение 12.05.2007 9:03
Сообщение #3


Гость






Помоги разработать программу а то мне надо курасач по этой задаче в ближ дни сдавать а времени на разбор задачи нет! sad.gif

Сообщение отредактировано: AAAAAAA - 12.05.2007 9:04
 К началу страницы 
+ Ответить 
Lapp
сообщение 12.05.2007 9:40
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(AAAAAAA @ 12.05.2007 10:03) *

времени на разбор задачи нет! sad.gif

Нет времени?.. А у нас всех его, конечно, навалом..
Помочь - поможем. Что конкретно не ясно? Говори, спрашивай.
Решать за тебя не будем

 ! 
Правила, п. 1.10: На Форуме запрещается регистрировать несколько профилей.
Профиль AAAAAAA удаляю.
Пользователь RAPON получает повышение уровня предупреждений.



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RAPON
сообщение 12.05.2007 9:53
Сообщение #5


Новичок
*

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

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


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

Добавлено через 2 мин.
В суть задачи вникнуться не могу может кто обьяснит?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 12.05.2007 9:57
Сообщение #6


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(RAPON @ 12.05.2007 10:53) *

если бы у вас форум не глючил при цитате сообщух , я бы не регал второго пользователя

Хорошо, объяснение принимается, вопрос закрыт. Я снимаю предупреждение.

По поводу глюков - пиши в раздел Книга Жалоб и Предложений.

Добавлено через 6 мин.
Цитата(RAPON @ 12.05.2007 10:53) *

В суть задачи вникнуться не могу может кто обьяснит?

Ты сам хоть что-то пытался начинать? пробовал? Если да, покажи, что есть.
Если нет - пробуй..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 12.05.2007 11:05
Сообщение #7


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Смысл такой:
1. Если пользователь нажал цифру - отображаем ее на экране.
2. Если пользователь нажал BackSpase, затираем последний символ.
3. Если пользователь нажал Enter, возвращаем введенное число.
4. Иначе ничего не делаем.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RAPON
сообщение 13.05.2007 0:15
Сообщение #8


Новичок
*

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

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


А как проверить пользователь цифру нажал ли символ?Затем на экране отобразить?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RAPON
сообщение 13.05.2007 12:07
Сообщение #9


Новичок
*

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

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


Может мне кто нибудь ответит?1

Сообщение отредактировано: RAPON - 14.05.2007 0:49
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 14.05.2007 1:26
Сообщение #10


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


может быть.
if ch in ['1'..'9'] then
{это значит, что он ввел цифру}

вообще лучше через case - вариантов-то у нас много.
как работать со спецсимволами (BackSpase, например) - поищи по форуму, было совсем недавно.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 14.05.2007 4:58
Сообщение #11


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


мисс_граффити, почто ноль не в фаворе? smile.gif
Да, лучше воспользоваться case. Типа так:
case c in
'0'..'9': begin
Write©;
s:=s+c;
end;
#8: if Length(s)>0 then begin
Write(#8,' ',#8);
Delete(s,Length(s),1)
end;
#13: if Length(s)>0 then begin
WriteLn;
Val(s,x,e)
end;


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RAPON
сообщение 14.05.2007 10:18
Сообщение #12


Новичок
*

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

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


СПАСИБО,вечером попробую,че непонятно потом спрошу.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RAPON
сообщение 14.05.2007 22:06
Сообщение #13


Новичок
*

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

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


Цитата(Lapp @ 14.05.2007 5:58) *

мисс_граффити, почто ноль не в фаворе? smile.gif
Да, лучше воспользоваться case. Типа так:
case c in
'0'..'9': begin
Write©;
s:=s+c;
end;
#8: if Length(s)>0 then begin
Write(#8,' ',#8);
Delete(s,Length(s),1)
end;
#13: if Length(s)>0 then begin
WriteLn;
Val(s,x,e)
end;


Что делает эта часть программы ?можно узнать,точно?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 14.05.2007 22:22
Сообщение #14


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Цитата
мисс_граффити, почто ноль не в фаворе?

blink.gif не знаю. сказывается делание лабораторок по матстатистике.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 14.05.2007 22:27
Сообщение #15


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(RAPON @ 14.05.2007 23:06) *

Что делает эта часть программы ?можно узнать,точно?

Да, конечно.
Это:
1. распознавание введенного символа (переменная c), а также
2. реакция на этот символ (если цфра - добавляем к вводимой строке, если энтер - переводим строку в число, если бакспейс - удаляем символ и переходим на одну позицию вперед, остальные символы игнорируем).

Это как бы центральная часть программы. Теперь нужно организовать цикл с опросом клавиатуры и вводом символа. Выход из цикла по признаку c=#13


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RAPON
сообщение 14.05.2007 23:52
Сообщение #16


Новичок
*

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

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


Цитата(Lapp @ 14.05.2007 23:27) *

Да, конечно.
Это:
1. распознавание введенного символа (переменная c), а также
2. реакция на этот символ (если цфра - добавляем к вводимой строке, если энтер - переводим строку в число, если бакспейс - удаляем символ и переходим на одну позицию вперед, остальные символы игнорируем).

Это как бы центральная часть программы. Теперь нужно организовать цикл с опросом клавиатуры и вводом символа. Выход из цикла по признаку c=#13

А переменную C нужно описать CHAR?
а эта часть это и есть уже один опрос,да?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RAPON
сообщение 15.05.2007 0:13
Сообщение #17


Новичок
*

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

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


если CHAR могу заранее сказать что ,после "0".. у меня ошибку 41 пишет,а понять не могу че просит у меня буквы там непонятные..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RAPON
сообщение 15.05.2007 0:59
Сообщение #18


Новичок
*

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

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


а сase почему in стоит?вроде же только of может стоять..
а здесь readkey надо будет использовать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 15.05.2007 2:14
Сообщение #19


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(RAPON @ 15.05.2007 1:13) *

после "0".. у меня ошибку 41 пишет

Я извиняюсь, описка произошла: вместо "in" поставь "of". Глупейшая ошибка, извини..

Для того, чтоб понимать ошибки по номерам (и для многих других полезных целей), скачай вот это:
http://download.excode.ru/download277.html

И если будут вопросы - приводи текст программы.
Успехов!


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RAPON
сообщение 15.05.2007 22:33
Сообщение #20


Новичок
*

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

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


М
Теги !


СПАСИБО БОЛЬШОЕ ЗА ПОМОЩЬ!!!Вот моя задача!
Uses crt;
Var c:char;
S:string;
X,e:integer;
Function far(l:byte):integer;
Label 1,2;
Begin
1:c:=readkey;
case c of
‘0’..’9’:begin
write©;
s:=s+c;
goto 1;
end;
#8:if length(s)>0 then begin
write(#8,’ ‘,#8);
delete(s,length(s),1);
goto 1;
end;
#13:begin
if length(s)>0 then begin
writekn;
val(s,x,e);
goto 2;
end;
goto 1;
end;
else goto 1
end;
2:far:=x;
end;
begin
far(1);
readln
end.


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

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

 



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