С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 27

Прокомментируйте пожалуйста

10.09.2013, 23:29. Показов 997. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не до конца понимаю код программы. Прошу дать комментарии к коду.

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
#include "stdafx.h"
#include <iostream>
#include<math.h>
using namespace std;
 
int main()
{
    const int max = 4;
    int digits1[max] = {1, 2, 3, 4};
    int digits2[max] = {3, 4, 1, 2};
    int * p;
    int str, stolb;
    int i, j, k;
    cout << "Enter str: ";
    cin >> str;
    cout << "Enter stolb: ";
    cin >> stolb;
    int ** matrica = new int * [str]; 
    for(int i = 0; i < str; ++i)
    {    
    matrica[i] = new int[stolb];
    }
    for(int i = 0; i < str; ++i)
    {
        k = 0;
        p = i % 2 ? digits2 : digits1;
        for(int j = 0; j < stolb; ++j)
        {  
            matrica[i][j] = p[k++];
            if(k > max - 1)
         {
                k = 0;
         }
        }
     }
     for(int i = 0; i < str; ++i)
     {
        for(int j = 0; j < stolb; ++j)
        {
            cout << matrica[i][j] << " ";
        }
        cout << "\n";
      }
     for(int i = 0; i < str; ++i)
     {   
      delete [] matrica[i]; 
     }
     delete [] matrica;
    
     return 0; 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.09.2013, 23:29
Ответы с готовыми решениями:

Прокомментируйте пожалуйста
#include &quot;iostream&quot; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; void Yacoby(int** m, int* s, int it); int...

Прокомментируйте пожалуйста код
Объясните пожалуйста как работает данный кусок кода: template &lt;typename T&gt; Deque &lt;T&gt; Deque&lt;T&gt;::operator + (const...

Прокомментируйте код пожалуйста
#include&lt;iostream.h&gt; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;graphics.h&gt; class Point { int X,Y; public: ...

4
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
10.09.2013, 23:38
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
#include "stdafx.h"
#include <iostream>
#include<math.h>
using namespace std;
 
int main()
{
    const int max = 4;                          // константа
    int digits1[max] = {1, 2, 3, 4};            // массив digits1 из 4 элементов, каждый элемент - целое число (int)
    int digits2[max] = {3, 4, 1, 2};            // почти то же самое
    int * p;                                    // указатель на int
    int str, stolb;                             // две переменные целого типа
    int i, j, k;                                // ...
    cout << "Enter str: ";                      // запрос на ввод целого числа
    cin >> str;                                 // ввод целого числа
    cout << "Enter stolb: ";                    // ...
    cin >> stolb;                               // ...
    int ** matrica = new int * [str];           // matrica - указатель на указатель. динамическое выделение массива указателей
    for(int i = 0; i < str; ++i)                // цикл
    {    
    matrica[i] = new int[stolb];                // то же самое
    }
    for(int i = 0; i < str; ++i)
    {
        k = 0;
        p = i % 2 ? digits2 : digits1;
        for(int j = 0; j < stolb; ++j)
        {  
            matrica[i][j] = p[k++];
            if(k > max - 1)
         {
                k = 0;
         }
        }
     }
     for(int i = 0; i < str; ++i)
     {
        for(int j = 0; j < stolb; ++j)
        {
            cout << matrica[i][j] << " ";
        }
        cout << "\n";
      }
     for(int i = 0; i < str; ++i)
     {   
      delete [] matrica[i]; 
     }
     delete [] matrica;
    
     return 0; 
}
0
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 27
10.09.2013, 23:41  [ТС]
Спасибо. Это то понятно. Интересуют блоки циклов. Кто может комментните.
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
10.09.2013, 23:50
Коль понятно, чего сам не прокомментировал? Мало приятного тратить свое время, помогать и получать в ответ : "это я знаю, это понятно, я разобрался, мне надо другое..."
1
68 / 41 / 14
Регистрация: 24.02.2013
Сообщений: 250
11.09.2013, 01:15
Кликните здесь для просмотра всего текста

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
#include "stdafx.h"
#include <iostream>//Подключение библиотеки input-output stream(std::cout, std::cin и т.д.)
#include<math.h>//Подключение библиотеки математических функций(например sin, cos, tan и т.д.)
using namespace std;//Вообще, using namespace - использование пространства имён... или, использование идентификатора std(дабы не писать каждый раз std::cin, std::cout, а сразу, cout, cin и т.д.)
 
//Главная функция
int main()
{
    const int max = 4;//Константа
    int digits1[max] = {1, 2, 3, 4};//Целочисленный массив из 4-х элементов, которые описаны в {---}
    int digits2[max] = {3, 4, 1, 2};//...
    int * p;//Переменная, являющаяся указателем на int
    int str, stolb;//Целочисленные переменные
    int i, j, k;//...
    cout << "Enter str: ";//Вывод на экран сообщения о том, что вводится в данный момент
    cin >> str;//Получение из консоли значения в переменную str
    cout << "Enter stolb: ";//...
    cin >> stolb;//...
    int ** matrica = new int * [str];//Объявление двухмерного динамического массива и объявление, сразу же, размерность массива указателей(т.е. данный массив является массивом указателей на указатели)
    for(int i = 0; i < str; ++i)//Цикл от 1-го числа до того, которое пользователь не ввёл в переменную str
//Циклы в C++ начинаются с нуля, по этому и объявлено, что цикл от 0 до тех пор, пока меньше str.
/Циклическая переменная i с каждым проходом будет увеличиваться на единицу(++i/i++)
    {    
    matrica[i] = new int[stolb];//Выделение памяти под новый столбец матрицы
//грубо говоря-изначально было задано кол-свто элементов строки, теперь же, идёт объявление кол-ство элементов в столбце(вспомните, как объявляются обычные матрицы)
    }
    for(int i = 0; i < str; ++i)//...
    {
        k = 0;//... думаю-вопросов быть не должно...
        p = i % 2 ? digits2 : digits1;//а вот тут, я не совсем понял... Может быть, получение указателей на элементы массивов digits2 и digits1... честно-не могу сказать...
//по моему-проще было бы тогда использовать уж 1 массив, но с размерностью в 8 элементов(судя по программе, если я правильно её понял...)...
        for(int j = 0; j < stolb; ++j)//...
        {  
            matrica[i][j] = p[k++];//Объявление значения элемента матрицы, как p[k+1 - ый]
            if(k > max - 1)//Идёт проверка, если k уже больше пред-последнего элемента p, тогда в элемент матрицы будет заносится 1-й элемент(опять же, счёт начинается с нуля)
         {
                k = 0;//...
         }
        }
     }
     for(int i = 0; i < str; ++i)//...
     {
        for(int j = 0; j < stolb; ++j)//...
        {
            cout << matrica[i][j] << " ";//Вывод на экран значение каждого элемента матрицы
        }
        cout << "\n";//Переход на след. строку. Однако, я бы лучше написал так: cout<<endl(end_line)
      }
     for(int i = 0; i < str; ++i)//...
     {   
      delete [] matrica[i];//Удаление из памяти i-й столбец 
     }
     delete [] matrica;//Удаление исходной строки(удаление массива указателей на указатели)
    
     return 0;//... 
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.09.2013, 01:15
Помогаю со студенческими работами здесь

Прокомментируйте пожалуйста код
// Zadacha1.1.cpp: определяет точку входа для консольного приложения. ////Задано четырехзначное число N. //Будут ли все цифры этого...

Прокомментируйте, пожалуйста рекурсию
Нашел в сети код прохождения доски шахм. конем. разобраться не очень получилось, помогите пожалуйста!void chessknight(int k) { c++; ...

Прокомментируйте пожалуйста прогу
#include &quot;iostream&quot; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std; float f2(float x){ return x+3; ...

Прокомментируйте,пожалуйста, участки программы
Здравствуйте! Кому не сложно, помогите, пожалуйста, прояснить некоторые части программы. Суть программы заключается в следующем -...

Прокомментируйте каждую строчку пожалуйста
#include &quot;pch.h&quot; #include &lt;iostream&gt; using namespace std; int func(int n) { if (n == 0) return 0; cout &lt;&lt; n % 10 &lt;&lt;...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru