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

троє друзів отримали в кафе рахунок на суму n гривень, який вони вирішили розділити порівну. Скільки повинен заплатити кожен з них, якщо сума чайових складає 10% від суми рахунку ( програма ПАЙТОН )

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

Решите на паскаль плз 1. «строки» дано арифметическое выражение, требуется вывести его корректность.
0,0(0 оценок)
Ответ:
Albina7890
Albina7890
04.01.2020 08:05
Лови тут и шифратор и дешифратор 
Var X : Array [1..20, 1..20] Of integer; M, N  : Integer; //M - столбцы, N - строки i, j  : Integer; //i, j - параметры циклов p: integer;   Procedure vvod (var X: Array [1..20, 1..20] Of byte); begin For i := 1 To N Do For j := 1 To M Do Begin Write ('X[', i, ',', j, '] = '); ReadLn(X[i,j]); End; end; Procedure print (X: Array [1..20, 1..20] Of byte); begin for i :=1 to N do begin    for j :=1 to M do       write ( X [ i , j ]:4);    writeln ; end; end; Begin WriteLn ('Ввод элементов.'); Write ('Число строк: '); ReadLn (N); Write ('Число столбцов: '); ReadLn (M); WriteLn ('Введите поочередно элементы матрицы:'); vvod(X); print(x); ReadLn; End.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота