|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
20.07.2007, 10:50 | #11 | |
Студент
Форумчанин
Регистрация: 10.11.2006
Сообщений: 196
|
#3
Цитата:
Код:
Visita Interiorem Terrae Rectificando Operae Lapidem...
|
|
24.07.2007, 08:35 | #12 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Может так короче :
uses crt; var c:char;s:string; begin repeat c:=readkey;write(c); if c in ['0'..'9'] then if c <> '0' then s:=s+chr(ord(c)-1) else s:=s+'.' else s:=s+c; until c=#13; writeln;writeln(s); end.
I'm learning to live...
|
24.07.2007, 09:19 | #13 |
;-)
Пользователь
Регистрация: 18.07.2007
Сообщений: 69
|
Использовать асмовский трюк с "Chr(Ord(str[i])-1)". Заменить это на Dec(str[i]). Компилер так и поступает, но здесь будет декремент сразу в памяти, без лишних пересылок туда-сюда по регистрам.
Константу не трогаем, код меньше не станет, потеряем в гибкости. Код:
|
24.07.2007, 09:34 | #14 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну вообще то в Паскале строка всего лишь 255 символов, так что распределение памяти не особо будет стараться. Хотя конечно с уже введенной строкой тоже можно работать без особых проблем. Весь вопрос в том что автор имел ввиду под краткостью - короче читабельный код или машинный.
А про DEC я и забыл.
I'm learning to live...
|
24.07.2007, 09:43 | #15 | |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
Хочу напомнить задание:
Цитата:
Так, что правильный ответ дал Tayfun.
Life is too short, play more...
Как правильно задавать вопросы |
|
24.07.2007, 11:20 | #16 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Блин я как всегда задание провтыкал. Вот примерчик на мой взгляд короче
uses crt; var k,e,s:string;i:integer;c:char;b:boo lean; begin b:=true; clrscr; repeat c:=readkey;b:=true; write(c); while (c<>#13)and(c<>' ') do begin k:=k+c; if (c<'0')or(c>'9') then begin s:='';b:=false;end else begin dec(c);s:=s+c;end; c:=readkey;write(c); end; if b then e:=e+s else e:=e+k; e:=e+' ';s:='';k:=''; until c=#13; writeln;writeln(e); end.
I'm learning to live...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите решить задачи по Паскалю! | Brizon | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 13.06.2008 14:28 |
Помогите решить задачи по Паскалю | Alexsandr08 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 31.05.2008 19:50 |
Задачи по паскалю | Agent[PNZ] | Помощь студентам | 10 | 22.11.2007 21:45 |
Простые задачи по паскалю | Kasim | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 22.12.2006 08:23 |