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

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

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

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

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 2
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  [ТС] 3
Спасибо. Это то понятно. Интересуют блоки циклов. Кто может комментните.
0
2687 / 2259 / 244
Регистрация: 03.07.2012
Сообщений: 8,227
Записей в блоге: 1
10.09.2013, 23:50 4
Коль понятно, чего сам не прокомментировал? Мало приятного тратить свое время, помогать и получать в ответ : "это я знаю, это понятно, я разобрался, мне надо другое..."
1
68 / 41 / 14
Регистрация: 24.02.2013
Сообщений: 250
11.09.2013, 01:15 5
Кликните здесь для просмотра всего текста

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
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Что нового в C# 14
UnmanagedCoder 10.03.2025
Предстоящая версия C# 14 обещает принести изменения, которые сделают разработку еще более приятной и эффективной. Что стоит отметить, так это влияние сообщества разработчиков на формирование новых. . .
Формулы поворота
Igor3D 10.03.2025
Добрый день Тема Эти формулы приводятся во множестве тьюториалов, часто под видом "матрица вращения на плоскости". x' = x * cos(a) - y * sin(a) y' = y * cos(a) + x * sin(a) Как бы Вы их. . .
Что нового в .NET 10
UnmanagedCoder 10.03.2025
. NET 10 выходит как релиз с длительной поддержкой (LTS), включающей три года обновлений. В этом обновлении Microsoft сфокусировались на нескольких направлениях: производительность, оптимизация. . .
Отложенное высвобождение, RCU и Hazard Pointer в C++26
NullReferenced 09.03.2025
Многопоточное программирование стало важной частью современной разработки. Когда несколько потоков одновременно работают с общими данными, возникает целый ряд проблем, связанных с синхронизацией и. . .
Неблокирующийся стек на C++26
NullReferenced 09.03.2025
Традиционные способы синхронизации в многопоточном программировании — мьютексы, семафоры, условные переменные — часто превращаются в узкое место в плане производительности. При этом неблокирующиеся. . .
Обработка строк в C++26: Новые возможности string и string_view
NullReferenced 09.03.2025
Новый стандарт C++26 предлагает много улучшений для работы с привычными string и относительно новыми string_view. string_view - это невладеющая ссылка на последовательность символов, появившаяся в. . .
Мой первый аддон для Blender 3D, с помощью нейронки (не зная даже азов пайтона, но это не значит что так и с остальным).
Hrethgir 09.03.2025
Потратил весь день. Пол-дня мне хватило, чтобы понять что с версией с 14B мне не одолеть написание функционального кода, на языке с которым я вообще никак не знаком - пайтон. Версия 22B от другого. . .
Einstein@Home сегодня исполняется двадцать лет!
Programma_Boinc 09.03.2025
Einstein@Home сегодня исполняется двадцать лет! Отправлено 19 февраля 2025 года в 17:20:21 UTC Я хочу поздравить всех наших волонтеров, разработчиков и ученых из Einstein@Home. Мы официально. . .
Заполнители и расширенный набор символов в C++26
NullReferenced 09.03.2025
C++26 представляет два важных обновления: заполнители и расширенный набор символов. Заполнители (placeholders) решают давнюю проблему лаконичности кода в шаблонных выражениях и лямбда-функциях. Они. . .
Контракты в C++26
NullReferenced 09.03.2025
Контракты – это механизм, позволяющий указывать предусловия, постусловия и инварианты для функций в коде. Эта функциональность должна была стать частью C++20, но была исключена на встрече комитета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru