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

Обсудите моё задание (Страуструп Б.) Последовательности слов - C++

Восстановить пароль Регистрация
 
SHBan
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 21
17.01.2013, 19:40     Обсудите моё задание (Страуструп Б.) Последовательности слов #1
Обсудите моё задание (Страуструп Б. Язык программирования С++. Специальное издание, 3-изд. Бином.2004)
145 ст. задание 11.

//прочитайте последовательность слов из потока ввода - 1
//пусть Quit означает конец ввода - 2
//распечатайте слова в порядке их ввода - 3
//исключите из печати одинаковые слова - 4
//Отсортируйте слова перед печатью - 5
Кликните здесь для просмотра всего текста
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include<iostream>
#include<string>
 
//--------------------------------------------------
bool checkEnd(char** mass, int interator);
bool strCopyCheck(char** mass, int interator);
void sortMass(char** mass);
 
void main()
{
    //----------------------------------------------
    //прочитайте последовательность слов из потока ввода - 1
    //пусть Quit означает конец ввода                    - 2
    //распечатайте слова в порядке их ввода              - 3
    //исключите из печати одинаковые слова               - 4
    //Отсортируйте слова перед печатью                   - 5
    
    char** mass = new (char*);
    void enter_mass(char** mass);
    enter_mass(mass);
    void show_mass(char** mass);
    sortMass(mass);
    show_mass(mass);
    
system("pause");
}
//----------------------------------------------------------------
//запись массива строк (введёного слова Ouit) вечный цикл с интератором 
void enter_mass(char** mass)
{
    for(int i = 0;; i++)
    {
        mass[i] = new char;
        std::cin >> mass[i];
        if(!checkEnd(mass,i))
        {
            break;
        }
    }   
}
//-------------------------------------------------------------------
//показывает массив строк (введёного слова Ouit) вечный цикл с интератором 
void show_mass(char** mass)
{
    for(int i = 0;; i++)
    {
        
        if(!checkEnd(mass,i)) //если слово Ouit - выход
        {
            break;
        }
        // отсортируйте слова перед печатью
        if(!strCopyCheck(mass,i)) //если в стеке есть повторонеия то выводим только 1 из них
        {
            std::cout << mass[i] << std::endl;
        }
    }
}
//-------------------------------------------------------------------
// проверка на введенное слово (не является ли оно концом массива)
bool checkEnd(char** mass, int interator)
{
    return strcmp(mass[interator],"Ouit"); // (false если слово - Ouit) || (true если нет)
}
//-------------------------------------------------------------------
bool strCopyCheck(char** mass, int interator)
{
    for(int i = 0; i < interator; i++)
    {
        if(!strcmp(mass[i],mass[interator]))//false - если одинаковое
            return true;                    //Выходим из функции (ЕСТЬ СОВПАДЕНИЯ) в массиве
    }
    return false;                           //Выходим из функции (НЕТ СОВПАДЕНИЙ) в массиве
}
//------------------------------------------------------------------
//сортировка массива строк возвращает отсортированный массив
void sortMass(char** mass)
{
    for(int i = 0 ; checkEnd(mass,i); i++)
        for(int j = i + 1; checkEnd(mass,j); j++)
            //if(mass[i][0] > mass[j][0]) // сортируем по первой букве
            if(strcmp(mass[i],mass[j]) > 0) //возвращает отрицательное если str1 меньше str2
                                            //возврашает нулевое если равно
                                            //возврашает положительное если больше
            {
                //через буферную переменную будим сортировать массив
                char* temp = mass[i]; //поместим значение первого слова в буферную переменную
                mass[i] = mass[j];
                mass[j] = temp;
            }
}


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

Интересуют замечания по написанию и возможно предложения как бы вы поступили с таким заданием.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2013, 19:40     Обсудите моё задание (Страуструп Б.) Последовательности слов
Посмотрите здесь:

C++ Страуструп
C++ Страуструп
Моё извращённое сознание C++
проверка характеристик последовательности слов C++
Страуструп. задание C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.01.2013, 19:42     Обсудите моё задание (Страуструп Б.) Последовательности слов #2
Цитата Сообщение от SHBan Посмотреть сообщение
void main()
а это на какой странице в книге Страуструпа?

Цитата Сообщение от SHBan Посмотреть сообщение
интератором
и что такое интератор?
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
17.01.2013, 19:48     Обсудите моё задание (Страуструп Б.) Последовательности слов #3
Где вы видели, чтобы Страуструп писал void main? Так писать не корректно.

Добавлено через 2 минуты
Цитата Сообщение от SHBan Посмотреть сообщение
#include<string>
Вот эта строка зачем, если вы не используете тип string?

Добавлено через 2 минуты
Программа не работает, на Quit не выходит.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
17.01.2013, 19:48     Обсудите моё задание (Страуструп Б.) Последовательности слов #4
Прежде чем спрашивать о замечаниях по коду, наверное стоит довести программу до работоспособного состояния?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,402
17.01.2013, 19:51     Обсудите моё задание (Страуструп Б.) Последовательности слов #5
cstring (string.h) и string совершенно разные хедеры
SHBan
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 21
17.01.2013, 23:00  [ТС]     Обсудите моё задание (Страуструп Б.) Последовательности слов #6
Да не заметил хедер . Я просто комментирую задания которые выполнил и этот хедер с другой темы, не заметил. Могу конечно выложить весь код 145 страницы но там разобрать будит не легко, лень создавать новый проект для каждого задания. Пару минуток и всё поправлю))...

Добавлено через 4 минуты
Ну не в курсе по какой вы там кухне , но код который я скопипастил с темы рабочий на все 100.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
17.01.2013, 23:07     Обсудите моё задание (Страуструп Б.) Последовательности слов #7
SHBan, по стандарту он не должен даже компилироваться, так как в стандарте у функции main всего два прототипа, и каждый из них имеет возвращаемый тип int. gcc его точно не скомпилирует.
SHBan
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 21
17.01.2013, 23:09  [ТС]     Обсудите моё задание (Страуструп Б.) Последовательности слов #8
Ну вот как пусто сказано что такое интератор я в курсе и + в курсе зачем я поставил void в мэйне. О чём речь, как говорилось в одной книге отдай свой код на растерзание врагу чтобы понять что в твоём коде плохо. Про коменты кстати простите они не для вас а для меня могу удалить если мозолят. Может я и нуб в программировании, но скажите мне зачем мне что то возвращать там если это не требуется ??? обоснуйте.

Ouit выход у меня ошибка в коменте - могли и сами догадаться)

Раз он в той среде работает он должен знать , про этот стандарт . Раз вызвался что то говорить о не работоспособности...

Простите но я писал тему не для обсуждения компиляторной кроссплатформенности моего кода.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
17.01.2013, 23:14     Обсудите моё задание (Страуструп Б.) Последовательности слов #9
SHBan, да что обосновывать - у языка С++ есть стандарт. Это такой документ, где расписано, что и как должно быть. И в стандарте написано, что должно быть int main. void main - неправильно и не скомпилируется (и не надо писать про студию - она не целый мир).
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
17.01.2013, 23:17     Обсудите моё задание (Страуструп Б.) Последовательности слов #10
SHBan, Вам никто здесь доказывать по этому поводу ничего не будет, эта тема избита, Вы изучаете язык программирования, так делайте это правильно. На форуме очень много информации по этому поводу, не поленитесь воспользоваться поиском.

Добавлено через 1 минуту
Цитата Сообщение от SHBan Посмотреть сообщение
Простите но я писал тему не для обсуждения компиляторной кроссплатформенности моего кода.
Это тут совсем не причем.
Люди пишут об этом не для придирки, а потому что нет никакого желания комментировать заведомо нерабочий код.
SHBan
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 21
17.01.2013, 23:21  [ТС]     Обсудите моё задание (Страуструп Б.) Последовательности слов #11
В принципе, я хотел идей которые посещали других новичков при прочтении этой книги. Ну а вы прям загнули в баранку то что я написал.Спс но вопросов я не ждал особенно от таких (как там написано "Эксперт С++" стёб да и только) вспомните себя как начинали изучать программирование, и как вам хотелось чтобы то что вы делили было хоть как то похоже, на то чем вы будите заниматься в дальнейшей жизни)).
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
17.01.2013, 23:27     Обсудите моё задание (Страуструп Б.) Последовательности слов #12
SHBan, Вам указывают на ошибки, а Вы и слушать не хотите, тогда какой вообще смысл создания данной темы. Нет такого слова интератор, есть итератор ( iterator ). Так же как и void main(); это ошибка, но Вы же гнете свое, так что думаю нормального обсуждения Вы таким способом не получите.
SHBan
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 21
17.01.2013, 23:51  [ТС]     Обсудите моё задание (Страуструп Б.) Последовательности слов #13
Цитата Сообщение от Toshkarik Посмотреть сообщение
SHBan, Вам указывают на ошибки, а Вы и слушать не хотите, тогда какой вообще смысл создания данной темы. Нет такого слова интератор, есть итератор ( iterator ). Так же как и void main(); это ошибка, но Вы же гнете свое, так что думаю нормального обсуждения Вы таким способом не получите.
Конечно не будит нормального обсуждения по той причине , по которой вы не читаете что я написал. Хотелось бы видеть и не только ошибки которые вы уже выявили но и предложения которые могут меня заинтересовать, вот написали бы вы как вы написали это задание и + то что мейн нельзя писать войд и то что я в русско английском суржеке не разбираюсь типа итератор и тд. Думаю в этой теме у меня не будит ответов которые я хотел бы получить . Спосибо что прочитали и только отняли своё и моё время.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2013, 14:53     Обсудите моё задание (Страуструп Б.) Последовательности слов
Еще ссылки по теме:

C++ В последовательности слов найти и поменять местами пару слов, у которых первые 3 буквы одного совпадают с последними 3 буквами другого
C++ Моё Первое Оконное приложение!
Подсчитать количество слов в данной последовательности C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,402
18.01.2013, 14:53     Обсудите моё задание (Страуструп Б.) Последовательности слов #14
SHBan, вы из тех пользователей, которые приглашают мастера и просят работать в корпусе, когда в одном куллере грязи забилось кило на 2. Только вот мастеру еще и платят. А с какой кстати люди должны рыться в вашем "грязном коде" в поисках решения вашей проблемы? Мой нормальный компилятор ваш код не скомпилит, с чего бы я должен делать исправления за вас?
Вы знаете уж точно поменьше, чем люди отвечающие вам, но вот ЧСВ у вас зашкаливает, и вы даже не прислушивайтесь к тому, что вам говорят. Это вдобавок отбивает всякое желание вам помогать.
Yandex
Объявления
18.01.2013, 14:53     Обсудите моё задание (Страуструп Б.) Последовательности слов
Ответ Создать тему
Опции темы

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