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

Объясните программу - C++

Восстановить пароль Регистрация
 
Flashik66
17 / 9 / 7
Регистрация: 05.11.2012
Сообщений: 119
17.02.2013, 13:29     Объясните программу #1
Всем доброго времени суток. Помогите пожалуйста разобраться с тем что я выделю в коде. Не совсем понимаю работу программы.
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
int main()
{
    int m1[125];
    int m2[5][25];
    
 
    [B]srand(time(NULL));[/B]
 
    for(int i = 0; i < 125; i++)
        m1[i] = [B]rand() % 10;[/B]
 
    int count = 0;
 
    for( i = 0; i < 5; i++)
    {
        for(int j = 0; j < 25; j++, count++)
        {
            m2[i][j] = m1[count];
 
          [B]  std:[/B]:cout << std::[B]setw(3)[/B] << m2[i][j];
        }
 
        std::cout << std::endl;
    }
 
    std::cout << std::endl;
 
    for( i = 0; i < 5; i++)
        std::cout << [B]*(*(m2 + i) + 0) << std::[B]setw(10)[/B] << *(*(m2 + i) + 24) << std::endl;[/B]
 system("pause");
    return 0;
}
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 13:29     Объясните программу
Посмотрите здесь:

Объясните программу C++
Объясните пожалуйста программу !!! C++
Объясните пожалуйста эту программу C++
C++ Объясните пожалуйста эту программу
C++ Объясните пожалуйста эту программу
C++ объясните пожалуйста эту программу
объясните пожалуйста эту программу C++
Объясните программу на С++ C++
Объясните программу C++
C++ Объясните программу, пожалуйста!
объясните программу исключительные ситуации С++ C++
C++ объясните программу

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6046 / 5649 / 1825
Регистрация: 18.12.2011
Сообщений: 14,431
Завершенные тесты: 1
17.02.2013, 13:47     Объясните программу #2
srand(time(NULL)); - Инициализация датчика псевдослучайных чисел (чтобы каждый раз были разные числа)

m1[i] = rand() % 10; - остаток от деления на десять дает случайное число от 0 до 9

std::cout << std::setw(3) << m2[i][j];// setw(3) - точность вывода 3 знака
std::cout << *(*(m2 + i) + 0) << std::setw(10) << *(*(m2 + i) + 24) << std::endl; - это извращение можно
переписать так:
std::cout << m2[i][0] << std::setw(10) << m2[i][24] << std::endl;
DIEZEL-man
13 / 13 / 0
Регистрация: 17.02.2013
Сообщений: 54
17.02.2013, 13:49     Объясните программу #3
Цитата Сообщение от Flashik66 Посмотреть сообщение
srand(time(NULL));
Эта функция рандомно берет значение времени
Цитата Сообщение от Flashik66 Посмотреть сообщение
rand() % 10;
%10 - сколько рандомных чисел мы берем
Цитата Сообщение от Flashik66 Посмотреть сообщение
std
это стандарт, можно его не писать, а сверху записать после подключения библиотек просто "using namespace std;"

Цитата Сообщение от Flashik66 Посмотреть сообщение
setw(3)
количество отступов указывается в скобках, то есть пробелов
Надеюсь понятно
Sergey_B
163 / 163 / 14
Регистрация: 08.01.2013
Сообщений: 335
17.02.2013, 13:55     Объясните программу #4
Функция rand() - генерирует псевдослучайные числа. % 10 - задает диапазон чисел, из которого будет происходить генерация (в вашем случае от 0 до 9).
Функция srand() - задает функции rand() начальное число для генерации. В качестве аргумента ей передается текущее системное время в секундах (функция time() - описана в библиотеке <time.h> ), с параметром NULL (т.е. будет возвращать именно текущее время).
std - это пространство имен, почти все стандартные библиотеки C++ используют пространство имен std, именно поэтому практически всегда нужно писать using namespace std (хотя это не совсем правильно, используя using namespace вы значительно повышаете риски пересечения имён), либо вам придется каждый вызов функции из этих библиотек предворять префиксом пространства имен std::
Функция setw() - указывает количество пространства для следующей записи выводимой на экран. У вас setw(3) - выделит под вывод числа минимум 3 "места" (символа) , даже если вы будете выводить двузначное число (setw(10) - соответственно 10 "мест").
Flashik66
17 / 9 / 7
Регистрация: 05.11.2012
Сообщений: 119
17.02.2013, 14:45  [ТС]     Объясните программу #5
и все же я не очень понимаю вот эти строки..задание должны быть с указателями. Расшифруйте пожалуйста...

*(*(m2 + i) + 0)
*(*(m2 + i) + 24)
zss
Модератор
Эксперт С++
 Аватар для zss
6046 / 5649 / 1825
Регистрация: 18.12.2011
Сообщений: 14,431
Завершенные тесты: 1
17.02.2013, 21:08     Объясните программу #6
*(*(m2 + i) + 24) - это то же самое, что и m2[i][24]:
*(m2-i) - адрес нулевого элемента i-ой строки
*(m2-i)+24 - соответственно адрес 24-го элемента.
*(*(m2 + i) + 24) - значение этого 24-го.
Yandex
Объявления
17.02.2013, 21:08     Объясните программу
Ответ Создать тему
Опции темы

Текущее время: 23:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru