Задан текст в виде последовательности из 40 слов, каждое не более 25 символов. сколько раз в тексте встречаются слова: значит, вот, автмобиль? через процедуры
В программе предполагается, что слова отделяются друг от друга одним пробелом, знаков препинания нет. 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 p>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
alex13izmailov
18.11.2022
Этой программе все равно, сколько слов во фразе и какой они длины. А заодно, ей все равно, сколько между словами пробелов...
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 procedure Times(a:array of string; pic:string; var n:integer); begin n:=a.Where(s->s=pic).Count end;
begin var s:=ReadlnString('>').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.
Тестовое решение > ВОТ ЗНАЧИТ КАКОЕ ДЕЛО БЫЛО ЕХАЛ ПО ДОРОГЕ АВТОМОБИЛЬ И ВОТ СТОИТ ЧЕЛОВЕК И ДУМАЕТ А ЧТО ЗНАЧИТ СЛОВО АВТОМОБИЛЬ А СЛОВО АВТОМОБИЛЬ ЭТО ОТ ГРЕЧЕСКОГО АУТОС (САМ) И ЛАТИНСКОГО МОБИЛИС (ПОДВИЖНЫЙ) ВОТ ТАКОЕ ЭТО СЛОВО 2 - ЗНАЧИТ 3 - ВОТ 3 - АВТОМОБИЛЬ
Lenamihluk50
18.11.2022
#include <iostream> #include <list>
using namespace std;
int main() { list<int>mylist; //Делаем со списком, что хотим mylist.push_back(1); mylist.push_back(2); mylist.push_back(3); mylist.push_back(-4); mylist.push_back(5); for (auto i : mylist) { cout << i << " "; } cout << "\n"; //Удаляем последний отрицательный элемент auto it = mylist.end(); while (*it > 0) { if (it == mylist.begin()) { cout << "Not found.\n"; return 0; } it--; } //Делаем со списком, что хотим mylist.erase(it); for (auto i : mylist){ cout << i << " "; } return 0; }
preida-2
18.11.2022
Программа в файле // ConsoleApplication1.cpp: определяет точку входа для консольного приложения.Дата некоторого дня характеризуется тремя натуральными числами ://g(год), m(порядковый номер месяца) и n(число).По заданным g, m//и n определить дату предыдущего дня(считать, что год не является високосным) #include "stdafx.h"#include "conio.h"#include "iostream"
int main(){ using namespace std; int n, m, g; cout << "Day "; cin >> n; cout << "Month "; cin >> m; cout << "Year "; cin >> g; if (m == 1 || m == 3 || m == 5 && m == 7 || m == 8 || m == 10 ) { if (n < 31) cout << n + 1 << "." << m << "." << g; else cout << 1 << "." << m+1 << "." << g; } if (m == 2) { if (n < 28) cout << n + 1 << "." << m << "." << g; else cout << 1 << "." << m + 1 << "." << g; } if (m == 4 || m == 6 || m == 9 && m == 11 ) { if (n < 30) cout << n + 1 << "." << m << "." << g; else cout << 1 << "." << m + 1 << "." << g; } if (m == 12) { if (n < 31) cout << n + 1 << "." << m << "." << g; else cout << 1 << "." << 1 << "." << g+1; } _getch(); return 0;}
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Задан текст в виде последовательности из 40 слов, каждое не более 25 символов. сколько раз в тексте встречаются слова: значит, вот, автмобиль? через процедуры
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 p>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