Записать в файл 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);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы