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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kirschen
Сообщений: n/a
#1

перевод из Pascal в C++ - C++

19.04.2009, 23:14. Просмотров 849. Ответов 3
Метки нет (Все метки)

Здравствуйте!Задача:

Прямоугольный садовый участок шириной N и длиной M метров разбит на квадраты со стороной 1 метр. На этом участке вскопаны грядки. Грядкой называется совокупность квадратов, удовлетворяющая таким условиям:
• из любого квадрата этой грядки можно попасть в любой другой квадрат этой же грядки, последовательно переходя по грядке из квадрата в квадрат через их общую сторону;
• никакие две грядки не пересекаются и не касаются друг друга ни по вертикальной, ни по горизонтальной сторонам квадратов (касание грядок углами квадратов допускается).
Подсчитайте количество грядок на садовом участке.
Ограничения: 1 <= N, M <= 200, время 1 с.
Ввод из файла beds.in. В первой строке находятся числа N и M через пробел, далее идут N строк по M символов. Символ # обозначает территорию грядки, точка соответствует незанятой территории. Других символов в исходном файле нет.
Вывод в файл beds.out. Вывести одно число - количество грядок на садовом участке.
Примеры
Ввод 1
5 10
##......#.
.#..#...#.
.###....#.
..##....#.
........#.
Вывод 1
3


Вот практически рабочий вариант:

Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <fstream.h>
 
char c[202][202];
 
typedef arr, byte[40000];
 
unsigned short first,last;
 
int n,m,i,j,coun;
 
arr *ii, *jj;
 
void put(int i, int j)
{
  if (c[i][j] == '#')
    {
      last++;
      ii[last] = i;
      jj[last] = j;
      c[i][j] = '.';
    }
}
 
void get(int *i, int *j)
{
  *i = ii[first];
  *j = jj[first];
  first++;
}
 
void paint(int i, int j)
{
  first = 1;
  last = 0;
  put(i,j);
  while (first<=last)
    {
      get(&i,&j);
      put(i+1,j);
      put(i-1,j);
      put(i,j+1);
      put(i,j-1);
    }
}
 
void main()
{
  ii = new arr;
  jj = new arr;
  ifstream input("beds.in");
  ofstream output("beds.out");
  input >> n;
  input >> m;
  for (i = 0; i <= n+1; i++)
    for (j = 0; j <= m+1; j++)
      c[i][j] = '.';
  for (i = 1; i <= n; i++)
    {
      for (j = 1; j <= m; j++)
        input >> c[i][j];
    }
  coun = 0;
  for (i = 1; i <= n; i++)
    for (j = 1; j <= m; j++)
      if (c[i][j] == '#')
        {
          paint(i,j);
          coun++;
        }
/*  delete[] ii;
  delete[] jj;  */
  output << coun;
}
Где-то с указателями бага (ошибка при освобождении), но ответ вроде правильный...
Помогите исправить!

Добавлено через 6 минут 18 секунд
извините за название темы,нужно просто ошибку исправить..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2009, 23:14     перевод из Pascal в C++
Посмотрите здесь:

Перевод с pascal на c++ - C++
помогите перевести следующий текст с pascal на c++ uses crt; var mas: array of integer; i,a,b,min,max,r:integer; begin ...

Перевод из Pascal в C++ - C++
Пж помогите перевести Program SoulCub; Var A,B,C:Real; Begin WriteLn('Введите числa A,B и C: '); ReadLn(A,B,C); If...

Перевод из Pascal в C++ - C++
Перевод из Pascal в C++ Здравствуйте, помогите пожалуйста с переводом, сам нисколько не знаю паскаль, только в этом году начал...

Перевод с pascal на С++ - C++
разбиваем n-элементного множество Х на k блоков разбиения для n=4 Последовательность разбиений множества {1,2,3,4} ( 1 2 3 4 ) ( 1...

Перевод из Pascal в C++ - C++
Здравствуйте! Помогите,пожалуйста,перевести программу из паскаля в С++ uses crt; var A, B, x, y, h, n, O: real; s: string; ...

Перевод с pascal на c++ - C++
Вообще не знаю pasсal, нужен перевод. program aaa; Type mas=array of integer; Var a: array of integer; s, d:mas; {массив элементов...

Перевод с Pascal на C++ - C++
Вечер добрый. Перевожу с pascal на c++. Подскажите или отредактируйте код, что не так? program z1; var a,b:real; begin; ...

перевод с Pascal на C++ - C++
Const Max=1000; Eps=0.00001; Type Para=record X: integer;

Перевод из Pascal в C++ - C++
Помогите перевести в С++. Вот код : program Adam; uses crt; var func,x,y,yp:array of real; proiz:array of real; ...

Перевод с Pascal на С++ - C++
Будьте добры, кто понимает, кому не сложно, очень нужна помощь в переводе. program z2; var a,b,s : integer; begin ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
20.04.2009, 02:13     перевод из Pascal в C++ #2
Попробуй delete ii и delete jj вместо delete [] ii delete [] jj.
ISergey
Maniac
Эксперт С++
1372 / 883 / 52
Регистрация: 02.01.2009
Сообщений: 2,652
Записей в блоге: 1
20.04.2009, 04:55     перевод из Pascal в C++ #3
Цитата Сообщение от Kirschen Посмотреть сообщение
Вот практически рабочий вариант:
теоретически так точнее.
меня вот
C++
1
typedef arr, byte[40000];
эта строка смутила. и желательно все глобальные переменные где то спрятать.
Kirschen
Сообщений: n/a
20.04.2009, 21:21     перевод из Pascal в C++ #4
Если это чем-то поможет,то я могу скинуть эту же задачу на питоне или паскале)
Yandex
Объявления
20.04.2009, 21:21     перевод из Pascal в C++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru