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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2010, 14:32   #1
Superlotles
Пользователь
 
Аватар для Superlotles
 
Регистрация: 18.08.2009
Сообщений: 86
По умолчанию Перевести код на Делфи

Переведите,пожалуста, этот код на Delphi

Код:
#include "stdafx.h"
#include <conio.h>
using namespace std;
void function (int *p)
{
*p=*p*2;
}
int main(){
        int a;
        a=5;
        cout << "a= " << a << endl;
        function(&a);
        cout << "a= " << a << endl;
        return 0;
}
Skype: Lotles-XXXX
Superlotles вне форума Ответить с цитированием
Старый 30.03.2010, 16:14   #2
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

обьясни что выполняет программа и я напишу
kakawkin вне форума Ответить с цитированием
Старый 30.03.2010, 16:26   #3
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

программа умножает число на 2 и возвращает результат по указателю
Код:
program P;

procedure func(var a: integer)
begin
    a := a * 2;
end;
var
    a: integer;
begin
    writeln("a = ", a);
    func(a);
    writeln("a = ", a);
    readln;
end.
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 30.03.2010, 17:44   #4
Superlotles
Пользователь
 
Аватар для Superlotles
 
Регистрация: 18.08.2009
Сообщений: 86
По умолчанию

Мне нужно именно на Delphi и дословно. Я сравниваю 2 языка: Delphi и C++, на C++, дошел до указателей, на C++ так
Код:
void function (int *p)
,
а на Delphi что то не получается:
Код:
{$R *.dfm}
function (p:^integer):integer;
Skype: Lotles-XXXX
Superlotles вне форума Ответить с цитированием
Старый 30.03.2010, 19:21   #5
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

void - это НЕ функция, аналог процедуры на делфи

я тебе правильно написал, обычно так и делают

ну вот тебе аналог

Код:
program P;

type
    PInt = ^Integer;
  
var
    a: integer;
    p: PInt;

procedure F(var p: PInt);
begin
  p^ := p^ * 2;
end;   
    
begin
    a := 5;
    writeln("a = ", a);
    p := @a;
    F(p);
    writeln("a = ", a);
    readln;
end.
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 30.03.2010, 20:09   #6
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от RUSt88 Посмотреть сообщение
Код:
program P;

type
    PInt = ^Integer;
  
var
    a: integer;
    p: PInt;

procedure F(var p: PInt);
begin
  p^ := p^ * 2;
end;   
    
begin
    a := 5;
    writeln("a = ", a);
    p := @a;
    F(p);
    writeln("a = ", a);
    readln;
end.
Чуть покритикую
"procedure F(var p: PInt);". Так как передаётся адрес, а изменяется данные по адресу, то возвращать адрес обратно нет смысла. Более того, убрав var, можно напрямую подставлять адрес в функцию.

Код:
program P;

type
    PInt = ^Integer;
  
var
    a: integer;

procedure F(p: PInt);
begin
  p^ := p^ * 2;
end;   
    
begin
    a := 5;
    writeln('a = ', a);
    F(@a);
    writeln('a = ', a);
    readln;
end.
Ну и в writeln(" кавычки одинарные
eoln вне форума Ответить с цитированием
Старый 30.03.2010, 20:16   #7
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

eoln, спс, учту
а двойны кавычки - против копипаста
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]

Последний раз редактировалось RUSt88; 30.03.2010 в 20:18.
RUSt88 вне форума Ответить с цитированием
Старый 30.03.2010, 20:18   #8
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

А я бы так написал:
Код:
procedure func(p:pointer);
begin
 integer(p^):=integer(p^)*2;
end;

var
 a:integer;
begin
 a:=5;
 writeln('a= ', a);
 func(@a);
 writeln('a= ', a);
 readln;
end.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевести код из С++ на DELPHI JustKurt Фриланс 8 06.07.2009 16:31
Помогите перевести на язык делфи код с С++! SkAndrew Общие вопросы Delphi 9 21.05.2009 18:49
Как перевести на делфи следующий код? SkAndrew Общие вопросы Delphi 7 15.05.2009 21:48
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37
Перевести код с Pascal в C++ gigaman Общие вопросы C/C++ 1 26.03.2008 12:18