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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Структура.Найтиде ошибку http://www.cyberforum.ru/cpp-beginners/thread30709.html
Вот код. Он компилируется, работает, но с странностями. #include "stdafx.h" #include <cstdlib> #include <iostream> using namespace std; #define istr 21 struct train{ int num; char naz; char time;
C++ Создать класс Model Window Пожалуйста,помогите!это очень важно!задача такая: Создать класс Model Window для работы с моделями экранных окон. В качестве полей задаются: заголовок окна, координаты левого верхнего угла, размер по горизонтали, размер по вертикали, цвет окна, состояние «видимое/невидимое», состояние «с рамкой/без рамки». Координаты и размеры указываются в целых числах. Реализовать операции: передвижение окна... http://www.cyberforum.ru/cpp-beginners/thread30708.html
Чтение из двух файлов и запись в третий C++
Имеется следующая задача: в цикле подсчитывается определенное значение функции fe, зависящее от одного параметра(вводится) и записывается в файл. Далее записываются в другой файл значения fe, но уже с другим значением параметра. Т. е. в обоих файлах одинаковое количество записанных в столбик чисел. Вопрос заключается в следующем: как записать в третий файл (в столбец) модуль разности i-го...
C++ Найти количество чисел в группе
Дана таблица содержащая группы одинаковых подряд идущих чисел. Вывести на экран "число-кол-во чисел в группе, ..." В конце вывести итоговое сообщение, сколько всего групп.
C++ Программа содержащая информацию о книгах в библиотеке http://www.cyberforum.ru/cpp-beginners/thread30698.html
Здравствуйте..помогите плиз Написать программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах включают -номер УДК -фамилию и инициалы автора -название -год издания -количество экземпляров данной книги в библиотеке. Программа должна обеспечивать:
C++ Лабораторная работа №4 (динамические структуры данных) Разработать программу, выполняющую операции со структурами данных, реализованными в виде связанных списков. Алгоритмы выполнения каждой операции оформить в виде функции. Программа должна содержать меню, позволяющее протестировать все операции с динамической структурой. Элементы данных: Авторы – 20 символов, название - 20 символов, год издания – целое число. Структура данных: Дек с... подробнее

Показать сообщение отдельно
Kirschen
Сообщений: n/a

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

19.04.2009, 23:14. Просмотров 850. Ответов 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 секунд
извините за название темы,нужно просто ошибку исправить..
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru