modellisimo-a
?>

Что относится к периферийным устройствам компьютера? ​

Информатика

Ответы

atamanov5

К периферийным устройствам компьютера относятся: устройства ввода; устройства вывода.

Удачи!

sav4ukoxana7149

//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.

ooottdi

Чтобы упростить программу, будем выводить команды типа "сделай ЕДИНИЦА", где ЕДИНИЦА и ДЕВЯТЬ - процедуры.

Описание процедуры:

процедура <имя процедуры>

нач        

<тело процедуры>

кон


процедура ЕДИНИЦА

нач

поворот шаг шаг шаг шаг

поворот поворот

прыжок прыжок прыжок прыжок

поворот

кон


процедура ДЕВЯТЬ

нач

шаг поворот шаг шаг шаг

шаг поворот шаг поворот шаг

шаг поворот шаг поворот поворот поворот

прыжок прыжок поворот

кон


тело программы: программа Число 1919

    нач

         сделай ЕДИНИЦА

         прыжок

         сделай ДЕВЯТЬ

         прыжок

         сделай ЕДИНИЦА

         прыжок

         сделай ДЕВЯТЬ

   кон



Подробнее - на -

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Что относится к периферийным устройствам компьютера? ​
Ваше имя (никнейм)*
Email*
Комментарий*