1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Lauri |
8.01.2006 10:55
Сообщение
#1
|
|
Гость |
Люди, помогите плиз, скажите - как обозначить формат вводимых данных? (мне надо сделать так, чтобы можно было ввести только цифры, а при введении букв выводилось сообщение об ошибке) может надо использовать a:string, а потом работать со строкой? или case? Вот моя программа (для перевода чисел из десятичной системы в троично-симметричную)...
|
![]() ![]() |
| volvo |
10.01.2006 20:41
Сообщение
#2
|
|
Гость |
Цитата А вариант, предложенный Volvo работает у меня некорректно Полностью ВСЮ свою программу приведи (не кусками, а всю)... И заодно, те данные которые ты вводишь, и ЧТО ТЫ ХОЧЕШЬ ПОЛУЧИТЬ... Сказать "не получается" или "некорректно" очень просто, ты ДОКАЖИ, что это действительно некорректно... |
| Lauri |
10.01.2006 21:09
Сообщение
#3
|
|
Гость |
Код Program perevod; uses crt; var a,err:integer; d,i:byte; mas:array [0..10] of shortint; ok,f,g:boolean; s:string; k:longint; Begin clrscr; repeat writeln ('Vvedite chislo: Exit - press 0'); readln (s); ok:=(ioresult=0); val (s,k,err); ok:= ok and (err=0) and (length(s)<11) and ((k>=-99999999) and (k<=9999999)); if not ok then writeln ('error!!!'); until ok; repeat readln(a); if (a<0) then g:=false else g:=true; d:=0; if (a=0) then halt; repeat i:=0; dec(a); repeat f:=true; inc(mas[i]); if (mas[i]=2) then begin mas[i]:=-1; inc(i); if (d<i) then d:=i; f:=false; end; until f; until (a=0); for i:=d downto 0 do begin if g then write(mas[i]) else write(-mas[i]); mas[i]:=0; end; writeln; until (1<>1); end. Вот так, как я понял... но первый цикл кончается и начинается следующий, который уже выполняет дальнейшие действия (readln(a) - считывается уже другое число, а не то, которое проверялось)... Ввожу "45" - пустая строка, ввожу 45 - 1-1-100 ... |
Lauri Как обозначить цифры? 8.01.2006 10:55
volvo Цифры или числа?
Для чисел уже выкладывалось... Ц... 8.01.2006 11:16
Lauri В этом примере рассматриваются только числовые зна... 9.01.2006 16:08
volvo
:lol: Не смеши меня так больше... Есть такая игра... 9.01.2006 16:17
Shura А вот, если что, процедура, которая осуществляет в... 9.01.2006 16:52
Lauri Но как же совместить эту процедуру с моей программ... 10.01.2006 20:38
volvo GotoXY(WhereX-1,WhereY);
Write(' ... 9.01.2006 17:14
Shura :good: Точно! 9.01.2006 17:25
volvo Нет, не так... Вот так я имел в виду вводить числа... 10.01.2006 21:26
Гость Спасибо ОГРОМНОЕ, теперь всё работает как надо... 10.01.2006 21:39![]() ![]() |
|
Текстовая версия | 8.12.2025 23:27 |