|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.03.2017, 07:26 | #1 |
Форумчанин
Регистрация: 01.11.2016
Сообщений: 110
|
Объяснить строки кода
#include <stdio.h>
#include <iostream> #include <ctime> int fun () { static unsigned int num = 0; num++; return num % 2; } int myrand () { int random = rand () % RAND_MAX; int mynum = 0; for (int i = 0; i < random; i++) { mynum += fun (); } return mynum; } int main () { srand (time (NULL)); for (int i = 0; i < 30; i++) printf ("%d\n", myrand ()); return 0; } |
02.03.2017, 07:43 | #2 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Для начала, напиши что ты сама знаешь по строчкам кода.
При этом опиши не только "ключевые слова языка С++", а и в контексте программы ("зачем были применены"). |
02.03.2017, 07:58 | #3 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
А зачем "ей" это? Это уже не первая "ее" тема, где "она" находит код в инете и кидать сюда, чтоб записать построчно и потом пересказать преподу.
|
02.03.2017, 21:48 | #4 | |
Форумчанин
Регистрация: 01.11.2016
Сообщений: 110
|
Цитата:
НЕ все же сразу же супер программистами становятся Я же не могу мыслить, как компьютер И если , как вы выражаетесь , то можете просто игнорировать мои темы и смотреть другие. Я же не прошу помощи у вас!!!!!!! Последний раз редактировалось Кристина1998; 02.03.2017 в 21:51. |
|
02.03.2017, 21:50 | #5 | |
Форумчанин
Регистрация: 01.11.2016
Сообщений: 110
|
Цитата:
num++; //увеличиваем значение return num % 2; //возвращаем число и берем процент 2, т.к нужно только от 0 до 1 равномерно выводить? int myrand () { int random = rand () % RAND_MAX; //выводим числа рандомна int mynum = 0; for (int i = 0; i < random; i++) // ... { mynum += fun (); } return mynum; } int main () { srand (time (NULL)); for (int i = 0; i < 30; i++) printf ("%d\n", myrand ()); return 0; } Я вроде бы понимаю, как работает программа , но не могу обосновать с терминами |
|
03.03.2017, 11:52 | #6 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Странно, ты пишешь: "не будет изменяться" (а в следующей строчке) " меняю num на единицу"?
Так может меняться или нет? ___________________________________ ______________ 1) Ключевое слово "static" делает переменную вечную, - в том смысле, что создавший один раз переменная живёт в памяти компьютера до самого конца работы всей программы (а обычно жизнь переменной связана с её полем видимости - вышло выполнение программы за поле видимости переменно и переменная исчезла. Но это целая тема: "поле видимости переменных")... Такого же эффекта можно было добиться сделав её "глобальной": Код:
___________________________________ ____________________ 3) Общепринятое название операции: "num % 2;" - "модуль из числа num по основанию 2-а" (выводит числа 0 или 1)... Интересно, если для предыдущего выражения, интервал значение равно [0;1], то какой интервал значений будет выводить при такой записи: "random = rand () % RAND_MAX; "? Что это за запись? rand() - генерация любого числа % RAND_MAX - взятие модуля по основанию "RAND_MAX" (т.е., по сути дела, эта операция делает ограничения на выводимое значение и интервал выводимого значения находится в промежутке: [0; RAND_MAX-1]). Вопрос: чему равна константа, хранимая в библиотечном файле С++, RAND_MAX? (в любом поисковике в первых 5-ти ссылках ты легко эту информацию найдёшь). ___________________________________ _______________ 4) Запись: Код:
А можно ли без этой строчки обойтись? Можно! А ну, попробуй (удали эту строчку) и запусти программу без неё. Зачем она нужна - читай в интернете. ___________________________________ _______________ 5) Функция "fun()", при каждом к ней обращении, возвращает конкретное число чередующей последовательности (можно сказать, что она работает как маятник или вибратор): 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 ,0,1,0.... а функция "myrand()" просто суммирует кусочки этой последовательности. При этом длина кусочка последовательности задаётся в "int random=...". ___________________________________ _______________ Я не понимаю, что тебе не понятно ещё? Вроде остальное примитив и никакой сложности не вызывает... |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Объяснить логику работы ассемблерного кода | Abrokadawr | Помощь студентам | 6 | 10.10.2015 14:15 |
Объяснить кода | shadow155 | Visual C++ | 1 | 19.06.2015 02:11 |
JavaScript выпадающее меню,объяснить часть кода | Alina111 | Помощь студентам | 1 | 10.10.2014 15:47 |
объяснить поведение кода | denis7656 | JavaScript, Ajax | 6 | 24.04.2012 23:15 |
Объяснить каждую строку кода!Очень нужно | Kugen | Общие вопросы Delphi | 0 | 18.12.2010 17:40 |