Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2014, 16:52   #1
thedoctor
Пользователь
 
Регистрация: 29.11.2013
Сообщений: 10
По умолчанию На каком языке этот код и можно ли его переделать?

Добрый день Дамы и Господа Программисты. Вот тут мне дали код и попросили переделать под С++. Только,вроде бы сам этот код написал на С++. Но ток при компиляции выдает ошибки.
Код:
#include <iostream>

using namespace std;

function Calculate( probability, codes )
{
    var holder = new Object( );
    var sum = 0.0;
    for ( var i = 0;
            i < probability.length;
            ++ i )sum += probability[ i ].value;
    for ( var i = 0;
            i < probability.length;
            ++ i )holder[ probability[ i ].name ] = probability[ i ].value / sum;
    var synergy = [ ];
    for ( var i = 0;
            i < probability.length;
            ++ i )
    {
        var data = new Object( );
        data.name = probability[ i ].name;
        data.value = holder[ probability[ i ].name ];
        synergy.push( data );
    }
    //alert(showarr(synergy));
    synergy = sortobj( synergy );
    //alert(showarr(synergy));
    while ( synergy.length > 1 )
    {
        var combine = new Object( );
        combine.left = synergy[ 0 ];
        combine.right = synergy[ 1 ];
        combine.value = synergy[ 0 ].value + synergy[ 1 ].value;
        synergy.shift( );
        synergy.shift( );
        synergy.unshift( combine );
        synergy = sortobj( synergy );
        //alert(showarr(synergy));
    }
    var results = new Array( );
    var code = "";
    buildtree( synergy[ 0 ], code );
    function buildtree( root, currentcode )
    {
        if ( root.left )buildtree( root.left, currentcode + "0" );
        if ( root.right )buildtree( root.right, currentcode + "1" );
        if ( root.name )
        {
            var rec = new Object( );
            rec.name = root.name;
            rec.code = currentcode;
            rec.value = root.value;
            results.push( rec );
        }
    }
    results = sortobj( results );
    for ( var i = results.length - 1;
            i >= 0;
            i -- )
    {
        var rec = codes.AddNewRecord( );
        rec.name = results[ i ].name;
        rec.value = results[ i ].code;
    }
    function sortobj( myobj )
    {
        var result = [ ];
        var tuples = [ ];
        for ( var i = 0;
                i < myobj.length;
                ++ i )tuples.push( [ i, myobj[ i ].value ] );
        tuples.sort( function ( a, b )
        {
            a = a[ 1 ];
            b = b[ 1 ];
            return a < b ? - 1 : ( a > b ? 1 : 0 );
        }
                   );
        for ( var i = 0;
                i < tuples.length;
                ++ i )result[ i ] = myobj[ tuples[ i ][ 0 ] ];
        return result;
    }
    function showarr( myobj )
    {
        var property, propCollection = "";
        for ( property in myobj )
        {
            propCollection += ( property + ": " + showobj( myobj[ property ] ) + "\n" );
        }
        return propCollection;
    }
    function showobj( myobj )
    {
        var property, propCollection = "";
        for ( property in myobj )
        {
            propCollection += ( property + ": " + myobj[ property ] + "\n" );
        }
        return propCollection;
    }
}
Вопрос в том,возможно ли переделать этот код под С++ или нет?
thedoctor вне форума Ответить с цитированием
Старый 10.01.2014, 17:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А это не JavaScript случаем?
Задача, которую решает код известна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.01.2014, 17:31   #3
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Судя по синтаксису и типизации, то скорее всего это действительно JavaScript.
Транслировать код на JavaScript в код на C++ возможно, но с учётом задачи и строгой типизации.
А у тех кто давал Вам этот код название исходного языка не уточняли?
Streletz вне форума Ответить с цитированием
Старый 10.01.2014, 17:49   #4
thedoctor
Пользователь
 
Регистрация: 29.11.2013
Сообщений: 10
По умолчанию

нет,не говорили. А Задача состоит в том,чтобы реализовать "Код Хаффмана" с реализацией вероятности.
thedoctor вне форума Ответить с цитированием
Старый 10.01.2014, 18:16   #5
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от thedoctor Посмотреть сообщение
нет,не говорили. А Задача состоит в том,чтобы реализовать "Код Хаффмана" с реализацией вероятности.
"Код Хаффмана" реализуется как на C++ так и на JavaScript.
Извините за повтор, но учитывая особенности синтаксиса и типизации, наиболее вероятно, что это именно JavaScript.
Цитата:
Вопрос в том,возможно ли переделать этот код под С++ или нет?
Как я уже писал, трансляция кода с JavaScript на C++ возможна.
Streletz вне форума Ответить с цитированием
Старый 10.01.2014, 20:10   #6
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Цитата:
#include <iostream>
using namespace std;
Разве такое в JS есть?
Хотя все остальное явный JS.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 10.01.2014, 20:33   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от ACE Valery Посмотреть сообщение
Разве такое в JS есть?
Хотя все остальное явный JS.
это попытки ТС переделать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.01.2014, 22:35   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

У меня такое вЧепятление, что представлен не весь код.
Например я не понял что за codes.AddNewRecord( )...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.01.2014, 14:18   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

там много чего не хватает на самом то деле.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
на каком сайте можно написать свою прогу на любом языке? Serg94 Свободное общение 7 08.05.2012 16:32
SOS!!!!(на каком языке программа?)Нужно переделать программу,а я даже не знаю на каком она языке:eek::eek:,РЕБЯТА ПОМОГИ Нака Помощь студентам 10 19.11.2011 15:16
На каком языке написан код? FleshDro Помощь студентам 6 11.11.2009 06:46
на каком языке создаются такие программы ,какое СУБД и структура реализации БД,также на каком языке соста оля87 Помощь студентам 13 25.05.2009 18:08