0 / 0 / 1
Регистрация: 27.12.2012
Сообщений: 21
1

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

17.01.2013, 19:40. Показов 1317. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Обсудите моё задание (Страуструп Б. Язык программирования С++. Специальное издание, 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 страниц этой книги , то как я понимаю всё что было написано на этих страницах и нужно использовать. Смотрел по различным форумам аналоги моей темы но там все забегают на перёд используя материал который будит рассмотрен в книге позже.

Интересуют замечания по написанию и возможно предложения как бы вы поступили с таким заданием.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.01.2013, 19:40
Ответы с готовыми решениями:

Страуструп. задание
насколько я понял задание - есть класс class STC { unexpected_handler old; public: ...

Не получается сделать 6е задание 3й главы из книги Бьярне Страуструп
Здравствуйте, я совсем не давно начал изучать C++ и начал с книги Бьярна Страуструпа, и остановился...

вот мое задание. Можете с ним помо*ь? Очень надо
В целочисленном массиве, сгенерированном случайным образом, найти наименьший из положительных...

обсудите решение беспроводной сети...кто чем может...
День добрый...начну с описания ситуации: имеются два объекта примерно на расстоянии 4-5...

13
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
17.01.2013, 19:42 2
Цитата Сообщение от SHBan Посмотреть сообщение
void main()
а это на какой странице в книге Страуструпа?

Цитата Сообщение от SHBan Посмотреть сообщение
интератором
и что такое интератор?
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
17.01.2013, 19:48 3
Где вы видели, чтобы Страуструп писал void main? Так писать не корректно.

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

Добавлено через 2 минуты
Программа не работает, на Quit не выходит.
0
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
17.01.2013, 19:48 4
Прежде чем спрашивать о замечаниях по коду, наверное стоит довести программу до работоспособного состояния?
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
17.01.2013, 19:51 5
cstring (string.h) и string совершенно разные хедеры
0
0 / 0 / 1
Регистрация: 27.12.2012
Сообщений: 21
17.01.2013, 23:00  [ТС] 6
Да не заметил хедер . Я просто комментирую задания которые выполнил и этот хедер с другой темы, не заметил. Могу конечно выложить весь код 145 страницы но там разобрать будит не легко, лень создавать новый проект для каждого задания. Пару минуток и всё поправлю))...

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

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

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

Простите но я писал тему не для обсуждения компиляторной кроссплатформенности моего кода.
0
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
17.01.2013, 23:14 9
SHBan, да что обосновывать - у языка С++ есть стандарт. Это такой документ, где расписано, что и как должно быть. И в стандарте написано, что должно быть int main. void main - неправильно и не скомпилируется (и не надо писать про студию - она не целый мир).
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
17.01.2013, 23:17 10
SHBan, Вам никто здесь доказывать по этому поводу ничего не будет, эта тема избита, Вы изучаете язык программирования, так делайте это правильно. На форуме очень много информации по этому поводу, не поленитесь воспользоваться поиском.

Добавлено через 1 минуту
Цитата Сообщение от SHBan Посмотреть сообщение
Простите но я писал тему не для обсуждения компиляторной кроссплатформенности моего кода.
Это тут совсем не причем.
Люди пишут об этом не для придирки, а потому что нет никакого желания комментировать заведомо нерабочий код.
0
0 / 0 / 1
Регистрация: 27.12.2012
Сообщений: 21
17.01.2013, 23:21  [ТС] 11
В принципе, я хотел идей которые посещали других новичков при прочтении этой книги. Ну а вы прям загнули в баранку то что я написал.Спс но вопросов я не ждал особенно от таких (как там написано "Эксперт С++" стёб да и только) вспомните себя как начинали изучать программирование, и как вам хотелось чтобы то что вы делили было хоть как то похоже, на то чем вы будите заниматься в дальнейшей жизни)).
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
17.01.2013, 23:27 12
SHBan, Вам указывают на ошибки, а Вы и слушать не хотите, тогда какой вообще смысл создания данной темы. Нет такого слова интератор, есть итератор ( iterator ). Так же как и void main(); это ошибка, но Вы же гнете свое, так что думаю нормального обсуждения Вы таким способом не получите.
0
0 / 0 / 1
Регистрация: 27.12.2012
Сообщений: 21
17.01.2013, 23:51  [ТС] 13
Цитата Сообщение от Toshkarik Посмотреть сообщение
SHBan, Вам указывают на ошибки, а Вы и слушать не хотите, тогда какой вообще смысл создания данной темы. Нет такого слова интератор, есть итератор ( iterator ). Так же как и void main(); это ошибка, но Вы же гнете свое, так что думаю нормального обсуждения Вы таким способом не получите.
Конечно не будит нормального обсуждения по той причине , по которой вы не читаете что я написал. Хотелось бы видеть и не только ошибки которые вы уже выявили но и предложения которые могут меня заинтересовать, вот написали бы вы как вы написали это задание и + то что мейн нельзя писать войд и то что я в русско английском суржеке не разбираюсь типа итератор и тд. Думаю в этой теме у меня не будит ответов которые я хотел бы получить . Спосибо что прочитали и только отняли своё и моё время.
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
18.01.2013, 14:53 14
SHBan, вы из тех пользователей, которые приглашают мастера и просят работать в корпусе, когда в одном куллере грязи забилось кило на 2. Только вот мастеру еще и платят. А с какой кстати люди должны рыться в вашем "грязном коде" в поисках решения вашей проблемы? Мой нормальный компилятор ваш код не скомпилит, с чего бы я должен делать исправления за вас?
Вы знаете уж точно поменьше, чем люди отвечающие вам, но вот ЧСВ у вас зашкаливает, и вы даже не прислушивайтесь к тому, что вам говорят. Это вдобавок отбивает всякое желание вам помогать.
1
18.01.2013, 14:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2013, 14:53
Помогаю со студенческими работами здесь

Заменить в последовательности каждую группу слов 'МУХА' группой слов 'СЛОН'
Даны натуральное число N, последовательность символов s1,s2,s3,...,sN. Заменить в этой...

В последовательности слов найти и поменять местами пару слов, у которых первые 3 буквы одного совпадают с последними 3 буквами другого
Лабораторная работа № 6 Строки Цель работы: изучение правил описания, ввода-вывода и основных...

Задание: последовательность слов
Дана последовательность слов. Напечатать те слова последовательности, которые отличны от...

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru