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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2014, 22:27   #1
Weyribll
Новичок
Джуниор
 
Регистрация: 21.01.2014
Сообщений: 1
Восклицание Перевод кода из C++ в Pascal

Ребят, помогите, пожалуйста, перевести код из C++ в Pascal

Собственно, сам код:



#include <cstdlib>
#include <fstream>
#include <iostream>
#include <conio.h>
#include <time.h>
#include <math.h>
#include<windows.h>
#include <stdio.h>


using namespace std;

const int MAXN = 100;
const int M = 10;

int matr[MAXN][MAXN];
int n;

int dx[8] = {1, 0, -1, 0, 1, 1, -1, -1};
int dy[8] = {0, 1, 0, -1, 1, -1, 1, -1};

int check(int x, int y) {
return x >= 0 && x < n && y >= 0 && y < n;
}

pair<int, int> next(int x, int y) {
int s = (x + y) % 2;
int nx, ny;
if (s == 1) {
nx = x - 1;
ny = y + 1;
if (!check(nx, ny)) {
if (y != n - 1) {
nx = x;
ny = y + 1;
}
else {
nx = x + 1;
ny = y;
}
}
}
else {
nx = x + 1;
ny = y - 1;
if (!check(nx, ny)) {
if (x != n - 1) {
nx = x + 1;
ny = y;
}
else {
nx = x;
ny = y + 1;
}
}
}

return make_pair(nx, ny);
}

pair<int, int> prev(int x, int y) {
for (int i = 0; i < 8; i++) {
int nx = x + dx[i];
int ny = y + dy[i];
if (!check(nx, ny))
continue;
if (next(nx, ny) == make_pair(x, y))
return make_pair(nx, ny);
}
return make_pair(0, 0);
}


int main() {
cin >> n;

for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
matr[i][j] = rand() % M;

for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
cout << matr[i][j] << ' ';
cout << endl;
}
cout << endl;

int cx = 0, cy = 0;
for (int i = 0; i < n * n; i++) {
int px = cx, py = cy;
while (px != 0 || py != 0) {
pair<int, int> tmp = prev(px, py);
if (matr[tmp.first][tmp.second] > matr[px][py]) {
swap(matr[tmp.first][tmp.second], matr[px][py]);
px = tmp.first;
py = tmp.second;
}
else
break;
}
pair<int, int> tmp = next(cx, cy);
cx = tmp.first;
cy = tmp.second;
}

for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
cout << matr[i][j] << ' ';
cout << endl;
}
_getch();
return 0;
}
Weyribll вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод кода из Pascal в C++ guzel20 Помощь студентам 14 05.12.2012 20:10
Перевод кода с Pascal на C++ n3250sasha C++ Builder 1 04.11.2012 16:19
Массивы. Перевод кода из Pascal в C++ Ilepekyp Помощь студентам 2 09.03.2012 23:42
Перевод кода из Pascal в C++ Kerragin Помощь студентам 5 13.12.2011 07:54
Перевод кода из Pascal в Object Pascal zemskov77 Общие вопросы Delphi 1 03.01.2009 09:37