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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Random for double:( http://www.cyberforum.ru/cpp-beginners/thread952132.html
Задание: Создать функцию random(a, b), которая возвращает случайное вещественное число от вещественного числа a включительно до вещественного числа b не включительно. И что такое static_cast<double>? Похожие задания: #include <iostream> #include <cstdlib> // для использования генератора случайных чисел #include <ctime> // функции времени для инициализации генератора с. ч. using...
C++ Написать программу, которая решает уравнение с одним неизвестным и выводит в консоль значение неизвестного. Уравнение посимвольно вводится с клавиатур Заупутался :-( http://www.cyberforum.ru/cpp-beginners/thread952130.html
Постороить из 2 мерного массива в 1 мерный, который содержит все элементы 2 мерного массива , содержащихся по периметру массива C++
Постороить из 2 мерного массива в 1 мерный, который содержит все элементы 2 мерного массива , содержащихся по периметру массива.
C++ Создание отсортированого массива с двух
Задание: Есть массив c,...c и массив d,...d.С этих двух массивов создать массив f так,чтобы f<=f<=...<=f. #include <iostream> #include <conio.h> using namespace std; void main() { int i,j,c,d,f,t,n,k,q,w,e; cout<<"Input n"<<endl; //ввод переменных n и k
C++ namespace http://www.cyberforum.ru/cpp-beginners/thread952103.html
Не могу понять суть пространства имен. Точнее ,в общих чертах , я понял что это,но зачем это нужно?В частности: 1)А зачем они нужны,собственно говоря, если можно а)назвать по другому б)для объединения создать класс ? 2)при описание пространства имен ,например namespace my{ int i; } будет резервироваться память для него?Если да, можно ли сделать чтобы это не происходило? 3) как обратиться к...
C++ Удаление нескольких элементов в list Собственно, нарушается ли порядок итераторов при удалении? Т.е. могу ли я в цикле по всему list'у, если элемент не удовлетворяет условию, сразу же его удалять? Остальные итераторы не обрушатся? Типа такого: for(auto it = a.begin(); it!=a.end(); ++it) { if (PRED(*it)) { auto temp = it; ++it; a.erase(temp); } } подробнее

Показать сообщение отдельно
Jack Wade
61 / 34 / 6
Регистрация: 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;//... 
}
 
Текущее время: 02:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru