IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> работа с файлами, текстовый файл
сообщение
Сообщение #1


Гость






Помогите плз решит задачку!!! rolleyes.gif
значит ест текстовий файл в н строк, в каждой строке:
фамилия имя оценки(например: Первий Вася 2 3 4).
надо создат новий фаил, в котором, в каждой строке, будут:
фамилия имя среднее арифметическоэ оценок(Прим.:Первий Вася 3).
Заранее большое спасибо!!!!!!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


В чем проблема ? Что уже готово ?

зы FAQ : Файлы
FAQ : Строки


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






nu eto ne forum, eto spisok ssilok....
spasibo!
smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






получилос вот что:
Код

program sraf;
type celovek=record
                  fam: string[6];
                 imia: string[2];
              sredaf: real;
                  end;

        var scitat: text;
              novij: zmogus;
           zapisat: file of zmogus;
ocenka, sum, sk: integer;

begin
assign(scitat, 'C:\dannij.txt');
assign(zapisat, 'C:\rezultat.rez');
reset(scitat);
rewrite(zapisat);

while not(eof(scitat))do
begin
     read(scitat, novij.fam);
     sum:=0;
     sk:=0;

while not eoln (scitat) do
     begin
     read(scitat, novij.ocenka);
     sum:=sum+ocenka;
     sk:=sk+1;
     end;
   readln(scitat);
   novij.sredaf:=sum/sk;
with (naujas) do
writeln(novij.fam, ' ',novij.sredaf);
end;

close(scitat);
close(zapisat);

end.



тольк чёт не работает... покажите плз где ошибки?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


привер обработки одной строки :

uses crt;
const s : string = 'Владимир Путин 2 3 3';
var
i,e,n : integer;
sr : single;
begin
i := 1;
while(not(s[i] in ['2'..'5'])) do begin
write(s[i]);
inc(i);
end;
sr := 0;
while(i<=length(s)) do begin
if s[i] in ['2'..'5'] then begin
val(s[i],n,e);
sr := sr + n;
end;
inc(i);
end;
sr := sr/3;
writeln(' : ',sr:2:2);
readln
end.



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






спаибо спасибо!
а как теперь сделат, чтоб он резултат(ну среднее арифметическое) в новий фаил записивал?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +



reset(f_IN);
rewrite(f_OUT);
while(not(eof(f_IN))) do begin
readln(f_IN, s)
// тут делаешь что нужно со строкой;
writeln(f_OUT, s); // после обработки, записываешь новую строку в другой файл
end;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






ясненько... спасибо....
ага... но если ето(обработку информации) сделат не через массив, а сразу через файл? я вроде пробовала, и вроде обрабативает, но не работает...
Код
while not eoln (scitat) do
     begin
     read(scitat, novij.ocenka);
     sum:=sum+ocenka;
     sk:=sk+1;
     end;
   readln(scitat);
   novij.sredaf:=sum/sk;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Так.. постойка, ты сказал что у тебя файл тектовый и состоит из строк ... елси у тебя файл типизированный , то все делается гораздо проще !

uses crt;
const n=5;
type
TRec = record
name : string;
maks : array[1..3] of byte;
sr : single;
end;
TBase = array[1..20] of TRec;
TFile = file of TBase;

procedure Init(var b : TBase);
var
i,j : byte;
begin
for i := 1 to n do
with b[i] do begin
writeln('Rec ¹ ',i);
write('name : '); readln(name);
sr := 0;
for j := 1 to 3 do begin
write('maks ¹ ',j,' : ');
readln(maks[j]);
sr := sr + maks[j];
end;
sr := sr/3;
end;
end;
procedure ShowResult(b : TBase);
var
i : byte;
begin
for i := 1 to n do
with b[i] do writeln(name,' ',sr:3:2);
end;

var
f_in,f_out : TFile;
base : TBase;

begin
clrscr;
assign(f_in,'f_in.base');
rewrite(f_in);
Init(base);
write(f_in,base);
reset(f_in);
assign(f_out,'f_out.base');
rewrite(f_out);
read(f_in,base);
write(f_out,base);
close(f_in);
reset(f_out);
read(f_out, base);
ShowResult(base);
close(f_out);
readln
end.


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


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 2.09.2025 0:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name