Перевод кода с Си - Turbo Pascal (34006)

Узнай цену своей работы

Формулировка задачи:

Помогите,пожалуйста,перевести с С на Паскаль..

Решение задачи: «Перевод кода с Си»

textual
Листинг программы
type
  PNode=^TNode;  //объявление новых типов данных
  TNode=record
    prev: PNode;
    data: double;
  end;
 
var
  top: PNode;
 
procedure push(d: double);
var
  p: PNode;
begin
  New(p);       //выделение памяти
  p^.prev:=top; //сохранение адреса вершины стека
  top:=p;       //присвоение вершине стека адреса нового элемента
  p^.data:=d;
end;
function pop: double;
var
  p: PNode;        //объявление временной переменной
begin
  pop:=top^.data;
  p:=top;          //сохранение адреса вершины стека
  top:=top^.prev;  //присвоение вершине стека адреса предыдущего элемента
  Dispose(p);      //освобождение памяти
end;
 
var
  i: integer;
begin
  top:=nil;  //инициализация глоб.переменной нулевым указателем
  for i:=0 to 1000 do push(i*0.1);     //выполнение 1000 вставок в стек
  while top<>nil do WriteLn(pop:8:1);  //выталкивание всего содержимого стека
end.

Объяснение кода листинга программы

  1. Создание типа данных PNode, который является указателем на структуру TNode.
  2. Объявление переменной top типа PNode, которая будет представлять вершину стека.
  3. Объявление переменной p типа PNode, которая будет использоваться как временная переменная при вызове функции push.
  4. Функция push принимает аргумент d типа double и выполняет следующие действия:
    • Выделяет память с помощью оператора New.
    • Сохраняет адрес вершины стека в переменной p^.prev.
    • Присваивает вершине стека адрес нового элемента с помощью оператора top:=p.
    • Сохраняет значение d в поле data структуры TNode, которую представляет переменная p^.
  5. Объявление переменной i типа integer.
  6. Цикл for, который выполняется 1000 раз и каждый раз вызывает функцию push, передавая ей значение i*0.1. Это приводит к вставке 1000 элементов в стек.
  7. Вызов функции pop, которая возвращает значение из стека и освобождает память, выделенную для вершины стека.
  8. Вызов функции WriteLn, которая выводит значение, выталкиваемое из стека. Этот шаг выводит значения из стека по одному до тех пор, пока в стеке не останется ни одного элемента.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5