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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Dentist
Сообщений: n/a
#1

Помогите с программкой... - C++

13.03.2007, 01:18. Просмотров 1499. Ответов 1
Метки нет (Все метки)

Помогите начинающему справиться с программой!
Тут такая задачка, а метод ни как не найду для решения.

Вот условие:

Грядки. Садовый участок, имеющий прямоугольную формуй разбитый на квадратные клетки со стороной 1 метр, имеет ширину N и длину M метров. На этом участке вскопаны грядки. Грядкой называется совокупность клеток, удовлетворяющих условиям:
• из любой клетки этой грядки можно попасть в любую другую клетку этой же грядки, последовательно переходя по грядке из клетки в клетку через их общую сторону;
• никакие две грядки не пересекаются и не касаются друг друга ни по вертикальной, ни по горизонтальной сторонам клеток (касание грядок по углам клеток допускается).
Составьте алгоритм—программу расчета количества грядок на садовом участке.
Исходные данные задаются в текстовом файле. В первой строке располагаются два числа: n и m, разделенные одним или несколькими пробелами. Далее следуют n строк по m символов. Символ «#» обозначает территорию грядки. Символ «.» соответствует незанятой территории. Других символов в исходном файле нет. В выходной текстовый файл вывести количество грядок на садовом участке.
Пример файла исходных данных:
5 10
##......##
.#..#...#.
.###....##
..##....##
........#.

Выходной файл для данного примера имеет вид:
3

Плиз! Помогите, очень прошу! За ранее благодарю!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2007, 01:18     Помогите с программкой...
Посмотрите здесь:

Помогите разобраться с программкой - Visual C++
Помогите разобраться с данной программкой, что она делает, как она работает, очень при очень нужно знать. long func(long x) { ...

плз с программкой - Delphi
http://s019.***********/i606/1209/41/cdf28238729d.png вот картинка условия, помогите сделать прогу, ну я полный 0 в делфи, а задают...

ПЛЗ с программкой - C (СИ)
Помогите с решением напишите решенную программу никак мозги не доходят как сделать..=(( Дана матрица размера M ? N и целое число K (1 ?...

Хэлп с программкой - Free Pascal
http://s017.***********/i441/1110/cd/1a2ba193d90dt.jpg вот фото задания

Подсобите с программкой - Pascal
Две прямые на плоскости заданы своими нормалями и точками. Найти точку пересечения. Не догоняю как решить это с точки зрения...

Ситуевина с DOSёвой программкой - Windows 7
Всем доброго времени суток. Не получается под семеркой запустить досовскую (что есть с тем и работаем) программку. Она открывает...

Поделитесь пожалуйста простенькой программкой распознавания объектов на изображении - C#
Добрый день. Поделитесь, пожалуйста, у кого есть простенькой прогой на C#, которая распознает (находит) какой либо объект на графическом...

Проверка номинальной частоты и напряжения процессора программкой CPU-Z. - Процессоры
Всем привет, нужно проверить номинальную частоту и напряжение процессора программкой CPU-Z. Напряжение это вроде как Voltage а номинальная...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ich
0 / 0 / 0
Регистрация: 30.09.2006
Сообщений: 15
17.03.2007, 17:51     Помогите с программкой... #2
Dentist,

Алгоритм примерно такой:
1. берёшь массив n*m считываешь исходный файл в него.
2. Делаешь проход по всему массиву. Для каждого элемента:
а. делаешь проверку,'#' == GardenPlot[i][j]?
Да. запускаешь функцию MarkBed(GardenPlot, i, j);
счётчик грядок увеличиваешь на 1. (Nbed++
Нет. ничего не делаешь....

Ответ получишь в NBed.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void MarkBed(char **GardenPlot,int i,int j);
{
       if ('#' == GardenPlot[i][j])
               {
                     if (i < iMax)                       // проверки выхода за пределы массива
                     MarkBed(GardenPlot, i+1, j);
                     if (j < jMax) 
                     MarkBed(GardenPlot, i, j+1);
                     if (i > iMin) 
                     MarkBed(GardenPlot, i-1, j);
                     if (j > jMin) 
                     MarkBed(GardenPlot, i, j-1);
                     GardenPlot[i][j] = '0';//произвольный символ - показатель прочитанности.
                }
        else
                 GardenPlot[i][j] = '0'; // забивает те клетки, которые контачаться с #
                                              //, но # не являются
  return;
}
Примерно так должно быть ... проверь....
Yandex
Объявления
17.03.2007, 17:51     Помогите с программкой...
Ответ Создать тему
Опции темы

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