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

Подсказать по коду программы

05.11.2012, 18:10. Показов 2510. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел тут на форуме программу, которая почти подходит под мое условие, но в ее коде не совсем понимаю, прошу помочь разобраться. Если кому не сложно, напишите к строчкам комментарии, что они делают, или в другом удобном вам виде.
В частности, не понятно где именно в коде, идет добавление элементов, например я задаю первый, а где задаются последующие. А также, что выполняется в этом куске:
Array + currentSlip, Array + N, Array[currentSlip]);

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
#include <iostream>
#include <algorithm>
 
const int N = 5;
 
int handSet(void)
{
    int a;
    std::cout << "Введите число: ";
    std::cin >> a;
    return a;
}
 
void SetArray(int * Array)
{
     std::generate(Array, Array + N, handSet);
}
 
int MakeCalculations(int * Array)
{
    std::sort(Array, Array + N);
 
    int currentSlip = 0;
    int count_Of_Elements_That_Meets_More_Than_Once = 0;
    while (currentSlip < N)
    {
        int count = std::count(Array + currentSlip, Array + N, Array[currentSlip]);
        if (count > 1)
            ++count_Of_Elements_That_Meets_More_Than_Once;
        currentSlip += count;
    }
    return count_Of_Elements_That_Meets_More_Than_Once;
}
 
void ShowResult(int X)
{
    std::cout << "\n\n" << "Число элементов, встречающихся в последовательности более 1го раза: " <<
        X << "\n\n";
}
 
int main(void)
{
    setlocale(LC_ALL,"Russian");
 
    int Array[N];
    SetArray(Array);
 
    std::cout << "Исходная последовательность: " << '\n';
    std::copy(Array, Array + N, std::ostream_iterator<int>(std::cout, " "));
 
    int count_Of_Elements_That_Meets_More_Than_Once = MakeCalculations(Array);
 
    ShowResult(count_Of_Elements_That_Meets_More_Than_Once);
    system("pause");
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.11.2012, 18:10
Ответы с готовыми решениями:

Кто нибудь можете подсказать, есть ли вообще программы конверторы с языка c++ в паскаль
Кто нибудь можете подсказать, есть ли вообще программы конверторы с языка c++ в паскаль

Просьба подсказать по коду
Помогите с проблемой, ДАНО: 3 Edit' a + Button1 (см. ниже код на Button1) Не работает, подскажите ошибку?

подсказать с начинкой программы
Здравствуйте, дали ровно ночь курсовую что б написать курсовую Delphi + sql server тема (Проектирование базы данных для Столовой:...

42
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
06.11.2012, 19:43
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от David Sylva Посмотреть сообщение
Неправда, попробуй откомпилируй код.
ладно, не разглядел i+1
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
06.11.2012, 19:44
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
ладно, не разглядел i+1
бывает
0
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 39
06.11.2012, 19:51  [ТС]
David Sylva, у меня почему-то результат не выводит. После ввода последовательности консоль закрывается.
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
06.11.2012, 19:56
Попробуй дописать в конце программы
System ("Pause");
1
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 39
06.11.2012, 20:06  [ТС]
Работает, и еще вопрос, данный вариант от найденного в другой теме отличается только тем, что код проще?
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
06.11.2012, 20:12
По сути да, но конечно правильней делать так как в предыдущей темы, но то что используется в той программе я думаю вы ещё не знаете.
1
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 39
07.11.2012, 20:46  [ТС]
Выявилась проблема в программе: если вводить символ два раза, то все работает нормально, но если, например, построить последовательность из трех элементов, и ввести все три единицы, то программа выдает, что элементов встреч. больше одного раза - 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
52
53
54
55
56
#include <iostream>
#include <locale>
#include <math.h>
 
using namespace std;
 
int* enter(int* array1, int n) 
{  
    int i; 
 
    for ( i = 0; i < n; i++) 
    { 
        cout << "Введите элемент [" << i << "] "; 
        cin >> array1[i]; 
    } 
    return array1;
}   
 
int Count(int* array, int n) 
{ 
    int i, j;
    int count = 0; 
    for ( i = 0; i < n; i++)  
        for ( j = 1+i; j < n; j++)  
            if(array[i] == array[j])
            {
                count++; 
                break;  
                cout << count << endl;
            } 
           return count;
}
 
 
void show(int* array1, int n) 
{  
    int i; 
 
    for ( i = 0; i < n; i++) 
        std::cout << array1[i] << " "; 
    cout << endl;
}
 
int main() 
{   
    int n;
    setlocale(0, "rus");
    cout << "n="; 
    cin >> n;
    const int N = 100; 
    int array1[N];  
    enter(array1, n); 
    show(array1, n);  
    cout <<"Число элементов встречающихся больше одного раза  " << Count(array1, n) <<endl;
    system ("Pause"); 
}
0
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 39
11.11.2012, 17:23  [ТС]
Можно ли и как сделать с массивом?
0
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 39
12.11.2012, 21:02  [ТС]
Можно ли и как сделать с массивом?
0
0 / 0 / 0
Регистрация: 29.09.2012
Сообщений: 21
13.11.2012, 16:57
Срочно надо ((
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
13.11.2012, 16:59
Цитата Сообщение от SoSPB Посмотреть сообщение
Срочно над
Что срочно надо?
0
0 / 0 / 0
Регистрация: 29.09.2012
Сообщений: 21
13.11.2012, 17:07
почему то не отправилось первое сообщение, можно сделать, чтобы такая программа, брала числа из текстового файла? мне нужно по коду, который из моей темы, здесь как я понял его переделывали. Очень надо, можно или нет?
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
13.11.2012, 17:11
Цитата Сообщение от SoSPB Посмотреть сообщение
почему то не отправилось первое сообщение, можно сделать, чтобы такая программа, брала числа из текстового файла? мне нужно по коду, который из моей темы, здесь как я понял его переделывали. Очень надо, можно или нет?
Напиши полностью своё задание.
0
0 / 0 / 0
Регистрация: 29.09.2012
Сообщений: 21
13.11.2012, 17:15
Нет задания, мне надо знать(и если понадобится ответить), может или нет, собственно и спрашиваю
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
13.11.2012, 17:17
конечно можно.
1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
13.11.2012, 17:35
Цитата Сообщение от SoSPB Посмотреть сообщение
Срочно надо ((
А тебе то что надо? ты ж не ТС.
0
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 39
13.11.2012, 18:01  [ТС]
Как сделать, чтобы она правильно работала? Пробовал с третьей переменной- не получается. Ввожу последовательность из 3 элементов, все единицы - выдает, что больше одного раза встречаются два элемента, а на самом деле один. Мне сказали ,что можно сделать введя еще один массив, чтобы после проверки элементы отидывались в него.
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
13.11.2012, 18:04
Цитата Сообщение от Ivan1990 Посмотреть сообщение
Как сделать, чтобы она правильно работала?
кто она?
0
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 39
13.11.2012, 18:06  [ТС]
David Sylva, Программа
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
#include <iostream>
#include <locale>
#include <math.h>
 
using namespace std;
 
int* enter(int* array1, int n) 
{  
    int i; 
 
    for ( i = 0; i < n; i++) 
    { 
        cout << "Введите элемент [" << i << "] "; 
        cin >> array1[i]; 
    } 
    return array1;
}   
 
int Count(int* array, int n) 
{ 
    int i, j;
    int count = 0; 
    for ( i = 0; i < n; i++)  
        for ( j = 1+i; j < n; j++)  
            if(array[i] == array[j])
            {
                count++; 
                break;  
                cout << count << endl;
            } 
           return count;
}
 
 
void show(int* array1, int n) 
{  
    int i; 
 
    for ( i = 0; i < n; i++) 
        std::cout << array1[i] << " "; 
    cout << endl;
}
 
int main() 
{   
    int n;
    setlocale(0, "rus");
    cout << "n="; 
    cin >> n;
    const int N = 100; 
    int array1[N];  
    enter(array1, n); 
    show(array1, n);  
    cout <<"Число элементов встречающихся больше одного раза  " << Count(array1, n) <<endl;
    system ("Pause");
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
13.11.2012, 18:22
Всё понял, увидел где ошибка, можно сделать с массивами, но это будет коряво.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2012, 18:22
Помогаю со студенческими работами здесь

Прошу подсказать в реализации программы
Привет, прошу мне помочь/подсказать в следующем: как интегрировать компонент HotKey в этот код: #include &lt;AppEvnts.hpp&gt; ...

Как в процессе работы программы, обратиться к самому коду программы?
Никогда не сталкивалась с такой задачей, но нужно, очень нужно в процессе работы с программой изменить код самой программы, например...

Можете подсказать, можно ли как-то заполнить массив args при запуске программы...
Добрый вечер, можете подсказать можно ли как-то заполнить массив args при запуске программы. package javatasks; public...

Кто нибудь можете подсказать, есть ли вообще программы конверторы с языка c# в паскаль?
Кто нибудь можете подсказать, есть ли вообще программы конверторы с языка c# в паскаль

Коментарии к коду программы
type TForm1 = class(TForm) StringGrid1: TStringGrid; bOK1: TButton; StringGrid2: TStringGrid; bOK2: TButton; ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
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 . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru