Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C Pascal'я на С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ графика в борланде http://www.cyberforum.ru/cpp-beginners/thread50671.html
Народ, помогите изменить прогу...надо, чтоб после запуска фигуры двигались и изменяли цвет не автоматически, а с помощбю клавиш, то есть пользователь должен ими управлять с клавиатуры..вот мой...
C++ case struct Здравствуйте! Подскажите как аналогичную структуру сделать в С++? type MainTyp=record case integer of 1:(I:integer); 2:(w1,w2:word); 3:(b1,b2,b3,b4:byte); end; http://www.cyberforum.ru/cpp-beginners/thread50670.html
C++ прога на вычисление выражение на С++
Здраствуйте, можете помочь написать прогу на C++ которая бы вычесляла выражение (x-(y-z)/a*d при условии что a*d>50000.
Команды Borland C++ по разделам их назначения C++
Парни помогите. МНе задали задание найти команды Borland C++ по разделам их назначения. Помогите плиз или дайте ссылку на команды, то найти не могу. Заранее спасибо.
C++ Можно ли выразить порядковый номер элемента массива через индексы? http://www.cyberforum.ru/cpp-beginners/thread50660.html
Допустим,есть двумерный массив a, и необходимо получить доступ к элементу a;можно ли как-то узнать его порядковый номер в массиве,полагая,что если бы массив был разложен в линейное множество,его...
C++ Проблему с двумерным динамическим массивов Написал программку. Считает правильно, но в конце выдаётся ошибка. Цель такая:В массив А(N,М) вставить одномерный массив В(N), расположив его перед последним столбцом, содержащим нулевой элемент.... подробнее

Показать сообщение отдельно
Sergeymd
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 45

C Pascal'я на С++ - C++

13.09.2009, 16:00. Просмотров 1895. Ответов 14
Метки (Все метки)

Помогите пожалуйсто Pascal не изучал совсем необходимо переделать прогу на c++, как смог сделал но чето она не фурычит.

вот есть даже блок схема:http://img7.imageshost.ru/imgs/09091...8a23/26032.jpg

Цель проги:Построение отображений и транзитивных замыканий в графе

Обозначения:
X - номер вершины для которой ищется транзитивное замыкание;
T(N) - массив транзитивного замыкания;
С - счетчик добавления вершин в транзитивное замыкание ;
P - признак: P = 1 при формировании Т+ , P = 0 при формировании Т-.
A-матрица смежности

Pascal
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
USES CRT;
label n1,n2;
var
A : array[1..15,1..15]of integer;  
b, t : array[1..15]of integer;
n,l,x,c,i,j : integer;
Begin
clrscr;
writeln('введите количество вершин графа n ');
read(n);
writeln('введите матрицу смежности ');
for i:=1 to n do
for j:=1 to n do read(A [ i, j ] );
writeln('введите номер вершины графа х ');
read(x);
l:=1;
t [ x ]:=l;
n1: writeln ('Прямое отображение ‘,l,’-ого порядка ');
c:=0;
for i:=1 to n do
begin
         if t [ i ]=l then
     begin
          for j:=1 to n do
        begin
             if A[J,I ]=1 then
          begin
              writeln (j,' ');
              if t [ j ]=0 then
                  begin t [ j ]:=l+1; c:=c+1; 
                  end;
          end;
      end; 
   end; 
end;
if c<>0 then begin l:=l+1; goto n1; end;
l:=1; b[ x ]:=l;
n2: writeln ('Обратное отображение ‘ ,l,’-ого порядка’);
c:=0;
for i:=1 to n do
begin
if b[ i ]=1 then
begin
for j:=1 to n do
begin
if A [ i, j ]=1 then begin write (' ',j);
if b[ j ]=0 then begin
b[ j ]:=l+1; c:=c+1;
end; end;
end;
end;
if c<>0 then begin l:=l+1; goto n2; end;
writeln(‘Транзитивные замыкания:’);
for i:=1 to n do
begin
for j:=1 to n do
write (‘ ‘,A[ i,j ] );
writeln (‘ ‘,t[ i ] );
end;
writeln (‘ ‘);
for i:=1 to n do write (‘ ‘,b[i] );
end.
Вот че получилось правда без ввода кол-ва вершин их я указал в n=4; и без ввода матрицы смежности она у меня в m[4][4]
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
 
 
int main(void)
{
   int n = 4;
   int x;//nomer versini
  int l=1,i,j,c;
  
   int m[4][4]={0, 1, 1, 1,
                1, 0, 1, 1,
                1, 1, 0, 1,
                1, 1, 1, 0};
  int t[50];
  int b[50];
 
 
  cout<<"vvedite nom vershini"<<endl;
  cin>>x;
 
 t[x]=l;
  n1:cout<<"premoe otobraj poreaddka "<<l<<endl;
  c=0;
 
 for(i=1;i<=n;i++)
 {
   if(t[i]==l)
   {
     for(j=1;j<=n;j++)
     {
       if(m[j][i]==1)
        {
         cout<<j<<endl;
 
          if(t[j]==0)
           {
           t[j]=l+1;c=c+1;
           }
         }
       }
     }
 }
 if(c!=0)
 {
  l=l+1; goto n1;
 }
 l=1;
 b[x]=l;
 n2:cout<<"obratnoe otobraj poreaddka "<<l<<endl;
 c=0;
  for(i=1;i<=n;i++)
  {
    if (b[i]==1)
    { 
      for(j=1;j<=n;n++)
      {
        if (m[i][j]==1)
        {
         cout<<j<<endl;
         if(b[j]==0)
          {
            b[j]=l+1; c=c+1;
          }
       
         }
        }
     }
  }
  
 if(c!=0)
  {
   l=l+1; goto n2;
  }
 
  cout<<"Tranzit zamikania"<<endl;
 
 for(i=0;i<=n;i++)
 { 
  for(j=1;j<=n;j++)
   cout<<m[i][j]<<endl;
   cout<<t[i]<<endl;
   
 }
 for(i=1;i<=n;i++)
  cout<<b[i]<<endl;
 
 getch();
 return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru