2 / 1 / 1
Регистрация: 20.06.2018
Сообщений: 31
1

Найти число, отличающееся от других чисел

20.11.2018, 21:35. Показов 2911. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var a, b, c, d:integer;
begin
readln(a, b, c, d);
 
if a=b then 
  if c=a then 
    writeln(d) 
  else if c<>a then 
    writeln(c)
else if a<>b then  
  if a=c then 
    writeln(b) 
  else if a<>c 
    then writeln(a)
end.
//не проходит 1 2 2 2
//и  2 1 2 2
найти среди четырех этих товарищей чиселко, которое отличается от других. Помогите понять ИМЕННО МОЮ ОШИБКУ! у 1 2 2 2 и 2 1 2 2 вообще нет вывода....
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2018, 21:35
Ответы с готовыми решениями:

Получить число к, отличающееся от n обратным порядком следования цифр
Дано пятизначное число n. Получить число к, отличающееся от n обратным порядком следования цифр....

Найти число, которое отлично от трех других, равных между собой
Даны 4 целых числа,одно из которых отлично от трех других равных между собой. Вывести порядковый...

Найти число, которое отлично от трех других, равных между собой
Известно, что из четырех чисел a1, а2, a3 и а4 одно отлично от трех других, равных между собой;...

Нужно найти 3 число отличное от двух других
Данны 3 числа. известно что 2 из них равны, а 3 отлично от них. Решить задачу с помощью программы...

9
98 / 36 / 18
Регистрация: 05.11.2018
Сообщений: 231
20.11.2018, 22:55 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var a,b,c,d:integer;
begin
  readln(a,b,c,d);
  if (a<>b) and (a<>c) and (a<>d) 
    then writeln(a) 
 else
  if (b<>a) and (b<>c) and (b<>d) 
    then writeln(b) 
 else
  if (c<>b) and (c<>a) and (c<>d) 
    then writeln(c) 
 else
  if (d<>b) and (d<>c) and (d<>a) 
    then writeln(d);
end.
Те условия,которые вы проверяете,не гарантируют что четвертое число не равно одному из предидущих.Мое решение довольно корявое,можно с помощью каких-нибудь модулей сделать красивее.Как отправная точка пойдет.
1
Модератор
9972 / 5336 / 3329
Регистрация: 17.08.2012
Сообщений: 16,264
21.11.2018, 12:03 3
chdanil, не все условия учтены. Если полностью, то так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  a, b, c, d: integer;
 
begin
  readln(a, b, c, d);
  if (a <> b) and (b = c) and (b = d)
    then writeln(a)
    else if (b <> c) and (a = c) and (a = d)
      then writeln(b)
      else if (c <> d) and (a = b) and (a = d)
        then writeln(c)
        else if (c <> d) and (a = b) and (a = c)
          then writeln(d)
          else writeln('Нет решения');
  readln
end.
0
2 / 1 / 1
Регистрация: 20.06.2018
Сообщений: 31
21.11.2018, 20:00  [ТС] 4
спасибо, просто по условию алгоритм должен выполнять не более 2 операций сравнения... извините, что забыл сказать. На python работает, но надо на паскале, учитывая уровень(учитывается, что я не знаю массивы, циклы и прочую ересь)
0
98 / 36 / 18
Регистрация: 05.11.2018
Сообщений: 231
21.11.2018, 20:41 5
Цитата Сообщение от chdanil Посмотреть сообщение
не более 2 операций сравнения
Одна операция сравнения: один вывод переменной.Если в 2 операции, то придется использовать сложные конструкции языка, например, массивы.
0
2 / 1 / 1
Регистрация: 20.06.2018
Сообщений: 31
21.11.2018, 21:00  [ТС] 6
Цитата Сообщение от Mikstereo Посмотреть сообщение
Одна операция сравнения: один вывод переменной.Если в 2 операции, то придется использовать сложные конструкции языка, например, массивы.
вы разбираетесь в PYTHON? Я могу скинуть вам удачный код на нем
0
98 / 36 / 18
Регистрация: 05.11.2018
Сообщений: 231
21.11.2018, 21:17 7
Цитата Сообщение от chdanil Посмотреть сообщение
вы разбираетесь в PYTHON?
Немного.

Добавлено через 4 минуты
Цитата Сообщение от chdanil Посмотреть сообщение
один вывод переменной
Оговорка,если else не считается,тогда возможно.Создадим условие,которое даст нам одно число,если оно не выполнилось одно из предыдущих условий выводим другую переменную.И так 2 условия.При должном желании можно сделать так чтобы в else не было никаких условий.
0
2 / 1 / 1
Регистрация: 20.06.2018
Сообщений: 31
21.11.2018, 22:14  [ТС] 8
Немного.

Добавлено через 4 минуты
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
a=int(input())
b=int(input())
c=int(input())
d=int(input())
 
if a==b:
    if c==a:
        print(d)
    else:
        print(c)
else:
    if a==c:
        print(b)
    else:
        print(a)
Вот, это напоминает задачу с ложной монетой. На python вроде все норм, алгоритм тот же, это еще 1 причина ненавидеть паскаль?
0
98 / 36 / 18
Регистрация: 05.11.2018
Сообщений: 231
21.11.2018, 22:27 9
Цитата Сообщение от chdanil Посмотреть сообщение
На python вроде все норм
У вас 3 условия а не два.Ваш алгоритм тоже не пойдет по вашему условию.
А в вашем коде на паскале так условий еще больше!

Добавлено через 3 минуты
Так.Вот ваш код на паскале.Если что можете print заменить на write/writeln.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var a,b,c,d:integer;
begin
  readln(a,b,c,d);
if a=b then 
    if c=a then 
        print(d)
    else
        print(c)
else
    if a=c then
        print(b)
    else
        print(a);
end.
1
Модератор
9972 / 5336 / 3329
Регистрация: 17.08.2012
Сообщений: 16,264
21.11.2018, 22:40 10
Лучший ответ Сообщение было отмечено chdanil как решение

Решение

Лучше знать несколько языков программирования, причём полностью. А то у Вас как-то нелогично получается: питон знаю, поэтому он хороший, а паскаль не знаю, и это ещё одна причина ненавидеть паскаль.

Перевод на паскаль:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  a, b, c, d: integer;
 
begin
  readln(a, b, c, d);
  if a = b
    then if c = a
      then writeln(d)
      else writeln(c)
    else if a = c
      then writeln(b)
      else writeln(a)
end.
Добавлено через 4 минуты
О, пока писал, уже ответили... Mikstereo, форматирование кода у Вас такое, что ни дать, ни взять - питон. Надо было бы и мне такое же форматирование применить... Для ясности.
1
21.11.2018, 22:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2018, 22:40
Помогаю со студенческими работами здесь

Составить восьмизначное число из цифр 8 других восьмизначных чисел
Используя цикл for составить 8-значное число из цифр других 8 8-значных чисел. Формат входных...

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

Найти число отличное от других
Известно, что из четырех чисел a1, a2, a3, a4 одно отлично от трех других, равных между собой. ...

Найти число отличное от трех других
Даны четыре целых числа, которые ввели с клавиатуры, одно из которых отлично от трех других, равных...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru