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

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

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

 
 Ответить  Открыть новую тему 
> Ожидание, До anykey
сообщение
Сообщение #1


Гость






И снова здрасьте! Вообщем, выполняется операция. Repeat...until. И мне нужно, чтобы она выполнялась до тех пор, пока пользователь не нажмёт какую-нибудь клавишу.
И что получится? Напишите плиз. Пробовал разные варианты:
Repeat
...
Until AnyKey;
и тому подобное, но ничего не выходит. Скажите, какой код надо написать. Заранее спасибо.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Repeat
...
Until KeyPressed;

тебе поможет...

Только перед выходом не забудь очистить буфер клавиатуры:
While KeyPressed Do ReadKey;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


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

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

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


В модуле crt есть ф-ция KeyPressed. Думаю, она Вас и интересует...

**опоздала. а как удалить сообщение?

Сообщение отредактировано: мисс_граффити -


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


Гость






Спасибо, всё получилось!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Ах, да и есшо:
Вот у меня выводится текст постепенно (тобишь медленно, по буквам). Необходимо, чтобы когда пользователь нажмёт любую клавишу, текст перестал выводится (аналог CTRL+BRAKE) и вывелся сразу весь, чтобы можно было приступить к другим операциям.
Ну вот, например заставка в играх идёт, вы нажимаете Пробел, заставка выключается и появляется главное меню. Вот также, но только с текстом.
Вариант увелечение вывода скорости текста (путём уменьшения Delay) не предлагать.
Ну блин, вообщем выводится текст. Нажимаю пробел и выводится сразу весь текст. Разом.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Смотрю...
*****

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

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


Пиши свою функцию/процедуру.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата(Гость @ 16.04.2006 22:20)
Вариант увелечение вывода скорости текста (путём уменьшения Delay) не предлагать.

Но совсем без Delay ты тоже не обойдешься. Я надеюсь, объяснять, почему - не нужно?

uses crt;
const
T = 50;

function get_char(var f: text): string;
var ch: char;
begin
read(f, ch);
if ch = #13 then begin
read(f, ch);
get_char := #13#10;
end
else get_char := ch;
end;

var
f: text;
ch: char;

begin
assign(f, 'aa.txt');
reset(f);

repeat
if not eof(f) then begin
write(get_char(f));
delay(T)
end;
until eof(f) or keypressed;

while keypressed do readkey;

while not eof(f) do
write(get_char(f));
close(f);
end.

В файле 'aa.txt' - текст, который будет печататься. Величину T подберешь экспериментально.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






А попроще нельзя?
Вот код ИИ:

" (Показать/Скрыть)

Строчки, после которых идёт Delay (1) - это постепенный вывод текста. Затем, где If C[ix] - это ответ на условия. Могу потом поконкретнее объяснить. Так вот. Мне нужно чтобы текст, который медленно выводится, при нажатии любой клавиши выводился сразу и у меня появлялось меню. Т.е. чтобы ты нажимаешь кнопку, текст перестаёт выводится, выводится сразу и появляется меню. Вот.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата(Гость @ 17.04.2006 22:07)
А попроще нельзя?

lol.gif lol.gif lol.gif Это ты меня спрашиваешь про ПОПРОЩЕ??? Я тебя должен спросить, тебе не кажется? То, что ты делаешь в сотнях строк, у меня реализовано в двух десятках...

Цитата(Гость @ 17.04.2006 22:07)
Вот код ИИ:

blink.gif Код ЧЕГО??? blink.gif Ты вообще в курсе, что такое ИИ? ЭТО по-твоему ИИ? Ну, тогда, извини, что помешал тебе создавать Искуственный Интеллект своими советами... Больше мешать не буду. Можешь продолжать спокойно.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


извиняюсь за оффтоп ...

Это самый крутой код, который я видел в своей жизни. Долго писал ?))))

Хотя вообще-то да, искуственный интеллект - это вам не шутки lol.gif lol.gif lol.gif
good.gif


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


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

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

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


В Юмор! lol.gif


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


-
****

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

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


Вся тайна ИИ в иероглифах. Вольво, ты не запутался в этом сложнейшем коде? ты мог ошибится в 56 строчке. Помоему, это очень оптимальный вариант, надо провети замеры скорости, часто большая программа выигрывает по скорости.
Гость, а попробуй графику рисовать, по точкам лучше всего. Не верь им, они тебя запугивают, продолжай в том же духе!!! Не используй сложных алгоритмов.


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


Гость






Цитата(FreeMan @ 18.04.2006 17:06)
а попробуй графику рисовать, по точкам лучше всего.
Главное - после вывода каждой точки не забыть Delay(1) поставить... rolleyes.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Автооответчик
*****

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

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


и выводить обязательно через баб-ягу - не верь что прямой вывод в видеопамять быстрее чем через прерывания.


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


Гость






А чё такое-то? Я просто пишу Искуственный Интеллект.
Эта программа состоит из 3 подпрограмм:
1)Массив, в котором содержаться условия;
2)Рандомизатор условий, в последствии выводит их на эран;
3)"Отвечальщик" на условия.
Ну и мелкая подподпрограмма, связывающая всё это воедино. Программа носит кодовое имя AA-v1.0FR. Принцип действия:
В массиве содержаться некие условия. Рандомизатор берёт эти условия и "перемешивает" их. Далее выводит одно из них (сами понимаете, в случайном порядке) на экран. Далее, другая подпрограмма анализирует это условие и ищет его в Базе Данных ответов. Как только она находит сопоставление, ответ сразу же выводится на экран. Пример:
Массив=Словарь, чтобы было понятнее.
В словаре есть 3 слова: препятствие, фотоаппарат, обрыв. Эти слова перемешивается и из них выбирается любое. Выбрано препятствие. На него ищется ответ и выводится на экран. Ответом является "Обойти препятствие". Т.е. грубо говоря вся работа программы сводится в одну строчку:
Условие=препятствие. Ответ на условие=обойти.
Вот собственно и всё.
Иероглифы-буквы. При Copy-Paste они превратились в кракозябру.
Delay(1) у меня стоит, так как я задолбался по 10 раз читать одно и тоже (что занимает довольно длительное вермя при выводе), чтобы протестировать 1 функцию. Поэтому я и обратился к вам за помощью в создании своеобразного "прерывания" вывода текста и вывода его целиком - сразу после нажатия люой клавиши. Стандартное значение Delay для постепенного вывода текста - 100. Чё вы сразу налетели-то?
Лучше посоветуйте, какие поправки в коде надо сделать!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Гость






Только без шуток! sad.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Автооответчик
*****

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

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


примерно так (компилятора на работе нет):
procedure DelayedOutput(str:string; delay_value:longint);
var i:byte;
begin
repeat
write(str[i]);
inc(i);
delay(delay_value);
until (keypressed) or (i>length(str));
while i<=length(str) do
begin
write(str[i]);
inc(i);
end;
end;
end;

можно конечно и оптимизировать...

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


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


Гость






А куда здесь текст вставлять?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Автооответчик
*****

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

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


блин, ты процедурами пользоваться умеешь ? а типы различаешь ? вот текст - это сторока или целое число ?
DelayedOutput('Hello World!',100);

вывод строки "Hello World!" c задержкой между в 100 мс. между выводом символов.


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 




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