
Те кто шарит в информатике Нужно найти ошибку в паскале(пишу это в самом паскале и не
правильно,т.е где то ошибка). Уже замучились искатьУсловие было: Дано 3 числа.Найти кратные 3 и вывести их в порядке убывания.Program z_1;var a,b,c,D,E,F: integer;BeginD:=0;E:=0;F:=0;Read(a,b,c);If a mod 3=0 thenD:=a;If b mod 3=0 thenE:=b;If с mod 3=0 thenF:=с;If (D>E) and (D>F) thenWrite(' ',D);If (E>D) and (E>F) thenWrite(' ',E);If (F>D) and (F>E) thenWrite(' ',F);If (D>E) and (E>F) thenWrite(' ',E);If (F>E) and (E>D) thenWrite(' ',E);If (E>D) and (D>F) thenWrite(' ',D);If (F>D) and (D>E) thenWrite(' ',D);If (D>F) and (F>E) thenWrite(' ',F);If (E>F) and (F>D) thenWrite(' ',F);If (D=0) and (E=0) and (F=0) thenWrite('Значений нет');End.

Ответы на вопрос

Ответ:
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.



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( ) убрать



Привет! Я заметил несколько ошибок в твоем коде на Паскале. Вот исправленная версия:
pascalProgram z_1; var a, b, c, D, E, F: integer; Begin D := 0; E := 0; F := 0; Readln(a, b, c); If a mod 3 = 0 then D := a; If b mod 3 = 0 then E := b; If c mod 3 = 0 then F := c; 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.
Внесены следующие изменения:
- Заменил
Read
наReadln
для чтения чисел в разных строках. - Исправил опечатку в части кода
If c mod 3 = 0 thenF := с;
, гдес
должно быть написано с заглавной буквы C. - Добавил пробел после каждого оператора
Write
, чтобы разделить значения.
Теперь код должен правильно выполняться и выводить кратные 3 числа в порядке убывания.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili