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

Получив на вход натуральное число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее натуральное число, при вводе которого алгоритм печатает сначала 6, а потом 7.

Показать ответ
Ответ:
СашкаО
СашкаО
23.01.2023 09:21

программа с комментариями, если все равно не понятно спрашивай

для проверки программы рекомендую n поставить где нибудь на 10 потому что вводить 1000 чисел с клавиатуры то еще удавольствие :))

числа можно вводить по одному или одной строкой через пробел

const

   n = 1000; // длина массива

var

   d : array of integer := new integer[n]; // объявляем и создаем массив

   a, b : integer;

   

begin

   // вводим числа в массив //

   writeln('введите данные в массив:');

   for var i := 0 to n-1 do begin

       read(a);

       d[i] := a;

   end;

   writeln('введен массив d=', d); // выводим массив на экран

   // переворачиваем данные в массиве                                //

   // для этого меняем первое с последним, второе с предпоследним    //

   // и так до середины                                              //

   for var i := 0 to (n div 2)-1 do begin

       a := d[i];

       d[i] := d[n-i-1];

       d[n-i-1] := a;

   end;

   writeln('переворачиваем массив d=', d); // выводим перевернутый массив

   write('числа у которых первая цифра больше последней:');

   // ищем и ввыводим числа с заданным условием //

   for var i := 0 to n-1 do begin

       // находим чему равна 1 цифра //

       b := d[i];

       repeat

           b := b div 10;

       until b < 10;

       if b > d[i] mod 10 then write(' ', d[i]); // сравниваем первую и последнюю цифры и ели первая больше то выводим число

   end;

end.

0,0(0 оценок)
Ответ:
Arisha666
Arisha666
23.01.2023 09:21

Program n_1;

var a:array [1..1000] of integer; i, buf:integer;

begin

  for i:=1 to 1000 do read(a[i]); //Вводим массив

   for i:=1 to 500 do begin //Переворачиваем массив

       buf:=a[i];

       a[i]:=a[1001-i];

       a[1001-i]:=buf;

   end;

   for i:=1 to 1000 do write(a[i], ' '); //Выводим перевернутый массив

   writeln(); //Переносим строку

   for i:=1 to 1000 do begin //Выводим нужные нам числа

       buf:=a[i];

       while buf>9 do buf:=buf div 10; //buf равно старшему разряду

       if buf>a[i] mod 10 then write(a[i], ' '); //Если старший разряд больше младшего, то выводим

   end;

end.

Часть, выделенная полужирным, эквивалентна

for i:=1000 downto 1 do read(a[i]); //Заполняем массив с конца и тем самым он сразу становится перевернутым.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота