17 Кафедра МИФИ - Форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » 17 Кафедра МИФИ - Форум » 17 кафедра » Задача по инфе


Задача по инфе

Сообщений 1 страница 11 из 11

1

Помогите написать программу, которая выводит динамическое изображение куба, вращающегося вокруг заданной оси.  Желательно в Pascale. Заранее спасибо.

0

2

http://194.87.63.15/graph/cube.htm

0

3

Спасибо за быстрый ответ. Сейчас проверю в действии. Ещё раз спасибо!

0

4

А где бы найти программу реализации очереди с помощью курсоров? Так же на Паскале.

0

5

В смысле с помощью указателей?

0

6

"Напишите программу реализации очереди с помощью курсоров." Вот такая задача и не знаю, что думать.

0

7

Код:
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.

0

8

Gumanoid, благодарю тебя. Но, вопрос: в чем смысл этой программы? Не пойму, как поставленной задачи, так и ее решение.

0

9

оффтоп: а почему ты решил к нашей кафдере обратиться, а не к, скажем, 29?

0

10

Почему? Задание получил от препода 17-ой. Вот и решил, что лучше обращаться к вам.

0

11

Не пойму, как поставленной задачи, так и ее решение.

а гуглить пробывали?

0


Вы здесь » 17 Кафедра МИФИ - Форум » 17 кафедра » Задача по инфе