Var a: array [1 .. 10] of integer; i, Count, C, tmpLast, tmpFirst: integer; begin write('Введите число C: '); readln(C); writeln; for i := 1 to 10 do begin write('a[', i, '] = '); readln(a[i]); if a[i] = C then begin Count := Count + 1; tmpLast := i; end; end; writeln; if (Count = 0) then writeln('В массиве нет числа равное С') else begin writeln('В массиве нашлось число, равное С'); if (Count = 1) then writeln('Первое и единственное число в позиции a[', tmpLast, ']') else begin i := 0; repeat i := i + 1; tmpFirst := i; until (a[i] = C); writeln('Первое такое число a[', tmpFirst, ']'); writeln('Последнее такое число a[', tmpLast, ']'); end; end; readln; end.
Для начала,надо посмотреть условие задачи,у нас в задаче условие такого: не должно быть чисел больше 27 и 18(т.к. Смотри первый пункт задачи. И числа должны быть записаны по неубыванию,то есть либо по возрастанию,либо должны быть равны друг другу(например,как 1616,1414,2424 и тд.). Следующий шаг будет,рассмотрим числа,которые нам предложены 1) первое число это 40. Делим число 40 на два числа это 4 и 0. 4 и 0 мы можем использовать по условию задачи по первому пункту,но ко второму пункту он не подходит,потому что записан в порядке убывания,а как мы уже поняли по условию,числа должны быть записаны в порядке не убывания(2 пункт задачи) 2) смотрим второе число 1030 ,делим его на два числа 10 и 30, это число нам не подходит,потому что в нём присутствует число 30,а число 30 нам нельзя использовать по условию задачи (1 пункт) 3) смотрим на 3 число 130,разделили его на два числа( мы его можем разделить двумя первый это 1 и 30,в этом случае он нам не подойдёт, второй и 0) в этом случае он нам подойдёт по первому пункту,но нужно проверит второй пункт число 13 и 0 записаны по убыванию,по второму пункту это число не подходит так как в условии говорится что числа должны быть записаны непоубыванию(а если не по убыванию ,то следовательно это или по возрастанию либо должны быть равны друг другу(например 1616,1515,1414 и тд.) И так надо брать каждое число и про гонять его по условию задания,и потом посчитать количество чисел которые подошли по условию это и будет ответ Если что-то не понятно уточню
i, Count, C, tmpLast, tmpFirst: integer;
begin
write('Введите число C: ');
readln(C);
writeln;
for i := 1 to 10 do
begin
write('a[', i, '] = ');
readln(a[i]);
if a[i] = C then
begin
Count := Count + 1;
tmpLast := i;
end;
end;
writeln;
if (Count = 0) then writeln('В массиве нет числа равное С')
else
begin
writeln('В массиве нашлось число, равное С');
if (Count = 1) then
writeln('Первое и единственное число в позиции a[', tmpLast, ']')
else
begin
i := 0;
repeat
i := i + 1;
tmpFirst := i;
until (a[i] = C);
writeln('Первое такое число a[', tmpFirst, ']');
writeln('Последнее такое число a[', tmpLast, ']');
end;
end;
readln;
end.