Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 12.12.2011
Сообщений: 38
1

Текстовые файлы. Переписать в новый текстовый файл все слова наименьшей длины

27.03.2012, 16:50. Показов 4356. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В текстовом файле хранится некоторая последовательность слов, между соседними словами-запятая, за последним словом-точка. Переписать в новый текстовый файл все слова наименьшей длины.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Program Laba2_2_1;
uses crt;
var
f,t:text;
slovo,min,x:string;
r,i:integer;
begin
assign(f,'file2_2_1_1.pas');
reset(f);
assign(t,'file2_2_1_2.pas');
rewrite(t);
readln(f,slovo);
r:=pos(',',slovo);
min:=copy(slovo,1,r-1);
delete(slovo,1,r);
end.
Я считал из файла в строковую переменную, записал первое слово как минимальное, удалил его из строки, а вот как дальше найти минимальное слово во всём тексте не знаю. Подскажите пожалуйста.

Добавлено через 17 часов 52 минуты
Помогите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2012, 16:50
Ответы с готовыми решениями:

Файлы. Строки. строка. Найти и вывести в текстовый файл все слова минимальной длины
Помогите решить две задачи срочно плиз!!!! 2) С клавиатуры вводится строка. Найти и вывести в...

Файлы: все слова, в которых есть указанная буква, переписать в новый файл
дан файл, содержащий текст. Все слова в которых есть указанная буква переписать в новый файл

Найти и вывести в текстовый файл все слова минимальной длины
1) Написать программу, создающую 2 файла целых чисел разной длины. Файлы заполнить случайными...

Найти и вывести в текстовый файл все слова минимальной длины
1.С клавиатуры вводится строка.Найти и вывести в текстовый файл все слова минимальной длины.Словами...

4
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
27.03.2012, 17:49 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
uses crt;
const p: set of char=[' ','.',','];
var f,g: text;
    s,sl: string;
    i,dmin: byte;
 
begin
assign(f,'C:\in.txt');
assign(g,'C:\out.txt');
reset(f);
dmin:=255;
while not (eof(f)) do
      begin
      readln(f,s);  s:=s+' ';
      sl:='';
      for i:=1 to length(s) do
          if not (s[i] in p) then sl:=sl+s[i] else
             if length(sl)>0 then
             begin
             if length(sl)<dmin then dmin:=length(sl);
             sl:='';
             end;
      end;
writeln('Минимальная длина слова ',dmin);
reset(f);
rewrite(g);
while not (eof(f)) do
      begin
      readln(f,s);  s:=s+' ';
      sl:='';
      for i:=1 to length(s) do
          if not (s[i] in p) then sl:=sl+s[i] else
             begin
             if length(sl)=dmin then writeln(g,sl,' ');
             sl:='';
             end;
      end;
writeln('Слова записаны в новый файл');
close(f);
close(g);
end.
1
1 / 1 / 0
Регистрация: 12.12.2011
Сообщений: 38
27.03.2012, 18:43  [ТС] 3
Спасибо большое, а вы не могли бы пояснить как находится минимальная длина слова и ещё вот что это такое const p: set of char=[' ','.',','];?
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
27.03.2012, 18:55 4
Цитата Сообщение от TECHNIK007 Посмотреть сообщение
const p: set of char=[' ','.',','];
константой задаю множество (set) разделителей (в нашем случае - пробел, запятая, точка)
1) Изначально минимальной длиной слова считаю 255, тк это максимальная длина строки, длиннее слово уже быть не может
2) считываю строку из файла и начинаю разивать ее на слова
3) перебираю каждый символ строки, если этот символ - не знак препинания, не входит в множество разделителей, значит, это буква
4) "цепляю" найденную букву к формируемому слову (sl:=sl+s[i])
5) если длина получившегося слова меньше ранее найденной минимальной длины, меняю значение минимальной длины на новое, меньшее...
6) так до конца файла
7) после этого перебираю строки файла снова, снова разбираю их на слова
8) сравниваю длину найденных слов с ранее найденной минимальной длиной
9) если совпадают, вывожу слово в новый файл
1
1 / 1 / 0
Регистрация: 12.12.2011
Сообщений: 38
27.03.2012, 19:52  [ТС] 5
КонецСвета, Спасибо за столь развёрнутое объяснение, вроде всё понял)
0
27.03.2012, 19:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2012, 19:52
Помогаю со студенческими работами здесь

Найти и вывести в текстовый файл все слова минимальной длины
1.С клавиатуры вводится строка.Найти и вывести в текстовый файл все слова минимальной длины.Словами...

Переписать в новый файл все слова кроме максимального элемента
дан файл, содержащий текст. Переписать в новый файл все слова кроме максимального элемента

Дан текстовый файл g. Создать новый файл f и записать в него все слова файла g с количеством символов больше 4 и меньш 6
Дан текстовый файл g. Создать новый файл f и записать в него все слова файла g с количеством...

Переписать в новый файл все слова, которые содержат только буквы латинского алфавита.
Переписать в новый файл все слова, которые содержат только буквы латинского алфавита. program k;...


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

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