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

Нужно закомментировать программу

30.03.2015, 23:04. Показов 2777. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <iostream>
#include <vector>
#include <algorithm>
 
 
 
 
template<class T, size_t N1, size_t N2>
static bool intersection( T (&first)[N1],  T (&second)[N2])
{
    std::sort (first,  first  + N1);     
    std::sort (second, second + N2);   
 
    enum { num = N1>N2? N2: N1 };       
    std::vector<T> v(num,0);
 
    const auto it = 
        std::set_intersection (first, first + num, second, second + num, v.begin());
        
    v.resize(it - v.begin());
    
    for(const auto& i: v)
        std::cout<< i<<", ";
        
    std::cout<<'\n';
    return !v.empty();
}
 
int main()
{
 
    
    int a[]={1,2,3,4,56,7,3,3,6,3};
    int b[]={3,2,1,5,6,3,5,74,4,5};
    
    if( intersection(a,b) )
        std::cout<<"result: yes\n";
    else
        std::cout<<"result: no\n";
    
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.03.2015, 23:04
Ответы с готовыми решениями:

Мне нужно закомментировать код ниже(под словом закомментировать я подразумеваю объяснить работу каждой строки)
ВОТ ЗАДАЧА: После единых выпускных экзаменов по информатике в район пришла информация о том, какой ученик какой школы сколько баллов...

Нужно подробно закомментировать каждую строчку)
int a = {3, 5, 7, 1, 2, 3, 4, 5}; const int n = 8; cout&lt;&lt;&quot;Massiv: &quot;&lt;&lt;endl; for(int i = 0; i != n; ++i) cout&lt;&lt;a; int tmp...

Помоги закомментировать программу
#include &quot;mainwindow.h&quot; #include &quot;ui_mainwindow.h&quot; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; #include &lt;QMessageBox&gt; #include...

24
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
30.03.2015, 23:38
Цитата Сообщение от Саша 1990 Посмотреть сообщение
Нужно закомментировать программу
легко
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
/*
#include <iostream>
#include <vector>
#include <algorithm>
 
 
 
 
template<class T, size_t N1, size_t N2>
static bool intersection( T (&first)[N1],  T (&second)[N2])
{
    std::sort (first,  first  + N1);     
    std::sort (second, second + N2);   
 
    enum { num = N1>N2? N2: N1 };       
    std::vector<T> v(num,0);
 
    const auto it = 
        std::set_intersection (first, first + num, second, second + num, v.begin());
        
    v.resize(it - v.begin());
    
    for(const auto& i: v)
        std::cout<< i<<", ";
        
    std::cout<<'\n';
    return !v.empty();
}
 
int main()
{
 
    
    int a[]={1,2,3,4,56,7,3,3,6,3};
    int b[]={3,2,1,5,6,3,5,74,4,5};
    
    if( intersection(a,b) )
        std::cout<<"result: yes\n";
    else
        std::cout<<"result: no\n";    
}
*/
5
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
31.03.2015, 00:34
Лучший ответ Сообщение было отмечено Саша 1990 как решение

Решение

Саша 1990, Если имелось ввиду - покрытие комментариями, описывающими суть работы, извольте:
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
#include <iostream> // std::cout
#include <vector> // std::vector
#include <algorithm> // std::set_intersection ([url]http://www.cplusplus.com/reference/algorithm/set_intersection/?kw=set_intersection[/url])
                     // std::sort ([url]http://www.cplusplus.com/reference/algorithm/sort/[/url] )
 
// intersection - шаблонная функция, которая будет принимать 2 одномерных массива по не константной ссылке
// типа T (согласованного), размерами N1 и N2 соответственно, и возвращать
// значение типа bool, принимающее значение true в случае непустого пересечения
template <class T, size_t N1, size_t N2>
static bool intersection(T (&first)[N1], T (&second)[N2]) {
  std::sort(first, first + N1); // Сортируются все элементы первого массива
  std::sort(second, second + N2); // Сортируются все элементы второго массива
 
  // Объявление безымянного перечисления, содержащего единственный элемент num
  // значение которого будет равно минимальному из N1 N2
  enum { num = N1 > N2 ? N2 : N1 };
  std::vector<T> v(num, 0); // Создание вектора v размером num, заполненного значениями 0
 
  // Вызов стандартного алгоритма, для выяснения пересечения двух отсортированных
  // множеств (first и second). Результат пересечения будет записываться в массив v
  // Функция возвращает итератор, указывающий на элемент, за последним элементом 
  // в векторе v, содержащим значение из пересечения.
  const auto it = std::set_intersection(first, first + num, second,
                                        second + num, v.begin());
 
  // Изменение размера вектора до величины расстояния от начала вектора до it
  v.resize(it - v.begin());
 
  // range base for цикл, достающий элементы вектора по константным ссылкам
  // В теле цикла - вывод элементов через запятую.
  for (const auto& i : v) std::cout << i << ", ";
 
  std::cout << '\n'; // Вывод символа конца строки.
  return !v.empty(); // В случае если пересечение не пустое вернет true
}
 
int main() { // Точка входа в программу
  int a[] = {1, 2, 3, 4, 56, 7, 3, 3, 6, 3}; // Определение массива a содержащего 10 элементов
  int b[] = {3, 2, 1, 5, 6, 3, 5, 74, 4, 5}; // Определение массива b содержащего 10 элементов
 
  // В данной точке будет инстанцирован шаблон эквивалентный фунции с сигнатурой
  // bool intersection(int (&first)[10], int (&second)[10]);
  // Если пересечение не пустое, выведет на экран первую строку, если пустое, вторую
  if (intersection(a, b))
    std::cout << "result: yes\n";
  else
    std::cout << "result: no\n";
}
1
31.03.2015, 00:59

Не по теме:

C++
1
std::cout << '\n'; // Вывод символа конца строки.
теперь и это без комментариев не обходится? :( Я сопьюсь так скоро :D

0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
31.03.2015, 01:04
Цитата Сообщение от Croessmah Посмотреть сообщение
теперь и это без комментариев не обходится?
так еще и не правильных
'\n' это не конец строки, это перевод каретки, "Энтер", переход на другую строку
а конец строки это \0 и он никуда не выводится
3
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
31.03.2015, 01:06
Цитата Сообщение от Melg Посмотреть сообщение
std::cout << '\n'; // Вывод символа конца строки.
вах вах! а мою программко тоже закомментируйте:

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
    std::cout << "Hello, world!\n";
    
    const char trololo[] = { 'h', 'e', 'l' , 'l', 'o', '\n' };
    
    //слющай! нормальный канец строки ввел да!
    //почаму мусор тогда выводиццо, да?
    std::cout<< trololo;
}
2
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
31.03.2015, 01:09
Цитата Сообщение от ValeryS Посмотреть сообщение
так еще и не правильных
как всегда, слона я не заметил.

Не по теме:

Цитата Сообщение от hoggy Посмотреть сообщение
//почаму мусор тогда выводиццо, да?
ай мусир проклятий, поду в VB писать, там прощи

0
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
31.03.2015, 01:10
hoggy,
Рассуждения были примерно следующими
\n -> endl -> end of line -> конец строки -> символ конца строки.
https://translate.google.ru/#en/ru/end%20of%20line

Хорошо, пусть администратор заменит фразу
std::cout << '\n'; // Вывод символа конца строки.
на
std::cout << '\n'; // Вывод символа новой строки.
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
31.03.2015, 01:13
Цитата Сообщение от Melg Посмотреть сообщение
\n -> endl -> end of line -> конец строки -> символ конца строки.
Во-первых, '\n' - это не endl;
Во-вторых, строка - string, а line - линия(http://www.translate.ru/ так и переводит "конец линии");
В-третьих, не нужно переводить на русский язык многие термины, а то получится, что cout и cin - это для многопоточности.
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
31.03.2015, 01:13
Цитата Сообщение от Melg Посмотреть сообщение
\n -> endl
а ты уверен, что это одно и тоже?
Цитата Сообщение от Melg Посмотреть сообщение
Как его называть?
Цитата Сообщение от ValeryS Посмотреть сообщение
перевод каретки, "Энтер", переход на другую строку
можно еще добавить "перевод строки"
0
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
31.03.2015, 01:49

Не по теме:

ValeryS, Если уж придираться к словам. Нет такого слова "Энтер" вращайте барабан.
Как нету и "перевод каретки" Есть "разрыв строки" или "возврат каретки".
Да и возврат каретки это '\r'.



По вопросу перевода '\n' - если считать вики достаточно авторитетным источником:
'\n' - один из 8 обязательных управляющих символов, определенным стандартом POSIX.
Переводится как "перевод строки".

https://ru.wikipedia.org/wiki/... 2%EE%EB%FB
https://ru.wikipedia.org/wiki/... 0%BA%D0%B8

Добавлено через 5 минут
Итак финальная версия:
C++
1
std::cout << '\n'; // Вывод управляющего символа перевода строки.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
31.03.2015, 01:50
Цитата Сообщение от Melg Посмотреть сообщение
По вопросу перевода '\n' - если считать вики достаточно авторитетным источником:
цемес в том, что вам дали понять, что endl и '\n' разные вещи.


C++
1
2
3
4
5
6
int main()
{
    cout <<"ololo\n"; //<--- возврат каретки
 
    cout <<"i love c++"<<endl; //<--- возврат каретки и сброс буфера
}
Insert newline and flush
Inserts a new-line character and flushes the stream.

Its behavior is equivalent to calling os.put('\n') (or os.put(os.widen('\n')) for character types other than char), and then os.flush().
http://www.cplusplus.com/reference/ostream/endl/
0
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
31.03.2015, 01:54
hoggy, я в курсе разницы поведения endl и '\n' в части работы с буфером:
Its behavior is equivalent to calling os.put('\n') (or os.put(os.widen('\n')) for character types other than char), and then os.flush().
http://www.cplusplus.com/reference/ostream/endl/
По Вашему это не позволяет производить логическую цепочку связи от '\n' к endl? Особенно в части перевода.
На мой взгляд endl просто делает больше, чем '\n'.
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
31.03.2015, 01:56

Не по теме:

Цитата Сообщение от Melg Посмотреть сообщение
Нет такого слова "Энтер" вращайте барабан.
да? а у меня оно на клавиатуре написано,:) правда по аглицки
а на русских клавах писали "ввод"
Цитата Сообщение от Melg Посмотреть сообщение
Как нету и "перевод каретки"
ужель бы работал на пишущих машинках то знал бы, что есть такой термин
это одновременно и возврат каретки и перевод строки \r\n
но обсуждать сленг, занятие глупое:)


Цитата Сообщение от Melg Посмотреть сообщение
// Вывод управляющего символа перевода строки.
принимается
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
31.03.2015, 01:57
Цитата Сообщение от Melg Посмотреть сообщение
По Вашему это не позволяет производить логическую цепочку связи от '\n' к endl? Особенно в части перевода.
по-моему, не нужно давать терминам какие то контекстно-зависимые смыслы.

символ возврата каретки я так и называю "символ возврата каретки".
ну или "ескейп последовательность, которая переводит каретку терминала в начало новой строки"

а манипулятор endl я так и называют "манипулятор endl".

и никаких проблем с взаимопониманием.
так проще.
0
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
31.03.2015, 01:58
К слову сказать, управляющий символ std::endl:
перевод строки и вызов flush
https://ru.wikipedia.org/wiki/Iostream
Заметьте, не возврат каретки, а перевод строки.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
31.03.2015, 02:02
Цитата Сообщение от Melg Посмотреть сообщение
Заметьте, не возврат каретки, а перевод строки.
да я не против. это все словоблудие в конечном счете.
главное что бы не "конец строки".
0
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
31.03.2015, 02:06
Чтобы новички понимали о чем была соль дискуссии, под "концом строки" - я не подразумевал "null termination" "Нуль-терминированние"
http://en.wikipedia.org/wiki/N... ted_string , а имел ввиду более общеупотребительный смысл.
Конечным вариантом корректного перевода на русский оказалось:
Вывод управляющего символа перевода строки.
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
31.03.2015, 14:54

Не по теме:

Стоило бы добавить такую тему "10 наиболее распространённых орфографических ошибок". (In my humble opinion.)


Цитата Сообщение от hoggy Посмотреть сообщение
главное, чтобы не "конец строки".
Цитата Сообщение от Melg Посмотреть сообщение
а имел в виду
_______
_______
0
31.03.2015, 16:51

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
легко
я специально заглянул в эту тему, чтобы проверить есть ли тут подобный ответ :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.03.2015, 16:51
Помогаю со студенческими работами здесь

Нужно закомментировать код
.MODEL SMALL ; Модель памяти .CODE ORG 100H; начало СОМ-файла START: MOV AX,3;Устанавливается символьный видеорежим ...

Нужно помочь закомментировать директивы в .htaccess
Добрый день! Нужна помощь специалистов. Ни PHP, ни чем-то другим подобным я никогда не занимался, у меня другой профиль...

Нужно закомментировать код(решение симплекс метода)
procedure TMainForm.N6Click(Sender: TObject); var SimplexTable,SimplexTableNew:array of array of extended; GoalFun:array of...

Закомментировать программу
Здравствуйте помогите пожалуйста, у меня есть программа нужно расписать что обозначает каждая строчка. Заранее спасибо. program L2;...

Нужно написать программу в которой нужно проверять условия в текстовом файле
Написать программу, которая считывает английский текст из файла и выводит его на экран, заменив каждую первую букву слов, начинающихся с...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru