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

Транзитивность.Связка.Есть код на PHP. Нужен C - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Получение информации об ОС http://www.cyberforum.ru/cpp-beginners/thread1122202.html
Есть программа которая показывает следующие функции: 1 Имя компьютера 2 Системная информация 3 Системные цвета 4 Директорию Windows Код программы: #include "stdafx.h" #include <windows.h> #include <stdio.h>
C++ Перегрузка операторов под vector Добрый день. Просьба направить в правильном направлении при перегрузке операторов : using namespace std; class polinom{ http://www.cyberforum.ru/cpp-beginners/thread1122200.html
C++ Область видимости. один класс не видит другой класс
Добрый день! такая проблема. Есть базовый класс Q. От него наследуется 2 класса Р и G. Класс P имеет два конструктора 1 принимает число а 2 принимает объект класса g. Класс g имеет один единственный конструктор принимающий объект класса P. При компилировании возникает ошибка класс р не видит класс g. Вопрос: как сделать так чтобы p видел g Базовый класс /// class Q // {protected: int...
Подскажите недостающие библиотеки C++
Необходимо построить прямую, используя алгоритм DDA-линии. Используя алгоритм из википедии(http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_DDA-%D0%BB%D0%B8%D0%BD%D0%B8%D0%B8) #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include <math.h> #include <stdio.h> #include <stdlib.h>
C++ Поиск элементов, которые имеются в двух массивах. http://www.cyberforum.ru/cpp-beginners/thread1122171.html
Написать функцию для поиска элементов, которые имеются в обоих массивах А и В в нескольких экземплярах
C++ Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN помогите пожалуйста, не получается сделать,туго с динамикой. • Описать структуру с именем TRAIN, содержащую следующие поля: • название пункта назначения; • номер поезда; • время отправления. Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN (записи должны быть упорядочены по номерам поездов); • вывод на экран... подробнее

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

Транзитивность.Связка.Есть код на PHP. Нужен C - C++

17.03.2014, 21:48. Просмотров 231. Ответов 0
Метки (Все метки)

Здравствуйте. Имеется известная задача связности. (Транзитивность)
Установить связаны ли машины напрямую либо опосредованно,либо необходимо установить новое соединение.
Имеется код на PHP. Кому нетрудно переведите на С.Хотя бы какието моменты. В частности ввод массива массивов и функции add,union .
PHP
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
/**
 * Класс, отвечающий за поиск и объединение двух IP-адресов методом быстрого поиска
 */
class QuickFindConnector
{
    // Здесь будут храниться все связи. Ключи - это IP-адреса, значения - это "связки"
    private $_relations = array();
 
    /**
     * Если IP-адреса отсутствуют в массиве $_relations - добавим их туда
     */
    public function add($ip1, $ip2)
    {
        if(!array_key_exists($ip1, $this->_relations))
            $this->_relations[$ip1] = $ip1;
        if(!array_key_exists($ip2, $this->_relations))
            $this->_relations[$ip2] = $ip2;        
    }
 
    /**
     * Проверяем, связаны ли IP-адреса
     */
    public function find($ip1, $ip2)
    {
        return $this->_relations[$ip1] === $this->_relations[$ip2] ? true : false;
    }
 
    /**
     * Связываем IP-адреса
     */
    public function union($ip1, $ip2)
    {
        // Значение этой переменной указывает на "связку" первого IP
        $ip1Relation = $this->_relations[$ip1];
 
        // Перебираем массив со связями и обновляем "связки" (для тех IP-адресов, у которых такая же 
        // "связка", как у первого IP) "связкой" второго IP
        foreach($this->_relations as $key => $value)
        {
            if($value === $ip1Relation)
                $this->_relations[$key] = $this->_relations[$ip2];
        }        
    }
}
PHP
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
// Зададим входящие данные обычным массивом, для простоты.
// Скорее всего, пары IP-адресов для связывания должны поступать извне.
$input = array(
    array('255.255.0.3', '255.255.0.4'),
    array('255.255.0.4', '255.255.0.9'),
    array('255.255.0.8', '255.255.0.0'),
    array('255.255.0.2', '255.255.0.3'),
    array('255.255.0.5', '255.255.0.6'),
    array('255.255.0.2', '255.255.0.9'),
    array('255.255.0.5', '255.255.0.9'),
    array('255.255.0.7', '255.255.0.3'),
    array('255.255.0.4', '255.255.0.8'),
    array('255.255.0.5', '255.255.0.6'),
    array('255.255.0.0', '255.255.0.2'),
    array('255.255.0.6', '255.255.0.1'),
);
 
$quickFindConnector = new QuickFindConnector();
 
foreach($input as $pair)
{
    // Эти два IP-адреса должны быть связаны
    $ip1 = $pair[0];
    $ip2 = $pair[1];
 
    $quickFindConnector->add ($ip1, $ip2);
 
    // Если данные не связаны - связываем их
    if($quickFindConnector->find ($ip1, $ip2) === true)
        continue;
    else
        $quickFindConnector->union ($ip1, $ip2);
 
 
    // Теперь мы можем что-то сделать с IP-адресами, установить соединение, к примеру
    echo "$ip1 | $ip2 - connection established! <br />";
}
Добавлено через 5 минут
(Именно ПЕРЕВОД неприницпиален,если можете помочь просто с нуля,буду благодарен!)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru