Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
 Аватар для Rim85
62 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 49

Подсчитать число вхождений каждого слова в текст

11.05.2015, 22:09. Показов 1995. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разработать блок-схему алгоритма и составить программу обработки текстовых данных, хранящихся в произвольном файле на магнитном диске. Вид обработки данных: подсчитать число вхождений каждого слова в текст. Текстовые данные, подлежащие обработке, заносятся в файл редактором текста. В программе предусмотреть ввод с терминала имен входного и выходного (в случае необходимости) файлов, вывод на печать входного и выходного файлов. Предусмотреть запись выходного файла на диск. Длина строки файла не должна превышать 80 символов.

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
uses crt;
var path, elem:string;
    f: text;
    n,k,n1,n2,i,j,count:integer;
    check: boolean;
    slova_vse,slova_unic:array[1..1000] of string;
procedure PrintFile(f:text);
begin
     while not eof(f) do
     begin
          readln(f,elem);
          writeln(elem);
     end;
end;
begin
     write('Введите имя входного файла:');
     readln(path);
     assign(f,path);
     reset(f);
     n:=1;
     writeln('Содержимое входного файла:');
     while not eof(f) do
     begin
           readln(f,elem);
           writeln(elem);
           n1:=1;
           for i:=1 to length(elem) do
               if (elem[i]=' ') then
               begin
                    n2:=i;
                    slova_vse[n]:=copy(elem,n1,n2-n1);
                    inc(n);
                    n1:=n2+1;
               end;
               n2:=length(elem);
               slova_vse[n]:=copy(elem,n1,n2-n1+1);
     end;
     close(f);
     k:=1;
     for i:=1 to n do
     begin
         check:=false;
         for j:=1 to k do
         if slova_vse[i] = slova_unic[j] then
         begin
              check:=true;
              break;
         end;
         if check = false then
         begin
              slova_unic[k]:=slova_vse[i];
              inc(k);
         end;
     end;
     writeln();
     write('Введите имя выходного файла:');
     readln(path);
     assign(f,path);
     rewrite(f);
     for i:=1 to k-1 do
     begin
     count:=0;
              for j:=1 to n do
              if slova_unic[i] = slova_vse[j] then
                 inc (count);
     writeln(f,slova_unic[i],' - ',count);
     end;
     close(f);
     writeln('Содержимое выходного файла:');
     assign(f,path);
     reset(f);
     while not eof(f) do
     begin
           readln(f,elem);
           writeln(elem);
     end;
     close(f);
end.
Друзья, проблема в том, что программа что-то не работает. Не могу разобраться где ошибка ... И нужно нарисовать блок схему. Можете хоть кто-то кинуть набросанный на тетради фотку, я уже оформлю на беловик нормально ...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.05.2015, 22:09
Ответы с готовыми решениями:

Вывести различные слова, указав для каждого из них число вхождений в последовательность
Дана последовательность до 30 слов в каждом из которых от 1 до 5 символов, между словами - пробел или запятая, в конце - точка. Вывести...

Подсчитать число вхождений заданого слова в текст
дан текст хранящийся в текстовом файле подсчитать число вхождений заданого слова в текст

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

2
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
12.05.2015, 11:36
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
const
    seps: Set Of Char = [' ', '.', ',', '!', ':', '?'];
type
    TMyWord = record
        s: String;
        count: LongWord;
    end;
    TMyWordArray = Array[Byte] Of TMyWord;
 
procedure FindRep(var arr: TMyWordArray; var n: Byte; const wrd: String);
var
    i: Byte;
    isFound: Boolean;
begin
    i := 0; isFound := False;
    while ((i < n) And (Not isFound)) do
    begin
        isFound := arr[i].s = wrd;
        if (isFound)
        then
            Inc(arr[i].count);
        Inc(i);
    end;
    if (Not isFound)
    then
    begin
        Inc(n);
        with arr[n - 1] do
        begin
            s := wrd;
            count := 1;
        end;
    end;
end;
 
var
    f, g: Text;
    fi, wrd, path: String;
    unic: TMyWordArray;
    i, unicCount: Byte;
begin
    Write('Name of input file: '); ReadLn(path);
    Assign(f, path); {$I-} Reset(f); {$I+}
    if (IOResult <> 0)
    then
        WriteLn('File not found!')
    else
    begin
        unicCount := 0;
        while (Not EoF(f)) do
        begin
            ReadLn(f, fi);
            WriteLn(fi);
            fi := fi + ' ';
            while (fi[1] in seps) do
                Delete(fi, 1, 1);
            while (Length(fi) > 0) do
            begin
                wrd := '';
                while Not (fi[1] in seps) do
                begin
                    wrd := wrd + fi[1];
                    Delete(fi, 1, 1);
                end;
                while ((Length(fi) > 0) And (fi[1] in seps)) do
                    Delete(fi, 1, 1);
                if (Length(wrd) > 0)
                then
                    FindRep(unic, unicCount, wrd);
            end;
        end;
        Close(f);
        Write('Output name of file: '); ReadLn(path);
        Assign(g, path); ReWrite(g);
        if (unicCount > 0)
        then
            for i := 0 to unicCount - 1 do
                with unic[i] do
                    WriteLn(g, s, ' ', count);
        Close(g);
    end;
end.
Миниатюры
Подсчитать число вхождений каждого слова в текст   Подсчитать число вхождений каждого слова в текст  
1
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
12.05.2015, 11:43
del
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.05.2015, 11:43
Помогаю со студенческими работами здесь

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

Вывести число вхождений слова в текст
Составить программу поиска заданного слова в тексте и вывести число вхождений этого слова в текст. НЕ могу понять с чего начать ( какой тут...

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

Для каждого слова текста подсчитать число вхождений в текст
Ввести массив строк символов (текст). Для каждого слова текста подсчитать число вхождений в текст. Словами считать группы символов,...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru