Программа работает некорректно. Числа в порядке A>=B>=C - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Возникла проблема с программой, сейчас предоставлю её код, но она работает немного не так как было задумано, кроме того где-то есть упущение. Кто разбирается помогите мне доделать её.
program p_1_1;
   uses Crt;
var a,b,c:real;
begin
   ClrScr;
   write ('Введите число a: ');
   read (a);
   write ('Введите число b: ');
   read (b);
   write ('Введите число c: ');
   read (c);
   if (a>b) and (b>c) then writeln('Ответ:',a:1:0,b:1:0,c:1:0)
   else begin
          if (a>b) then begin
                          if (b=c) then writeln('Ответ',a:1:0,b:1:0,c:1:0)
                          else begin
                                 b:=b+c; c:=b-c; b:=c-b;
                                 write ('Ответ',a:1:0,b:1:0,c:1:0);
                                end;
                        end;
        end;
   if (a=b) then writeln('Ответ',a:1:0,b:1:0,c:1:0)
   else begin
       if (a>=b) then writeln('Ответ',a:1:0,b:1:0,c:1:0)
       else begin
            a:=a+b; b:=a-b; a:=a-b;
            writeln ('Ответ',a:1:0,b:1:0,c:1:0);
            if (a>=c) then writeln ('Ответ',a:1:0,b:1:0,c:1:0)
            else begin
                 a:=a+c; c:=a-c; a:=a-c;
                 writeln ('Ответ',a:1:0,b:1:0,c:1:0);
                 end;
            end;
       end;
   while not keypressed do;
end.
Сейчас в голову пришла мысль, что нужно прописать условие для b>с, но теперь где это прописать? И как сделать календарь 20-го столетия. Я не понимаю логики трех формул, а именно для чего они нужны?
  1. • S=[(12-M)/10]
  2. • K=[(G-1900-S)*365,25]+[(M+12*S-2)*30,59]+D+29
  3. • N=K-7[K/7]
Само задание звучит так:
2. Составить программу «Календарь XX столетия», которая определяет день недели любого дня XX-го столетия. По введенному значению 1, 2, 3 вычисляет 1. номер дня недели по формуле, где D- день, М-месяц, G-год: • S=[(12-M)/10] • K=[(G-1900-S)*365,25]+[(M+12*S-2)*30,59]+D+29 • N=K-7[K/7] (N-вычисляется от 0-воскресенье до 6-суббота, []-целая часть) 2. день недели по его номеру 3. выход
Мне нужно только значение формул, а саму программу я составлю сам. Заранее спасибо!

Решение задачи: «Программа работает некорректно. Числа в порядке A>=B>=C»

textual
Листинг программы
var
  a,b,c:real;
procedure Sw(var x,y:real);
var 
  t:real;
begin
  t:=x;
  x:=y;
  y:=t;
end;  
begin
  write('a,b,c=');readln(a,b,c);
  if a<b then Sw(a,b);
  if b<c then Sw(b,c);
  if a<b then Sw(a,b);
  writeln(a:15:0,b:15:0,c:15:0);
end.

Объяснение кода листинга программы

  1. Объявлены три переменные типа real: a, b, c.
  2. Определена процедура Sw с двумя аргументами типа real и одной переменной типа real.
  3. В процедуре Sw происходит обмен значениями между двумя аргументами и переменной t.
  4. В основной программе происходит ввод значений переменных a, b, c с помощью функции readln.
  5. Если первое введенное число (a) меньше второго (b), то вызывается процедура Sw с аргументами a и b.
  6. Если второе введенное число (b) меньше третьего (c), то вызывается процедура Sw с аргументами b и c.
  7. Если первое введенное число (a) меньше второго (b), то вызывается процедура Sw с аргументами a и b.
  8. Выводится на экран значение переменных a, b, c с помощью функции writeln, при этом используется формат вывода с позицией 15 знаков и пробелами между числами.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.462 из 5
Похожие ответы