Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Перевод процедуры с Pascal на C++

Ответить
Настройки темы
C/C++ - Перевод процедуры с Pascal на C++

Аватара для Snake750

Старожил


Сообщения: 175
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Drongo
Дата: 29-03-2009
Описание: Тег [code]...[/code]
помогите пожалуйста с переводом вот этой процедурки
Код: Выделить весь код
Function kkk(var ki,kj:byte):integer;
var i,j:byte;
k,k_min:integer;
b:boolean;
Begin
b:=1=1;
for i:=1 to Na do
for j:=1 to Nb do
if p[i,j]=-1 then begin
k:=c[i,j]-alfa[i]-betta[j];
if b then begin
b:=1=2;
ki:=i; kj:=j; k_min:=k;
end else
if k<k_min then begin
k_min:=k;
ki:=i; kj:=j;
end;
end;
kkk:=k_min;
End;
У меня вопрос возник на счет двойного присваивания значения переменной b.Перевести процедуру нужно на с++

Отправлено: 13:28, 29-03-2009

 

Вредитель


Сообщения: 460
Благодарности: 126

Профиль | Отправить PM | Цитировать


Snake750,
b:=1=1; то же, что и b:=true;
b:=1=2; => b:=false;
это boolean переменная, и такое присваивание синтаксически вполне корректно.

-------
Все сказаное является только моим личным мнением.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:40, 29-03-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Snake750

Старожил


Сообщения: 175
Благодарности: 0

Профиль | Отправить PM | Цитировать


я вот перевел эту процедуру,но у меня она не работает из за вот этих ошибок:
1.Error 1 error C2109: subscript requires array or pointer type
2.Error 2 error C2061: syntax error : identifier 'b'
3.Error 4 error C2181: illegal else without matching if
4.Error 5 error C2659: '=' : function as left operand
вот мой код.подскажите что не так
Код: Выделить весь код
int kkk(unsigned char ki,unsigned char kj)
{int i,j;
int k,k_min;
bool b;
b=1;
for (i=1;i<=Na;i++)
for (j=1;i<=Nb;j++)
if (p[i,j]==-1)
{k=c[i,j]-alfa[i]-b[j];
if b
{b=0;
ki=i;
kj=j;
k_min=k;
} else if (k<k_min) 
{k_min=k;
ki=k;
kj=j;
}}
kkk=k_min;
}

Последний раз редактировалось Drongo, 29-03-2009 в 13:55. Причина: Тег [code]...[/code]


Отправлено: 13:47, 29-03-2009 | #3


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


А что должна программа делать?
Цитата Snake750:
вот мой код.подскажите что не так »
Код: Выделить весь код
int kkk(unsigned char ki,unsigned char kj)
{
  int i, j;
  int k, k_min;
  bool b;
  b = 1;

  for(i = 1; i <= Na; i++) // Переменные 'Na' не объявлены
    for(j = 1; i <= Nb; j++)  // Переменные 'Na' не объявлены
       if(p[i,j] == -1){ // Запись массива должна быть такой 'p[i][j]', необъявлены. 
          k = c[i,j] - alfa[i] - b[j]; // Запись массива должна быть такой 'c[i][j]', необъявлены.
          if b{  // // Что с чем сравнивается? Должно быть правильное условие.
            b = 0;
            ki = i;
            kj = j;
            k_min = k;
           }
          else if (k < k_min){
            k_min = k;
            ki = k;
            kj = j;
           }
        }
  kkk = k_min;  // Непонятное присваивание
  // Функция должна вернуть какое-то значение, результат работы. 'return _Возвращаемое_Значение'
}

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 14:11, 29-03-2009 | #4


Аватара для Snake750

Старожил


Сообщения: 175
Благодарности: 0

Профиль | Отправить PM | Цитировать


if b{ // // Что с чем сравнивается? Должно быть правильное условие. а почему на паскале такое условие катит???

Отправлено: 14:26, 29-03-2009 | #5


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата Snake750:
а почему на паскале такое условие катит??? »
Я ж не создатель языка? Синтаксис такой.
Подождите, может знатоки языка подтянутся, подскажут, как правильно перевести эту строчку.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 14:37, 29-03-2009 | #6


Аватара для Snake750

Старожил


Сообщения: 175
Благодарности: 0

Профиль | Отправить PM | Цитировать


а ты можешь полностью перевести эту процедуру???

Отправлено: 15:00, 29-03-2009 | #7


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата Snake750:
а ты можешь полностью перевести эту процедуру??? »
К сожалению нет, рад был бы помощь, но не знаю Pascal.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 15:07, 29-03-2009 | #8


Аватара для ganselo

Старожил


Сообщения: 232
Благодарности: 90

Профиль | Сайт | Отправить PM | Цитировать


Цитата Snake750:
if b{ // // Что с чем сравнивается? Должно быть правильное условие. а почему на паскале такое условие катит??? »
b булевский тип.
записи
Код: Выделить весь код
...
if(b)
{
}...
и
Код: Выделить весь код
...
if(b == true)
{
}
...
одинаковы.

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".


Последний раз редактировалось Drongo, 29-03-2009 в 15:24.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:09, 29-03-2009 | #9


Аватара для Snake750

Старожил


Сообщения: 175
Благодарности: 0

Профиль | Отправить PM | Цитировать


СПАСИБО ОГРОМНОЕ ТОВАРИЩИ.ПРОЦЕДУРКА РАБОТАЕТ.ВЫЛОЖУ КОД МОЖЕТ КОМУ НАДА.ТЕМУ ПОКА НЕ ЗАКРЫВАЙТЕ ПЛЗ
Код: Выделить весь код
nt kkk(unsigned char ki,unsigned char kj)
{int i,j;
int k,k_min;
bool b;
b=1;
for (i=1;i<=Na;i++)
for (j=1;i<=Nb;j++)
if (p[i][j]==-1)
{k=(c[i][j]-alfa[i]-betta[j]);
if (b==true)
{b=false;
ki=i;
kj=j;
k_min=k;
} else if (k<k_min) 
{k_min=k;
ki=k;
kj=j;
}}
return k_min;
}
есть ли аналог вот этой функции на си
Код: Выделить весь код
inc(f,c[i,j]*p[i,j]);
эта же функция используется с одним аргументом inc(i);
как такое написать на си???

Последний раз редактировалось Drongo, 29-03-2009 в 15:25.


Отправлено: 15:12, 29-03-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Перевод процедуры с Pascal на C++

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Перевод с Pascal на C++ Snake750 Программирование и базы данных 14 14-09-2015 04:48
Разное - Всё о TURBO PASCAL (обсуждение, помощь в написание программ, ошибки, Pascal ABC) Loading Программирование и базы данных 41 20-05-2015 15:28
Использование - Возврат процедуры активации Windows XP Craager Лицензирование продуктов Microsoft 6 06-03-2009 15:22
Вызов процедуры ToX Программирование и базы данных 10 24-07-2004 00:11
Delphi - Delphi,Описание процедуры Roman Go Программирование и базы данных 14 09-03-2003 00:04




 
Переход