Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Портирование С++ кода на Паскаль


Rorschach ©   (2012-01-30 21:55:00) 

Требуется переписать следующий код на Паскаль:
[code]
int main()
{
    unsigned int M, N;
    float raw_matrix[9][11];
    float *result_array;

    printf("enter M & N:\n");
    scanf("%i%i",&M,&N);
    printf("--------enter matrix--------\n");

    for(int j = 0; j


Anatoly Podgoretsky   (2012-01-31 13:15:00) [1]

За три рубля, но вчера


Плохиш   (2012-01-31 12:02:00) [2]


> Можно бы было заказать

Препода? 8-O


Anatoly Podgoretsky   (2012-01-31 10:05:00) [3]

> Германн  (31.01.2012 01:46:11)  [11]

Можно бы было заказать, но уже утро.


Сергей М.   (2012-01-31 09:16:00) [4]


> нигде не хотят за меня работать


Нахаляву-то ?
Задарма нынче даже негра на плантацию не загонишь)
А предложил бы денюжку за работу - отбоя не было бы от желающих)


Германн   (2012-01-31 01:46:00) [5]


> до утра нужно закончить.

До утра ещё куча времени! Только нужно выйти из Интернета и забыть про игры.
Удачи, студент! :)


Rorschach   (2012-01-31 00:26:00) [6]

Спасибо, человек. Пойду ковырять это дело, до утра нужно закончить.


DVM   (2012-01-31 00:25:00) [7]


> Rorschach   (31.01.12 00:15) [8]


> Запостил на нескольких форумах, нигде не хотят за меня работать

ну так поработай сам за себя:

1) Выкинь все что вот в таких скобках {} - это комментарии
2) UINT замени на Longword
3) Float замени на Single или Double (или даже Real если это обычный паскаль)
4) printf заменить на Write (предварительно прочитав ее описание)
5) scanf заменить на Read (тоже прочитав описание)
6) pfloat заменить на ^Single или ^Double или ^Real
7) result_array:= newfloat[M] заменить на New() предварительно ознакомившись с описанием + нужно задать свой тип pfloat


Rorschach   (2012-01-31 00:15:00) [8]

Трудно будет убедить препода, что этот код написан мной) Запостил на нескольких форумах, нигде не хотят за меня работать :D Блин, это печально :(


DVM   (2012-01-30 23:38:00) [9]


> Rorschach

printf и scanf в паскале нет. Есть куда более простые Write и Read, но это не аналоги.


Rorschach   (2012-01-30 23:35:00) [10]

Этот мусор мне выдала программа C2PAS. :)


DVM   (2012-01-30 23:35:00) [11]


> Rorschach   (30.01.12 23:15) [2]

http://www.sql.ru/forum/actualfile.aspx?id=4187183вот эта программа более-менее нормально переводит. Но это тоже править надо.


function main(): integer;
var
M: UINT;
N: UINT;
raw_matrix: array [0..Pred(9),0..Pred(11)] of float;
result_array: pfloat;
sz: integer;

n: integer;
swapped: integer;
begin
 
 
 
 printf('enter M & N:'#13#10'');
 scanf('%i%i',@M,@N);
 printf('--------enter matrix--------'#13#10'');
 
 for{while} intj:=0 to Pred(N) { j++}
 do
 for{while} inti:=0 to Pred(M) { i++}
 do
 begin
   scanf('%f',@raw_matrix[i][j]);
 end;
 
 sz:=N div 4;
 result_array:= newfloat[M];
 for{while} intk:=0 to Pred(M) { k++}
 do
 begin
   result_array[k]:= raw_matrix[k][3];
   for{while} intt:=1 to sz { t++}
   do
   begin
     if raw_matrix[k][(t*4)-1]


DVM   (2012-01-30 23:29:00) [12]


> Rorschach   (30.01.12 23:15) [2]


> Вы не могли бы посмотреть, нет ли в следующем коде ошибок
> и идентичен ли он моему:

это не паскаль вообще :) это что-то другое


Rorschach   (2012-01-30 23:17:00) [13]

Нет, все-таки это ужасно. Такой корявый перевод не годится


Rorschach   (2012-01-30 23:15:00) [14]


> Это не C++ это C.

А объявления переменных внутри for? ;) Хотя вы конечно правы. Проблема в том, что я на Паскале никогда в жизни не писал ни строчки кода. И протестировать возможности сейчас нет. Вы не могли бы посмотреть, нет ли в следующем коде ошибок и идентичен ли он моему:

#include
#include

Integer main()
begin
   unsigned Integer M, N;
   Single raw_matrix[9,11];
   Single *result_array;

   printf('enter M (* C2PAS: RefOrBit? *)(* C2PAS: RefOrBit? *)& N:'#10'');
   scanf(' mod i mod i',(* C2PAS: RefOrBit? *)(* C2PAS: RefOrBit? *)(* C2PAS: RefOrBit? *)&M,(* C2PAS: RefOrBit? *)(* C2PAS: RefOrBit? *)(* C2PAS: RefOrBit? *)&N);
   printf('--------enter matrix--------'#10'');

   for(Integer j : : := 0; j


DVM   (2012-01-30 23:02:00) [15]


> Rorschach   (30.01.12 21:55) 
> Требуется переписать следующий код на Паскаль:

Это не C++ это C. Переводится на паскаль буквально один к одному даже утилитами типа C2PAS.


Наверх

Титульная страница Поиск, карта сайта Написать письмо