![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
mafia1232 |
![]()
Сообщение
#21
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
а можно узнать на какой файл он будет ссылаться? и слово у меня не обязательно из 5 букв. а из неизвестного кол-ва, это строка из 5 слов или более
Сообщение отредактировано: mafia1232 - |
klem4 |
![]()
Сообщение
#22
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
ну я же говрю, сначала просматриваешь каждую строку, и проверяешь сколько в ней слов, да если они у тебя только пробелами разделены, то можешь удалить из нее лишние пробелы, а потом посчтитать кол-во оставшихся, если их 4, то в троке 5 слов, или просто посчитать колво слов, если не понял как это у меня в программе делается, пойди посмотри в FAQ.
лишние - несколько идущих подрят, а ткаже пробел в конце и в начале, если они есть, но это полюбому извращение, так что просто считай кол-во слов, если 5 то с конца строки удаляй 2 и все. Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
mafia1232 |
![]()
Сообщение
#23
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
Прога должна файл txt просматривать и просматривать каждую строку. если строка из 5 слов то она должна удалить 4 и 5 слова, а если строка больше или
меньше то не трогать. ответ должен быть записан в другой txt файл Сообщение отредактировано: mafia1232 - |
klem4 |
![]()
Сообщение
#24
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
я не пойму, тебе всю программу написать ? я помойму все объяснил как делать
![]() Открываешь файл береш строку считаешт кол-во слов в строке, если ==5 то удаляешь с конца 2 слова иначе ничего не делаешь. какой из пунктов не можешь реализовать ? Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
mafia1232 |
![]()
Сообщение
#25
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
получилось так , но явно где-то ошибка. она делает файл чистка чистым полностью.
program p11;
uses crt;
var
f1,f2:text;
s:string;
i,bword,count,count1:integer;
Begin
clrscr;
Assign (f1,'z5.txt');
reset(f1);
Assign(f2,'chistka.txt');
Rewrite(f2);
While not eof(f1) do
begin
readln(f1,s);
i:=1;
count:=0;
while i<=length(s) do
begin
while(i<=length(s))and(s[i]=#32) do
inc(i);
if i<=length(s) then
begin
inc(count);
bword:=i;
count1:=0;
while(i<=length(s))and(not(s[i]=#32)) do
begin
inc(i);
inc(count1);
end;
if ((count=4)or(count=5))and(count1=5) then
begin
delete(s,bword,i-bword);
i:=bword;
end
end;
end;
end;
writeln(f2,s);
readln;
end.
Сообщение отредактировано: mafia1232 - |
klem4 |
![]()
Сообщение
#26
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
не уверен что отрабатывает полностью правильно, но что-то в этом духе :
надеюсь поймешь. program p11;
uses crt;
var
f1,f2:text;
s:string;
i,bword,count,count1:integer;
Begin
clrscr;
Assign (f1,'z5.txt');
reset(f1);
Assign(f2,'chistka.txt');
Rewrite(f2);
While not eof(f1) do
begin
readln(f1,s);
i:=1;
count:=0;
while i<=length(s) do
begin
while(i<=length(s))and(s[i]=#32) do
inc(i);
inc(count);
if i<=length(s) then
begin
while(i<=length(s))and(not(s[i]=#32)) do
inc(i);
end;
end;
if count=5 then
begin
count:=0;
i:=length(s);
repeat
bword:=i;
while (s[i]<>#32) do dec(i);
delete(s,i,bword-i+1);
inc(count);
while (s[i]=#32) do dec(i);
until count=2;
writeln(f2,s);
end;
end;
close(f1);
close(f2);
readln;
end.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
mafia1232 |
![]()
Сообщение
#27
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
я , наверное, тормоз. почему файл чистка пустой получается если исходный txt такой (sasa ftt ewrw werwe erter
ewrwe wrr wert qweqw asda asdas adsda asdas asdas asdas )? ответ такой должен быть (sasa ftt ewrw ewrwe wrr wert qweqw asda asdas adsda asdas asdas asdas ) Сообщение отредактировано: mafia1232 - |
klem4 |
![]()
Сообщение
#28
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
проверь так, кое-что изменил :
program p11;
uses crt;
var
f1,f2:text;
s:string;
i,bword,count,count1:integer;
Begin
clrscr;
Assign (f1,'z5.txt');
reset(f1);
Assign(f2,'chistka.txt');
Rewrite(f2);
While not eof(f1) do
begin
readln(f1,s);
i:=1;
count:=0;
while i<=length(s) do
begin
while(i<=length(s))and(s[i]=#32) do
inc(i);
if i<=length(s) then
begin
inc(count);
while(i<=length(s))and(not(s[i]=#32)) do
inc(i);
end;
end;
writeln('count=',count);
if count=5 then
begin
count:=0;
i:=1;
while(i<=length(s)) do
begin
while(i<=length(s))and(s[i]=#32) do
inc(i);
if i<=length(s) then
begin
bword:=i;
inc(count);
while(i<=length(s))and(s[i]<>#32) do
inc(i);
if (count=4)or(count=5) then
begin
delete(s,bword,i-bword);
i:=bword;
end;
end;
end;
end;
writeln(f2,s);
end;
close(f1);
close(f2);
readln;
end.
Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
mafia1232 |
![]()
Сообщение
#29
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
круто работает! :molitva: klem4
|
mafia1232 |
![]()
Сообщение
#30
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
Значит так, дан файл f компонентами которого являются целые числа. Файл создается с такими компонентами y = -5 + random (10). Сформировать новый файл g следующим образом:чтоб перед каждым положительным числом ставился "0" (без ковычек):
Код Program p3_3; uses crt; const n = 20; var f_in, f_out: text; i, y,z, zeroes: integer; begin clrscr; assign(f_in,'byka.txt'); rewrite(f_in); for i := 1 to n do begin y := -5 + random(10); write(f_in, y, ' ') end; assign(f_out,'byka1.txt'); rewrite(f_out); reset(f_in); zeroes := 0; while not seekeof(f_in) do begin read(f_in, y); if y > 0 then write(f_out, z, ' ', y, ' ') else if y = 0 then inc(zeroes); end; y := 0; for i := 1 to zeroes do write(f_out, y, ' '); reset(f_in); while not seekeof(f_in) do begin read(f_in, y); if y < 0 then write(f_out, y, ' ') end; close(f_out); close(f_in); end. правильно ли она работает? Сообщение отредактировано: mafia1232 - Прикрепленные файлы ![]() |
volvo |
![]()
Сообщение
#31
|
Гость ![]() |
Цитата(mafia1232 @ 21.06.05 16:54) дан файл f компонентами которого являются целые числа. Файл создается с такими компонентами y = -5 + random (10). Сформировать новый файл g следующим образом:чтоб перед каждым положительным числом ставился "0" (без ковычек): Может и правильно, но она выполняет много лишнего ... Для правильной работы программы достаточно вот этого: uses crt;
const
n = 20;
zero = 0;
var
f_in, f_out: text;
i, y: integer;
begin
clrscr;
assign(f_in,'byka.txt');
rewrite(f_in);
for i := 1 to n do begin
y := -5 + random(10);
write(f_in, y, ' ')
end;
assign(f_out,'byka1.txt');
rewrite(f_out);
reset(f_in);
while not seekeof(f_in) do begin
read(f_in, y);
if y > 0 then write(f_out, zero, ' ');
write(f_out, y, ' ');
end;
close(f_out);
close(f_in);
end.
|
![]() ![]() |
![]() |
Текстовая версия | 22.04.2025 5:02 |