М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Montes776
Montes776
26.04.2023 03:57 •  Информатика

Составить программу,которая считает в формуле,заданной с клавиатуры, колличество плюсов и минусов (программа в паскале)

👇
Ответ:
Panda2368
Panda2368
26.04.2023
Var i,col:integer;
s:string;
begin
readln(s);
col:=0;
for i:=1 to length(s) do
begin
if (s[i]='+') or (s[i]='-') then
col:=col+1;
end;
writeln('Количество плюсов и минусов: ',col);
end.
4,7(84 оценок)
Открыть все ответы
Ответ:
BaRiGaSimon
BaRiGaSimon
26.04.2023

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

4,8(49 оценок)
Ответ:
Андрей0126
Андрей0126
26.04.2023

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

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

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

нач        

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

кон


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

нач

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

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

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

поворот

кон


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

нач

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

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

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

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

кон


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

    нач

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

         прыжок

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

         прыжок

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

         прыжок

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

   кон



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

4,4(100 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ