![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Clerick |
![]() ![]()
Сообщение
#1
|
![]() студент.. ![]() ![]() ![]() Группа: Пользователи Сообщений: 287 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
Дали след. задачу: дан файл с неизвестным кол-вом строк, нужно в начало каждой строки поставить кол-во символов, а в конец файла кол-во строк. Первую часть я вроде сделал, а вот со второй никак... Помогите найти ошибку!!! Заранее благодарен!!!
![]() uses crt;
var a:array [1..100] of string[105];
i,j,m,k:integer;
s:string;
f:text;
begin
assign (f,'chukcha.txt');
reset (f);
begin
repeat
readln (f, a[i]);
i:=i+1;
j:=j+1;
until eof(f);
end;
close(f);
for i:=1 to j do begin
m:=length(a[i]);
str(m, s);
insert (s, a[i], 1);
end;
rewrite (f);
for k:=1 to j do
begin
Writeln(f, a[k]);
end;
Write (f,j);
close (f);
end.
-------------------- После дождя обязательно выглянет солнце)
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата(Clerick @ 13.04.2006 18:39) дан файл с неизвестным кол-вом строк Так может лучше обойтись БЕЗ массива? Ведь количество строк может быть и больше размерности массива... var
j: integer;
s: string;
f, f_out: text;
begin
assign(f,'f.txt'); reset (f);
assign(f_out, 'tmp.txt'); rewrite(f_out);
j := 0;
while not eof(f) do begin
readln(f, s); inc(j);
writeln(f_out, length(s), ' ' + s);
end;
writeln(f_out, j);
close(f); close(f_out);
erase(f); rename(f_out, 'f.txt');
end.
Будет работать, если в файле нет строк длиннее 255 символов... |
Clerick |
![]()
Сообщение
#3
|
![]() студент.. ![]() ![]() ![]() Группа: Пользователи Сообщений: 287 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
Так может лучше обойтись БЕЗ массива? Ведь количество строк может быть и больше размерности массива... Спасибо большое за код!!! И все-таки, как исправить мой, что бы он работал(если в задаче ограниченное кол-во строк, скажем всего лишь 50)? ![]() -------------------- После дождя обязательно выглянет солнце)
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Так:
uses crt;
var
a:array [1..100] of string[105];
i,j,m,k:integer;
s:string;
f:text;
begin
assign (f,'f.txt');
reset (f);
i := 1; j := 0;
begin
repeat
readln (f, a[i]);
i:=i+1;
j:=j+1;
until eof(f);
end;
close(f);
for i:=1 to j do begin
// m:=length(a[i]);
str(length(a[i]), s);
insert (s + ' ', a[i], 1);
end;
rewrite (f);
for k:=1 to i do begin { <--- До I а не J }
Writeln(f, a[k]);
end;
Writeln(f, j);
close (f);
end.
? |
Clerick |
![]()
Сообщение
#5
|
![]() студент.. ![]() ![]() ![]() Группа: Пользователи Сообщений: 287 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
Хм... Неверно работает... Первая часть все круто, а вот вторая... Прога записывает в файл еще одну строчку(в ней "0"), соотвественно суммирует и ее. Итого получается ровно на одну строчку больше...
![]() -------------------- После дождя обязательно выглянет солнце)
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Не знаю. У меня работает как положено. Приведи свой входной файл...
|
Clerick |
![]()
Сообщение
#7
|
![]() студент.. ![]() ![]() ![]() Группа: Пользователи Сообщений: 287 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
Не знаю. У меня работает как положено. Приведи свой входной файл... Элементарный f fff ff fffff ff fffff ff ------ А выводит 1 f 3 fff 2 ff 5 fffff 2 ff 5 fffff 2 ff 0 8 Сообщение отредактировано: Clerick - 13.04.2006 19:33 -------------------- После дождя обязательно выглянет солнце)
|
klem4 |
![]()
Сообщение
#8
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
А ты уверен что в входном файле, в конце нету пустых строк ?
Сообщение отредактировано: klem4 - 14.04.2006 6:56 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Clerick |
![]()
Сообщение
#9
|
![]() студент.. ![]() ![]() ![]() Группа: Пользователи Сообщений: 287 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
Уверен! Я же ее не создаю! Кстати, когда она есть, то выводит тоже самое! И в чем ошибка???
ЗЫ: Когда в конце кода меняю след.образом все норм. работает!
...
for k:=1 to i-1 do begin
Writeln(f, a[k]);
end;
Writeln(f, j-1);
...
??? ![]() Сообщение отредактировано: volvo - 2.11.2006 19:01 -------------------- После дождя обязательно выглянет солнце)
|
Malice |
![]()
Сообщение
#10
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я думаю, что ты в своей проге исправил строку
for i:=1 to j do begin
(кстати, не понял зачем),а строку i := 1; j := 0;
забыл. |
Clerick |
![]()
Сообщение
#11
|
![]() студент.. ![]() ![]() ![]() Группа: Пользователи Сообщений: 287 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
Я думаю, что ты в своей проге исправил строку for i:=1 to j do begin
(кстати, не понял зачем)Так сказал volvo... Цитата а строку i := 1; j := 0;
забыл. А где она должна быть? Сообщение отредактировано: volvo - 2.11.2006 19:02 -------------------- После дождя обязательно выглянет солнце)
|
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
А ты программу, которую я привел, внимательно изучил, ПРЕЖДЕ, чем говорить, что она не работает? (Hint: смотри строку №11)
|
Malice |
![]()
Сообщение
#13
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
Clerick |
![]()
Сообщение
#14
|
![]() студент.. ![]() ![]() ![]() Группа: Пользователи Сообщений: 287 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
Тогда, да. Volvo зря не скажет. Сорри модераторам за оффтоп, но большое тебе спасибо, от души посмеялся ![]() ![]() ![]() А насчет проги, работает нормально в конфигурации, приведенной volvo! Не знаю почему раньше не шла, мож глюк какой... Пасибки всем за помощь!!! ![]() -------------------- После дождя обязательно выглянет солнце)
|
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 21:09 |