Перевод с языка Pascal на C#: Заменить все члены, следующие за членом с наибольшим значением - C# (184404)

Узнай цену своей работы

Формулировка задачи:

Помогите,пожалуйста,кто-нибудь с программой. Надеюсь,что я все правильно делал в паскале,но как перевести в c#. Помогите люди добрые Задание: Дано действительные числа A1,...,An и B1,...,Bn. В последовательности A1,...,An и в последовательности B1,...,Bn все члены, следующие за членом с наибольшим значением (за первым по порядку если их несколько), заменить на 0,5. Код на паскале:
uses crt;
const nmax=100;
type mas=array[1..nmax] of real;
var n:byte;
procedure Massiv(var a:mas;c:char);
var i:byte;
begin
writeln('Исходный массив ',c);
for i:=1 to n do
 begin
  a[i]:=9*random;
  write(a[i]:4:1);
 end;
writeln;
end;
procedure Zamena(var a:mas;c:char);
var i,imx:byte;
    mx:real;
begin
mx:=a[1];
imx:=1;
for i:=2 to n do
if a[i]>mx then
 begin
  mx:=a[i];
  imx:=i;
 end;
writeln('Наибольшее значение=',mx:0:1,' имеет элемент a[',imx,']');
if imx=n then writeln('Замен нет')
else
 begin
  writeln('Измененный массив ',c);
  for i:=1 to n do
   begin
    if i>imx then a[i]:=0.5;
    write(a[i]:4:1);
   end;
  writeln;
 end;
end;
var a,b:mas;
begin
clrscr;
randomize;
repeat
write('Размер массивов до ',nmax,' n=');
readln(n);
until n in [1..nmax];
Massiv(a,'A');
Zamena(a,'A');
Massiv(b,'B');
Zamena(b,'B');
readln
end.

Решение задачи: «Перевод с языка Pascal на C#: Заменить все члены, следующие за членом с наибольшим значением»

textual
Листинг программы
 class Program
    {
        const int nmax = 100;
        
        static sbyte n;
        static Random rnd = new Random();
        static void Massiv(ref double[] a, char c)
        {
            Console.WriteLine("Исходный массив {0}", c);
            for (sbyte i = 0; i < n; i++)
            {
                a[i] = 9*rnd.NextDouble();
                Console.Write("{0:F1}  ", a[i]);
            }
            Console.WriteLine();
        }
        static void Zamena(ref double[] a, char c)
        {
            sbyte i,imx;
            double mx;
 
            mx = a[0];
            imx = 0;
            for (i = 1; i < n; i++)
            {
                if (a[i] > mx)
                {
                    mx = a[i];
                    imx = i;
                }
            }
            Console.WriteLine("Наибольшее значение={0:F1} имеет элемент a[{1}]", mx, imx);
            if (imx == n) Console.WriteLine("Замен нет");
            else
            {
                Console.WriteLine("Измененный массив {0}", c);
                for (i = 0; i < n; i++)
                {
                    if (i > imx)
                        a[i] = 0.5;
                    Console.Write("{0:F1}  ", a[i]);
                }
                Console.WriteLine();
            }
 
        }
        static void Main(string[] args)
        {
            Console.Clear();
            Console.Write("Размер массивов до {0},  n =", nmax);
            do
            {
                n = sbyte.Parse(Console.ReadLine());
            }
            while (n > nmax);
            double[] a,b;
            a = new double[n];
            b = new double[n];
            Massiv(ref a, 'A');
            Zamena(ref a, 'A');
            Massiv(ref b, 'B');
            Zamena(ref b, 'B');
            Console.ReadLine();
        }
    }

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


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

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

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