Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 3
Регистрация: 10.03.2014
Сообщений: 7
1

Перечислить все слова каждого предложения, которые состоят из тех же букв, что и первое слово данного предложения

10.03.2014, 18:36. Просмотров 1092. Ответов 1
Метки нет (Все метки)

Вечер добрый! Прошу помочь разобраться с данной задачей
Перечислить все слова каждого предложения, которые состоят из тех же букв, что и первое слово данного предложения. Из этих слов организовать новое предложение и записать его в конец исходного текста.

Основная проблема с поиском в каждом предложении текста. Чувствую, накосячил с операторными скобками и breakами

Прилагаю свой "код"

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
var a:array[1..50] of string;
i,n,j,np,k,g,l:integer;
s,s1,s2,buf:string;
f:text;
begin
assign(f,'Night.txt');
reset(f);
while not eof(f) do begin
read(f,s);
write(s);
end;
writeln;
While Pos('.',s)>0 do
    begin
      s1:=Copy(s,1,Pos('.',s)-1);
      Delete(s,1,Pos('.',s));
      if s1<>'' then
      Begin
        inc(n);
        A[n]:=s1;
      End;
    End;
    For i:=1 to n do
     writeln(A[i]);
for i:=1 to n do begin
s1:=a[i];
for j:=1 to length (s1) do begin
if s1[j]<>'' then s2:=s2+s1[j]
else begin
np:=j;
end;
for l:= np + 1 to length(s1) do
if s1[l] <> ' ' then buf := buf + s1[l] else begin
if length(buf) < length(s2) then begin
for k:= 1 to length(buf) do begin
for g:= 1 to length(s2) do
            if buf[k] = s2[g] then begin
              writeln(buf);
              break;
            end;
          break;
        end;
        buf := '';
      end else begin
    for j := 1 to length(s2) do
        begin
          for g := 1 to length(buf) do
            if buf[g] = s2[j] then begin
              writeln(buf);
              break;
            end;
          break;
        end;
        buf := '';
      end;
    end;
    end;
    end;
    close(f);
end.
Заранее благодарю!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2014, 18:36
Ответы с готовыми решениями:

Перечислить слова предложения, которые состоят из тех же букв, что и первое слово
Символьный и строковый тип Перечислить все слова заданного предложения, которые состоят из тех же...

Перечислить все слова, которые состоят из тех же букв, что и первое слово
Требуется перечислить все слова заданного предложения, которые состоят из тех же букв, что и первое...

Перечислить все слова каждого предложения, которые состоят из тех же букв, что и первое слово
Ребят, выручайте Перечислить все слова каждого предложения, которые состоят из тех же букв, что и...

Перечислить все слова заданного предложения, которые состоят из тех же букв, что и первое слово предложения
Здравствуйте! Помогите, пожалуйста решить задачку: &quot;Перечислить все слова заданного...

1
0 / 0 / 3
Регистрация: 10.03.2014
Сообщений: 7
25.03.2014, 22:23  [ТС] 2
Разобрался сам, вот код, может быть, кому-нибудь пригодится
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 const mnr=[' ',',','.','-','_','!','?',':',';'];
 Var A:array[1..30] of string;
    i,n,j,np,k,g,l:byte;
    s,s1,s2,buf,st:string;
    f:text;
    mnpr,mnbuf:set of char;
Begin
assign(f,'Night.txt');
reset(f);
while not eof(f) do begin
read(f,s);
write(s);
end;
writeln;
    While Pos('.',s)>0 do
    Begin
      s1:=Copy(s,1,Pos('.',s)-1);
      Delete(s,1,Pos('.',s));
      if s1<>'' then
      Begin
        inc(n);
        A[n]:=s1+'.';
      End;
    End;
    For i:=1 to n do begin
     writeln(A[i]);
     st:=st+a[i];
     end;
for i:=1 to n do begin
s1:=a[i];
for j:=1 to length (s1) do begin
if not (s1[j] in mnr) then s2:=s2+s1[j]
else
begin
np:=j;
break;
end;
end;
for k:=1 to length(s2) do begin 
if not(s2[k] in mnpr) then 
mnpr:=mnpr+[s2[k]];
end;
for l:= np + 1 to length(s1) do begin
if not(s1[l] in mnr) then begin
buf := buf + s1[l];
mnbuf:=mnbuf+[s1[l]];
end
else
begin
if mnpr=mnbuf then st:=st+buf+' ';
buf:='';
mnbuf:=[];
end;
end;
s2:='';
mnpr:=[];
end;
writeln;
write(st);
close(f);
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2014, 22:23

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Перечислить все слова заданного предложения, которые состоят из тех же букв что и первое
Уважаемые знатоки кода! Помогите, пожалуйста, с программкой, по заданию: перечислить все слова...

Вывести на экран все слова предложения, которые состоят из тех же букв, что и первое слово
Нужно вывести на экран все слова предложения, которые состоят из тех же букв, что и первое слово....

Напечатать все слова заданного предложения, состоящие из тех же букв, что и первое слово предложения
Напечатать все слова заданного предложения (слова разделены пробелами), состоящие из тех же букв,...

Напечатать все слова из заданного предложения, состоящие из тех же букв, что и первое слово предложения.
Напечатать все слова из заданного предложения, состоящие из тех же букв, что и первое слово...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.