Почему программа выдает 4312 вместо 4321 в чем я ошиблась? ? procedure swap(var a, b: real); var t: real; begin t : = a; a : = b; b : = t; end; var a, b, c, d: real; begin writeln('введите четыре числа '); readln(a, b, c, d); if (a < b) then swap(a, b); if (b < c) then swap(b, c); if (d < a) then swap(d, a); if (a < d) then swap(a, d); writeln(a, b, c, d) end. : напишите процедуру, которая переставляет 4 числа в порядке убывания. скажите
Ответы на вопрос:
не правильно находится самое максимальное число, рассматриваются не все варианты.
нужно изменить программу.
var a, b, c, d: real;
begin
writeln('введите четыре числа ');
readln(a, b, c, d);
// ищем максимальное число, заносим в а
if (a < b) then swap(a, b);
if (a < c) then swap(a, c);
if (a < d) then swap(a, d);
// ищем максимальное из оставшихся, заносим в b
if (b < c) then swap(b, c);
if (b < d) then swap(b, d);
// ищем максимальное из c и d
if (c < d) then swap(c, d);
writeln(a,' ', b,' ', c,' ', d)
end.
введите четыре числа
15 25 13 19
25 19 15 13
программа работает так , как ее запрограммировал программист, а не как он хотел.
с процедурой swap нет проблем. давайте рассмотрим алгоритм шаг за шагом.
вводятся 4 числа: 1,2,3,4
a = 1; b = 2; c = 3; d = 4
далее программа делает 4 шага:
1) a < b? (1 < 2) => true (истина) => результат: 2134
2) b < c? (1 < 3) => true (истина) => результат: 2314
3) d < a? (4 < 2) => false (ложь) => результат: 2314
4) a < d? (2 < 4) => true (истина) => результат: 4312
каков итог? в самом синтаксисе ошибок никаких нет. ошибка в вашем алгоритме.
что сделать? исправить алгоритм
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Swerri15.05.2022 13:07
-
дина37230.03.2022 14:08
-
AlyonaYarmak11.11.2020 16:51
-
Lenna23124.10.2020 01:39
-
angelinalipanova0309.03.2021 09:45
-
rejngardtdiana24.08.2021 04:11
-
loikomatveico16.03.2023 21:16
-
donamigo201201.02.2023 17:52
-
хорошист54029.11.2020 19:30
-
Alice1st31.03.2022 00:53
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.