Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2011, 02:16   #1
nex 9119
Пользователь
 
Регистрация: 21.11.2010
Сообщений: 16
По умолчанию Строки.

Помогите написать программу которая определяет количество слов в предложении, при условии, что каждое слово отделяется от другого пробелом в паскале.
nex 9119 вне форума Ответить с цитированием
Старый 28.01.2011, 02:18   #2
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

ищеш количество проблелов и потом к етому число добавляеш еденицу
Pein95 вне форума Ответить с цитированием
Старый 28.01.2011, 22:03   #3
boomeer
Форумчанин
 
Аватар для boomeer
 
Регистрация: 04.08.2010
Сообщений: 110
По умолчанию

Код:
#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    string s;
    getline(cin,s);
    int sum=0;
    for(int i=0; i!=s.length();++i)
        if (s[i]==' ') ++sum;
    cout<<sum+1;
}
boomeer вне форума Ответить с цитированием
Старый 28.01.2011, 22:11   #4
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

во-первых тс нужен паскаль, во-вторых у вас неверный подход к решению. Вот рабочая версия:
Код:
#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    string s;
    getline(cin,s);
    int sum=0;
    int len = s.length();
    for(int i=0; i < len;++i)
        if (s[i] != ' '){
              for(; i < len && s[i] != ' ';  i++);
              sum++;
        }
    cout<<sum;
    cin.ignore();
    cin.get();
}

Последний раз редактировалось NiCola999; 28.01.2011 в 22:14.
NiCola999 вне форума Ответить с цитированием
Старый 28.01.2011, 22:17   #5
Косюра
Пользователь
 
Аватар для Косюра
 
Регистрация: 14.01.2011
Сообщений: 74
По умолчанию

Код:
if s<>'' then 
k:=1 
else 
k:=0;
for i:=1 to length(s) do
if s[i] =' ' then k:=K+1;
Девушка - переменная бинарного типа с рандомным значением
Косюра вне форума Ответить с цитированием
Старый 28.01.2011, 22:36   #6
boomeer
Форумчанин
 
Аватар для boomeer
 
Регистрация: 04.08.2010
Сообщений: 110
По умолчанию

Цитата:
Сообщение от NiCola999 Посмотреть сообщение
во-первых тс нужен паскаль, во-вторых у вас неверный подход к решению. Вот рабочая версия:
Код:
#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    string s;
    getline(cin,s);
    int sum=0;
    int len = s.length();
    for(int i=0; i < len;++i)
        if (s[i] != ' '){
              for(; i < len && s[i] != ' ';  i++);
              sum++;
        }
    cout<<sum;
    cin.ignore();
    cin.get();
}
Эм? Если предложение корректное, то почему неверный подход?
Иначе и Ваш код не сработает при "Сон - лучшее лекарство", к примеру.
А в паскале самый оптимальный способ решения - множества

Последний раз редактировалось boomeer; 28.01.2011 в 22:42.
boomeer вне форума Ответить с цитированием
Старый 28.01.2011, 22:47   #7
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Цитата:
Иначе и Ваш код не сработает при "Сон - лучшее лекарство", к примеру.
а что '-' не слово? Например, если ввести несколько пробелов и одно слово то ваша прога посчитает пробелы. Согласен, если предложение введено корректно, то всё ок)

Последний раз редактировалось NiCola999; 28.01.2011 в 23:18.
NiCola999 вне форума Ответить с цитированием
Старый 29.01.2011, 07:47   #8
boomeer
Форумчанин
 
Аватар для boomeer
 
Регистрация: 04.08.2010
Сообщений: 110
По умолчанию

Цитата:
Сообщение от NiCola999 Посмотреть сообщение
а что '-' не слово? Например, если ввести несколько пробелов и одно слово то ваша прога посчитает пробелы. Согласен, если предложение введено корректно, то всё ок)
Это знак препинания)
boomeer вне форума Ответить с цитированием
Старый 29.01.2011, 15:56   #9
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Так то оно так=) Но в этой задаче словом считается любая посл не пробельных символов, разделенная одним или несколькими прбелами
NiCola999 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если совпадающих подстрок нет, Шпунюся Помощь студентам 1 16.12.2010 21:02
Создание пустой строки и копирование в неё содержимое предыдущей строки Gvaridos Microsoft Office Excel 2 29.10.2010 13:33
Дбавление новой строки, после строки с подходящими параметрами RailOS Microsoft Office Excel 5 18.08.2010 10:12
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. Александе еть я Общие вопросы C/C++ 5 13.04.2010 20:54
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10