Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите новичку решить простенькую задачку)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
SpeedFire
Задача: Напишите программу, которая выдает сообщение в текстовое окно.Координаты окна и координаты для сообщения вводиться с клавиатуры.Цвет экрана и цвет символов задайте с помощью датчика случайных чисел.
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
Цитата
Пишу в программе 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
C window разобрался!Просто учебник отсканированый,я думал там точка,а там запятая!)Теперь понятно, спасибо
IUnknown,сейчас попробую дописать программу
SpeedFire
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
Делаешь так:

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 (чтоб запустить), вводишь координаты, и внимательно читаешь ответ программы. А теперь еще раз прочитай, что я тебе написал выше, особенно во втором абзаце. smile.gif
IUnknown
Так все-таки, PascalABC или FreePascal? С FPC проблем как раз нет, тут все будет работать как положено:

uses Crt;
var
X1, X2, Y1, Y2,
pX1, pY1 : Integer;
begin
ClrScr;
write ('Введите координаты окна:');
ReadLn (X1, Y1, X2, Y2);
write ('Введите координаты сообщения:');
ReadLn (PX1, PY1);

Window (X1, Y1, X2, Y2); // Создаем окно
Randomize;

TextColor (Random (15) + 1); // Не черный цвет текста
TextBackGround (Random (7) + 1); // Не черный цвет фона
ClrScr; // Очищаем ОКНО

GotoXY (X1, Y1); // и внутри окна выводим сообщение
write ('Задача решена!');
readln;
Window (1, 1, 80, 25); // Восстанавливаем нормальное окно
end.


P.S. Откуда у тебя там SVN взялся? Ты откуда FPC качал?
SpeedFire
После того как ты сказал что
Цитата
не самая хорошая идея писать программы для PascalABC, использующие модуль CRT...

скачал Free Pascal отсюда
что такое svn понятия не имею smile.gif
За программу спасибо,теперь все понятно)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.