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

Помагите написать функции для следующей программы - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
04.06.2010, 19:00     Помагите написать функции для следующей программы #1
Помагите написать функции для следующей программы
1)создать функцию в которой,как параметр передаётся строка и которая возвращает колличество слов в строке
2)создать функцию для строки , которую вводят с клавиатуры и которая считает колличество слов начинающихся с первой буквы этой строки
3)создать функцию ,которую вводят с клавиатуры и которая считает колличество слов в строке
В mainе через оператор case зделать менюшку в которой бы они все вызывались
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2010, 19:00     Помагите написать функции для следующей программы
Посмотрите здесь:

C++ Для данного вещественного x найти значение следующей функции f, при-нимающей значения целого типа:
Помогите написать код программы с использованием функции!!! C++
[C++]Для данного вещественного x найти значение следующей функции f C++
C++ Написать программы которые бы выполняли такие функции
C++ Пожалуйсто помагите написать эти две задачи на с++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
07.06.2010, 17:02  [ТС]     Помагите написать функции для следующей программы #21
если несложно,можеш в уже полностью исправленом виде прислать
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.06.2010, 17:03     Помагите написать функции для следующей программы #22
Интересно, а препод это по коду понял, или на самой программе?
mrMRak
38 / 38 / 3
Регистрация: 02.06.2010
Сообщений: 105
07.06.2010, 17:03     Помагите написать функции для следующей программы #23
и во вторую следует добавить проверку - что первый элемент строки не пробел.
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
07.06.2010, 17:05  [ТС]     Помагите написать функции для следующей программы #24
препод заметил по коду
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.06.2010, 17:06     Помагите написать функции для следующей программы #25
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
#include <iostream>
int countword(char*);
int _countword();
int countword();
int main (){
    char str[80];
    std::cout<<"For 1st function, press 1"<<std::endl<<"For 2nd function, press 2"<<std::endl\
    <<"For 3rd function, press 3"<<std::endl;
    int i;
    std::cin>>i;
    std::cin.ignore();
    switch (i){
        case 1: std::cout<<countword("bla bla bla")<<std::endl;
        break;
        case 2: std::cout<<_countword()<<std::endl;
        break;
        case 3:std::cout<<countword()<<std::endl;
        }
    system("pause");       
    return 0;
}
int countword(){
    char str[80];
    std::cout<<"Vvedite stroku :";
    gets (str);
    int count=1;
    for(int i=0;str[i]!='\0';i++)
        if(str[i]==' '){
            count++;
            while(str[i]==' ')++i;
        }    
        return count;
    }
int countword(char* str){
    int count=1;
    for(int i=0;str[i]!='\0';i++)
        if(str[i]==' '){
            count++;
            while(str[i]==' ')++i;
        } 
        return count;
    }  
int _countword(){
    char str[80];
    std::cout<<"Vvedite stroku :";
    gets(str);
    int count=1;
    char ch=str[0];
    for(int i=1;str[i]!='\0';i++){
        if(str[i]==' '&&str[++i]==ch)count++;
        while(str[i]==' ')++i;}  // эту строку добавить!!!
        return count;
    }
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
07.06.2010, 17:07  [ТС]     Помагите написать функции для следующей программы #26
спасиб
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.06.2010, 17:08     Помагите написать функции для следующей программы #27
Цитата Сообщение от mexx-nikitin Посмотреть сообщение
препод заметил по коду
Он скорее всего ждал, что ты с ним начнешь спорить, и покажешь эту строку. Либо препод латентный преверженец растакультуры(всмысле курит)

Добавлено через 48 секунд
скомпилируй программу, сам убедись - все работает!
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
07.06.2010, 17:23  [ТС]     Помагите написать функции для следующей программы #28
а поначалу этот косяк и я сам заметил ,но потом подумал, что препод незаметит))

Добавлено через 8 минут
смотри , а если в 3 функции вести сночала пробел а потом слово то опять ошибка

Добавлено через 5 минут
if(str[i]==' '&&str[++i]==ch),а в чём здесь отличие str[i] от str[++i]
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.06.2010, 17:51     Помагите написать функции для следующей программы #29
Блин, mexx-nikitin, сбил ты меня со своим преподом) Я начал думать, как так я ступил, когда этот код писал, подумал, подумал и понял - я тогда неступил, я сейчас ступил! Не нужна там эта строка, было все правильно. Там же ф-ция считает кол-во слов, начинающихся на первую букву в предложении.
if(str[i]==' '&&str[++i]==ch),а в чём здесь отличие str[i] от str[++i]
отличие в том, что str[i] это текущий символ, а str[++i]- это следующий символ.
смотри , а если в 3 функции вести сночала пробел а потом слово то опять ошибка
ага, исправлю, только маленько попозже(сегодня), сейчас занят.
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
07.06.2010, 18:11  [ТС]     Помагите написать функции для следующей программы #30
к стати в 1-ой и 2-й такая же штука с пробелом,но если сночала символы вводить , а потом пробел то всё правильно
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.06.2010, 19:01     Помагите написать функции для следующей программы #31
к стати в 1-ой и 2-й такая же штука с пробелом,но если сночала символы вводить , а потом пробел то всё правильно
Ага, исправил! Вот готовый код, 3-я ф-ция (case 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
57
58
#include <iostream>
int countword(char*);
int _countword();
int countword();
int main (){
    char str[80];
    std::cout<<"For 1st function, \"press\" 1"<<std::endl<<"For 2nd function, press 2"<<std::endl\
    <<"For 3rd function, press 3"<<std::endl;
    int i;
    std::cin>>i;
    std::cin.ignore();
    switch (i){
        case 1: std::cout<<countword("bla bla bla")<<std::endl;
        break;
        case 2: std::cout<<_countword()<<std::endl;
        break;
        case 3:std::cout<<countword()<<std::endl;
        }
    system("pause");       
    return 0;
}
int countword(){
    char str[80];
    std::cout<<"Vvedite stroku :";
    gets (str);
    int count=1;
    int i=0;
    while(str[i]==' ')++i;
    for(;str[i]!='\0';i++)
        if(str[i]==' '){
            count++;
            while(str[i]==' ')++i;
        }    
        return count;
    }
int countword(char* str){
    int count=1;
    int i=0;
    while(str[i]==' ')++i;
    for(;str[i]!='\0';i++)
        if(str[i]==' '){
            count++;
            while(str[i]==' ')++i;
        } 
        return count;
    }  
int _countword(){
    char str[80];
    std::cout<<"Vvedite stroku :";
    gets(str);
    int count=1;
    int i=0;
    while (str[i]==' ')++i;
    char ch=str[i];
    for(++i;str[i]!='\0';i++)
        if(str[i]==ch&&str[i-1]==' ')count++;
        return count;
    }

P.S. mexx-nikitin глянь личку)

Добавлено через 14 минут
Еще одного не учел, если строка заканчивается пробелом, то результат не правильный, вот, теперь вроде все учел)
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
#include <iostream>
int countword(char*);
int _countword();
int countword();
int main (){
    char str[80];
    std::cout<<"For 1st function, \"press\" 1"<<std::endl<<"For 2nd function, press 2"<<std::endl\
    <<"For 3rd function, press 3"<<std::endl;
    int i;
    std::cin>>i;
    std::cin.ignore();
    switch (i){
        case 1: std::cout<<countword("bla bla bla")<<std::endl;
        break;
        case 2: std::cout<<_countword()<<std::endl;
        break;
        case 3:std::cout<<countword()<<std::endl;
        }
    system("pause");       
    return 0;
}
int countword(){
    char str[80];
    std::cout<<"Vvedite stroku :";
    gets (str);
    int count=1;
    int i=0;
    while(str[i]==' ')++i;
    for(;str[i]!='\0';i++)
        if(str[i]==' '){
            count++;
            while(str[i]==' '){
                ++i;
                if(str[i+1]=='\0')--count;}
        }    
        return count;
    }
int countword(char* str){
    int count=1;
    int i=0;
    while(str[i]==' ')++i;
    for(;str[i]!='\0';i++)
        if(str[i]==' '){
            count++;
            while(str[i]==' '){
                ++i;
                if(str[i+1]=='\0')--count;}
        } 
        return count;
    }  
int _countword(){
    char str[80];
    std::cout<<"Vvedite stroku :";
    gets(str);
    int count=1;
    int i=0;
    while (str[i]==' ')++i;
    char ch=str[i];
    for(++i;str[i]!='\0';i++)
        if(str[i]==ch&&str[i-1]==' ')count++;
        return count;
    }
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
07.06.2010, 19:05  [ТС]     Помагите написать функции для следующей программы #32
спасибо,надеюсь препод не придерётся
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
09.06.2010, 17:16     Помагите написать функции для следующей программы #33
Напиши хоть сдал\несдал? Интересно же...
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
09.06.2010, 17:53  [ТС]     Помагите написать функции для следующей программы #34
кенечно здал ,препод помучил немного(3 доп задачи задал,которых я решил).Итог:допуск к экзамену.Ну что здал математику?

Добавлено через 14 минут
Ты не мог бы помоч моему брату? просто у меня пока мало времени, ему надо написать менюшку в майне ( с помощью оператора case) чтобы вызывались следубщие фунуции: 1)в строке посчитать количество символов которые введёт пользователь и 2)если есть в строке 2 повторяющихся символа заменить их на две точки

Добавлено через 3 минуты
вторую я написал но её надо сделать проще т к препод ему этого не объяснял но я незнаю как это сделать вот код
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
#include <iostream>
using namespace std;
 
int main()
{
        char temp = ' ', temp1 =' ';
        while(cin.peek() != '\n')
        {
                temp = cin.get();
                                if(temp == ' ')
                                {
                                        cout << " ";
                                        continue;
                                }
                temp1 = cin.peek();
                if(temp == temp1)
                {
                        cin.get();
                        cout << "..";
                }
                else
                        cout << temp;
        }
        cout << endl;
        return 0;
}
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
09.06.2010, 19:00     Помагите написать функции для следующей программы #35
Цитата Сообщение от mexx-nikitin Посмотреть сообщение
если есть в строке 2 повторяющихся символа
Всмысле в строке вообще? или, как по твоему коду получается, только если 2 одинаковых символа подряд?

Кстати, ты код правда сам написал?
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
09.06.2010, 19:04  [ТС]     Помагите написать функции для следующей программы #36
в строке, а насчёт кода нескажу))
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
09.06.2010, 19:08     Помагите написать функции для следующей программы #37
Цитата Сообщение от mexx-nikitin Посмотреть сообщение
а насчёт кода нескажу))
Ясно)
Еще вопрос: символы заменить на ".." только если их 2 ,или 2 и больше?
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
09.06.2010, 19:13  [ТС]     Помагите написать функции для следующей программы #38
брат говорил о том что если в строке 2 повторяющихся символа то заменить их на 2 точки
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
09.06.2010, 21:01     Помагите написать функции для следующей программы #39
Вообще-то странное условие, а если будут 3 одинаковых символа, что тогда?
Вот код, который меняет все одинаковые символы в строке на символ '.' (2 точки - это 2 символа, тогда всю строку сдвигать придется, я думаю имелось ввиду просто '.', хотя если что - переписать не сложно)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 int main()
{    char str[81],ch[257];
     for(int i=0;i<257;i++)
        ch[i]=-1;
     cout<<"Enter string : ";
     cin.getline(str,80);
     int len=strlen(str);
     for(int i=0;i<len;i++){
         if(str[i]==' ')continue;
         if(ch[str[i]]>=0){
         str[i]=str[ch[str[i]]]='.';}
         else
         ch[str[i]]=i;
     }    
     cout<<str<<endl;
        system ("pause");
        return 0;
}
Можно просто твой код упростить, чтоб там не было "пиков" и "гетов", попозже выложу. А по первому заданию - есть ф-ция strlen() ? Или нужно без нее обойтись?

Добавлено через 18 минут
Вот, делает вточности, что твой код :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 int main()
{    char str[81];
     cin.getline(str,80);
     int len=strlen(str);
     for(int i=0;i<len;i++)
     if (str[i]==str[i+1]){
         ++i;
         cout<<"..";}
     else 
         cout<<str[i];
        system ("pause");
        return 0;
}
Добавлено через 22 минуты
1)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 int main()
{    char str[81];
     cout<<"Enter string : ";
     cin.getline(str,80);
     int len=0;
     for (int i=0;str[i]!='\0';i++)
     if(str[i]!=' ')len++;  // пробел не считаем за символ
     cout<<"String has "<<len<<" simbol"<<endl;   
        system ("pause");
        return 0;
}
Добавлено через 22 минуты
Держи готовый код:
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
#include <iostream>
using namespace std;
void lenstring();
void simbolpoint();
 int main()
{    cout<<"If you want call first function enter 1"<<endl\
     <<"If you want call second function enter 2"<<endl;
     int i;
     cin>>i;
     cin.ignore();
     switch (i){
         case 1 : lenstring();break;
         case 2 : simbolpoint();break;
         default : cout<<"Goodbye!!!"<<endl;}   
        system ("pause");
        return 0;
}
void lenstring(){
     char str[81];
     cout<<"Enter string : ";
     cin.getline(str,80);
     int len=0;
     for (int i=0;str[i]!='\0';i++)
     if(str[i]!=' ')len++;  // пробел не считаем за символ
     cout<<"String has "<<len<<" simbol"<<endl;
     }
void simbolpoint() {   // аналог твоего кода
     char str[81];
     cin.getline(str,80);
     int len=strlen(str);
     for(int i=0;i<len;i++)
     if (str[i]==str[i+1]){
         ++i;
         cout<<"..";}
     else 
         cout<<str[i];
     cout<<endl;    
     }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2010, 23:20     Помагите написать функции для следующей программы
Еще ссылки по теме:

Доделать задачу. Для данного вещественного x найти значение следующей функции f, принимающей значения целого типа C++
C++ Объясните результат работы следующей программы
Написать программу вычисления следующей функции C++

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

Или воспользуйтесь поиском по форуму:
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
10.06.2010, 23:20  [ТС]     Помагите написать функции для следующей программы #40
привет, слушай а как сделать так чтобы в 1ой функции пробел считался за символ?
Yandex
Объявления
10.06.2010, 23:20     Помагите написать функции для следующей программы
Ответ Создать тему
Опции темы

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