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

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

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

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

19.04.2009, 23:14. Просмотров 876. Ответов 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++ (C++):

Перевод с pascal на c++ - C++
привет всем , помогите ПОЖАЛУЙСТА перевести с pascal на c++. пытался перевести, но с++ сложноват , на изучение языка времени...

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

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

Перевод из Pascal в C++ - C++
Добрый день, дорогие форумчане) Буду благодарен за перевод) uses crt; const nmax = 20; type mtr = array of integer;

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

Перевод из Pascal в C++ - C++
Помогите,пожалуйста, с переводом программы из паскаля в C++ uses crt; function F(x:real):real; begin F:=1+x-x*x*x; ...

3
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
20.04.2009, 02:13 #2
Попробуй delete ii и delete jj вместо delete [] ii delete [] jj.
1
ISergey
Maniac
Эксперт С++
1375 / 886 / 52
Регистрация: 02.01.2009
Сообщений: 2,661
Записей в блоге: 1
20.04.2009, 04:55 #3
Цитата Сообщение от Kirschen Посмотреть сообщение
Вот практически рабочий вариант:
теоретически так точнее.
меня вот
C++
1
typedef arr, byte[40000];
эта строка смутила. и желательно все глобальные переменные где то спрятать.
1
Kirschen
Сообщений: n/a
20.04.2009, 21:21 #4
Если это чем-то поможет,то я могу скинуть эту же задачу на питоне или паскале)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2009, 21:21
Привет! Вот еще темы с ответами:

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

Перевод с Pascal на C++ - C++
Пишу программу. Принципиальна скорость. Дальнейшие пути оптимизации не наблюдаются. Сообственно код: type Numb = array of int64; ...

Перевод с Pascal на C++ - C++
Код на паскале, помогите его переписать в С ++ . Очень нужно ребят . Последняя задача. const mi = 100; type matrix = array of...

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


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
20.04.2009, 21:21
Ответ Создать тему
Опции темы

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