В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
салемы
салемы
06.02.2021 07:38 •  Информатика

Дан одномерный массив из n элементов. Требуется найти максимальный элемент и отклонение от максимального для каждого из элементов.
Вывести на экран исходный массив, максимальный элемент и значения
отклонений для каждого элемента.
Например:
Исходный массив
358 12 45 2 -4
Max=45
Максимальный элемент
45
Список отклонений
42 40 37 33 043 49
Для нахождения максимального элемента необходимо определить
переменную, например, max, в которой будет храниться найденный
максимальный элемент. Присвоить ему значение первого элемента массива
Далее, сравнивая каждый элемент массива с переменной max определить: если
текущий элемент больше max, то max присвоить значение текущего элемента,
иначе, ничего не делать. Таким образом будет определен наибольший элемент(Java)

Показать ответ
Ответ:
Елена09111
Елена09111
29.01.2023 15:06

//PascalABC.NET версия 3.4.0.1677 от 17.06.18

//Если программа не запускается, то обновите версию

const

   input_file = 'Kon.in';

   output_file = 'Kon.out';

type

   TCell = class

   public  

       x, y: integer;

       constructor Create(coords: string);

       begin

           coords := coords.Trim().ToLower();

           y := StrToInt(coords[2]);

           x := ord(coords[1]) - ord('a') + 1;

       end;

       

       constructor Create(i, j: integer);

       begin

           y := j;

           x := i;

       end;

       

       function IsDeskCell(): boolean;

       begin

           Result := (x > 0) and (y > 0) and (x <= 8) and (y <= 8);

       end;

       

       class function operator+(a, b: TCell): TCell;

       begin

           Result := new TCell(a.x + b.x, a.y + b.y);  

       end;

       

       class function operator=(a, b: TCell): boolean;

       begin

           Result := (a.x = b.x) and (a.y = b.y);

       end;

       

       function ToString: string; override;

       begin

           Result := Format('({0}, {1})', x, y);  

       end;

   end;

procedure PrintAnswer(path: List<TCell>);

begin

   var f := OpenWrite(output_file);

   Writeln(f, path.Count() - 1);

   Println(path.Count() - 1);

   Println(path);

   f.Close();

end;

begin

   var knight_steps := Arr(

   new TCell(1, 2),

   new TCell(2, 1),

   new TCell(2, -1),

   new TCell(1, -2),

   new TCell(-1, -2),

   new TCell(-2, -1),

   new TCell(-2, 1),

   new TCell(-1, 2)

   );

   

   //    var f := OpenWrite(input_file);

   //    Writeln(f, 'a1');

   //    Writeln(f, 'b2');

   //    f.Close();

   //    Exit;

   

   var f := OpenRead(input_file);

   var pawn_place: TCell := new TCell(f.ReadlnString());

   var knight_place: TCell := new TCell(f.ReadlnString());

   f.Close();

   

   var paths := new List<List<TCell>>();

   var occupied_cells := new List<TCell>();

   

   paths.Add(Seq(knight_place).ToList);

   occupied_cells.Add(knight_place);

   

   repeat

       var new_paths := new List<List<TCell>>();

       

       foreach var path in paths do  

       begin

           foreach var step in knight_steps do  

           begin

               var p := new List<TCell>(path);

               var t := p.Last + step;

               

               if t.IsDeskCell() and not occupied_cells.Contains(t) then begin

                   p.Add(t);

                   new_paths.Add(p);

                   occupied_cells.Add(t);

               end;

               

               if t = pawn_place then begin

                   PrintAnswer(p);

                   Exit;

               end;

           end;

       end;

       paths := new_paths;

   until (false)

end.

0,0(0 оценок)
Ответ:
Mojo228
Mojo228
02.10.2022 02:42

/// PascalABC.Net 3.4.2, 2053(11.05.19)

var

   a, n: longint;

   text: textfile;

function myMod(num, power, divider: longint): longint;

var

   rest, i: longint;

begin

   rest:=1;

   divider := abs(divider);

   for i := 1 to power do

   begin

       rest := rest * num;

       rest := rest mod divider;

   end;

   

   myMod := rest;

end;

begin

   assign(text, 'input.txt');

   

   {rewrite(text);

   writeln(text, 109);

   close(text);}

   

   reset(text);

   read(text, a);

   writeln('a=', a);

   close(text);

   

   n := 1;

   repeat

       n := n + 1;

   until MyMod(n, n, a) = 0;

   

   assign(text, 'output.txt');

   rewrite(text);

   writeln(text, n);

   close(text);

   

   {reset(text);

   read(text, n);

   writeln('n=', n);

   close(text);}

end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота