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

  1. Помогите,пожалуйста,перевести с С на Паскаль..C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include <malloc.h> #include <stdio.h>   struct tagStack{   double data;   struct tagStack *prev; }*stack=0;   void push(double d){  struct tagStack* s;   s=malloc(sizeof(struct tagStack));   s->prev=stack;   s->data=d;   stack=s; } void pop(){   struct tagStack* tmp;   fprintf(stdout, "%g\n", stack->data);   tmp=stack;   stack=stack->prev;   free(tmp); } int main(){   double x;   for(x=0.0; x<1000.1; x+=0.1)                             push(x);   while(stack!=0)                  pop();   return 0; }


textual

Код к задаче: «Перевод кода с Си - Turbo Pascal»

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.

СДЕЛАЙТЕ РЕПОСТ

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



Похожие ответы
  1. Здравствуйте,помогите перевести паскаль на С++ writeln - cout,я понял а остальное

  1. Я в паскале ещё тупой не могу написать программу: пользователь вводит слово и программа капсит все буквы

  1. Ребят,у меня проблема.Вот задача:Известно, что IP-адрес записывается в нескольких вариантах. Наиболее известен «человеческий» вариант. Например, 192.168.0.1. Программа получает запись IP-адреса в «человеческом» виде и преобразует его к двоичному виду. При этом каждый байт должен состоять из восьми разрядов. Байты отделяются друг от друга пробелами. Точки между байтами не допускаются.Мне бы алгоритм ну или просто объясните на примере ,а то додуматься не могу.

  1. Записать функцию b=f(x,y,z) по правилам языка Паскаль b=|x-y|(sin3z+tgz)

  1. Чему будет равно значение переменной s и сколько раз выполнится цикл после выполнения следующей последовательности операторов?

  1. Здравствуйте! Помогите, пожалуйста, перевести этот код в Паскаль.C#1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 double[] array = new double[20]; Console.WriteLine("Введите массив"); for (int a = 0; a<20;a++) {       array[a] = Convert.ToDouble(Console.ReadLine()); } int countOfChanges = 0; string currentSign; if (array[0] >= 0) {     currentSign = "+"; } else {     currentSign = "+"; } for (int b = 1; b<=19;b++) {      if (array[b] < 0 && currentSign == "+")      {          countOfChanges +=1;          currentSign = "-";       }       else if (array[b] >= 0 && currentSign == "-")       {           countOfChanges +=1;           currentSign = "+";        } } Console.WriteLine("Введенный массив"); for(int c = 0; c < 20; c++); {         Console.Write(array[c] + " "); } Console.WriteLine(); Console.WriteLine("Количество смен знака = " + countOfChanges); Console.ReadKey(); }

  1. Люди добрые, помоги пожалуйста. Написал 2 программы ( 2 программу писал не сам ) только сейчас узнал, что нужно написать на turbo pascal, но сколько ТП я скачивал, выдают несовместимость с системой. Прошу, можете мои программы скинуть, на ТП?

  1. По введенному символу установить в каких позициях его двоичного кода записаны нули.

  1. программа считает в real , потом переводит файлы в double для матлаба , а теперь не могу сделать обратный перевод в real из double

  1. Напишите рекурсивную процедуру для перевода десятичного числа в P-ичную систему счисления, не использующую в своей работе массив. Входные данные На вход программе сначала подается значение P (1P10), а во второй строке — десятичное число. Выходные данные Вывод осуществляйте следующим образом: сначала выведите введенное число в десятичной системе счисления, за ним укажите его систему счисления в круглых скобках, то есть (10), затем ставится знак "=" и аналогично выводится результат работы вашей программы — число в P-ичной системе счисления. Весь вывод осуществляется без пробелов. Примеры входные данные 3 123 выходные данные 123(10)=11120(3)