1 / 1 / 2
Регистрация: 09.01.2016
Сообщений: 44
1

В строках из файла определить буквы, на которые начинаются слова, в порядке убывания частоты их употребления

25.01.2016, 17:21. Показов 1273. Ответов 4
Метки нет (Все метки)

подскажите пожалуйста как определить буквы, на которые начинаются слова?!!!

Дан текстовый файл f. В каждой строке определить буквы, на которые начинаются слова, в порядке убывания частоты их употребления. Результат выполненных действий сохранить в текстовом файле g.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2016, 17:21
Ответы с готовыми решениями:

Напечатать буквы, на которые начинаются слова в тексте, в порядке убывания частоты их употребления
Задан текст длиной не более 1000 символов. Напечатать буквы, на которые начинаются слова в тексте, ...

Работа со строками (sting.h) (печатать первые буквы слов в порядке убывания частоты их употребления)
Составить программу, которая позволяет ввести текст, а потом печатает первые буквы слов в порядке...

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

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

4
Эксперт Pascal/Delphi
2383 / 1295 / 1491
Регистрация: 29.08.2014
Сообщений: 4,650
26.01.2016, 09:51 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Добавлено через 14 минут
для каждой строки
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
type
  let=record
    c:char;
    n:integer;
  end;
var
  f,g:text;
  c:char;
  s:string;
  t:let;
  l:array[byte] of let;
  i:integer;
  j,k:byte;
  b:boolean;
begin
 assign(f,'f');
 reset(f);
  assign(g,'g');
  rewrite(g);
 while not eof(f) do begin
   readln(f,s);b:=true;
   for i:=1 to length(s) do begin
     c:=s[i];
     if not (c in ['a'..'z','A'..'Z','А'..'Я','а'..'я','ё','Ё']) then b:=true
     else if b then begin
        j:=ord(c);
        inc(l[j].n);
        l[j].c:=c;
        b:=false;
      end;
    end;
  for k:=0 to 254 do
    for j:=k+1 to 255 do
      if l[k].n<l[j].n then begin
        t:=l[k];
        l[k]:=l[j];
        l[j]:=t;
      end;
      b:=false;
  for k:=0 to 255 do
    if l[k].n>0 then begin write(g,l[k].c);l[k].n:=0;b:=true;end;
  writeln(g);
 end;
  close(f);
  close(g);
end.
1
1 / 1 / 2
Регистрация: 09.01.2016
Сообщений: 44
01.02.2016, 00:03  [ТС] 3
спасибо, большое!
0
1 / 1 / 2
Регистрация: 09.01.2016
Сообщений: 44
01.02.2016, 00:07  [ТС] 4
я написал так, но мне показывают ошибку 106.
объясните в чем ошибка пожалуйста

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var s,k:string; f,g:text; i,j,n:integer; c:char;
 begin
  assign(f,'f.dat'); rewrite(f); readln(n);
   for i:=1 to n do begin
    readln(s); writeln(f,s); end; close(f);
 
  assign(g,'f.dat'); rewrite(g); reset(f); read(f,s);
  s[1]:=upcase(s[1]);
   while not eof(f) do begin read(f,s);
    for i:=1 to  (length(s)-1) do
     if (s[i-1]=' ') and (s[i]<>' ') then
    s[i]:= upcase(s[i]);
     if s[i] in ['A'..'Z']  then k:=k+s[i];
      write (f,k); end; close(f); close(g);
 
  reset(f); reset(g);
    while not eof(f) do begin read(f,k);
     for i:=1 to (length(k)-1) do
      if k[j]>k[j+1] then begin
       c:=k[j]; k[j]:=k[j+1];
        k[j+1]:=c; end;
       write(g,k); end; close(f); close(g); readln  end.
0
Модератор
Эксперт по электронике
8197 / 4122 / 1569
Регистрация: 01.02.2015
Сообщений: 12,744
Записей в блоге: 3
01.02.2016, 11:14 5
Pascal
1
2
3
4
5
6
7
8
program cr2;var s,k:string;f,g:text;i,j,n:integer;c:char;begin assign(f,'f.dat')
;rewrite(f);readln(n);for i:=1 to n do begin readln(s);writeln(f,s);end;close(f);
assign(g,'f.dat');rewrite(g);reset(f);read(f,s);s[1]:=upcase(s[1]);while not eof(
f)do begin read(f,s);for i:=1 to(length(s)-1)do if(s[i-1]=' ')and(s[i]<>' ')then 
s[i]:=upcase(s[i]);if s[i]in['A'..'Z']then k:=k+s[i];write(f,k);end;close(f);close
(g);reset(f);reset(g);while not eof(f)do begin read(f,k);for i:=1 to(length(k)-1)
do if k[j]>k[j+1]then begin c:=k[j];k[j]:=k[j+1];k[j+1]:=c;end;write(g,k);end;close
(f);close(g);readln;end.
В строке №3 файл 'f.dat' одновременно открывается двумя файловыми переменными и на запись и на чтение.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2016, 11:14
Помогаю со студенческими работами здесь

Определить и вывести символы, с которых начинаются слова в порядке убывания количества таких слов
Здравствуйте, помогите дописать программу ( вместо char используем стринг ) 1 часть я сделал, вот...

Напечатать в алфавитном порядке все слова, которые начинаются с большой буквы
Напечатать в алфавитном порядке все слова, которые начинаются с большой буквы и заканчиваются...

Все слова строки, которые начинаются с данной буквы, отсортировать в алфавитном порядке
Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются...

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


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

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

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