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

Pascal уровень c. ввести натуральное число и определить, верно ли, что в его записи есть две одинаковые цифры (не обязательно стоящие рядом). пример: введите натуральное число: 12342 да. пример: введите натуральное число: 12345 нет. проверьте программу,не работает почему-то program nn; var n,a,b,k,s: integer; begin writeln('введите натуральное число'); readln(n); k: =0; n: =s; while (n> 0) do begin a: =n mod 10; while (n> 0) do begin b: =n mod 100 div 10; if (a=b) then begin k: =k+1; end; n: =n div 10; end; if (k> 0) then writeln('да') else n: =s; n: =n-n mod 10; end; if (k> 0) then writeln ('да') else writeln('нет'); end.

Показать ответ
Ответ:
девочка25th
девочка25th
07.10.2020 21:50
В программе алгоритм неверный, так дубликаты не найти.
Поэтому программа в основном переделана.

var
  n:integer;
  a:array[0..9] of boolean;
  d,i:byte;
  r:boolean;

begin
  Writeln('Введите натуральное число'); Readln(n);
  for i:=0 to 9 do a[i]:=False;
  r:=False;
  while n>0 do begin
    d:=n mod 10;
    if a[d] then begin
      r:=True;
      break
      end
    else a[d]:=True;
    n:=n div 10
    end;
  if r then Writeln('да')
  else Writeln('нет')
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота