Задан текст в виде последовательности из 40 слов, каждое не более
Задан текст в виде последовательности из 40 слов, каждое не более 25 символов. Сколько раз в тексте встречаются слова: ЗНАЧИТ, ВОТ, АВТМОБИЛЬ?через процедуры
Ирка
Что означает "через процедуры"? И ещё - как отделяются слова друг от друга.
2 ответа
Тимур Чубинин
В программке подразумевается, что слова отделяются друг от друга одним пробелом, символов препинания нет.
const m=3;
var s:string;
sl:array[1..m] of string=('Означает', 'ВОТ', 'АВТОМОБИЛЬ');
n:array[1..m] of integer;
i:integer;
procedure pr(s1,s2:string; var k:integer);
var l,p:integer;
begin
s1:=' '+s1+' ';
l:=length(s2);
k:=0;
p:=pos(s2,s1);
while pgt;0 do
begin
if (s1[p-1]=' ')and(s1[p+l]=' ') then k:=k+1;
delete(s1,1,p+l);
p:=pos(s2,s1);
end;
end;
begin
writeln('Введите текст:');
readln(s);
for i:=1 to m do
begin
pr(s,sl[i],n[i]);
writeln(sl[i],' - ',n[i]);
end;
end.
Пример (слов меньше 40):
Введите текст:
ЗНАЧИТ ТАК ВОТ АВТОМОБИЛЬ РАЗ ВОТ АВТОМОБИЛЬ ДВА ВОТ АВТОМОБИЛЬ ТРИ
ЗНАЧИТ - 1
ВОТ - 3
АВТОМОБИЛЬ - 3
const m=3;
var s:string;
sl:array[1..m] of string=('Означает', 'ВОТ', 'АВТОМОБИЛЬ');
n:array[1..m] of integer;
i:integer;
procedure pr(s1,s2:string; var k:integer);
var l,p:integer;
begin
s1:=' '+s1+' ';
l:=length(s2);
k:=0;
p:=pos(s2,s1);
while pgt;0 do
begin
if (s1[p-1]=' ')and(s1[p+l]=' ') then k:=k+1;
delete(s1,1,p+l);
p:=pos(s2,s1);
end;
end;
begin
writeln('Введите текст:');
readln(s);
for i:=1 to m do
begin
pr(s,sl[i],n[i]);
writeln(sl[i],' - ',n[i]);
end;
end.
Пример (слов меньше 40):
Введите текст:
ЗНАЧИТ ТАК ВОТ АВТОМОБИЛЬ РАЗ ВОТ АВТОМОБИЛЬ ДВА ВОТ АВТОМОБИЛЬ ТРИ
ЗНАЧИТ - 1
ВОТ - 3
АВТОМОБИЛЬ - 3
Нина Безфамильная
Этой программе все одинаково, сколько слов во фразе и какой они длины. А заодно, ей все одинаково, сколько меж словами пробелов...
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016
procedure Times(a:array of string; pic:string; var n:integer);
begin
n:=a.Where(s-gt;s=pic).Count
end;
begin
var s:=ReadlnString('gt;').ToWords;
var k:integer;
var w:='Означает'; Times(s,w,k); Println(k,'-',w);
w:='ВОТ'; Times(s,w,k); Println(k,'-',w);
w:='АВТОМОБИЛЬ'; Times(s,w,k); Println(k,'-',w);
end.
Тестовое решение
gt; ВОТ Означает КАКОЕ ДЕЛО БЫЛО ЕХАЛ ПО ДОРОГЕ АВТОМОБИЛЬ И ВОТ СТОИТ ЧЕЛОВЕК И Мыслит А ЧТО Означает СЛОВО АВТОМОБИЛЬ А СЛОВО АВТОМОБИЛЬ ЭТО ОТ ГРЕЧЕСКОГО АУТОС (САМ) И ЛАТИНСКОГО МОБИЛИС (ПОДВИЖНЫЙ) ВОТ ТАКОЕ ЭТО СЛОВО
2 - ЗНАЧИТ
3 - ВОТ
3 - АВТОМОБИЛЬ
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016
procedure Times(a:array of string; pic:string; var n:integer);
begin
n:=a.Where(s-gt;s=pic).Count
end;
begin
var s:=ReadlnString('gt;').ToWords;
var k:integer;
var w:='Означает'; Times(s,w,k); Println(k,'-',w);
w:='ВОТ'; Times(s,w,k); Println(k,'-',w);
w:='АВТОМОБИЛЬ'; Times(s,w,k); Println(k,'-',w);
end.
Тестовое решение
gt; ВОТ Означает КАКОЕ ДЕЛО БЫЛО ЕХАЛ ПО ДОРОГЕ АВТОМОБИЛЬ И ВОТ СТОИТ ЧЕЛОВЕК И Мыслит А ЧТО Означает СЛОВО АВТОМОБИЛЬ А СЛОВО АВТОМОБИЛЬ ЭТО ОТ ГРЕЧЕСКОГО АУТОС (САМ) И ЛАТИНСКОГО МОБИЛИС (ПОДВИЖНЫЙ) ВОТ ТАКОЕ ЭТО СЛОВО
2 - ЗНАЧИТ
3 - ВОТ
3 - АВТОМОБИЛЬ
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
Облако тегов