Перейти к содержимому

Дана строка состоящая из слов разделенных пробелами определите сколько всего слов в строке

  • автор:

Задача — Количество слов в строке — программирование на разных языках

Задача — Количество слов в строке
— программирование на Pascal, Си, Кумир, Basic-256, Python

Вводится строка, состоящая из слов, разделенных пробелами. Требуется посчитать количество слов в ней.

  1. Введем счетчик слов и переменную-флаг, сигнализирующую, находимся ли мы внутри слова или нет.
  2. Если очередной символ не пробел, и флаг показывает, что мы не внутри слова, то следует увеличить переменную-счетчик слов и изменить флаг.
  3. Иначе если текущий символ пробел, то установить флаг в значение «вне слова». (Когда символ не пробел, и мы находимся внутри слова, то ничего делать не надо.)

Pascal

var
str: string;
i, count: byte;
flag: boolean;
begin
readln(str);
count := 0;
flag := false;
for i:=1 to length(str) do begin
if (str[i] <> ‘ ‘) and (flag = false) then begin
count := count + 1;
flag := true;
end
else
if str[i] = ‘ ‘ then
flag := false;
end;
writeln(count);
end. one two tree?
3

Язык Си

main() <
char str[255];
int i,count,flag;
gets(str);
count = 0;
flag = 0;
for (i=0; str[i]!=»; i++)
if (str[i] != ‘ ‘ && flag == 0) <
count += 1;
flag = 1;
> else
if (str[i] == ‘ ‘) flag = 0;
printf(«%dn», count);
>

Python

# 1-й вариант («классический»):

s = input()
count = 0
flag = 0
for i in range(len(s)):
if s[i] != ‘ ‘ and flag == 0:
count += 1
flag = 1
else:
if s[i] == ‘ ‘:
flag = 0
print(count)

# 2-й вариант (через преобразование в список):

s = input()
s = s.split()
l = len(s)
print(l)

Метод split() разбивает строку по пробелам (по умолчанию) или символам, которые передаются как аргументы. Возвращает список.

КуМир

алг количество слов
нач
лит s
цел i, count, flag
ввод s
count := 0
flag := 0
нц для i от 1 до длин(s)
если s[i] <> » » и flag = 0 то
count := count + 1
flag := 1
иначе
если s[i] = » » то
flag := 0
все
все
кц
вывод count
кон

Basic-256

input s$
c = 0
f = 0
for i = 1 to length(s$)
b$ = mid(s$,i,1)
if b$ <> » » and f = 0 then
c = c + 1
f = 1
else
if b$ = » » then f = 0
endif
next i
print c

В Basic-256 нет возможности обращаться к символам строки как элементам массива. Поэтому приходится использовать функцию mid(), которая извлекает подстроку. Первый ее аргумент — строка, второй — номер первого символа подстроки, третий — длина подстроки.

Практическая работа № 6. Обработка символьных строк

Практическая работа № 6. Обработка символьных строк

Программирование на языке Python .

Практическая работа № 6. Обработка символьных строк

Задание 1. Две строки

Составьте программу, которая предлагает ввести с клавиатуры две строки a и b , а затем:

1. соединяет их в новую строку c и выводит результат

2. определяет количество символов в новой строке c

3. выводит на экран более длинную из строк a и b

4. выводит на экран большую из строк a и b

Задание 2. Составление слов

Составьте программу, которая из слова ИФОРМАТИКА получает слова:

Задание 3. Работа со словами строки

Дана строка, состоящая из слов, разделенных пробелами. Вывести самое длинное слово в строке количество букв в нем.

Задание 4. Число слов в строке

Дана строка, состоящая из слов, разделенных пробелами. Определите, сколько в ней слов.

Задание 5. Замена букв

Дана строка, состоящая из слов, разделенных пробелами. Заменить строчные буквы, а на б и прописные A на B. Вывести получившуюся строку и количество замененных букв в ней.

Задание 6. Число слов в строке

Дана строка, состоящая из слов, разделенных пробелами. Определите, сколько в ней слов.

Задание 7. Число слов, начинающихся на букву R

Дана строка, состоящая только из заглавных латинских букв и пробелов. Словом, назовём последовательность символов, не содержащую пробелов и ограниченную пробелами, началом или концом строки. Требуется найти количество слов в заданной строке, которые начинаются на букву «R».

Задание 8. Удаление символов

Дана строка. Удалите из этой строки все символы*.

Задание 9. Две половинки

Дана строка. Разрежьте ее на две равные части (если длина строки — четная, а если длина строки нечетная, то длина первой части должна быть на один символ больше). Переставьте эти две части местами, результат запишите в новую строку и выведите на экран.

Задание 10. Переставить два слова

Дана строка, состоящая ровно из двух слов, разделенных пробелом. Переставьте эти слова местами. Результат запишите в строку и выведите получившуюся строку.

Задание 11. ФИО

С клавиатуры вводится строка, содержащая имя, отчество и фамилию человека, например, Петров Михаил Николаевич

Каждые два слова разделены одним пробелом, в начале строки пробелов нет. В результате обработки должна получиться новая строка, содержащая фамилию и инициалы: М.Н. Петров

Задание 12. Поиск в файле строк, содержащих определенные значения

В текстовый файл построчно записаны фамилия имя учащихся класса и его оценка за контрольную работу. Вывести на экран всех учащихся, чья оценка меньше 4 баллов и посчитать средний балл по классу.

Варианты решения к некоторым задачам

Задание 3. Работа со словами строки

Дана строка, состоящая из слов, разделенных пробелами. Вывести самое длинное слово в строке количество букв в нем.

Задание 6. Число слов в строке

Дана строка, состоящая из слов, разделенных пробелами. Определите, сколько в ней слов.

print ( input ().count(‘ ‘) + 1)

Задание 7. Число слов, начинающихся на букву R

Дана строка, состоящая только из заглавных латинских букв и пробелов. Словом, назовём последовательность символов, не содержащую пробелов и ограниченную пробелами, началом или концом строки. Требуется найти количество слов в заданной строке, которые начинаются на букву «R».

Код Python

Задание 8. Удаление символов

Дана строка. Удалите из этой строки все символы*.

print ( input ().replace(‘*’, »))

Задание 9. Две половинки

Дана строка. Разрежьте ее на две равные части (если длина строки — четная, а если длина строки нечетная, то длина первой части должна быть на один символ больше). Переставьте эти две части местами, результат запишите в новую строку и выведите на экран.

print (s[(len(s) + 1) // 2:] + s[:(len(s) + 1) // 2])

Задание 10. Переставить два слова

Дана строка, состоящая ровно из двух слов, разделенных пробелом. Переставьте эти слова местами. Результат запишите в строку и выведите получившуюся строку.

word2 = s[s.find(‘ ‘) + 1:]

print (word2 + ‘ ‘ + word1)

Задание 11. ФИО

С клавиатуры вводится строка, содержащая имя, отчество и фамилию человека, например, Михаил Николаевич Петров

Каждые два слова разделены одним пробелом, в начале строки пробелов нет. В результате обработки должна получиться новая строка, содержащая фамилию и инициалы: Петров М.Н.

Код Python

print ( «Введите имя, отчество и фамилию:» )

s = fio[1][0] + «.» + fio[2][0] + «.» + » » + fio[0]

Задание 12. Поиск в файле строк, содержащих определенные значения

В текстовый файл построчно записаны фамилия имя учащихся класса и его оценка за контрольную работу. Вывести на экран всех учащихся, чья оценка меньше 4 баллов и посчитать средний балл по классу.

Дана строка состоящая из слов разделенных пробелами определите сколько всего слов в строке

babakovi679

с++ Количество слов
Дана строка, состоящая из слов, разделённых пробелами. Определите, сколько в ней слов.

Выведите ответ на задачу.

Примеры
Ввод
Вывод
Hello world
2

Answers & Comments

#include <iostream>

#include <string>

#include <sstream>

using namespace std;

string s;

getline(cin, s);

cout << distance(istream_iterator<string>(istringstream(s) >> ws), istream_iterator<string>());

Пожалуйста, срочно помогите)Напишите программу, определяющую, сколько слов в данной строке текста?

Напишите программу, определяющую, сколько слов в данной строке текста.

(Pascal) На вход программы поступает строка текста, в которой могут встречаться : — прописные и строчные (т.

Е. большие и маленькие) латинские буквы ; — пробелы ; — знаки препинания : точка, запятая, восклицательный и вопросительный знак ; — символ –, обозначающий в некоторых случаях тире, а в некоторых — дефис.

Слово — это последовательность подряд идущих латинских букв и знаков дефис, ограниченная с обоих концов.

В качестве ограничителей могут выступать начало строки, конец строки, пробел, знак препинания, тире.

Тире отличается от дефиса тем, что слева и справа от знака дефис пишутся буквы, а хотя бы с одной стороны от тире идет либо начало строки, либо конец строки, либо пробел, либо какой — либо знак препинания, либо еще одно тире.

Получилась очень громоздкая конструкция из логический условий, но по — другому никак не придумалось

var t : string ; n : integer ; i, x, y : byte ;

begin writeln (‘Введите строку’) ; readln (t) ; n : = length(t) ; t : = t + ‘.

‘ ; / / пририсовываем к строке лишний символ «не буква», иначе программа можетне посчитать последнее слово в случае, если строка кончается буквой.

X : = 0 ; / / переменная для обозначения конца каждой группы из букв, идущих подряд

y : = 0 ; / / переменная для подсчета количества групп из букв, идущихподряд for i : = 1 to n do begin / / определяем, является ли текущий символ буквой : if ((ord(t[i])&gt ; 64) and (ord(t[i])&lt ; 91)) or ((ord(t[i])&gt ; 96) and (ord(t[i])&lt ; 123)) or ((ord(t[i])&gt ; 191) and (ord(t[i])&lt ; 256)) then x : = 1 / / если да, то х = 1 else begin if x = 1 then begin y : = y + 1 ; x : = 0 end ; / / если текущий символ не буква, то проверяем «х» — если х = 1, значит слово кончилось и «у» увеличиваем на 1, а «х» соответственно снова обнуляем.

Теперь при следующем символе «небуква» наш «у» не увеличится / / В следующем длинном условии проверяем исключение — является ли текущий символ тире или дефисом.

Если дефис, то количество уже посчитанных слов уменьшим на 1, т.

К. дефис стоит в середине слова и значит предыдущее прибавление 1 было неправильным.

If (t[i] = ‘ — ‘) and (((ord(t[i — 1])&gt ; 64) and (ord(t[i — 1])&lt ; 91)) or ((ord(t[i — 1])&gt ; 96) and (ord(t[i — 1])&lt ; 123)) or ((ord(t[i — 1])&gt ; 191) and (ord(t[i — 1])&lt ; 256))) and (((ord(t[i + 1])&gt ; 64) and (ord(t[i + 1])&lt ; 91)) or ((ord(t[i + 1])&gt ; 96) and (ord(t[i + 1])&lt ; 123)) or ((ord(t[i + 1])&gt ; 191) and (ord(t[i + 1])&lt ; 256))) then y : = y — 1 end end ; writeln(‘В данной строке ‘, y, ‘ слов’)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *