М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
LLeNN
LLeNN
05.08.2021 08:57 •  Информатика

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

— прописные и строчные (т.е. большие и маленькие) латинские буквы;

— пробелы;

— знаки препинания: точка, запятая, восклицательный и вопросительный знак;

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

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

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

Входные данные:

Вводится строка длиной не более 200 символов.

Выходные данные:

Выведите одно число — количество слов, которые содержатся в исходной строке.

Sample Input 1: Hello , world!

Sample Output 1: 2

Sample Input 2: www.olympiads.ru

Sample Output 2: 3

👇
Ответ:
odminsovet
odminsovet
05.08.2021

def CountWords(S):

   cnt = 0

   flag = 'new' # переменная flag показывает, принадлежит ли следующий символ тому-же слову, или новому

   for elem in S:

       if (97 <= ord(elem) <= 122 or 65 <= ord(elem) <= 90) and flag == 'new':

           flag = 'same'

           cnt += 1

       if (ord(elem) < 97 or ord(elem) > 122) and (ord(elem) < 65 or ord(elem) > 90):

           flag = 'new'

   return cnt

print(CountWords(input()))

4,8(79 оценок)
Открыть все ответы
Ответ:
nastena544
nastena544
05.08.2021

Неверный код:

program n9;

var v2,v3,v4,v5,i,st: integer;

m: array[1..20] of integer;

begin

st:= 20;

writeln('Количество учеников: ',st);

for i:= 1 to 20 do

begin

write('Введите оценку ',i,' ученика: ');

readln(m[i]);

if m[i] == 2 then v2:= v2 + m[i];

if m[i] == 3 then v3:= v3 + m[i];

if m[i] == 4 then v4:= v4 + m[i];

if m[i] == 5 then v5:= v5 + m[i];

end;

end.

Верный код:

program n9;

var v2,v3,v4,v5,i, КОЛИЧЕСТВО УЧЕНИКОВ В ЦИФРАХ integer;

m: array[1..20] of integer;

begin

st:= 20;

writeln

for i:= 1 to 20 do

begin

write

readln(m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ]);

if m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ] == 2 then v2:= v2 + m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ];

if m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ] == 3 then v3:= v3 + m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ];

if m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ] == 4 then v4:= v4 + m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ];

if m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ] == 5 then v5:= v5 + m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ];

end;

end.

4,5(27 оценок)
Ответ:
//pascal //1) var   a: array[1..5, 1..8] of integer;   i, j: byte;   sumr, sumc: integer; begin   randomize;   writeln('исходный массив': 28);   for i : = 1 to 5 do   begin       for j : = 1 to 8 do       begin           a[i, j] : = random(61)-30;           write(a[i,j]: 5);           if i = 3 then sumr : = sumr + a[i, j];           if j = 5 then sumc : = sumc + a[i, j];       end;   writeln;   end;   writeln('сумма элементов 5 столбца = ', sumc);   writeln('сумма элементов 3 строки = ', sumr); end.//2) var   a: array[1..5, 1..8] of integer;   i, j: byte;   suma, sumb, countv, countg: integer; begin   randomize;   writeln('исходный массив': 28);   for i : = 1 to 5 do   begin       for j : = 1 to 8 do       begin           a[i, j] : = random(300)-150;           write(a[i,j]: 5);           if ((i = 5) and (a[i, j] < 0)) then suma : = suma + a[i, j];           if ((j = 4) and (a[i, j] < 100)) then sumb : = sumb + a[i, j];           if ((i = 4) and (a[i, j] < 5)) then countv : = countv + 1;           if ((j = 2) and (a[i, j] > 15)) then countg : = countg + 1;       end;   writeln;   end;   writeln('сумма отрицательных 5 строки = ', suma);   writeln('сумма меньших 100 4-ого столбца = ', sumb);   writeln('количество меньших 5 4-ой строки = ', countv);   writeln('количество ненулевых, больших 15 2-ого столбца = ', countg); end.
4,8(83 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ