Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Перевод кода PASCAL в C++.

Ответить
Настройки темы
C/C++ - Перевод кода PASCAL в C++.

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Drongo
Дата: 06-05-2011
Описание: Пожалуйста используйте тег кода - #
Здравствуйте. Помогите пожалуста перевести код з PASCAL в C++. Зараниє благодарен. Ну не шарю я С++.

Код: Выделить весь код
Program alg_greedy;
Uses Crt{*, Graph*};
Type Graph  = Array[1..100,1..100] Of Integer;
     List   = Array[1..100] Of Integer;
Const Bukwy : Array[1..16] Of String = ('AB','DE','BD','CD','AC','','','','','','','','','','','');
Var  g      : Graph;    {matriza Grapha}
     newclr : List;     {mnogestvo zakrashenyx vershin Grapha}
     ver_g  : List;     {mnogestvo vershin Grapha}
     n, temp: Integer;  {kolichestvo vershin Grapha}
     i, j, k: Integer;
     otvet  : Integer;
     flag   : Boolean;
{**********************************************}
Procedure greedy(Var ver_g:List; Var newclr:List);
Label 1;
Var found:Boolean;
    v, w :Integer;      {v - vershiny ver_g, w - versiny newclr}
    ch_v, ch_w:Integer; {chetchik v, chetchik w}
begin
  for i:=1 to n do
    newclr[i]:=0;
  ch_v:=1;
  v:=ver_g[ch_v];
  while (v<>0) do
    begin
      found:=false;
      ch_w:=1;
      w:=newclr[ch_w];
      while(w<>0) do
        begin
          if (g[v,w] = 1) then
            begin
              found:=true;
              ch_w := n;
            end;
          ch_w:=ch_w+1;
          w:=newclr[ch_w];
        end;
      if (found = false) then
        for ch_w:=1 to n do
          if (newclr[ch_w]=0) then
            begin
              newclr[ch_w]:=v;
              goto 1;
            end;
     1:ch_v:=ch_v+1;
      v:=ver_g[ch_v];
    end;
  for i:=1 to n do
    if (newclr[i]<>0) then
      for j:=1 to n do
        if (newclr[i] = ver_g[j]) then
          for k:=j to n do
            ver_g[k]:=ver_g[k+1];
End;
{**********************************************}
Begin
  ClrScr;
  Writeln('');
  Writeln('');
  Writeln('');
  Writeln('     Osnovnaj programma');
  Write('     Vvedite kolichestvo vershin Grapha -> ');
  Read(n);

  g[1,5] := 1;
  g[2,3] := 1; g[2,4] := 1;
  g[3,5] := 1;
  g[4,5] := 1;

  For i:=1 To n Do
  For j:=1 To n Do
    If (g[i,j] = 1) Then
      g[j,i] := 1;

  Write('     Ispolzuem greedy  !!!  1 or 0  !!! -> ');
  Read(otvet);
  If (otvet = 1) Then
    For i:=1 To n Do
      ver_g[i] := i
  Else
    Begin
      Writeln('');
      Writeln('     No greedy !!!');
      For i:=1 To n Do
        Begin
          g[i,n+2] := i;
          For j:=1 To n Do
            If (g[i,j] = 1) Then
              g[i,n+1] := g[i,n+1] + 1;
        End;

      flag := true;
      i := 1;
      While (flag) Do
        Begin
          flag := false;
          For j:=n Downto (i+1) Do
            If (g[j-1,n+1] < g[j,n+1]) Then
              Begin
                temp       := g[j-1,n+1];
                g[j-1,n+1] := g[j,n+1];
                g[j,n+1]   := temp;

                temp       := g[j-1,n+2];
                g[j-1,n+2] := g[j,n+2];
                g[j,n+2]   := temp;
                flag := true;
              End;
          i := i + 1;
        End;

      For i:=1 To n Do
        ver_g[i] := g[i,n+2];
    End;

  Writeln('');
  While (ver_g[1] <> 0) Do
    Begin
      Write('     newclr = ');
      greedy(ver_g,newclr);
      For i:=1 To n Do
        If (newclr[i] <> 0) Then
          Write(' ',Bukwy[newclr[i]]:2);
      Writeln('');
      Write('     ver_g  = ');
      For i:=1 To n Do
        If (ver_g[i] <> 0) Then
          Write(' ',Bukwy[ver_g[i]]:2);
      Writeln('');
      Writeln('');
      Readkey;
    End;
  Writeln('     ** Enter **');
  Readkey;
End.

Отправлено: 14:02, 06-05-2011

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Перевод кода PASCAL в C++.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Перевод с Pascal на C++ Snake750 Программирование и базы данных 14 14-09-2015 04:48
C/C++ - Перевод процедуры с Pascal на C++ Snake750 Программирование и базы данных 56 05-04-2011 09:39
C/C++ - Перевод кода с Pascal -> C++ 2008kedr2008 Программирование и базы данных 7 26-11-2010 19:10
Разное - перевести с кода C++ на Pascal... radeon37 Программирование и базы данных 0 03-06-2010 12:20
C/C++ - Перевод с Pascal на C++ DimaZone88 Программирование и базы данных 0 13-05-2010 13:52




 
Переход