Форум программистов, компьютерный форум CyberForum.ru

перевести с pascal в С++ - C++

Восстановить пароль Регистрация
 
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,399
11.04.2011, 17:29     перевести с pascal в С++ #1
Помогите пожалуйста написать аналогичную функцию, но на языке C++. (В паскале нифига не шарю)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Const
  MAX_X=80;
  MAX_Y=24;
Type
  Pole=array [1..MAX_X, 1..MAX_Y] of Boolean;
 
Function Sosedi (a: Pole ; x,y:integer):integer;
Var
Cnt:integer;
Begin
Cnt:=0;
If (x-1>0) and                          a[x-1,y] then Cnt:=Cnt+1;
If (x-1>0) and (y-1> 0) and             a[x-1,y-1] then Cnt:=Cnt+1;
    If (x-1>0) and (y+1<=MAX_Y) and     a[x-1,y+1] then Cnt:=Cnt+1;
    If (x+1<=MAX_X) and                     a[x+1,y] then Cnt:=Cnt+1;
    If (x+1<=MAX_X) and (y-1> 0) and    a[x+1,y-1] then Cnt:=Cnt+1;
    If (x+1<=MAX_X) and (y+1<=MAX_Y) and a[x+1,y+1] then Cnt:=Cnt+1;
    If (y-1> 0) and                           a[x,y-1] then Cnt:=Cnt+1;
    If (y+1<=MAX_Y) and                     a[x,y+1] then Cnt:=Cnt+1;
    Result:=Cnt;
End;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2011, 17:29     перевести с pascal в С++
Посмотрите здесь:

C++ Перевести из PASCAL в С++
C++ Перевести с Pascal на C++
C++ Перевести с Pascal на C++
Перевести с pascal на c++ C++
Перевести с Pascal на С++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tyoma
40 / 40 / 8
Регистрация: 12.05.2010
Сообщений: 106
Завершенные тесты: 3
11.04.2011, 18:32     перевести с pascal в С++ #2
Честно говоря не совсем понял программу но вот как я думаю:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const int MAX_X = 80, MAX_Y = 24;
 
int Sosedi(bool **a, int x, int y) {
   int Cnt = 0;
   if ((x-1 > 0) && a[x-1][y]) Cnt++;
   if ((x-1>0) && (y-1> 0) && a[x-1][y-1]) Cnt++;
   if ((x-1>0) && (y+1<=MAX_Y) &&  a[x-1][y+1]) Cnt++;
   if ((x+1<=MAX_X) && a[x+1][y]) Cnt++;
   if ((x+1<=MAX_X) && (y-1> 0) && a[x+1][y-1]) Cnt++;
   if ((x+1<=MAX_X)&& (y+1<=MAX_Y) && a[x+1][y+1]) Cnt++;
   if ((y-1 > 0) && a[x][y-1]) Cnt++;
   if((y+1 <= MAX_Y) && a[x][y+1]) Cnt++;
   return Cnt;
}
wolf174
5 / 5 / 1
Регистрация: 03.01.2011
Сообщений: 20
11.04.2011, 19:03     перевести с pascal в С++ #3
Прошу прощение за мою безграмотсность но что значит ** в строке bool **a?
Tyoma
40 / 40 / 8
Регистрация: 12.05.2010
Сообщений: 106
Завершенные тесты: 3
11.04.2011, 20:54     перевести с pascal в С++ #4
В качестве аргумента передается двумерный массив логического типа...а если быть точнее то это указатель на массив

PS ну в данном случае если не использовать динамическую память наверное можно было записать эту строку так:
C++
1
int Sosedi(bool a[MAX_X][MAX_Y], int x, int y)
Yandex
Объявления
11.04.2011, 20:54     перевести с pascal в С++
Ответ Создать тему
Опции темы

Текущее время: 03:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru