Помогите написать программу, которая выводит динамическое изображение куба, вращающегося вокруг заданной оси. Желательно в Pascale. Заранее спасибо.
Задача по инфе
Сообщений 1 страница 11 из 11
Поделиться32006-02-24 18:39:19
Спасибо за быстрый ответ. Сейчас проверю в действии. Ещё раз спасибо!
Поделиться42006-02-24 18:48:01
А где бы найти программу реализации очереди с помощью курсоров? Так же на Паскале.
Поделиться52006-02-24 20:20:56
В смысле с помощью указателей?
Поделиться62006-02-24 20:59:03
"Напишите программу реализации очереди с помощью курсоров." Вот такая задача и не знаю, что думать.
Поделиться72006-02-24 21:06:46
program pr09a; { Очередь в динамической памяти }
{ (c) 2005 by Gumanoid }
type
link = ^node;
node = record
inf: integer;
ref: link;
end;
procedure push(var head, tail: link; x: integer);
var
p: link;
begin
new(p); { Выделить ячейку памяти }
p^.inf:=x; { Записать в неё значение }
p^.ref:=nil; { Последний элемент }
if ((nil=head) and (nil=tail)) then { Если очередь пуста }
begin
head:=p;
tail:=p;
end
else
begin
tail^.ref:=p; { Ссылка на добавленный элемент }
tail:=p; { Последний элемент }
end;
end;
function pop(var head, tail: link; var x: integer): boolean;
var
p: link;
begin
if ((nil=head) and (nil=tail)) then
pop:=false { Если очередь пуста }
else
begin
x:=head^.inf; { Получить значение элемента }
if head=tail then { Если больше нет элементов }
begin
dispose(head); { Освободить память }
head:=nil;
tail:=nil;
end
else
begin
p:=head^.ref; { Записать адрес 2-го элемента }
dispose(head); { Освободить память }
head:=p;
end;
pop:=true;
end;
end;
procedure print_menu;
begin
WriteLn;
WriteLn('1. Добавить элемент');
WriteLn('2. Извлечь элемент');
WriteLn('3. Выйти');
write('# ');
end;
var
numb: byte;
value: integer;
head, tail: link;
close_query: boolean;
begin
close_query:=false;
head:=nil;
tail:=nil;
while not close_query do
begin
print_menu;
read(numb);
case numb of
1: begin
write('Введите значение: ');
read(value);
push(head, tail, value);
end;
2: if pop(head, tail, value) then
WriteLn(value)
else
WriteLn('Ошибка. Очередь пуста.');
3: close_query:=true;
end;
end;
end.Поделиться82006-02-24 21:18:07
Gumanoid, благодарю тебя. Но, вопрос: в чем смысл этой программы? Не пойму, как поставленной задачи, так и ее решение.
Поделиться92006-02-24 21:20:24
оффтоп: а почему ты решил к нашей кафдере обратиться, а не к, скажем, 29?
Поделиться102006-02-24 21:26:35
Почему? Задание получил от препода 17-ой. Вот и решил, что лучше обращаться к вам.
Поделиться112006-02-24 21:44:45
Не пойму, как поставленной задачи, так и ее решение.
а гуглить пробывали?