Дан текстовый файл. Точно известно, что в файле находится ровно 20 целых чисел
Категория: Delphi/Pascal
2012-01-05 15:09:56
Без использования массива найти наибольшее число в файле. Найти среднее арефметическое чисел. Записать эти числа в массив, отсортировать по возростанию, и файл написать в другой текстовый файл.
code: #pascal
uses crt; const n=20; type Data=array[1..n] of integer; var f,g:Text; name:string; IO,Count,Max,buf,i:integer; sr:real; Mas:Data; procedure Shaiker(var a:data); var l,r,k,j,tmp:integer; begin l:=1; r:=n; k:=n; while ldo begin for j:=r downto l+1 do if a[j][j-1] then begin tmp:=a[j]; a[j]:=a[j-1]; a[j-1]:=tmp; k:=j; end; l:=k; for j:=l to r-1 do if (a[j]>a[j+1]) then begin tmp:=a[j]; a[j]:=a[j+1]; a[j+1]:=tmp; k:=j; end; r:=k; end; end; begin repeat ClrScr; write('File: '); readln(name); Assign(f,name); {$I-} Reset(f); {$I+} IO:=IOResult; if IO<>0 then begin write('I/O error! Press any key to repeat...'); readkey; end; until (IO=0) and (name<>''); Count:=0; Max:=0; sr:=0; while (not eof(f)) and (Count ) do begin inc(Count); readln(f,buf); if buf>=Max then Max:=buf; sr:=sr+buf; Mas[Count]:=buf; end; Close(f); writeln('Maximalnyi element: ',Max); sr:=sr/Count; writeln('Srednee arifmeticheskoe: ',sr:6:2); Assign(g,'rez_'+name); Rewrite(g); Shaiker(Mas); for i:=1 to n do writeln(g,Mas[i]); Close(g); writeln('Rezultaty zapisanny v fail: rez_'+name); write('Press any key to Exit...'); readkey; end.
автор: delpas
Поделиться: