Записать в файл g наибольшее значение первых пяти компонент файла f (перевести с Паскаля) - C#
Формулировка задачи:
Переведите пожалуйста следующий код в C#
Условие программы:
Дан файл f, компоненты которого являются целыми числами. Записать в файл g наибольшее значение первых пяти компонент файла f, затем - следующих пяти компонент и т.д. Если в последней группе окажется менее пяти компонент, то последняя компонента файла g должна быть равна наибольшей из компонент файла f, образующих последнюю (неполную) группу
uses crt;
var f,g:file of integer;
a,i,j,n,mx:integer;
begin
clrscr;
randomize;
assign(f,'fileF');
rewrite(f);
assign(g,'fileG');
rewrite(g);
for i:=1 to 430 do
begin
a:=random(1000);
write(f,a);
end;
writeln('Содержание исходного файла:');
reset(f);
for i:=0 to filesize(f)-1 do
begin
read(f,a);
write(a:4);
end;
close(f);
writeln;
write('Нажмите Enter');
readln;
clrscr;
reset(f);
n:=filesize(f) div 100;{количество полных сотен}
for i:=0 to n-1 do
begin
j:=100*i;
seek(f,j);
read(f,mx);
while(j<100*i+99)and(j<filesize(f)-1)do{выбираем макс. из каждой сотни}
begin
j:=j+1;
seek(f,j);
read(f,a);
if a>mx then mx:=a;
end;
write(g,mx);
end;
if filesize(f)>100*n then{последние}
begin
seek(f,100*n);
read(f,mx);
for i:=100*n to filesize(f)-1 do
begin
seek(f,i);
read(f,a);
if a>mx then mx:=a;
end;
write(g,mx);
end;
reset(g);
writeln('Содержание файла максимумов:');
reset(g);
for i:=0 to filesize(g)-1 do
begin
read(g,a);
write(a:4);
end;
close(g);
readln
end.Решение задачи: «Записать в файл g наибольшее значение первых пяти компонент файла f (перевести с Паскаля)»
textual
Листинг программы
using System;
using System.IO;
using System.Text;
namespace ShaitanF
{
using c = Console;
class Program
{
const int COUNT_FILTER_ELEMENT = 5;
public static void Main(string[] args)
{
StreamWriter FileF = new StreamWriter("FileF");
StreamWriter FileG = new StreamWriter("FileG");
Random rnd = new Random(); StringBuilder OutputBuilder = new StringBuilder();
for (int i = 0; i < 10000; i++) {
OutputBuilder.Append(rnd.Next(-1000, 1000));
OutputBuilder.Append(' ');
}
FileF.Write(OutputBuilder.ToString());
c.WriteLine(OutputBuilder.ToString() + "\n");
FileF.Close();
OutputBuilder.Clear();
if (!File.Exists("FileF")) {c.WriteLine("Ошибка..."); return;}
StreamReader FileFReader = new StreamReader("FileF");
string[] SplitFileF = FileFReader.ReadToEnd().Split(new char[1]{' '});
for (int i = 0; i < SplitFileF.Length-1; i+=COUNT_FILTER_ELEMENT) {
int max = int.MinValue;
for (int t = i; t < i+COUNT_FILTER_ELEMENT; t++) {
if (t>i)break;
int tmp = int.Parse(SplitFileF[t]);
if (max < tmp) max = tmp;
}
OutputBuilder.Append(max);
OutputBuilder.Append(' ');
}
FileG.Write(OutputBuilder.ToString());
c.WriteLine(OutputBuilder.ToString());
FileFReader.Close();
FileG.Close();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}