Приветствую помогите с данной задачей.Условие - Составьте программку которая учитывает все

Приветствую помогите с данной задачей.
Условие - Составьте программку которая учитывает все варианты, все числа в четырехзначном числе,положении возрастания потом в порядке убывания и выводит в качестве результата сумму 3 чисел(Изначальное число, число с цифрами по возрастанию, число с цифрами по убыванию).Числа в числе не должны быть одинаковы, если же они равны,то "WriteLn('Ошибка');"

Данные:
Входные 2576.
Выходные 12756.

Начало я теснее написал, основная неувязка с условиями.

Program Test;
Var a,a1,a2,a3,a4,b,c:integer;
Begin
ReadLn(a);
a1:=a div 1000;
a2:=a div 100 mod 10;
a3:=a div 10 mod 10;
a4:= a mod 10;
if (a1=a2) or (a2=a3) or (a2=a4) or (a1=a3) or (a1=a4) or (a3=a4) then WriteLn('Ошибка')
else ...

Буду признателен всем представленным решениям и советам.
Спасибо

Задать свой вопрос
Slavjan Stepanichenko
но эти языки далеки от паскаля
Тема
Эх, вот в чем неувязка новенького( в данном случае меня).Я щас только учусь программированию и знаю только Паскаль и (%2) С
Даниил Смолко
Вы или знаете C намного больше большинства, или вы себя переоцениваете) Или вы имели ввиду 2% от основ?
Олеся Шатухина
2% от всего
Салюшевский Костя
В таком случае, вы обязаны знать его очень превосходно, наверное даже лучше меня
Мишаня
Наверняка мы не допоняли друг друга. 2% - это то что я знаю в C , а 98" - это то, что мне предстоит еще выучить.
Оксана Цибулько
Конкретно так. Но учитывая объемы языка, 2 % - это невозможно много
Ваня Чекайда
Тогда я знаю 0.2%, тогда опасаюсь представить, что мне еще предстоит узнать
Ярослава Зибненкова
Я написал программку, но у меня выходит 12795 и если сложить 2576 + 2567 + 7652 = 12795, вправду получается конкретно так
Серега Белоказанцев
Что же, жду ответа, благодарю
1 ответ
Решение на VB.NET:
        Const SIZE As Integer = 4
        Dim a, sum As Integer
        a = Console.ReadLine()
        sum = a
        Dim n(SIZE) As Integer
        For i = 1 To SIZE
            n(i) = a Mod 10
            a \= 10
        Next
        For i = 1 To SIZE
            For j = i + 1 To SIZE
                If n(i) gt; n(j) Then
                    Dim t As Integer
                    t = n(i)
                    n(i) = n(j)
                    n(j) = t
                ElseIf n(i) = n(j) Then
                    Console.WriteLine("Ошибка")
                    Exit Sub
                End If
            Next
        Next
        For i = 1 To SIZE
            sum += (n(i) + n(SIZE - i + 1)) * 10 ^ (i - 1)
        Next
        Console.WriteLine(sum)
        Console.ReadKey()
Николай Воскальчу
точнее 4 12 и 24
Юра Клейнбок
хорошо
Ангелина Ковыркова
нял
София Сущенцова
сообразил*
Промышляева Милена
4 - Объявляем константу (постоянная переменная) со значением 4 - это длина нашего числа. Вы сможете ее не использовать, а всюду, где употребляется SIZE писать 4
Юра Махнушин
12 - цикл, в котором мы отбираем в массив каждую цифру
Владислав Молитов
24 - при сортировке я заодно проверяю, если числа равны, и, как вы сказали, необходимо заканчивать программку с ошибкой, что я и делаю
Солодунин Константин
25-я строка к слову - это опечатка
Миша Никитич
она не нужна, ее стоит удалить
Даниил Мушилин
Хорошо,благодарю
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт