Translacja fragmentu Pascal > C

0

Posiadam następujący fragment kodu w Pascalu. Musze go przetlumaczyc na C(ewentualnie c++) jednak mam pewne problemy:

 
type
  arrn = array[1..10] of integer;
  arron = array[1..10] of integer;
  vertpoint = vertlist; // szczegolny problem w tlumaczeniu na c

  graph = array[1..10] of record
      degree, color: integer;
      adjlist: vertpoint; // szczegolny problem w tlumaczniu na c
  end;

  vertlist = record
      vertex: integer;
      next: vertpoint; // szczegolny problem w tlumaczeniu na c
  end;

Za pomoc bylbym ogromnie wdzieczny! Dla kogos kto zna C i Pascala nie powinno to stanowic wiekszego problemu, aby wykazać się wiedzą ;)

0

Wiedza kosztuje.

1
bronex napisał(a)

Musze go przetlumaczyc na C(ewentualnie c++) jednak mam pewne problemy

Problemy masz zapewne dlatego, że nie znasz w ogóle składni języka C, a kod dotyczy jedynie deklaracji typów, której to można się nauczyć w 5 minut z dowolnego kursu; Więc zamiast oczekiwać na gotowca sprawdź jak deklaruje się macierze oraz struktury;

Poza tym podany przez Ciebie kod w Pascalu jest błędny;

1.

arrn = array[1..10] of integer;
arron = array[1..10] of integer;

Dwa dokładnie takie same typy tablicowe o różnych identyfikatorach - jeden zbędny;

2.

vertpoint = vertlist;

Ta deklaracja powoduje błąd kompilacji: Undeclared identifier: 'vertlist' - dlatego, że vertList zadeklarowany jest poniżej, a powinien być powyżej vertPoint - inaczej jest nieznany;

3.

vertlist = record

Kod w takiej postaci powoduje błąd kompilacji: Identifier redeclared: 'vertlist';

Więc jeśli już masz cokolwiek tłumaczyć to rób to na poprawnym kodzie, a nie na tak idiotycznym; Nie wiem skąd masz ten kod, jednak ktoś kto go napisał nie ma zielonego pojęcia o kodzeniu; Nawet nie ma jak kolejności deklaracji zmienić po to, by kompilator mógł rozpoznać wszystkie typy, bo przeszkadza to:

type
  vertlist = record
    vertex: integer;
    next: vertpoint;
  end;

  vertpoint = vertlist;

Ten kod totalnie nie ma sensu - obie deklaracje wykluczają się wzajemnie; Najpierw to ten kod należy poprawić tak, by możliwa była jego kompilacja, a dopiero potem będzie można go przetłumaczyć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1