Задача: Напишите программу, которая выдает сообщение в текстовое окно.Координаты окна и координаты для сообщения вводиться с клавиатуры.Цвет экрана и цвет символов задайте с помощью датчика случайных чисел.
program okno;
uses Crt;
var
A, B, X, Y, K, L:integer;
begin
TextColor(A);
TextBackGround(B);
ClrScr;
Randomize;
A:=Random(16);
B:=Random(16);
writeln('Введите координаты окна');
readln(X, Y);
Window(X, Y);
writeln('Введите координаты сообщения');
GotoXY(K, L);
read(K, L);
writeln ('Задача решена');
end.
Пишу в программе Pascal ABC..В конце программы я уверен написано совсем не то,что нужно,там я совсем запутался...Подскажите пожалуйста!
IUnknown
17.09.2011 13:31
Цитата
Пишу в программе Pascal ABC.Она ругается на процедуру window.(Ошибка: неверное количество фактических параметров)
Какая разница где? Процедура Window всегда принимает 4 параметра, а не 2 (разница - только в смысле параметров, скажем, в Турбо Паскале подразумеваются координаты X и Y левого верхнего и правого нижнего окна, а в PascalABC - координаты (X, Y) верхнего левого угла и ширина/высота).
Ну, а вообще - не самая хорошая идея писать программы для PascalABC, использующие модуль CRT... Тот компилятор, который был написан не для .NET, уже давно не поддерживается, последние версии компилятора написаны именно под .NET, и программу, написанную с использованием CRT просто не удастся отладить, потому что запустить ее в режиме отладки PascalABC не даст. Так что тут надо подумать, продолжать пользоваться PABC и мучаться со старым модулем (даже если программа успешно откомпилируется - я совсем не уверен, что она будет адекватно себя вести), или брать какой-то другой компилятор.
P.S. Не надо в самом начале делать
TextColor(A);
TextBackGround(B);
ClrScr;
, это приведет к тому, что и цвет фона и цвет выводимых символов будут черными (и A и B автоматически инициализируются нулем, а это именно черный цвет), и ты элементарно ничего не увидишь. Либо установи какие-то конкретные цвета, либо не меняй ничего вообще.
SpeedFire
17.09.2011 13:57
C window разобрался!Просто учебник отсканированый,я думал там точка,а там запятая!)Теперь понятно, спасибо IUnknown,сейчас попробую дописать программу
SpeedFire
17.09.2011 14:23
program sdfl;
uses crt;
var
A, B, W, X, Y, Z, O, P : integer;
begin
Randomize;
A:=Random(16);
B:=Random(16);
write('Введите координаты окна:');
readln(W, X, Y, Z);
window(W, X, Y, Z);
write ('Введите координаты сообщения:');
readln(O,P);
GotoXY(O,P);
write('Задача решена!');
TextColor(A);
TextBackGround(B);
ClrScr;
end.
Вот написал все получилось, кроме конечного сообщения "задача решена!",оно почему то не появляется.
Добавлено через 9 мин. Получилось написать "задача решена",поставил readln после строчки write('Задача решена'); НО теперь цвета не работают :D
IUnknown
17.09.2011 14:34
Делаешь так:
program sdfl;
uses crt;
var
A, B, W, X, Y, Z, O, P : integer;
begin//Randomize;
//A:=Random(16);
//B:=Random(16);
write('Введите координаты окна:');
readln(W, X, Y, Z);
window(W, X, Y, Z);
write ('Введите координаты сообщения:');
readln(O,P);
GotoXY(O,P);
write('Задача решена!');
//TextColor(A);
//TextBackGround(B);
//ClrScr;
end.
, компилируешь, жмешь Shift+F9 (чтоб запустить), вводишь координаты, и внимательно читаешь ответ программы. А теперь еще раз прочитай, что я тебе написал выше, особенно во втором абзаце.