Есть у нас в универе предмет - программирование. Программируем мы только на Паскале, а я вот захотел начать изучать Си. Мы с преподавателем договорились, что по мере возможности я буду делать лабы на Си, ну а то что не смогу - на Паскале, сдавать-то лабы нужно. И вот сразу столкнулся с проблемой(повторяю, я новичок) - в лабораторной нужно рисовать диалоги. На Паскале мы это делаем с помощью модуля CRT(см код), а вот как это сделать на Си я не знаю. Есть у меня книга Дейтелов(на 900 стр такой учебник), читаю её, но ничего похожего на наши лабы не нашёл.
Скажите, есть ли некоторое подобие модуля CRT, но в Си, или можно выкрутиться по-другому.
Код: Выделить всё
{...}
{Цвет текста и фона}
procedure colors(cv1, cv2 : byte);
begin
TextColor(cv1);
TextBackground(cv2);
end;
{Тень у диалога - для красоты}
procedure shadow(x1, y1, x2, y2, cv1, cv2 : byte);
var
i:byte;
begin
colors(cv1, cv2);
for i:=y1 to y2 do
begin
GotoXY(x1, i);
write(' ' :x2-x1+1);
end;
end;
{Двойная псевдографическая рамка}
procedure double(x1, y1, x2, y2, cv1, cv2 : byte);
const
s1 = #201;
s2 = #205;
s3 = #187;
s4 = #186;
s5 = #200;
s6 = #188;
var
i : byte;
begin
shadow(x1+1, y1+1, x2+1, y2+1, 0, 0);
shadow(x1, y1, x2, y2, cv1, cv2);
GotoXY(x1, y1);
write(s1);
for i:=x1+1 to x2-1 do
write(s2);
write(s3);
for i:=y1+1 to y2-1 do begin
gotoxy(x1, i);
write(s4);
gotoxy(x2, i);
write(s4);
end;
gotoxy(x1, y2);
write(s5);
for i:=x1+1 to x2-1 do
write(s2);
write(s6);
end;
begin
colors(11, 1);
clrscr;
{...}
{Вот так дилог выглядит в сборе}
double(20, 6, 60, 16, 14, 5);
gotoxy(29, 6);
write('Вычисляем синус');
gotoxy(30, 9);
write('Результат: ');
gotoxy(32, 11);
write('Аргумент = ', a:8:5);
gotoxy(32, 13);
write('Синус = ', f:8:5);
readln;
end.