1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Помогите плз решит задачку!!! значит ест текстовий файл в н строк, в каждой строке: фамилия имя оценки(например: Первий Вася 2 3 4). надо создат новий фаил, в котором, в каждой строке, будут: фамилия имя среднее арифметическоэ оценок(Прим.:Первий Вася 3). Заранее большое спасибо!!!!!!
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;
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";'
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";'
ясненько... спасибо.... ага... но если ето(обработку информации) сделат не через массив, а сразу через файл? я вроде пробовала, и вроде обрабативает, но не работает...
Код
while not eoln (scitat) do begin read(scitat, novij.ocenka); sum:=sum+ocenka; sk:=sk+1; end; readln(scitat); novij.sredaf:=sum/sk;
Так.. постойка, ты сказал что у тебя файл тектовый и состоит из строк ... елси у тебя файл типизированный , то все делается гораздо проще !
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;