Вопрос № 112344: Здравствуйте уважаемые эксперты!
Очень нужно (ну просто ужас как!!!) решить задачку:
Есть 2 берега, 1 лодка, - необходимо переправить на лодке за 2 перехода - т.е. и волки сыты - и овцы целы.
Код программы уже есть, осталось то...Вопрос № 112440: Доброе время суток, уважаемые эксперты!
Помогите пожалуйста справиться со следующей задачей!
В паскале нужно написать функцию, которая бы читала клавиши и возвращала True, если нажата одна из клавиш: <up>, <down>, <left> или...
Вопрос № 112.344
Здравствуйте уважаемые эксперты!
Очень нужно (ну просто ужас как!!!) решить задачку:
Есть 2 берега, 1 лодка, - необходимо переправить на лодке за 2 перехода - т.е. и волки сыты - и овцы целы.
Код программы уже есть, осталось только немного разобраться и поправить код - у меня это не получилось... помогите плз!!!
Огромное спасибо!!!
procedure test(ss:mm;var rez:boolean);
begin
if((mm[1]=1) and (mm[3]=3)) then
begin
writeln('Волк съел козу');
rez:=true;
writeln('Проигрыш!');
end;
end;
begin
rez:=false;
rez2:=true;
left[1]:=1;
left[2]:=2;
left[3]:=3;
writeln('1 - Волк 2 - Капусты 3 - Коза 0 - Никого');
repeat
writeln('Какой пассажир едет к правому берегу: ');
read(a);
case a of
begin
1:begin left[1]:=0; prav[1]:=1; end;
2:begin left[2]:=0; prav[2]:=2; end;
3:begin left[3]:=0; prav[3]:=3; end;
end;
test(left,rez);
if(rez) then break;
test(prav,rez);
if(rez) then break;
writeln('Какой пассажир едет к левому берегу: ');
read(a);
test(lef,rez);
case a of
begin
1:begin left[1]:=1; prav[1]:=0; end;
2:begin left[2]:=2; prav[2]:=0; end;
3:begin left[3]:=3; prav[3]:=0; end;
end;
test(prav,rez);
test(lef,rez);
s:=0;
for i:=1 to 3 do
if(lef[i]:=0) then
s:=s+1;
if(s:=3) then
rez2:=true;
until rez or rez2;
end.
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Игнатов Андрей Сергеевич!
Смотрите приложение. Вы забыли о капусте, коза её очень любит. Удачи!
Приложение:
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал) Украина, Киев Тел.: +380958380164 Адрес: Украина г.Киев ---- Ответ отправлен: 04.12.2007, 21:00 Оценка за ответ: 5 Комментарий оценки: Спасибо за исправление кода, теперь пойдём править логику, т.к. из цикла не выходит после ввода норм. значений. Огромное спасибо за исправление!!
Вопрос № 112.440
Доброе время суток, уважаемые эксперты!
Помогите пожалуйста справиться со следующей задачей!
В паскале нужно написать функцию, которая бы читала клавиши и возвращала True, если нажата одна из клавиш: <up>, <down>, <left> или <right>. Это нужно сделать, не используя модуль CRT. Желательно бы сделать используя встроенный ассемблер
Можно хотя бы написать одну из функций, а для остальных клавиш указать только их код
Отвечает: Delph
Здравствуйте, Каракулов Алексей Валентинович!
В приложении программа с функцией, читающей код нажатой клавиши. Коды нужных Вам клавиш:
Left - 19200;
Right - 19712;
Up - 18432;
Down - 20480.
Код любой другой клавиши Вы сможете узнать, просто запустив программу и нажав эту клавишу. Условие завершения программы - нажатие клавиши Esc (её код равен 283). Прочитайте нажатую клавишу в переменную: w := SckanKey; и сможете проверить код на несколько разных значений. Бонус: выражение (w div 256) даст SCAN-код нажатой клавиши, а (w mod 256) - ASCII-код (то же самое, что и ORD(ReadKey)).
Приложение:
--------- Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.
Ответ отправил: Delph (статус: Студент)
Ответ отправлен: 05.12.2007, 14:07 Оценка за ответ: 5 Комментарий оценки: Большое спасибо.
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Каракулов Алексей Валентинович!
Смотрите приложение.
Функция ожидает нажатия клавиши.
Если заменить строку jz @@1 на jz @@8 , то фунцкия будет возвращать FALSE когда нажата другая клавиша или не нажато никакой.
Удачи!
Приложение:
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал) Украина, Киев Тел.: +380958380164 Адрес: Украина г.Киев ---- Ответ отправлен: 05.12.2007, 15:39 Оценка за ответ: 5
Отвечает: Артём1983 !!! Здравствуйте, Каракулов Алексей Валентинович! Смотрите код в приложении.
Приложение:
--------- Программирование - дело Путное!
Ответ отправил: Артём1983 (статус: 7-ой класс)
Ответ отправлен: 05.12.2007, 20:09