Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
9 / 9 / 0
Регистрация: 14.01.2013
Сообщений: 102

Перевести код на c++

04.07.2013, 07:23. Показов 1063. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Столкнулся с такой проблемой...
есть код на freebasic нужно его перевести на с++...
Ну вот что-то никак не выходит...
Я не знаком с бейсиком, ну да ладно бы это...
но там какие-то ф-ции стандартные из него использованы и вот в них как раз и загвоздка...
не могу понять что они делают...
код ...
PureBasic
1
2
3
4
5
6
7
8
9
Function CalcDist(x1 As Integer, x2 As Integer, y1 As Integer, y2 As Integer) As Integer
    Dim As Integer xdiff, ydiff
    Dim dist As Integer
   
    xdiff = Abs(x1 - x2)
    ydiff = Abs(y1 - y2)
    dist =  (xdiff + ydiff + imax(xdiff, ydiff)) Shr 1
    Return dist
End Function
Как я понял из коментария эта ф-ция должна возвращать расстояние между двумя точками...
Ну что-то с этими стандартными ф-циями совсем не похоже...
'Returns fast distance calc between two points.
...
Буду весьма признателен если кто расталкует что к чему и как ...
На с++ конечно...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.07.2013, 07:23
Ответы с готовыми решениями:

Перевести ассемблерный код TASM в программный код для архитектуры ARM
Необходимо программный код перевести в программный код языка ассемблер для архитектуры ARM, учитывая синтаксис, структуру программы и...

Каким образом можно перевести код Паскаля в код Фортран?
Здравствуйте уважаемые программисты! Может быть банальная, но довольно сложная проблема - перевод из одного кода в другой! Как его можно...

Ребята,можно ли этот код перевести на чистый си(Код смешан с си++)
Задача: 4 балла: Разработать игровое поле для змейки. Продумать способ хранения змейки, управления с помощью стрелок. Отобразить змейку...

5
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
04.07.2013, 07:56
наплюй и напиши свою ( да и не похожа она на стандартную)
чтобы узнать расстояние между двумя точками, нужно вспомнить теорему Пифагора
квадрат гипотенузы равен сумме квадратов катетов

вот так она будет выглядеть для целочисленных значений

C++
1
2
3
4
5
6
#include <math.h>
............................
int CalcDist(int x1,int y1,int x2, int y2)
{
return sqrt((x1-x2)*(x1-x2)+(y1-y2)(y1-y2));
}
2
179 / 24 / 7
Регистрация: 16.05.2013
Сообщений: 181
04.07.2013, 08:26
Цитата Сообщение от ValeryS Посмотреть сообщение
наплюй и напиши свою ( да и не похожа она на стандартную)
согласен, тут какаята другая функция
Цитата Сообщение от ValeryS Посмотреть сообщение
вот так она будет выглядеть для целочисленных значений
чтобы найди расстояние, нужно из соответсвующих координат второй точки вычисть первую (это я из книги по геометрии посмотрел, и точно вам говорю, советую ещё в поисковик вбить тот же ответ будет)
и в библиотеки math.h(cmath) есть функция чтобы возвести в степень число
вообщем это функция, по нахождению растоянию между двумя точками должна выглядить так
C++
1
2
3
4
5
#include <cmath>
// ...........................
int CalcDist( int x1, int y1, int x2, int y2 ) {
    return sqrt( pow(x2-x1, 2)+pow(y2-y1, 2) );
}
1
9 / 9 / 0
Регистрация: 14.01.2013
Сообщений: 102
04.07.2013, 08:37  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
наплюй и напиши свою ( да и не похожа она на стандартную)
чтобы узнать расстояние между двумя точками, нужно вспомнить теорему Пифагора
квадрат гипотенузы равен сумме квадратов катетов

вот так она будет выглядеть для целочисленных значений

C++
1
2
3
4
5
6
#include <math.h>
............................
int CalcDist(int x1,int y1,int x2, int y2)
{
return sqrt((x1-x2)*(x1-x2)+(y1-y2)(y1-y2));
}
Спасибо!
Но всётаки хотелось бы узнать как это чудо работает...
Просто у меня сложноватая логика в проекте...
Ну верней я взялся писать игру простейшую для набора так сказать опыта и практики...
И под руку тогда попался пример написания игры на бейсики плюс там был что было расписано с чего начать и т.п. ну и само собой пример написания игры...
Ну вот я разобрался с первыми 10 частями только вот здесь застрял...
Результат этой ф-ции связан с расчётом прямой видимости по Бразенхему,
поэтому и хотелось бы узнать точно что подаёт эта ф-ция...
Ну а для этого нужно знать как она работает...
Разобрал кое-что, забыл написать...
Abs - это аналог abs() на c++ - возвращает абсолютное число.
Chr 1 - это сдвиг в право если я правильно понял...
Осталось только - imax()...
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
04.07.2013, 08:47
Цитата Сообщение от Нету имени Посмотреть сообщение
чтобы найди расстояние, нужно из соответсвующих координат второй точки вычисть первую (это я из книги по геометрии посмотрел, и точно вам говорю, советую ещё в поисковик вбить тот же ответ будет)
а это что
Цитата Сообщение от ValeryS Посмотреть сообщение
(x1-x2)
ты хоть нарисуй на бумажке две точки проведи между ними линию и прикинь размер этой линии
Цитата Сообщение от Нету имени Посмотреть сообщение
и в библиотеки math.h(cmath) есть функция чтобы возвести в степень число
и ? вызывать функцию чтобы возвести в квадрат ? т.е умножить число на самое себя?
а зачем?
Цитата Сообщение от IPavel Посмотреть сообщение
Chr 1 - это сдвиг в право если я правильно понял...
ну да
оно же делить на 2
Цитата Сообщение от IPavel Посмотреть сообщение
Осталось только - imax()
по моему возвращает максимальное число, но могу ошибаться, спроси в ветке бэйсика
Цитата Сообщение от IPavel Посмотреть сообщение
Результат этой ф-ции связан с расчётом прямой видимости по Бразенхему,
формулу знаешь? напиши свою реализацию
0
9 / 9 / 0
Регистрация: 14.01.2013
Сообщений: 102
04.07.2013, 09:09  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
а это что
ты хоть нарисуй на бумажке две точки проведи между ними линию и прикинь размер этой линии

и ? вызывать функцию чтобы возвести в квадрат ? т.е умножить число на самое себя?
а зачем?
ну да
оно же делить на 2

по моему возвращает максимальное число, но могу ошибаться, спроси в ветке бэйсика


формулу знаешь? напиши свою реализацию
Да, знаю...
У меня две реализации...
Одна по этой же книжки написана, только на с++ я переписал с бейсика...
А другая с другой книженции по 2д графики...
чуть позже скину...
... imax...
А зачем он тогда максимальное число получал???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.07.2013, 09:09
Помогаю со студенческими работами здесь

Нужно код из паскаль перевести в делфи (сортировка выбором), код ниже и условие
нужно добавить в процедуру делфи код сортировки выбором из паскаль чтобы сортировало код делфи procedure TForm1.Button18Click(Sender:...

Как перевести код с паскаля на Java. Пытался сам но код не хочет работать переведенный
А сам код на паскале работает. Вот код на паскале var i,j,m,c,d: integer; A:array of integer; begin c:=1; ...

Перевести код С++ в код на Ассемблере (Ассемблерная вставка для С++)
Приветствую знатоков! Трудоемко ли перевести код функции Func под ассемблерную вставку (в Visual Studio через __asm (?)) Код на С++...

Как шестнадцатеричный код перевести в код символа
Подскажите пожалуйста. Есть шестнадцатеричный код как его перевести в код символа: ...

Дан код программы на C++, перевести этот код на C
#include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;string.h&gt; using namespace std; HANDLE...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru