Предмет: Информатика, автор: Besta555

Те кто шарит в информатике

Нужно найти ошибку в паскале(пишу это в самом паскале и не правильно,т.е где то ошибка). Уже замучились искать
Условие было: Дано 3 числа.Найти кратные 3 и вывести их в порядке убывания.

Program z_1;

var a,b,c,D,E,F: integer;

Begin

D:=0;

E:=0;

F:=0;

Read(a,b,c);

If a mod 3=0 then

D:=a;

If b mod 3=0 then

E:=b;

If с mod 3=0 then

F:=с;

If (D>E) and (D>F) then

Write(' ',D);

If (E>D) and (E>F) then

Write(' ',E);

If (F>D) and (F>E) then

Write(' ',F);

If (D>E) and (E>F) then

Write(' ',E);

If (F>E) and (E>D) then

Write(' ',E);

If (E>D) and (D>F) then

Write(' ',D);

If (F>D) and (D>E) then

Write(' ',D);

If (D>F) and (F>E) then

Write(' ',F);

If (E>F) and (F>D) then

Write(' ',F);

If (D=0) and (E=0) and (F=0) then

Write('Значений нет');

End.


natashaivashina1985: ;*

Ответы

Автор ответа: BobbyFresnel
8

program z_1;

var

 a, b, c, k, t: integer;

begin

 k := 3;

 Read(a, b, c);

 if Abs(a) mod 3 <> 0 then

   k := 2;  

 if Abs(b) mod 3 = 0 then

 begin

   if k = 2 then

     a := b

 end

 else

   Dec(k);

 if Abs(c) mod 3 = 0 then

 begin

   if k = 1 then

     a := c

   else if k = 2 then

     b := c;

 end

 else

   Dec(k);

 case k of  

   0: Write('Значений нет');

   1: Write(a);

   else

   begin

     if b > a then

     begin

       t := a;

       a := b;

       b := t;

     end;

     if k = 3 then

     begin

       if c > b then

       begin

         t := b;

         b := c;

         c := t;

       end;

       if b > a then

       begin

         t := a;

         a := b;

         b := t;

       end;

       Write(a, ' ', b, ' ', c);

     end

     else

       Write(a, ' ', b);

   end;

 end

end.

Если отрицательными числа быть не могут, можно Abs( ) убрать


Vauhna23: помогите пожалуйста с историей
Vauhna23: короче зайди на мою страницу где мои вопросы
Vauhna23: плизз
Автор ответа: fedrfedr
2

Ответ:

program z_1;

var

 a, b: array [1..3] of Integer;

 i, imax, btmp: Integer;

 ine: boolean;

Begin

 for i := 1 to 3 do begin

   Read (a [i]);

   b [i] := 0;

 end;

 ine := False;

 for i := 1 to 3 do begin

   if a [i] mod 3 = 0 then begin

     b [i] := a [i];

     Ine := True;

   end else

     b [i] := 0;

 end;

 if ine then begin

   imax := 1;

   for i := 2 to 3 do

     if b [i] > b [imax] then

       imax := i;

   btmp := b [imax];

   b [imax] := b [1];

   b [1] := btmp;

   if b [2] < b [3] then begin

     btmp := b [2];

     b [2] := b [3];

     b [3] := btmp;

   end;

   WriteLn;

   for i := 1 to 3 do

     if b [i] <> 0 then

       Write (b [i], ' ');

 end else

   WriteLn ('Значений нет.');

 ReadLn;

 ReadLn;

end.


stasisinaangelina33: Ого, не знаю даже
riki7158: чо́ооооо
bbbhh52: ?????
Похожие вопросы
Предмет: Английский язык, автор: tkachlilia
Предмет: География, автор: Di2614