Решение задачи №7 из главы 9 -- Поиск максимума из 4 чисел
Primary tabs
Задача №7 из главы 9
Пользователь вводит четыре числа, найдите из них максимальное.
var a, b, c, d: integer; // секция объявления переменных
begin // начало тела программы
writeln('vvedite cislo A');
readln(a);
writeln('vvedite cislo B');
readln(b);
writeln('vvedite cislo C');
readln(c);
writeln('vvedite cislo D');
readln(d);
if (a > b) and (a > c) and (a > d) then //если A больше В и С и D
begin
writeln('Naibolshhee chislo A = ', a) // То выводим А
end
else begin
if (b > a) and (b > c) and (b > d) then // вложенный оператор if ; если B больше A и С и D
writeln('Naibolshhee chislo B = ', b) // То выводим B
else
if (c > a) and (c > b) and (c > d) then // вложенный оператор if ; если С больше A и B и C
writeln('Naibolshhee chislo C = ', c) // То выводим С
else
writeln('Naibolshhee chislo D = ', d); //Иначе выводим D
end;
readln(); // удерживаем консоль
end. // конец тела программы
- Log in to post comments
- 45892 reads
vedro-compota
Fri, 06/29/2018 - 12:59
Permalink
исправить форматирование для
исправить форматирование для начала.
обозначте к комментариях где у вас вложенные блоки, а где просто "else c условиями" (else if).
_____________
матфак вгу и остальная классика =)
gani84
Tue, 07/03/2018 - 11:11
Permalink
var a, b, c, d: integer; //
var a, b, c, d: integer; // секция объявления переменных begin // начало тела программы writeln('vvedite cislo A'); readln(a); writeln('vvedite cislo B'); readln(b); writeln('vvedite cislo C'); readln(c); writeln('vvedite cislo D'); readln(d); if (a > b) and (a > c) and (a > d) then //если A больше В и С и D begin writeln('Naibolshhee chislo A = ', a) // То выводим А end else begin // Начало тела вложенного оператора if if (b > a) and (b > c) and (b > d) then // вложенный оператор if ; если B больше A и С и D writeln('Naibolshhee chislo B = ', b) // То выводим B else if (c > a) and (c > b) and (c > d) // вложенный оператор if ; если С больше A и B и C then writeln('Naibolshhee chislo C = ', c) // То выводим С else writeln('Naibolshhee chislo D = ', d); //Иначе выводим D end; //Конец тела вложенного оператора if readln(); // удерживаем консоль end. // конец тела программыvedro-compota
Mon, 07/09/2018 - 14:22
Permalink
Форматирование теперь
Форматирование теперь правильное, но код не слишком ясный в смысле восприятия.
Переделайте это решение так, чтобы оно использовало максимум из трёх, причём этим способом, то есть:
-- и таким образом и находите максимум из четырёх.
При данном подходе "вложенность" возрастёт.
_____________
матфак вгу и остальная классика =)
gani84
Wed, 07/18/2018 - 13:11
Permalink
Как то так...
var a, b, c, d: integer; // секция объявления переменных begin // начало тела программы writeln('vvedite cislo A'); readln(a); writeln('vvedite cislo B'); readln(b); writeln('vvedite cislo C'); readln(c); writeln('vvedite cislo D'); readln(d); if (a > b) and (a > c) then //если A больше В и С writeln('Naibolshhee chislo A = ', a) // То выводим А else begin if (b > a) and (b > c) then // вложенный оператор if ; если B больше A и С writeln('Naibolshhee chislo B = ', b) // То выводим B else if (c > a) and (c > b) and (c > d) then writeln('Naibolshhee chislo C = ', c) //Иначе выводим C else writeln('Naibolshhee chislo D = ', d); end; readln(); // удерживаем консоль end.vedro-compota
Sat, 07/21/2018 - 23:32
Permalink
Форматирование неверно. где
Форматирование неверно. где здесь часть которая ищет максимум из трех? а где ииспользование этого максимума
_____________
матфак вгу и остальная классика =)
gani84
Sun, 07/22/2018 - 15:08
Permalink
Если честно я не совсем
Если честно я не совсем понимаю как это реализовать
vedro-compota
Sun, 08/26/2018 - 12:48
Permalink
Альтернативные решения
Приведите пример решения, без использования вложенных блоков, с использованием промежуточно вычисленных максимума из двух и из трех (как это сделано в видео-уроке)
Условие обновлено:
Решите тремя способами:
первый пункт у вас уже есть. Приведите ещё два решения.
Если не получается сначала можно эти же решения сделать для 3-х и прислать на проверку.
_____________
матфак вгу и остальная классика =)
gani84
Tue, 09/18/2018 - 09:42
Permalink
Исправил форматирование
var a, b, c, d: integer; // секция объявления переменных begin // начало тела программы writeln('vvedite cislo A'); readln(a); writeln('vvedite cislo B'); readln(b); writeln('vvedite cislo C'); readln(c); writeln('vvedite cislo D'); readln(d); if (a > b) and (a > c) then //если A больше В и С writeln('Naibolshhee chislo A = ', a) // То выводим А else begin if (b > a) and (b > c) then // вложенный оператор if ; если B больше A и С writeln('Naibolshhee chislo B = ', b) // То выводим B else if (c > a) and (c > b) and (c > d) then writeln('Naibolshhee chislo C = ', c) //Иначе выводим C else writeln('Naibolshhee chislo D = ', d); end; readln(); // удерживаем консоль end.vedro-compota
Mon, 09/24/2018 - 18:51
Permalink
форматирование по-прежнему не
форматирование по-прежнему не верно. Проверьте ещё раз у вас ошибка отступов после первого же else.
_____________
матфак вгу и остальная классика =)
gani84
Mon, 09/24/2018 - 20:27
Permalink
Форматирование исправлено
var a, b, c, d: integer; // секция объявления переменных begin // начало тела программы writeln('vvedite cislo A'); readln(a); writeln('vvedite cislo B'); readln(b); writeln('vvedite cislo C'); readln(c); writeln('vvedite cislo D'); readln(d); if (a > b) and (a > c) then //если A больше В и С writeln('Naibolshhee chislo A = ', a) // То выводим А else begin if (b > a) and (b > c) then // вложенный оператор if ; если B больше A и С writeln('Naibolshhee chislo B = ', b) // То выводим B else if (c > a) and (c > b) and (c > d) then writeln('Naibolshhee chislo C = ', c) //Иначе выводим C else writeln('Naibolshhee chislo D = ', d); end; readln(); // удерживаем консоль end.vedro-compota
Tue, 09/25/2018 - 20:15
Permalink
форматирование теперь верно, решение нет
форматирование теперь верное, а вот решение нет, как минимум:
ещё не значит что А является наибольшим из 4-х чисел.
_____________
матфак вгу и остальная классика =)
gani84
Wed, 09/26/2018 - 13:51
Permalink
Исправил и добавил комментарий( напишите правильно или нет )
var a, b, c, d: integer; // секция объявления переменных begin // начало тела программы writeln('vvedite cislo A'); readln(a); writeln('vvedite cislo B'); readln(b); writeln('vvedite cislo C'); readln(c); writeln('vvedite cislo D'); readln(d); if (a > b) and (a > c) and (a > d) then //если A больше В и С writeln('Naibolshhee chislo A = ', a) // То выводим А else begin if (b > d) and (b > c) then // вложенный оператор if ; если B больше A и С {так как (a > b) and (a > c) and (a > d) в первой ветке , то у нас остается b, c и d тогда пишем if (b > d) and (b > c) then (просьба ответить правильно или нет)} writeln('Naibolshhee chislo B = ', b) // То выводим B else if (c > d) then {ну и третье условие т.к мы знаем что (b > d) and (b > c) то у нас остаеться c и d тогда (c > d)} writeln('Naibolshhee chislo C = ', c) //Тогда выводим С else writeln('Naibolshhee chislo D = ', d); //Иначе выводим D end; readln(); // удерживаем консоль end.gani84
Mon, 09/24/2018 - 19:57
Permalink
С вложенными блоками (без and)
var a, b, c, d: integer; // секция объявления переменных begin // начало тела программы writeln('vvedite cislo A'); readln(a); writeln('vvedite cislo B'); readln(b); writeln('vvedite cislo C'); readln(c); writeln('vvedite cislo D'); readln(d); if (a > b) then if (a > c) then if (a > d) then writeln(a) else writeln(d) else begin if (b > c) then if (b > d)then writeln(b) end else if(c > d)then writeln(c) else writeln(d); readln(); end.vedro-compota
Tue, 09/25/2018 - 20:20
Permalink
верно не всё
-- это верно, дальше что-то не то, перепроверьте логику. Исправьте.
_____________
матфак вгу и остальная классика =)
gani84
Thu, 09/27/2018 - 09:59
Permalink
Исправил
var a, b, c, d: integer; // секция объявления переменных begin // начало тела программы writeln('vvedite cislo A'); readln(a); writeln('vvedite cislo B'); readln(b); writeln('vvedite cislo C'); readln(c); writeln('vvedite cislo D'); readln(d); if (a > b) then begin if (a > c) then if (a > d) then writeln(a) else writeln(b) end else if (b > c) then begin if (b > d)then writeln(b) else writeln(c) end else begin if(c > d)then writeln(c) else writeln(d); end; readln();vedro-compota
Sun, 09/30/2018 - 17:22
Permalink
неверно уже первое
неверно уже это:
if (a > b) then begin if (a > c) then if (a > d) then writeln(a) else writeln(b)как можно сделать вывод (якобы что это максимум) в else:
else writeln(b)если вы сравнили к этой строке b только с а, а с другими двумя переменными ещё вообще не сравнивали??
_____________
матфак вгу и остальная классика =)
gani84
Mon, 10/01/2018 - 09:06
Permalink
Вопрос
Я не совсем понял. Я прошелся по всем условиям. Проверил a, b ,c и d. Задача определяет цифры правильно.
gani84
Sun, 10/07/2018 - 12:18
Permalink
Ответ
var a, b, c, d: integer; // секция объявления переменных begin // начало тела программы writeln('vvedite cislo A'); readln(a); writeln('vvedite cislo B'); readln(b); writeln('vvedite cislo C'); readln(c); writeln('vvedite cislo D'); readln(d); if (a > b) then begin if (a > c) then if (a > d) then writeln(a) else writeln(d) else writeln(c) end else if (b > c)then begin if(b > d)then writeln(b) else writeln(d) end else begin if(c > d)then writeln(c) else writeln(d); end; readln(); end.vedro-compota
Sun, 10/07/2018 - 13:52
Permalink
неверное форматирование
if (a > c) then if (a > d) then writeln(a) else writeln(d) else writeln(c)-- неверное форматирование в этом блоке, и остальное проверьте
_____________
матфак вгу и остальная классика =)
gani84
Sun, 10/07/2018 - 15:57
Permalink
Исправил форматирование
var a, b, c, d: integer; // секция объявления переменных begin // начало тела программы writeln('vvedite cislo A'); readln(a); writeln('vvedite cislo B'); readln(b); writeln('vvedite cislo C'); readln(c); writeln('vvedite cislo D'); readln(d); if (a > b) then begin if (a > c) then if (a > d) then writeln(a) else writeln(d) else writeln(c) end else if (b > c)then begin if(b > d)then writeln(b) else writeln(d) end else begin if(c > d)then writeln(c) else writeln(d); end; readln(); end.gani84
Fri, 09/28/2018 - 08:43
Permalink
Как Вы определили что второе
Как Вы определили что второе условие не работает
Через отладку?
Или так прошелся повбивали разные цифры?
vedro-compota
Sun, 09/30/2018 - 17:20
Permalink
как понять
в данном случае просто читал код, это видно, со временем и у вас получится. А пока что вы да - должны отлаживать на разных значениях.
_____________
матфак вгу и остальная классика =)
gani84
Tue, 09/25/2018 - 11:12
Permalink
Без вложенных блоков (без and)
var a, b, c, d, max2, max3, max4: integer; // секция объявления переменных begin // начало тела программы writeln('vvedite cislo A'); readln(a); writeln('vvedite cislo B'); readln(b); writeln('vvedite cislo C'); readln(c); writeln('vvedite cislo D'); readln(d); if (a > b) then max2 := a else max2 :=b; if (max2 > c) then max3 := max2 else max3 := c; if (max3 > d) then max4 := max3 else max4 := d; writeln('maximum ' ,max4); readln(); // удерживаем консоль end.vedro-compota
Tue, 09/25/2018 - 20:16
Permalink
не идеальное форматирование, но верно
последний readln() отформатирован неверно, решение засчитано (правильно).
_____________
матфак вгу и остальная классика =)
gani84
Wed, 09/26/2018 - 09:28
Permalink
Исправил форматирование
var a, b, c, d, max2, max3, max4: integer; // секция объявления переменных begin // начало тела программы writeln('vvedite cislo A'); readln(a); writeln('vvedite cislo B'); readln(b); writeln('vvedite cislo C'); readln(c); writeln('vvedite cislo D'); readln(d); if (a > b) then max2 := a else max2 :=b; if (max2 > c) then max3 := max2 else max3 := c; if (max3 > d) then max4 := max3 else max4 := d; writeln('maximum ' ,max4); readln(); // удерживаем консоль end.vedro-compota
Sun, 09/30/2018 - 17:17
Permalink
засчитано.
засчитано.
_____________
матфак вгу и остальная классика =)