Форум программистов, компьютерный форум 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++ Пожалуйсто помагите написать эти две задачи на с++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
04.06.2010, 19:53     Помагите написать функции для следующей программы #2
1.
C++
1
2
3
4
5
6
int countword(char* str){
    int count=1;
    for(int i=0;str[i]!='\0';i++)
        if(str[i]==' ')count++;
        return count;
    }
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
04.06.2010, 19:58  [ТС]     Помагите написать функции для следующей программы #3
а можешь полностью решить даннкю задачу?
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
04.06.2010, 20:05     Помагите написать функции для следующей программы #4
2)
C++
1
2
3
4
5
6
7
int countword(char* str){
    int count=1;
    char ch=str[0];
    for(int i=1;str[i]!='\0';i++)
        if(str[i]==' '&&str[++i]==ch)count++;
        return count;
    }
Добавлено через 1 минуту
Цитата Сообщение от mexx-nikitin Посмотреть сообщение
3)создать функцию ,которую вводят с клавиатуры и которая считает колличество слов в строке
"функцию ,которую вводят с клавиатуры" это как?
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
04.06.2010, 20:07  [ТС]     Помагите написать функции для следующей программы #5
точнее сказать функию программы
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
04.06.2010, 20:13     Помагите написать функции для следующей программы #6
Не понятно, как ф-цию вводить с клавиатуры?

Добавлено через 56 секунд
может ф-цию, в которой строка вводится с клавиатуры?
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
04.06.2010, 20:15  [ТС]     Помагите написать функции для следующей программы #7
ну да
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
04.06.2010, 20:23     Помагите написать функции для следующей программы #8
3)
C++
1
2
3
4
5
6
7
8
int countword(){
    char str[80];
    gets(str);
    int count=1;
    for(int i=0;str[i]!='\0';i++)
        if(str[i]==' ')count++;
        return count;
    }
Добавлено через 1 минуту
сейчас main слеплю...
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
04.06.2010, 20:28  [ТС]     Помагите написать функции для следующей программы #9
все 3 функции должны вызываться в маине
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
04.06.2010, 20:56     Помагите написать функции для следующей программы #10
Да это понятно, все сделал, почему-то gets() внутри ф-ций не работает, странно... сейчас сижу, разбираюсь.

Добавлено через 7 минут
Что-то я сплю уже. Вот вариант, так то все правильно, но gets() не работает, хотя когда по отдельности ф-ции тестил все работало. Может кто-нибудь подскажет в чем проблема)
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
#include <iostream>
int countword(char*);
int _countword();
int countword();
int main (){
    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;
    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++;
        return count;
    }
int countword(char* str){
    int count=1;
    for(int i=0;str[i]!='\0';i++)
        if(str[i]==' ')count++;
        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++;
        return count;
    }
может cout'ов для красоты добавить, ну типа cout<<"Кол-во слов : "<<...
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
04.06.2010, 21:44  [ТС]     Помагите написать функции для следующей программы #11
т е ты для всех 3-х функций сделал?

Добавлено через 26 минут
а почему когда я выбираю к примеру функцию 2 ничего не происходит
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
05.06.2010, 10:14     Помагите написать функции для следующей программы #12
Цитата Сообщение от mexx-nikitin Посмотреть сообщение
т е ты для всех 3-х функций сделал?

Добавлено через 26 минут
а почему когда я выбираю к примеру функцию 2 ничего не происходит
Да, для всех 3х. При выборе ф-ции она вызывается, просто ее работы не видно. Сейчас сижу эксперементирую Пришел к выводу - если в коде есть "cin>>..." , то gets() не работает. Сижу, медитирую)

Добавлено через 58 минут
Вот, проблему решил. Просто после cin в потоке остается '\0' и gets() его считывает, поэтому казалось, что он не работает) Поэтому пришлось добавить пару строк в 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>
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;
    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 :";
    int tmp; // по этим двум строкам
    std::cin>>tmp;//коментарии внизу
    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 :";
    int tmp;  // по этим двум строкам 
    std::cin>>tmp;  // коментарии внизу
    gets(str);
    int count=1;
    char ch=str[0];
    for(int i=1;str[i]!='\0';i++)
        if(str[i]==' '&&str[++i]==ch)count++;
        return count;
    }
// это сделано для того, чтобы считать '\0', оставшийся после cin>>i;
еще добавил пару строк в две ф-ции, на случай если будет несколько пробелов между словами, а не один.

Добавлено через 10 минут
Нашел более красивое решение, почитал соседние ветки. Вот, cin.ignore() все решает :
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
#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++;
        return count;
    }
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
05.06.2010, 12:28  [ТС]     Помагите написать функции для следующей программы #13
Спасибо большое,очень благодарен

Добавлено через 35 минут
а можеш по подробнее объяснить вот этот оператор cin.ignore();
mrMRak
38 / 38 / 3
Регистрация: 02.06.2010
Сообщений: 105
05.06.2010, 12:42     Помагите написать функции для следующей программы #14
getline(cin,a); в этом топике
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
05.06.2010, 13:32  [ТС]     Помагите написать функции для следующей программы #15
Kastaneda а функция 1 точно правильно работает, просто когда я вывожу 1 функцию автоматически появляется тройка?
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
05.06.2010, 16:09     Помагите написать функции для следующей программы #16
Все правильно, там же строка, как параметр передается по условию задания, ее вводить не надо. Можешь добавить cout'ов для красоты. Например в 1 ф-цию добавить :
C++
1
case 1: std::cout<<"String \"bla bla bla\" has "<<countword("bla bla bla")<<" words"<<std::endl;
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
05.06.2010, 16:48  [ТС]     Помагите написать функции для следующей программы #17
теперь понятно,спасибо ещё раз
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
05.06.2010, 17:00     Помагите написать функции для следующей программы #18
Пожалуйста!
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
07.06.2010, 16:51  [ТС]     Помагите написать функции для следующей программы #19
попробывал преподу сдать эту лабу оказалась она неправильно работает,дело в том что если ввести три и более пробела то она неправильно работает это касается всех трёх функций, исправь пожалуйста
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2010, 16:59     Помагите написать функции для следующей программы
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.06.2010, 16:59     Помагите написать функции для следующей программы #20
именно для этого есть строка:
C++
1
while(str[i]==' ')++i;
ее нет только в 3ей фунции, можешь добавить ее туда.(может просто забыл) Только что сам пробовал, ввел 20(!) пробелов, работатет правильно.
Yandex
Объявления
07.06.2010, 16:59     Помагите написать функции для следующей программы
Ответ Создать тему
Опции темы

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