powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Паскаль
25 сообщений из 27, страница 1 из 2
Паскаль
    #35824108
alex1989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дан текстовый файл F. Длина каждой строки не превосходит 80 символов. Дополнить короткие строки справа символом '.' так, чтобы их длина была 80.
как строку определять?
как дополнить в паскале?
зарание спасибо...
...
Рейтинг: 0 / 0
Паскаль
    #35824662
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex1989Дан текстовый файл F. Длина каждой строки не превосходит 80 символов. Дополнить короткие строки справа символом '.' так, чтобы их длина была 80.
как строку определять?
как дополнить в паскале?
зарание спасибо...

в таком-то возрасте пора знать ))) что в школе делал?
...
Рейтинг: 0 / 0
Паскаль
    #35824948
DmitryFedotov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex1989,
считываем строчку str из файла
while length(str)<80 do
str:=str+'.';

работу с файлом описывать не буду, а то совсем не интересно
...
Рейтинг: 0 / 0
Паскаль
    #35825041
Гы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryFedotovalex1989,
считываем строчку str из файла
while length(str)<80 do
str:=str+'.';

работу с файлом оп4исывать не буду, а то совсем не интересно

A Concat и FillChar отменили?
...
Рейтинг: 0 / 0
Паскаль
    #35825179
DmitryFedotov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гы,
Во-первых, как написать одну строчку кода разницы нет - меньше она не станет (хотя вызов процедуры происходит дольше), а во-вторых вопрошателю, насколько я понял, надо предельно просто, чтобы в голове осталась полезная информация, а не каша.
...
Рейтинг: 0 / 0
Паскаль
    #35825196
alex1989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Program tochki;
Var
str:string[80];
f2:text;
BEGIN
Assign(f2,'C:\BP\BIN\F.txt');
Rewrite(f2);
While Length(str)<80 do
str:=str+'.' ;
Write(f2,str) ;
Close(f2);
end.
он выводит только точки 80 символов... а все в файле удаляет...
...
Рейтинг: 0 / 0
Паскаль
    #35825204
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex1989Program tochki;
Var
str:string[80];
f2:text;
BEGIN
Assign(f2,'C:\BP\BIN\F.txt');
Rewrite(f2);
While Length(str)<80 do
str:=str+'.' ;
Write(f2,str) ;
Close(f2);
end.
он выводит только точки 80 символов... а все в файле удаляет...

))) немного смешно... Ты строку забыл с файла считать ;)
...
Рейтинг: 0 / 0
Паскаль
    #35825207
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто считает строку из файла? К тому же какой string[80]? Не путайте с с++, это уже строковый объект
...
Рейтинг: 0 / 0
Паскаль
    #35825228
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ладно, сделаю скидку на то, что человек только начинает обучение ))
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Program tochki;
Var
str:string;
f1, f2:text;
BEGIN
Assign(f2,'C:\BP\BIN\F.txt');
Rewrite(f2);
Assign(f1,'C:\BP\BIN\F.txt');
Reset(f1);
while not eof(f1) do
begin
 readln(f1,str);
 While Length(str)< 80  do
  str:=str+'.' ;
Writeln(f2,str) ;
end;
Close(f2);
Close(f1);
end.

прошу не ругать если что не так ))) Просто я писал как можно проще )))

P.S. Хотя лучше учиться не на форуме, а по книжкам )) или если есть возможность то найти статьи для начинающих в нэте ;)
...
Рейтинг: 0 / 0
Паскаль
    #35825232
alex1989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Програмёр,

чет не врублюсь... не подскажешь куда что добавить?
...
Рейтинг: 0 / 0
Паскаль
    #35825259
alex1989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чет он вообще удаляет все и ничего не выводит)
...
Рейтинг: 0 / 0
Паскаль
    #35825265
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex1989чет он вообще удаляет все и ничего не выводит)
))) извини... забыл что нельзя файл открывать для двух задач одновременно... ща перепишу
...
Рейтинг: 0 / 0
Паскаль
    #35825296
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вобщем поменяй Assign(f2,'C:\BP\BIN\F.txt'); на Assign(f2,'C:\BP\BIN\F1.txt'); )) или обязательно в тот же файл дописать?
...
Рейтинг: 0 / 0
Паскаль
    #35825319
alex1989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Програмёр,

помоему в тот же надо...

еще вопрос можна?)
Характеристикой строки целочисленной матрицы назовем сумму ее отрицательных нечетных элементов. Определить номер строки с наименьшей характеристикой.
program ttt;
uses crt;
const
m=4;
n=4;
var
A:array[1..M,1..N] of integer;
s,i,j: integer;
begin
clrscr ;
s:=0;
for j:=1 to m do
begin
for i:=1 to m do
вот тут что писать чтобы нашел строку...
end;
end.
...
Рейтинг: 0 / 0
Паскаль
    #35825327
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex1989

Поверьте моему скромному опыту-выделяйте блоки отступами, это сэкономит вам кучу времени и нервов
...
Рейтинг: 0 / 0
Паскаль
    #35825339
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex1989

помоему в тот же надо...


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
  Var
str:string;
f1, f2: text;

BEGIN
Assign(f2,'F1.txt');
rewrite(f2);
Assign(f1,'F.txt');
Reset(f1);
while not eof(f1) do
begin
 readln(f1,str);
 While Length(str)< 80  do
  str:=str+'.' ;
Writeln(f2,str);
end;
Close(f2);
Close(f1);
erase(f1);
rename(f2,'F.txt');
end.

тогда вот так :) (пример рабочий на фри паскале 2.2)
...
Рейтинг: 0 / 0
Паскаль
    #35825436
DmitryFedotov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex1989,

Естественно, ты используешь rewrite, который создает и открывает созданный файл, а надо использовать reset, более того ты ничего из файла не читаешь

program tochki;

var
str: string[80];
f2,ftemp:text;

begin
assign(f2, 'c:\test.txt');
assign(ftemp, 'c:\test1.txt');
reset(f2);
rewrite(ftemp);
while not eof(f2) do
begin
readln(f2, str);
while length(str) < 80 do
str:=str+'.';
writeln(ftemp, str);
end;
close(f2);
erase(f2);
rename(ftemp, 'c:\test.txt');
close(ftemp);
end.

возможно не самый оптимальный код (давно с файлами не работал), но работает.
Вообще, такие вещи надо изучать самому.
...
Рейтинг: 0 / 0
Паскаль
    #35825465
DmitryFedotov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex1989,

не надо злоупотреблять добротой участников форума, это задачки для начинающих программистов - посиди ночку с книжкой и, если захочешь, то поймешь.
...
Рейтинг: 0 / 0
Паскаль
    #35825554
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryFedotovalex1989,

не надо злоупотреблять добротой участников форума, это задачки для начинающих программистов - посиди ночку с книжкой и, если захочешь, то поймешь.
Для программистов высокой квалификации они уже не под силу. Это как у неправильно подготовленного (натасканного) учащегося - сложные задачи решать может, а простые - нет.
...
Рейтинг: 0 / 0
Паскаль
    #35825621
alex1989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ушел читать....
...
Рейтинг: 0 / 0
Паскаль
    #35825623
alex1989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо!!!
...
Рейтинг: 0 / 0
Паскаль
    #35826843
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryFedotovalex1989,

Естественно, ты используешь rewrite, который создает и открывает созданный файл, а надо использовать reset, более того ты ничего из файла не читаешь

program tochki;

var
str: string[80];
f2,ftemp:text;

begin
assign(f2, 'c:\test.txt');
assign(ftemp, 'c:\test1.txt');
reset(f2);
rewrite(ftemp);
while not eof(f2) do
begin
readln(f2, str);
while length(str) < 80 do
str:=str+'.';
writeln(ftemp, str);
end;
close(f2);
erase(f2);
rename(ftemp, 'c:\test.txt');
close(ftemp);
end.

возможно не самый оптимальный код (давно с файлами не работал), но работает.
Вообще, такие вещи надо изучать самому.

))) как-то странно... Код почти идентичен тому что дал я (то есть смысл было его переписывать?), да ещё и не рабочий )))) (по крайней мере у меня, но не думаю что только у меня). Команду rename(ftemp, 'c:\test.txt'); можно использовать только после закрытия файла ))
...
Рейтинг: 0 / 0
Паскаль
    #35828850
DmitryFedotov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПрограмёрDmitryFedotovalex1989,

Естественно, ты используешь rewrite, который создает и открывает созданный файл, а надо использовать reset, более того ты ничего из файла не читаешь

program tochki;

var
str: string[80];
f2,ftemp:text;

begin
assign(f2, 'c:\test.txt');
assign(ftemp, 'c:\test1.txt');
reset(f2);
rewrite(ftemp);
while not eof(f2) do
begin
readln(f2, str);
while length(str) < 80 do
str:=str+'.';
writeln(ftemp, str);
end;
close(f2);
erase(f2);
rename(ftemp, 'c:\test.txt');
close(ftemp);
end.

возможно не самый оптимальный код (давно с файлами не работал), но работает.
Вообще, такие вещи надо изучать самому.

))) как-то странно... Код почти идентичен тому что дал я (то есть смысл было его переписывать?), да ещё и не рабочий )))) (по крайней мере у меня, но не думаю что только у меня). Команду rename(ftemp, 'c:\test.txt'); можно использовать только после закрытия файла ))


1. Я и не переписывал, просто пока оформлял ответ, добавились другие (не обновил страницу)
2. У меня все прекрасно отрабатывает.
...
Рейтинг: 0 / 0
Паскаль
    #35829297
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryFedotov
1. Я и не переписывал, просто пока оформлял ответ, добавились другие (не обновил страницу)
2. У меня все прекрасно отрабатывает.

Ну... у меня тоже отрабатывает, только не прекрасно ;) На выходе у меня получается файл test1.txt, а не test.txt . команда rename при открытом файле обычно (по описаниям в нэте и у меня самого) не срабатывает...
...
Рейтинг: 0 / 0
Паскаль
    #35829985
ИногдаЗаходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если исходная строка не 79 символов, а меньше, т.е. требуется больше одной '.'

вместо
Код: plaintext
str:=str+'.';
ставим
Код: plaintext
str:=str+stringofchar('.', 80 -length(str))
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Паскаль
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]