0 / 0 / 0
Регистрация: 22.09.2019
Сообщений: 33
1

Определить сколько раз в заданом тексте встречаються слова IF, THEN, ELSE и вывести на экран строку, в которой их больше

23.09.2019, 15:45. Показов 1170. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Определить сколько раз в заданом тексте встречаються слова IF, THEN, ELSE и вывести на экран строку, в которой их больше всего. Есть програма с функцией, нужно переделать без неё, прошу помощи, спасибо!

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
program test(input,output);
const
  DefaultDelims = [#0..'/',':'..'@','['..'`','{'..#127];
  Delims: set of Char = DefaultDelims;
  Words: array [1..3] of String[7] = ('IF', 'THEN', 'ELSE');
  
function NextWord(const s: String; var w: String; var p: Integer): Boolean;
var i, j: Integer;
begin
  i:=p; while (i<=Length(s)) and     (s[i] in Delims) do Inc(i);
  j:=i; while (i<=Length(s)) and not (s[i] in Delims) do Inc(i);
  w:=Copy(s,j,i-j); p:=i; NextWord:=i>j;
end;
 
var
  s, t, w, r: String;
  k, m, n, p, i: Integer;
  f1:text;
begin
  assign(f1,'C:\doc\doc.txt');
  reset (f1);
  k:=0; m:=0; r:='';
  while not EoF(f1) do begin
    ReadLn(f1,s); t:='';
    for i:=1 to Length(s) do t:=t+UpCase(s[i]);
    n:=0; p:=1;
    while NextWord(t,w,p) do begin
      for i:=Low(Words) to High(Words) do
        if Words[i]=w then begin
          Inc(k); Inc(n); Break;
        end;
    end;
    if m<n then begin
      m:=n; r:=s;
    end;
  end;
  WriteLn(k); WriteLn(r);
  close(f1);
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2019, 15:45
Ответы с готовыми решениями:

Определить сколько раз в заданом тексте встречаються слова IF, THEN, ELSE и вывести на экран строку, в которой их больше
Определить сколько раз в заданом тексте встречаються слова IF, THEN, ELSE и вывести на экран...

Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом.
Дан файл, содержащий текст на русском языке, в котором встречаются некоторые 2 слова. определить...

Определить, сколько раз заданные слова встречаются в тексте и сколько из них - непосредственно друг за другом
Не знаю как его делать( П.5.18.Правил Запрещено размещать задания и решения в виде картинок и...

Определить, сколько раз заданные 2 слова встречаются в тексте, и сколько из них непосредственно друг за другом
Привет, подскажите как решить. С ВБА не дружу, на других языках решается легко, спасибо Дан...

1
3018 / 1643 / 650
Регистрация: 19.03.2019
Сообщений: 5,319
25.09.2019, 11:58 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
program test(input,output);
const
  DefaultDelims = [#0..'/',':'..'@','['..'`','{'..#127];
  Delims: set of Char = DefaultDelims;
  Words: array [1..3] of String[7] = ('IF', 'THEN', 'ELSE');
  
 
var
  s, t, w, r: String;
  k, m, n, p, i, j: Integer;
  f1:text;
  NextWord : boolean;
begin
  assign(f1,'C:\doc\doc.txt');
  reset (f1);
  k:=0; m:=0; r:='';
  while not EoF(f1) do begin
    ReadLn(f1,s); t:='';
    for i:=1 to Length(s) do t:=t+UpCase(s[i]);
    n:=0; p:=1;
    NextWord := true;
    
    while NextWord do begin
        while (p<=Length(t)) and (t[p] in Delims) do Inc(p);
        j:=p; while (p<=Length(t)) and not (t[p] in Delims) do Inc(p);
        w:=Copy(t,j,p-j); 
        NextWord:=p>j;
        if NextWord then
          for i:=Low(Words) to High(Words) do
             if Words[i]=w then begin
                Inc(k); Inc(n); Break;
           end;
    end;
    if m<n then begin
      m:=n; r:=s;
    end;
  end;
  WriteLn(k); WriteLn(r);
  close(f1);
end.
0
25.09.2019, 11:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2019, 11:58
Помогаю со студенческими работами здесь

Определить, сколько раз заданные слова встречаются в тексте и сколько из них - непосредственно друг за другом
Есть файл. Ввести два разных слова. Определить, сколько раз они встречаются в тексте и сколько из...

Определить, сколько раз заданные два слова встречаются в тексте и сколько из них - непосредственно друг за другом
Приветствую, форумчане. Всех с праздником и заслуженными выходными) Требуется помощь в нескольких...

Определить, сколько раз заданные два слова встречаются в тексте и сколько из них непосредственно друг за другом
Дан файл, содержащий текст на русском языке и некоторые два слова. Определить, сколько раз они...

Определить сколько раз встречаются слова в тексте
Дано файл содержащий текст и некоторые два слова. Определить сколько раз встречаются эти слова в...

Определить, сколько раз слова встречаются в тексте
Как реализовать поиск

Определить, сколько раз в тексте встречаются заданные слова
Help, я вообще не успеваю Определить, сколько раз в тексте встречаются заданные слова: Дан файл с...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru