2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Максимальное из трех чисел (pascal)
Сообщение27.12.2014, 18:55 
Аватара пользователя
Написал прогу для выбора из трех введенных чисел наибольшего. Вот она:
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

Var
    x,y,z,max:real;

begin
  writeln ('enter x ');
  readln (x);
  writeln ('enter y ');
  readln (y);
  writeln ('enter z');
  readln (z);
  max:=x;
    if y>x then
      if z>y then
        begin
        max:=z;
        writeln ('max (x,y,z) = ', max:3:3);
        end
             else
        begin
          max:=y;
          writeln ('max (x,y,z) = ', max:3:3);
        end;
    if y<x then
      if z<y then
        begin
        x:=max;
        writeln ('max (x,y,z) = ', max:3:3);
        end
             else
        begin
          if x>z then
            begin
            x:=max;
            writeln ('max (x,y,z) = ', max:3:3);
            end
                 else
            begin
            z:=max;
            writeln ('max (x,y,z) = ', max:3:3);
            end;
        end;
readln;
end.

У меня два вопроса:
1) Как она вам ? Будут ли какие- то комментарии или указания?
2) Как сюда впаять условия для поиска минимального значения? Я делал это, следуя своей "незыблемой" логике, но у меня получались ерунда, не правильно оно определялось.

 
 
 
 Re: Максимальное из трех чисел (pascal)
Сообщение27.12.2014, 19:21 
Аватара пользователя
fronnya в сообщении #953154 писал(а):
1) Как она вам ? Будут ли какие- то комментарии или указания?

Сегодня фильм показывали про графа Калиостро (забыл название). Вопрос там задали мужику: "За сколько дней можешь починить карету?". У меня здесь прямые ассоциации. А если бы вас попросили сделать тоже самое, но чтобы объём программы был бы вдвое больше, то смогли бы справиться с заданием? Вопрос актуальный, поскольку некоторые оценивают сложность программы и кол-во нужных человеко-дней для их разработки по их объёму.

 
 
 
 Re: Максимальное из трех чисел (pascal)
Сообщение27.12.2014, 19:22 
Жесть какая-то (страшно представить, что было бы, если входных значений было больше) :-). Посмотрите, что программа выдаст при x = y.
Вообще вам не надо рассматривать все варианты, достаточно последовательно сравнить каждое число с максимальным и, если оно больше, изменять делать максимальным. Для минимального аналогично.

 
 
 
 Re: Максимальное из трех чисел (pascal)
Сообщение27.12.2014, 19:26 
Аватара пользователя
мат-ламер в сообщении #953161 писал(а):
fronnya в сообщении #953154 писал(а):
1) Как она вам ? Будут ли какие- то комментарии или указания?

Сегодня фильм показывали про графа Калиостро (забыл название). Вопрос там задали мужику: "За сколько дней можешь починить карету?". У меня здесь прямые ассоциации. А если бы вас попросили сделать тоже самое, но чтобы объём программы был бы вдвое больше, то смогли бы справиться с заданием? Вопрос актуальный, поскольку некоторые оценивают сложность программы и кол-во нужных человеко-дней для их разработки по их объёму.

Я наоборот хочу максимально укоротить программу.

-- 27.12.2014, 18:29 --

Progger в сообщении #953162 писал(а):
. Посмотрите, что программа выдаст при x = y.

глюк

 
 
 
 Re: Максимальное из трех чисел (pascal)
Сообщение27.12.2014, 19:39 
Аватара пользователя
Найдите готовую или напишите свою функцию
Код:
float max(float a, float b);

А потом сможете просто написать
Код:
max = max(x, max(y, z));

 
 
 
 Re: Максимальное из трех чисел (pascal)
Сообщение27.12.2014, 19:48 
Аватара пользователя
electric_retard в сообщении #953166 писал(а):
Найдите готовую или напишите свою функцию
Код:
float max(float a, float b);

А потом сможете просто написать
Код:
max = max(x, max(x, y));

Т.е. функция будет сравнивать только один раз, верно?

 
 
 
 Re: Максимальное из трех чисел (pascal)
Сообщение27.12.2014, 19:50 
Аватара пользователя
fronnya
Вызываться будет дважды.
Исправил пред. сообщение.

 
 
 
 Re: Максимальное из трех чисел (pascal)
Сообщение27.12.2014, 20:24 
Аватара пользователя
electric_retard в сообщении #953170 писал(а):
fronnya
Вызываться будет дважды.
Исправил пред. сообщение.

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
procedure bmax (i,j,k :real; Var fmax:real);
    begin
      writeln ('enter x ');
      readln (i);
      writeln ('enter y ');
      readln (j);
      writeln ('enter z');
      readln (k);
        if i>j then
          begin
            fmax:=i;
          end
               else
            fmax:=j;
        if fmax>k then
          begin
            writeln ('max(x,y,z)= ', fmax:3:3);
          end
                  else
            writeln ('max(x,y,z)= ', k:3:3);
    end;


Var
    x,y,z,max, a:real;

begin
bmax (x,y,z,max);
readln;
end.

Уж это куда покороче) Спасибо

 
 
 
 Re: Максимальное из трех чисел (pascal)
Сообщение27.12.2014, 23:48 
А теперь добейтесь одного Writeln, и в следующий раз используйте [​syntax] (просто выбираете язык из списка над полем ответа):

Используется синтаксис Delphi
{$APPTYPE CONSOLE}
begin
  // щас каак выведем!
  Writeln("Подсветка синтаксиса радует глаз, и второй глаз тоже!");
end.


-- Вс дек 28, 2014 02:50:15 --

(Кстати, а зачем вам a: Real?)

 
 
 
 Re: Максимальное из трех чисел (pascal)
Сообщение28.12.2014, 03:10 
Аватара пользователя
fronnya, а что, на физфаке на первом курсе есть программирование? И изучают там не Си, а Паскаль? Или вы помимо универа упражняетесь?

 
 
 
 Re: Максимальное из трех чисел (pascal)
Сообщение02.01.2015, 02:57 
Аватара пользователя
Aritaborian в сообщении #953347 писал(а):
fronnya, а что, на физфаке на первом курсе есть программирование? И изучают там не Си, а Паскаль? Или вы помимо универа упражняетесь?

На всех специальностях, в том числе и на нашей, изучается Delphi, а на компьютерной физике- СИ. Еще Си идет в качестве спецкурса на старших курсах.

 
 
 
 Re: Максимальное из трех чисел (pascal)
Сообщение02.01.2015, 19:54 
Аватара пользователя
Спасибо; не знал.

 
 
 [ Сообщений: 12 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group