Ответы на вопрос:
Var i, j, lensi, lensj, k, z, ni, nj, p: integer; // i - числитель числа, j - знаменатель числа, k, z - счетчики циклов; lensi - длина числителя (двухзначный или трехзначный); lensj - длина знаменателя (двухзначный или трехзначный); ni и nj - числитель и знаменатели нового числа (например, было 48/98. вычеркнули 8 и 8, получилось 4/9, где ni = 4, а nj = 9); p - индекс массива newd, rez: real; // rez - здесь хранится результат деления числителя на знаменатель; newd - здесь хранится результат деления числителя на знаменатель при условии, что вычеркнуты цифры в rez a, b, si, sj, nis, njs: string; // a, b, si, sj - временные переменные для хранения числителя и знаменателя в формате строк; nis, njs - переменные для хранения нового числителя и знаменателя в формате строк; w - просто строка, выводящая результат w: array[1..10000] of string; // массив, сравнивающий строки для вывода уникальных begin p : = 2; for i : = 10 to 500 do // начало цикла, перебирающего все числа до числа 500/500 for j : = 10 to 500 do begin rez : = i / j; // здесь хранится значение деления, грубо говоря тут 49/98 (по примеру) si : = inttostr( i ); // конвертируем числитель в строковый формат, чтобы было удобнее работать с отдельными его цифрами sj : = inttostr( j ); // аналогично, только со знаменателем lensi : = length( si ); // узнаем длину числителя (может быть 2 или 3 - в зависимости от количества разрядов) lensj : = length( sj ); // аналогично, только со знаменателем a : = si; // создаем временные переменные, чтобы "вырезать" цифры b : = sj; for k : = 1 to lensi do // цикл сравнивания текущей цифры числителя с текущей цифрой знаменателя for z : = 1 to lensj do begin nis : = si; njs : = sj; if ( a[ k ] = b[ z ] ) then begin // если цифра в числителе равна цифре в знаменателе delete( nis, k, 1 ); // то она вычеркивается в числителе delete( njs, z, 1 ); // и вычеркивается в знаменателе ni : = strtoint( nis ); // новое число уже без одинаковых цифр цифр nj : = strtoint( njs ); newd : = ni / nj; // результат деления нового числа, грубо говоря тут 4/8 (по примеру) if ( newd = rez ) then begin // если результат деления числа равен результату деления нового числа (которые без одинаковых цифр), то выводим интересную дробь w[p] : = inttostr(i) + '/' + inttostr(j) + ' = ' + inttostr(ni) + '/' + inttostr(nj); if ( w[p] < > w[p - 1] ) then begin writeln(w[p]); inc(p); end; end; end; end; end; end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
androp4ik103.09.2021 05:14
-
Анастасия448720.01.2022 10:50
-
N1R223.01.2022 17:32
-
Лютаяяяя03.08.2022 23:32
-
hfb115.05.2021 10:52
-
anya240319.11.2020 06:47
-
Tanya1101124.05.2022 11:19
-
Сенсей1412.07.2022 20:00
-
daniilprok200404.09.2020 06:01
-
Витуся09104.03.2022 14:18
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.