abcdefgh
17.09.2022 17:43

Составить надо блок - схему вычисляющую площадь треугольника если даны две стороны a и b

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
111759
06.09.2021 10:29

(см. объяснение)

Объяснение:

program task;

var i: integer;

const N=5;

procedure writeOut(i: integer);

begin

 if(i<N) then write(', ')

 else writeln('.');

end;

begin

 if(N<1) then begin writeln('N>0 и целое!'); exit; end;

 writeln('ЦИКЛ FOR:');

 for i:= 1 to N

   do begin

        write(i); writeOut(i);

      end;

 writeln;

 writeln('ЦИКЛ WHILE:');

 i:= 1;

 while(i<N+1)

   do begin

        write(i); writeOut(i);

        i:= i+1;

      end;

 writeln;

 writeln('ЦИКЛ REPEAT:');

 i:= 1;

 repeat

   write(i); writeOut(i);

   i:= i+1;

 until i=N+1;

end.

0,0(0 оценок)
Ответ:
Vdbsgshhsgshhd
23.11.2022 15:27
Идея алгоритма заключается в том, что для проверки корректности строки мы заводим стек, содержащий в себе открывающие скобки.
Посмотрим конкретно на вашем примере:)
1+5+(321-54*[321-321]+21)
Мы идём слева-направо, откидывая все символы, не являющиеся скобками, поскольку они нас не интересуют (как это было указано в вашем условии, почему я это и уточнял)
Затем, натыкаясь на открывающую скобку, добавляем её в стек.
В нашем стеке: "("
Идём дальше, находим открывающую квадратную скобку, кладём в стек
В нашем стеке: "(["
Дальше видим закрывающую квадратную скобку, т.к. у нас последняя добавленная скобка - [, значит, она закрываёт её.
В нашем стеке: "("
Аналогично с круглой скобкой, в итоге в нашем стеке не остаётся ничего, строка корректна:)
В остальных случаях:
Если программа наткнётся на закрывающую скобку, для которой не найдётся открытой в стеке, причём той же самой (для квадратной - квадратная, для круглой - круглая, для фигурной - фигурная) выходит, выражение некорректно, что мы и выводим в качестве ответа. Само собой, если после выполнения программы останутся незакрывшиеся скобки, значит, это выражение тоже является некорректным.
Я не мастер объяснять, но надеюсь, что мой разбор вам:)  Исходный код вложен в ответ.

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