Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/215: Рейтинг темы: голосов - 215, средняя оценка - 4.90
2 / 2 / 0
Регистрация: 03.02.2012
Сообщений: 58

Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры

12.02.2012, 14:49. Показов 42460. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1. Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры.
Пример:
1234
нет.
1224
да.

2. Известны сведения о количестве осадков, выпавших за каждый день мая. Первого мая осадков не было. Определить, в течение какого количества первых дней месяца непрерывно, начиная с первого мая, осадков не было. УСЛОВНЫЙ оператор не использовать. рассмотреть случай, в котором допускается, что осадков могло не быть ни в какой из дней мая.
 Комментарий модератора 
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.02.2012, 14:49
Ответы с готовыми решениями:

Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры
Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры. Например: Введите целое число 1234 нет ...

Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры.
Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры.

Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры. Найти сумму, среднее арифметическое и количество цифр в числе
Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры. Найти сумму, среднее арифметическое и количество...

7
38 / 38 / 29
Регистрация: 18.10.2011
Сообщений: 91
12.02.2012, 17:50
1.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Uses crt;
Var s:string;i:integer;l:boolean;
    m:set of char;
Begin
ClrScr;
Write('Введите число :');readln(s);l:=false;
For i:=1 to length(s) do
begin
 If  (m<>m-[s[i]]) then l:=true;
 m:=m+[s[i]];
end;
If l then Writeln('В числе встречаются одинаковие числа')
     else Writeln('В числе не встречаются одинаковие числа');
end.
У меня только с применением строк получается
2
Вирусоборец
 Аватар для thyrex
14432 / 7474 / 1579
Регистрация: 06.09.2009
Сообщений: 27,111
12.02.2012, 22:02
1
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var n, n1, d, d1: Integer;
    IsEqual: Boolean;
begin
 write('Введите число n (n>9): ');
 readln(n);
 IsEqual:= false;
 while (n>9) and (not IsEqual) do
  begin
   d:= n mod 10;
   n1:= n div 10;
   while (n1>0) and (not IsEqual) do
    begin
     d1:= n1 mod 10;
     IsEqual:= d1 = d;
     n1:= n1 div 10;
    end;
   n:= n div 10; 
  end;
 if IsEqual
  then writeln('Да')
  else writeln('Нет');
end.
1
14 / 14 / 5
Регистрация: 21.01.2012
Сообщений: 122
12.02.2012, 23:57
2.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const n=31;
var a:array[1..n]of real;
    i:integer;
begin
writeln('Введите осадки за каждый день после 1 мая');
a[1]:=0;
for i:=2 to n do
 read(a[i]);
writeln;
i:=1;
while a[i]=0 do
 i:=i+1;
writeln(i-1,'дней');
end.
1
2 / 2 / 0
Регистрация: 03.02.2012
Сообщений: 58
13.02.2012, 18:11  [ТС]
спасибо
0
0 / 0 / 0
Регистрация: 14.02.2021
Сообщений: 2
14.02.2021, 15:31
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
program sad;
var
  a,b,copy,dec,k,c:integer;
  l:boolean;
  i:array[1..100] of integer;
begin
  l:=false;
  b:=1;
  while a<10 do
  begin
    writeln('введите двузначное число');
    readln(a);
    copy:=a;
    writeln(a);
  end;
  while copy > 0 do 
  begin
    copy := copy div 10;
    dec += 1;
  end;
  while a>0 do
  begin
    i[b]:=a mod 10;
    a:=a div 10;
    b:=b+1;
  end;
  for a:=1 to dec do
  begin
  k:=a+1;
    for k:=k to dec do
    begin
      if i[a]=i[k] then
      l:=true;
    end;
  end;
  writeln;
  if l=true then
    writeln('в этом числе есть одинаковые цифры')
  else
    writeln('в этом числе нет одинаковых цифр');
end.
0
Модератор
10352 / 5638 / 3395
Регистрация: 17.08.2012
Сообщений: 17,205
17.02.2021, 17:51
Kseyd, скажите, зачем Вы подняли тему девятилетней давности своим "шедевром", некропостер Вы наш? Поднятие древней темы оправдано, если Ваш (гениальный) ответ действительно достоин поднятия древней темы.

Вы, вообще, молодец, но Вам нужно подучить паскаль, и выработать хороший стиль написания программ.

Список недостатков:
  • Строка 1: Строка со словом program без файловых параметров уже чуть ли не полвека не обязательна. Кстати, sad - это выражение Вашей грусть-печали по поводу программы? Или Вы хотели написать Sade, чтобы придать определённую окраску Вашим последующим действиям?
  • Строка 3: называть имена переменных именами стандартных процедур можно, но нелепо. Переменная "c" нигде не используется.
  • Строка 4: латинскую прописную букву "l" легко спутать с цифровым символом "1". Зачем лишняя путаница?
  • Строка 5: в числе типа integer не более 10 десятичных цифр. 100 элементов в массиве - это что, для надёжности? Хватит и 10.
  • Строка 9: цикл проверки ввода не нужен. Если число содержит меньше двух цифр, оно, очевидно, не содержит двух одинаковых цифр. Незачем фильтровать. Лучше бы позаботились о том, чтобы программа работала с целыми числами, в том числе, отрицательными, как требуется по заданию, а не только с натуральными числами, большими девяти, как сделано у Вас.
  • Строка 11: зачем Вы дезинформируете пользователя? Нужно было "Введите число, содержащее не менее двух цифр".
  • Строка 13: ненужное копирование. Зачем Вам вообще понадобилась переменная "copy"? Переменной "a" показалось мало?
  • Строка 14: печать того, что было только что напечатано. Смысл этого деяния от меня ускользает.
  • Строки 16..26: зачем два отдельных цикла?
  • Строка 19: В Pascal ABC отсутствует операция модификации +=. Вероятно, Вы путаете похожие по названию, но совершенно разные диалекты паскаля Pascal ABC и Pascal ABC.NET.
  • Строки 27..35: далеко не самый оптимальный алгоритм проверки.
  • Строки 31..34: эти четыре строки можно написать одной строкой: l:=l or (i[a]=i[k]);.
  • Строка 37: когда Вы сравниваете логическую переменную с логической константой, то где-то умирает маленький пушистый котёнок, а индусские программисты выпивают стаканчик фенни в Вашу честь. Логическая переменная - она и без Вашего сравнения логическая. На будущее: если у Вас возникнет желание сравнить с true, пишите if l then, если возникнет желание сравнить с false, пишите if not l then.
Но ничего страшного. Ваша программа годится для великого деяния: её можно бросить в Ганг. А потом написать новую программу.

Если немножко подрихтовать Вашу программу кувалдой, то она может выглядеть, например, вот так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
  i, j, k, n: integer;
  a: array[1..10] of integer;
  found: boolean;
begin
  write('Введите целое число: ');
  readln(n);
  repeat
    inc(k);
    a[k] := n mod 10;
    n := n div 10
  until n = 0;
  found := false;
  for i := 1 to k - 1 do
    for j := i + 1 to k do
      found := found or (a[i] = a[j]);
  if found then writeln('В этом числе есть одинаковые цифры')
  else writeln('В этом числе нет одинаковых цифр')
end.
Вообще, строго по заданию, достаточно, например, так:
1.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  n: integer;
  d: array[0..9] of integer;
begin
  readln(n);
  n := abs(n);
  repeat
    inc(d[n mod 10]);
    n := n div 10
  until n = 0;
  while (n < 9) and (d[n] < 2) do inc(n);
  if n <= 9 then writeln('Да') else writeln('Нет')
end.
Такого решения ещё не было.

Или так:
1.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  n: integer;
  s: set of 0..9;
begin
  readln(n);
  n := abs(n);
  repeat
    if n mod 10 in s then break;
    include(s, n mod 10);
    n := n div 10
  until n = 0;
  if n mod 10 in s then writeln('Да') else writeln('Нет')
end.
Но подобное решение было в сообщении #2.

Кстати, применение числа в виде строки вполне оправдано, поскольку в этом случае длина числа может быть равна максимальной длине строки. Например,
1.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  n: string;
  i: integer;
  s: set of '0'..'9';
begin
  readln(n);
  if n[1] in ['-', '+'] then i := 2 else i := 1;
  repeat
    if (n[i] in s) or not (n[i] in ['0'..'9']) then break else include(s, n[i]);
    inc(i)
  until i > length(n);
  if i <= length(n) then
    if n[i] in s then writeln('Да')
    else writeln('Это не число')
  else writeln('Нет')
end.
0
0 / 0 / 0
Регистрация: 14.02.2021
Сообщений: 2
17.02.2021, 18:52
Я понимаю,что я в программировании не гений,но эту задачу всё ещё задают в учебных заведениях и решение которое выставили девять лет назад уже не примут в школе,поэтому я ВеЛиКоДуШнО представил своё решение,которое сделано СпЕцИаЛьНо криво,чтоб учителя увидели что этот код делал ребёнок.Спасибо за замечания,я обязательно их просмотрю и приму к своему сведению. также я понимаю что эта тема уже мертва как девять лет,но причины почему я выложил код сейчас я уже сказал.Извините,это был мой первый пост на киберфоруме и я умудрился так накосячить
На этом прощаюсь,всего доброго.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.02.2021, 18:52
Помогаю со студенческими работами здесь

Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры
Задача на С++ (do..while) Нужно ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры? Буду...

Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры.
Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры. Пример: Введите целое число: ...

Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры
Здравствуйте. Напишите следующую программу. Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры. ...

Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры
Ввести целое число и определить , верно ли , что в его записи есть две одинаковые цифры. Добавлено через 45 минут Так-с я немного...

Ввести натуральное число и определить, верно ли, что в его записи есть две одинаковые цифры (не обязательно ст
Ввести натуральное число и определить, верно ли, что в его записи есть две одинаковые цифры (не обязательно стоящие рядом) Пример: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru