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

Соседи элементов матрицы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Бродячий торговец http://www.cyberforum.ru/cpp-beginners/thread1058490.html
Приветствую господа, не нашел в какой раздел это следуюет написать, посему пишу в привычный)) Имеется задача о бродячем торговце, точнее говоря ее упрощенная версия. "Упрощения": - Не нужно выполнять проверку на наличие пути, условлено, что один город соединен со всеми остальными - Собственно, так как каждый город соединен со всеми другими, проверку на Гамильтонов граф делать тоже не надо -...
C++ Изменить код exe файла Доброго всем утра, помогите пожалуйста справится с задачей: у меня есть exe файл, который запрашивает логин и пароль, проанализировав программу обнаружил что сообщение "wrong!" выводится после прыжка jnz находящегося по адресу 004011ВЕ. Как мне сделать в с++ так что бы заменить команду jnz на nop? http://www.cyberforum.ru/cpp-beginners/thread1058489.html
Как использовать std::wstring для удаление файлов C++
Если можно, пожалуйста, приведите код.
Выбрать предметы, суммарный вес которых меньше 20 кг, а стоимость – максимальна C++
Задача о рюкзаке. Имеются предметы, веса которых равны w1,w2,…,wn, а цены которых равны c1,c2,…,cn. Выбрать из них предметы, суммарный вес которых меньше 20 кг, а стоимость – максимальна
C++ Найти путь наименьшей длины между двумя заданными вершинами с помо щью нерекурсивного перебора с возвратом http://www.cyberforum.ru/cpp-beginners/thread1058476.html
Найти путь наименьшей длины между двумя заданными вершинами с пом ощью нерекурсивного перебора с возвратом.
C++ Перебрать все слова длиной не более n, составленные из букв "а" и "b" Перебрать все слова длиной не более n, составленные из букв "а" и "b". подробнее

Показать сообщение отдельно
cFuser
Сообщений: n/a
27.12.2013, 12:30     Соседи элементов матрицы
Соседом элемента a[i][j] матрицы называется другой элемент a[i][k] этой же матрицы, если каждый из индексов l и k отличается соответственно от i и j не более, чем на единицу. Дана вещественная матрица M x N. Построить матрицу B такого же размера, чтобы каждый элемент b[i][j] этой матрицы был равен наименьшему значению среди соседей элемента a[i][j].

Помогите пожалуйста перенести код с Паскаля на C++. Получается совсем не то, что нужно.

Вот код на Паскале:
Pascal
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
program PROGMatrix;
uses crt;
const n=4;m=5;
var a,b:array[1..m,1..n] of real;
    min:real;
    i,j,k,l,p,t,p1,t1:integer;
Begin
  clrscr;
 
{создаем массив чисел}
  randomize; 
  writeln('Исходный массив');
  for i:=1 to m do
   begin
    for j:=1 to n do
      begin
        a[i,j]:=random(50)/11;
        write(a[i,j]:0:2,'  ');
      end;
       writeln;
   end;
 
   for i:=1 to m do
    for j:=1 to n do
     begin
      min:=maxint;
    for k:=i-1 to i+1 do
      for l:=j-1 to j+1 do
 
    if ((k>=1) and (k<=m)) and ((l>=1)and (l<=n)) and ((i<>k) xor (j<>l))then
         begin
           if (a[k,l]<min) and (a[k,l]<>a[i,j]) then
             begin
               min:=a[k,l];
             end;
           b[i,j]:=min;
           end;
      end;
 
 
         writeln;
         writeln('полученный массив');
         for i:=1 to m do
           begin
             for j:=1 to n do write(b[i,j]:0:2,'  ');
             writeln;
           end;
         readln;
 
end.
А вот на C++:
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
74
#include <iostream>
#include <cmath>
#include <iomanip>
#include <ctime>
#include <cstdlib>
using namespace std;
 
void main()
{
    system("cls");
    setlocale(0,"");
    srand(time(NULL));
    int m,n;
    int i,j,k,l;
    float min;
    cout << "Количество строк матрицы: "; cin >> m;
    cout << "Количество столбцов матрицы: "; cin >> n;
    float **a = new float *[m];
    float **b = new float *[m];
    for (int i=0; i<m; i++)
    {
        a[i] = new float[n];
        b[i] = new float[n];
    }
 
    cout << endl << "Исходная матрица:\n\n";
    for (i=0; i<m; i++)
    {
        for (j=0; j<n; j++)
        {
            a[i][j] = rand()/(float)32767*20-10; //(double)rand() / ((double)rand() + 0.1) 
            cout << setw(7) << setprecision(3) << a[i][j] << setprecision(3) << setw(7);
            //cout << "A[" << i << "][" << j << "] = "; cin >> a[i][j];
        }
        cout << endl << endl;
    }
    
    min = a[0][0];
 
    for (i=0; i<m; i++)
    {
        for (j=0; j<n; j++)
        {
            for (k=(i-1); k<(i+1); k++)
            {
                for (l=(j-1); l<(j+1); l++)
                {
                                       // тут , я как понимаю нужна операция XOR, но вдруг ошибаюсь
                    if ( ( (k>=1) && (k<=m) ) && ( (l>=1) && (l<=n) ) && ( (i!=k) ^ (j!=l) ) )
                    {
                        if ((a[k][l]<min) && (a[k][l] != a[i][j]))
                        {
                            min = a[k][l];
                        }
                        b[i][j] = min;
                    }
                }
            }
        }
    }
 
    cout << endl;
 
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            cout << setw(7) << setprecision(3) << b[i][j] << setprecision(3) << setw(7); 
        }
        cout << endl << endl;
    }
 
    system("pause>>void");
}
Добавлено через 1 час 18 минут
Народ , помогите пожалуйста, срочно нужно
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru