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

Найти квадратную матрицу из нулей - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ О формальных параметрах http://www.cyberforum.ru/cpp-beginners/thread652345.html
Вопрос вот в чем, возможно ли в С++ объявить формальный параметр так , чтоб при подстановке вместо него фактического, в процессе выполнения функции он изменился? Например как это возможно в Delphi myFunc(a:integer;var b:integer):integer; не важно как не меняй я внутри функции а, он не поменяется , а вот b можно, нужно тоже самое как то реализовать на С++ Помогите пожалуйста!
C++ Простейшая сортировка. В чем причина? нужно отсортировать массив размерности q (вводится с клавиатуры) от большего к меньшему. проблема в том, что у меня почему-то происходит только 1 итерация внешнего цикла. #include <iostream> using namespace std; int main() { int q, w; int e, a; int r=0; http://www.cyberforum.ru/cpp-beginners/thread652332.html
Метод Милна C++
#include <iomanip> #include <math.h> #include <iostream> double f(double x, double y) { return (x*x+y*y); } using namespace std; void main () { int i,n=10; double A,B,h,E;
C++ Недочёт небольшой
Написал программу, показываю преподавателю , а она недовольна, говорит что еще вывод матрицы должен быть,я всю голову сломал уже - ну как и куда вставить в программу?!?! Помогите,пожалуйста,найти ошибку! #include <stdio.h> #define n 4 #define m 5 int Zapolnenie(int a) { int i,j; printf ("Vvedite 4 stroki po 5 chisel");
C++ Задача: Необычные цифры http://www.cyberforum.ru/cpp-beginners/thread652319.html
Описание В математике имеются такие цифры, которые если умножить в квадрате, то в получившемся результате тоже будет эта цифра. Например: 25x25=625,76x76=5776. Напишите программу, которая определит такая это цифра, или нет. Input Вводим любое натуральное цисло. Проверка будет повторяться пока не будет введена цифра 0. Output
C++ Помощь по лабораторке Здравствуйте! Пожалуйста, помогите мне с лабораторной работой на C++. Уже пятый день пытаюсь решить и все безрезультатно. Вот текст задачи: Лабораторная работа №1, вариант 18. Для десяти выстрелов, координаты которых задаются с клавиатуры, вывести текстовые сообщения о попадании в мишень - область, закрашенную на рисунке черным цветом. Заранее очень благодарен! подробнее

Показать сообщение отдельно
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
15.09.2012, 17:11     Найти квадратную матрицу из нулей
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Описание алгоритма (по моему быстрее не придумаешь):
создаем первый массив a[A+1][B+1], в котором нулевая строка и столбец заполнены нулями, а все остальное значениями из "чёрно-белого изображения размером A строк x B столбцов".
создаем второй массив b[A+1][B+1] изначально элементы которого равны 0.
Теперь с помощью ДП заполним значениями массив b[][] таким образом чтобы каждый элемент b[i][j] был равен количеству единиц в прямоугольнике с верхней левой координатой [0][0] и нижней правой [i][j] в массиве a[][].
C++
1
2
3
for(i=1; i<=A; i++)
    for(j=1; j<=B; j++)
        b[i][j]=b[i-1][j]+b[i][j-1]-b[i-1][j-1];
Теперь можно проходить по массиву b[][] и для каждого элемента b[i][j] опускаться вправо вниз осуществляя поиск максимального квадрата, заполненного только единицами:
C++
1
2
3
4
5
6
7
8
9
10
for(i=1; i<=A; i++)
    for(j=1; j<=B; j++)
        for(y=0; i+y<=A && j+y<=B; y++)
            if(b[i+y][j+y]-b[i-1][j+y]-b[i+y][j-1]+b[i-1][j-1]==(y+1)*(y+1))
            {
                // вот здесь очередное значение площади квадрата полностью заполненное единицами равно (y+1)*(y+1)
                // сравниваете это значение с максимальным, если нужно меняете максимальное значение
            }
            else
                break;// значит в квадрате появился нолик (нолики)
я правильно понял, что Вы на кладываете квадратную " маску " на изображение и пытаетесь таким образом определить область квадратом? Если так , то если скажем это квадрат у которого края с "шумом" есть несколько белых точек вплотную со стороной области, разве будет такая область квадратом?

Я думал решать задачу так:
1) находить области с помощью рекурсии , либо итерационным алгоритмом поиска
2) создать временный контейнер для координат каждой области
3) на основании координат определять соотношение сторон , и если растояние между xmin xmax ,такое же как между ymin ymax то это квадрат
4) находим площади квадратов
 
Текущее время: 13:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru