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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2012, 22:10   #1
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
По умолчанию Перевод из С# в Delphi или Pascal

Здравствуйте!
Помогите пожалуйста перевести код на Делфи или на Паскаль
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class zadacha
    {
        static int Algoritm (int A)
        {
            int p = 2, v = 1, it = 0;

            while (v > 0)
            {
                int m = A % p;
                A = (A - m) / p;
                it = it + m * v;
                if (A == 0)
                   v = 0;
                else
                   v = v * 10;
            }
            return it;
        } 


        static void Main()
        {

        Console.WriteLine("Результат {0} ", Algoritm(9));
        Console.ReadLine();
       
        }
    }
}
Вот мой код, но не знаю как и куда засунуть параметр А.
Это код перевода из 10-й системы счисления в двоичную. Нужно перевести число 9.

Код:
var
p,it,a,m,b:integer;
 
Procedure TForm1.Button1Click(Sender: TObject);
begin
p:=2;
b:=1;
It:=0;
while (b > 0) do begin
m:= a mod p;
a:=(a - m)/p;
It:= It + m * b;
end;
if (a= 0) then b:= 0
else
b:= b * 10;
return(It);
Edit1.Text:=IntToStr(b);
end;
Asblue вне форума Ответить с цитированием
Старый 29.03.2013, 17:13   #2
STI_Leopard
Новичок
Джуниор
 
Регистрация: 29.03.2013
Сообщений: 1
По умолчанию

Здравствуйте. Та же просьба по переводу в delphi с с++. Очень нужно. Заранее спасибо за помощь.
Код:
#include <stdio.h>
#include <memory.h>

int main()
{
char a[4], b[4];
char l1 = 0, l2 = 0;
int cb[10];
memset(&cb, 0, sizeof(int)*10);

FILE * f = fopen("input.txt", "r");
for (int i = 0; i<4; i++)
fscanf(f,"%c", &a[i]);
fscanf(f, "%c", &b[0]);
for (i = 0; i<4; i++)
fscanf(f,"%c", &b[i]);
fclose(f);

for (i = 0; i<4; i++)
{
if (a[i]==b[i])
l1++;
cb[a[i]-48] = 1;
}
for (i = 0; i<4; i++)
if ((cb[b[i]-48]) && (a[i]!=b[i])) l2++;

f = fopen("output.txt","wt");
fprintf(f, "%d %d",l1,l2);
fclose(f);

return 0;
}
STI_Leopard вне форума Ответить с цитированием
Старый 29.03.2013, 18:26   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Создайте СВОЮ тему в разделе "помощь студентам" . Здесь форум для сишарпа, а не для помощи нерадивым студентам дельфи и плюсами. Более того, там у Вас больше шансов получить помощь, чем здесь.
К тому же, я бы посоветовал самому Вам порешать задачу на дельфи, а не надеяться на помощь в виде перевода первого же нагугленного Вами кода, который возможно и не решает поставленной перед Вами преподавателем задачи (в своей теме укажите и саму задачу, а не только код).
phomm вне форума Ответить с цитированием
Старый 29.03.2013, 20:12   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
function Algoritm (A : integer) : integer;
var
   p, v, it, m : integer;
begin
   p := 2;
   v := 1;
   it := 0;

   while (v > 0) do begin
        m := A mod p;
        A := (A - m) div p;
        it := it + m * v;
        if (A = 0) 
           then v := 0
           else  v := v * 10;
   end;
   Algoritm := it;
end;


Procedure TForm1.Button1Click(Sender: TObject);
begin
   Edit1.Text:= IntToStr( Algoritm(9) );
end;
хотя, конечно, непонятно, зачем Вы делаете приложение с формами.
Ведь исходная программа явно консольная.
я бы и в Delphi использовал консольное приложение:
Код:
program zadacha;

{$APPTYPE CONSOLE}

uses
  SysUtils;

function Algoritm (A : integer) : integer;
var
   p, v, it, m : integer;
begin
   p := 2;
   v := 1;
   it := 0;

   while (v > 0) do begin
        m := A mod p;
        A := (A - m) div p;
        it := it + m * v;
        if (A = 0) 
           then v := 0
           else  v := v * 10;
   end;
   Algoritm := it;
end;

begin
   WriteLn("Результат ", Algoritm(9));
   ReadLn;
end.


код не проверял, писал прямо в браузере и не проверял!
Поэтому за возможные опечатки/неточности/ошибки прошу извинить.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.03.2013, 22:15   #5
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Serge, автору темы уже год, наверное, как не нужно это. А вот автору второго поста надо нагоняй. Лучше вообще эту тему закрыть, наверное.
phomm вне форума Ответить с цитированием
Старый 30.03.2013, 01:53   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Serge, автору темы уже год, наверное, как не нужно это. А вот автору второго поста надо нагоняй. Лучше вообще эту тему закрыть, наверное.
АААА! Точно! Прокосячил я, проглядел дату...
Спасибо за комментарий!

пост от влезшего я в течении дня уберу (даю ему возможность почитать ваш ответ)

а вот закрывать темы в разделе C# я не могу - прав у меня на этот раздел нет...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод с Pascal в Delphi 7 volk_102 Помощь студентам 1 12.12.2011 12:58
Перевод целых чисел (Pascal, Delphi) Ketya24 Помощь студентам 3 04.12.2011 00:14
Перевод кода с Pascal в Delphi Rin Общие вопросы Delphi 5 09.01.2011 01:39