Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Взаимодействие сайтов и VC++ Добрый вечер. Всех с наступившим! Нужна подсказка: где можно почитать про взаимодействие приложения с вебсайтом (получение куки, парсинг кода, отправка форм и тд). Буду благодарен за любую информацию. https://www.cyberforum.ru/ cpp-beginners/ thread223094.html Определить три соседних дня с максимальной средней температурой C++
Помогите решить полностью следующие задачи. 1.Начиная с понедельника, 1-го сентября, в течение 3-х недель один раз в день измеряется значение температуры. Таким образом, формируется двумерный массив T размерности 3x7. Найти: а) три соседних дня с максимальной средней температурой. б) два соседних дня, когда температура наиболее резко росла. в) периоды, когда температура понижалась. 2....
C++ Ошибка в char... https://www.cyberforum.ru/ cpp-beginners/ thread223063.html
Делаю программу. Одна из функций - открытие заданого файла: char *aud="magazine/"+ThisClass.c_str()+".xls"; char *path="magazine/"; ShellExecute(NULL,NULL,aud,path,NULL,SW_SHOW); ThisClass типа AnsiString. Но при компиляции в первой строке ошибка "invalid pointer addition". Подскажите, какую мелочь надо исправить???
C++ дескрипторы у пайпов Во- первых, хочу поздравить всех с новым годом)))) итак, проблема в следующем: пишу чат на пайпах, использующий аутентификацию по керберосу... при создании сервером пайпа - клинет не может подключить к нему, ошибка в безопасности. Порылся в инете: пишут, что надо установаить дескриптор у пайпа, в которм указать, что обращаться к пайпу могут все. Собственно, вопрос, как это сделать? ... https://www.cyberforum.ru/ cpp-beginners/ thread223052.html
Стандарты и стили языков программирования C++
Занимаясь программирование, например С++, иногда задумываешься, читая различную литературу и разбирая чужие коды программ, что большинство программистов, как начинающих, так и уже вполне опытных, смешивают два разных языка С и С++ (одним языком их никак не назовешь, даже в самом начале изучения). Причем и в университетах (имею ввиду свой) существует дисциплина ЯП С/C++, в которых с самого начала...
C++ компиляция программы на с Привет всем. У меня такая проблема. Я написал программу на С именно на С а не на С++. Написал я её в notepad++ а вот скомпилировать немогу. Есть у меня Visual Studio 2005, но как скомпилировать на нём то что писал не в нем? И возможно ли вообще компилировать программы на С в Visual Studio? https://www.cyberforum.ru/ cpp-beginners/ thread223044.html
C++ табуляция функции в С++ https://www.cyberforum.ru/ cpp-beginners/ thread223011.html
Подскажите пожалуйста с решением задачи Задача . (консольная программа). Выполнить табуляцию функции, указанной в условии, на отрезке (a<b) с шагом d. Построение таблицы произвести в текстовом файле table.txt. По окончании работы полученный файл открыть в окне программы Блокнот (программно). Параметры a, b, d ввести в диалоге с клавиатуры (обеспечить проверку корректности ввода). ...
Игры на С++ C++
Вот мне стало интересно, кто-нибудь из вас делал миниигры (или даже просто игры=)). Мне не интересен исходный код( всё равно я ничего не пойму), просто хочу узнать, сможет ли ли обычный программист сделать что-нибудь эдакое. Прошу выкладывать и здесь. P.S. А настоящие игры и их движки делают на С++ или на чём-то другом?
C++ Наболевшие вопросы Есть несколько вопросов, помогите пожалуйста найти ответ.. 1) Если мы выделяем память динамически для массива объектов класса, есть ли возможность передать входящие параметры в конструктора этих объектов? Если да, то как? (параметры разные для разных индексов объектов) 2) Если уже инициализированы несколько элементов массива(которые объекты класса), можно ли выделить еще динамически память... https://www.cyberforum.ru/ cpp-beginners/ thread222982.html C++ Задание на перечисления https://www.cyberforum.ru/ cpp-beginners/ thread222981.html
Напишите программу,которая сначала по первой букве должности,введенной пользователем, определяет соответствующие значение переменной, помещает это значение в переменную типа etype, а затем выводит полностью название должности, первую букву которой ввел пользователь. #include <stdio.h> enum etype {laborer, secretary,manager, accountant,executive,researcher}; int main() { char prof;...
Вопрос по программированию в Xcode C++
в компиляторе от майкрософт , например, при заведение структурной переменной , а затем при создание ее с каким либо полем в другой функции например Struct blabla { int number } int main { blabla s1. ЗДЕСЬ после точки появляется список возможных полей или функций }
C++ Компиляторы отказываются компилировать. Почему-то С++ Builder и Dev-C++ отказываются выполнять этот простейший код. #include <stdio.h> #include <iostream.h> #include <conio.h> int main (int nNumberofArgs, char * psArgs ) { int nNimb; nNimb=2; int nNumb; nNumb=3*2; https://www.cyberforum.ru/ cpp-beginners/ thread222970.html
13 / 13 / 4
Регистрация: 07.12.2010
Сообщений: 127
0

Ввод матрицы вручную - C++ - Ответ 1253511

01.01.2011, 20:45. Показов 18502. Ответов 31
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Возможно ли в данной программе сделать ввод матрицы ручным способом (или с помощью рандома, как-то удобнее будет) и введение пользователем координат начала пути и конца? Код пока для меня слишком сложный и сколько ни пытался - ни получилось...

Видимо, нужно добавить:

это и

C++
1
2
3
4
5
6
      {srand(time(0));
                
                cout<<" Labirint  "<<endl;
                for (int i=0; i<N; i++)
                        for (int j=0;j<M;j++)
                                Matr[i][j] = rand()%2;}
собственно, ввод

rowS
colS
rowE
colE


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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <iostream.h>
#include <iomanip.h>
#define    max_(a, b)  ((a)>(b)?(a):(b))
#define    min_(a, b)  ((a)<(b)?(a):(b))
const int  N =    8,         // число строк
           M =    8;         // и столбцов в матрице
const int  x =  1;         // численное значение клетки-"препятствия"
const int  E =    1,         // конечная
           S =   -1;         // и начальная точки
// исходная матрица: пустые клетки - нули, "препятствия" - x
// Конечная точка - E (coord: rowE,colE), исходная - S (rowS,colS)
int  Matr[N][M] = { 
    { x,  0,  0,  0,  x,  0,  E,  x },
    { 0,  0,  x,  0,  x,  0,  0,  0 },
    { 0,  x,  x,  0,  0,  0,  x,  0 },
    { 0,  0,  0,  x,  x,  x,  0,  0 },
    { 0,  0,  0,  0,  0,  0,  0,  0 },
    { 0,  x,  0,  x,  0,  x,  0,  0 },
    { 0,  0,  x,  0,  0,  0,  x,  0 },
    { x,  0,  S,  x,  0,  0,  0,  0 }
};
int    rowS  = 7,              // координаты начальной
       colS  = 2,    
       rowE  = 0,              // и конечной точки
       colE  = 6;
void   OutMatr();                                                 
void   OutWay(int matr[][M], int rS, int cS);
int    main()
{
          // копия исходной матрицы    
    int   Matrix[N][M];          
    int   i, j;
    for(i = 0; i < N; i++)
        for(j = 0; j < M; j++)
            Matrix[i][j] = Matr[i][j];
    int   n,
          Finish    = false,
          // координаты начала пути (если < 0 - пути нет)
          rS        = -1,      
          cS        = -1;
    
          // смещение
    int   offset[8] = { -1,0, 1,0, 0,-1, 0,1 };
    
          // координаты прямоугольника для поиска клеток со значением n
    int   startRow  = rowE,    
          endRow    = rowE,        
          startCol  = colE,
          endCol    = colE;
    // вывод исходного состояния матрицы
    OutMatr();                 
    // Цикл поиска клеток со значением n и заполнения соседних пустых (0) клеток
    // значением n + 1. Цикл завершается, когда нечего уже заполнять или достигнута
    // стартовая точка (со значением S)
    for(n = E; !Finish; n++)
    {
        Finish = true;
        for(i = startRow; i <= endRow; i++)
        {
            for(j = startCol; j <= endCol; j++)
            {
                if(Matrix[i][j] == n)
                {                      
                    for(int k = 0; k < 8; k += 2)
                    {
                        // проверяем значение клеток слева, справа, сверху и снизу
                        if( i + offset[k]     >= 0  && 
                            i + offset[k]     <  N  && 
                            j + offset[k + 1] >= 0  &&
                            j + offset[k + 1] <  M )
                        {
                            // и, если клетка существует и не занята (0), 
                            if(Matrix[i + offset[k]][j + offset[k + 1]] == 0)
                            {
                                // заносим n + 1
                                Matrix[i + offset[k]][j + offset[k + 1]] = n + 1;
                                Finish = false;
                            }
                            // если достигнута начальная точка (S) - запоминаем    координаты
                            // текущей точки(i, j), как начала пути(rS, cS)
                            else if(Matrix[i + offset[k]][j + offset[k + 1]] == S)
                            {
                                rS = i;
                                cS = j;
                                
                                // и выходим из всех циклов
                                goto Finish;
                            }
                        }
                    }  
                }
            }  
        }
        
        startRow   =   max_(0    , startRow - 1);
        endRow     =   min_(N - 1, endRow   + 1);
        startCol   =   max_(0    , startCol - 1);
        endCol     =   min_(M - 1, endCol   + 1);
    }  
Finish:
    if(rS >= 0)                                    // путь найден
    {
        OutWay(Matrix, rS, cS);
        OutMatr();
    }
    else
        cout << " \n\n\nbla - bla - bla \n\n";       // путь не найден, делай что хочешь
    cout << endl;
    return 0;
}
void OutMatr()
{
    static int k = 1;
    cout << (k-- ? "Source matrix:\n" : "\n\n\nOutput of the way:\n");
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < M; j++)
            cout << setw(5) << Matr[i][j];
        cout << endl;
    }
}
// Вывод пути:
// от точки rS, cS - к ближайшей (со значением на 1 меньше),
// от нее-к следующей (на 1 меньше) и т.д.-до конечной (E)
void OutWay(int matr[][M], int rS, int cS)
{
    int   rW  = rS,
          cW  = cS;
    Matr[rW][cW] = -1;
    while(matr[rW][cW] != E)
    {
        if(rW > 0 && matr[rW - 1][cW] == matr[rW][cW] - 1)
            Matr[--rW][cW] = -1;
        else if(rW < M - 1 && matr[rW + 1][cW] == matr[rW][cW] - 1)
            Matr[++rW][cW] = -1;
        else if(cW < N - 1 && matr[rW][cW + 1] == matr[rW][cW] - 1)
            Matr[rW][++cW] = -1;
        else if(cW > 0 && matr[rW][cW - 1] == matr[rW][cW] - 1)
            Matr[rW][--cW] = -1;
    }
}


Вернуться к обсуждению:
Ввод матрицы вручную C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.01.2011, 20:45
Готовые ответы и решения:

Ввод координат вручную
Помогите пожалуйста сделать ввод координат вручную, а не рандомом /*Дано n точек на плоскости....

Ввод вручную чисел в массив
Здравствуйте! начинаю изучать Visual C++, работать с массивами. Не могу разобраться, каким...

Ввод вручную размерности двумерного массива
Здравствуйте уважаемые форумчане. Такая небольшая проблема. У нас есть двумерный массив,...

Как осуществить ввод букв и цифр вручную в окне написанной программы
Здраствуйте уважаемые коллеги) Редактировала программу под себя, вернее скрипт Все сделала как...

31
01.01.2011, 20:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.01.2011, 20:45
Помогаю со студенческими работами здесь

Реализовать задание с использованием функций (ввод матрицы, вывод матрицы, вычисление суммы)
Реализовать задание с использованием функций (ввод матрицы, вывод матрицы, вычисление суммы) и...

Ввод с клавы размера целочисленной матрицы, а затем самой матрицы. Найти наибольший элемент. Разрешается использовать только один оператор цикла
С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица. Найти наибольший...

Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю. Ввод,вывод,сумму в виде отдельных процедур
Завтра дедлайн, а у меня 2 лабы и начало первого. Прошу помощи.

Ввод матрицы
Всем привет. Помогите написать код ввода матрицы с клавиатуры, а затем её вывод на экран. Спасибо.

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru