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

Задана система двусторонних дорог - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Описать сведения о книгах http://www.cyberforum.ru/cpp-beginners/thread965332.html
Дан файл f, содержащий сведения о книгах: фамилия автора, название, год издания.Найти и вывести на экран названия всех книг данного автора. создала структуру struct tag_book { char name; char author;
C++ блекджек с++ Ребята помогите пожалуйста начинающий программист, домашка написать блекджек, вот начал но продолжить не получается #include <iostream> #include<time.h> using namespace std; #define DECK_SIZE 52 int index; enum {PIKI, TREFI, BUBNI, CHERVI}; http://www.cyberforum.ru/cpp-beginners/thread965329.html
вектор функций C++
Как правильно добавлять функции в вектор и вызывать их? Вот допустим есть вектор std::vector<void (*)(int, int)> vector; Он должен хранить в себе указатели на функции. Вот некоторые функции void function1(int x, int y) { std::cout<<"Function 1: "<<x<<" - "<<y<<std::endl; } void function2(int x, int y) { std::cout<<"Function 2: "<<x<<" - "<<y<<std::endl;
C++ Битовые операции
Составить две программы, первая из которых вводит составные части структуры данных, и формирует из них заданную упакованную структуру. Вторая программа вводит упакованную структуру как 16-ричной число и выводит значения отдельных ее составных частей. Слово состояния канала в вычислительной системе представляется в виде: розряду 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Значення N N ...
C++ Составить программу для вычисления значения rez в зависимости от поставленного условия http://www.cyberforum.ru/cpp-beginners/thread965321.html
Помогите пожалуйста решить проблему с разветвляющимися алгорифмами, у меня получается всегда идет одним путем какое бы число я не подставил, а другим нет. Вот условие: Составить программу для вычисления значения rez в зависимости от поставленного условия. Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного...
C++ Исправте ошибку программе с ++ в 6 версии визуал студио Незнаю как исправить для 6 версии, помогите! #include <iostream.h> #include <conio.h> using namespace std; int main() { int min = 10000; int max = -10000; подробнее

Показать сообщение отдельно
ien_brave
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 10
30.09.2013, 00:38     Задана система двусторонних дорог
Задана система двусторонних дорог.
N-периферией называется множество городов, расстояние от которых
до выделенного города больше N. Определить N периферию для заданного города.


вот реализация в Pascal. Помогите перевести в C++ да и вообще разобраться что к чему

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
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
94
95
96
97
98
99
100
Program s4l3; 
const n=4; 
type 
    matrix=array[1..n,1..n] of real; 
    names=array[1..n] of string; 
    proverka=array[1..n] of boolean; 
var m:matrix; 
    name:names; 
    i,j,gorod:integer; 
    city:string; 
    r:real; 
    ok,f:boolean; 
    p:рroverka; 
 
Procedure vvod(var m:matrix;var name:names); 
var i,j,k:integer; 
    buf:real; 
begin 
     for i:=1 to n do 
     begin 
          writeln('Введите названия ',i,' города'); 
          readln(name[i]); 
     end; 
     k:=1; 
     for i:=1 to n do 
     m[i,i]:=0; 
     for i:=1 to n do 
     begin 
          k:=k+1; 
          for j:=k to n do 
          begin 
               writeln('Введите расстояние от ',name[i],' до ',name[j]); 
               readln(buf); 
               m[i,j]:=buf; 
               m[j,i]:=buf; 
          end; 
     end; 
end; 
 
Procedure Perif(p:рroverka; ras:real; stroka:integer); 
var x:integer; 
begin 
     ok:=true; 
     x:=1; 
     while (x<=n)and(ok) do 
     begin 
          if (m[stroka,x]<>0)and(p[x]) then 
          begin 
               ras:=ras+m[stroka,x]; 
               p[x]:=false; 
               if x=i then 
               begin 
                    if (ras<=r)and(ras<>0) then //begin 
                    ok:=false; //writeln('FALSE ',name[i],' ',ras,' ',r,' ',i); end; 
               end 
               else 
                   perif(p,ras,x); 
               ras:=ras-m[stroka,x]; 
          end; 
          x:=x+1; 
     end; 
end; 
 
Begin 
     vvod(m,name); 
     for i:=1 to n do 
         for j:=1 to n do 
          writeln(name[i],' - ',name[j],': ', m[i,j],' '); 
     writeln('Введите расстояние'); 
     readln(r); 
     city:=''; 
     f:=false; 
     while not f do 
     begin 
          writeln('Выберите город'); 
          readln(city); 
          for i:=1 to n do 
          if city=name[i] then 
             begin 
                  f:=true; 
                  gorod:=i; 
             end; 
          if f then break 
          else 
            writeln('неправильный город!'); 
     end; 
     for i:=1 to n do 
         p[i]:=true; 
     writeln('N-переферия города ',name[gorod]); 
     for i:=1 to n do 
     begin 
          if i<>gorod then 
          begin 
               perif(p,0,gorod); 
               if ok then 
                  writeln(name[i]); 
          end; 
     end; 
     if not ok then writeln('таких городов нет'); 
End.

вот вроде чуть чуть начал:
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
94
95
96
97
98
99
100
Program s4l3; 
const n=4; 
type 
    matrix=array[1..n,1..n] of real; 
    names=array[1..n] of string; 
    proverka=array[1..n] of boolean; 
var m:matrix; 
    name:names; 
    i,j,gorod:integer; 
    city:string; 
    r:real; 
    ok,f:boolean; 
    p:proverka; 
 
Procedure vvod(var m:matrix;var name:names); 
var i,j,k:integer; 
    buf:real; 
{ 
   for (i=1; i!=n; i++) 
     { 
          printf('Введите названия ',i,' города'); 
          scanf(name[i]); 
     }; 
     k=1; 
     for (i=1; i!=n; i++)
     m[i,i]=0; 
for (i=1; i!=n; i++)
     { 
          k=k+1; 
          for j=k to n do 
          { 
               printf('Введите расстояние от ',name[i],' до ',name[j]); 
               scanf(buf); 
               m[i,j]=buf; 
               m[j,i]=buf; 
          }; 
     }; 
}; 
 
Procedure Perif(p:proverka; ras:real; stroka:integer); 
var x:integer; 
{ 
     ok=true; 
     x=1; 
     while (x<=n)and(ok) do 
     { 
          if (m[stroka,x]<>0)and(p[x]) then 
          { 
               ras=ras+m[stroka,x]; 
               p[x]=false; 
               if x=i then 
               { 
                    if (ras<=r)and(ras<>0) then //{ 
                    ok=false; //printf('FALSE ',name[i],' ',ras,' ',r,' ',i); }; 
               } 
               else 
                   perif(p,ras,x); 
               ras=ras-m[stroka,x]; 
          }; 
          x=x+1; 
     }; 
}; 
 
{ 
     vvod(m,name); 
for (i=1; i!=n; i++)
         for (j=1; j!=n; j++)
          printf(name[i],' - ',name[j],': ', m[i,j],' '); 
     printf('Введите расстояние'); 
     scanf(r); 
     city=''; 
     f=false; 
     while not f do 
     { 
          printf('Выберите город'); 
          scanf(city); 
         for (i=1; i!=n; i++)
          if city=name[i] then 
             { 
                  f=true; 
                  gorod=i; 
             }; 
          if f then break 
          else 
            printf('неправильный город!'); 
     }; 
for (i=1; i!=n; i++)
         p[i]=true; 
     printf('N-переферия города ',name[gorod]); 
     for (i=1; i!=n; i++)
     { 
          if i<>gorod then 
          { 
               perif(p,0,gorod); 
               if ok then 
                  printf(name[i]); 
          }; 
     }; 
     if not ok then printf('таких городов нет'); 
}.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru