Найдите ошибки в данной программе PascalABCNET var
i, j, k: integer;
a: array [0..9] of integer;
count: integer;
count := 0;

for i := 1000 to 9999 do

for j := 0 to 9 do
a[j] := 0;

k := i;

while k > 0 do
begin
a[k mod 10] +=1;
k := k div 10;
end;

k :=0;

for j :=0 to9 do
if a[j] =2 then
k +=1;

if k =1 then
count +=1;
end;

writeln('Количество четырехзначных чисел с двумя одинаковыми цифрами равно ', count);
end.

2 Мар 2023 в 19:41
67 +1
0
Ответы
1

В данной программе нет объявления начала процедуры или функции, вместо этого идет непосредственное описание переменных и вычислений. Это неверно для языка PascalABCNET.

Кроме того, оператор += не является допустимым в языке PascalABCNET. Вместо этого нужно использовать обычное сложение:

a[k mod 10] := a[k mod 10] + 1;

Кроме того, внутренний цикл for должен быть обернут в begin и end, чтобы корректно выполняться:

for i := 1000 to 9999 do
begin
for j := 0 to 9 do
begin
a[j] := 0;
end;
end;

Необходимо также добавить begin и end после цикла while для правильной организации блока операций внутри цикла:

while k > 0 do
begin
a[k mod 10] := a[k mod 10] + 1;
k := k div 10;
end;

Исправленный вариант программы выглядит следующим образом:

var
i, j, k, count: integer;
a: array [0..9] of integer;

begin
count := 0;

for i := 1000 to 9999 do
begin
for j := 0 to 9 do
begin
a[j] := 0;
end;

k := i;
while k > 0 do
begin
a[k mod 10] := a[k mod 10] + 1;
k := k div 10;
end;
k := 0;
for j := 0 to 9 do
begin
if a[j] = 2 then
k := k + 1;
end;
if k = 1 then
count := count + 1;

end;

writeln('Количество четырехзначных чисел с двумя одинаковыми цифрами равно ', count);
end.

16 Апр 2024 в 16:35
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир