Delphi Studio » Delphi Статьи » Число Армстронга. Пример решения Олимпиадного задания на Delphi

    "Уважаемые посетители, если вы хотите задать вопросы и получить ответы, то регистрируйтесь и добавляйте свои вопросы тут: " Задать вопрос.
      Delphi Studio Число Армстронга. Пример решения Олимпиадного задания на Delphi
      EndLessDream | 15-04-2010, 14:08 | Delphi Статьи

      Число Армстронга. Пример решения Олимпиадного задания на Delphi

      Число Армстронга - такое число из k цифр, для которого сумма k-х степеней его цифр равна самому числу, например: 153=1^3+5^3+3^3. Надите 5 наибольших чисел Армстронга, состоящих не более чем из n цифр. Программа должна считать выходые данные из файла input.txt и вывести результат в файл output.txt

      Иногда просто интересно решить что-нибудь новенькое, олимпиадные задачи как раз подходят для загрузки и разгрузки мозгов)
      Здесь я приведу пример с комментариями решения этого задания. Задание оценивается в 9 баллов из 10.

      program Project2;

      {$APPTYPE CONSOLE}

      uses
        SysUtils;

      var
        j,n,n1,n2,i,t,q,r,y,o,s,b:integer;
        k:string;
        g:array[1..100] of integer;
        begin
        reset(input,'input.txt');
        rewrite(output,'output.txt');
        readln(n);
        n2:=9;
        for i:=1 to n-1 do
        begin
        n2:=n2*10+9;
        end;
        n:=1;               //Разрядность числа... в нашем случае начинаем с однозначного
        o:=10;              //Делитель, для определения дальнейшей разрядности числа

        for i:=1 to n2 do   //Цикл перебора чисел
          begin
            s:=i mod o;        //Проверяем какое число(Однозначное, двузначное)
            if s=0 then         //Если остаток от деления равен 0 то мы получили следующее по разрядности число
              begin
                n:=n+1;             //Увеличиваем разрядность числа
                o:=o*10;            //Увеличиваем делитель
              end;
        k:=inttostr(i);     //Разбиваем число на составляющие
        for j:=1 to n do    //Перебираем каждую составляющую числа
          begin
            r:=1;               //изначальный множитель
              for t:=1 to n do    //Цикл возведения в степень
                begin
                  q:=strtoint(k[j]);  //Переводим составляющую из строкового типа в числовой
                  r:=r*q;             //Перемножаем
                end;
            y:=y+r;             //Находим сумму степеней составляющих
          end;
        if i=y then         //Сравниваем само число с суммой степеней его составляющих
          begin
            b:=b+1;             //если совпало
            g[b]:=i;            //то записываем число в массив
          end;
        y:=0;               //Обнуляем сумму
        end;
        for i:=b-4 to b  do //Цикл перебора последних 5 чисел массива
          begin
            append(output);
            write(g[i],' ');
          end;
        close(input);
        close(output);

      end.



      Также приведу некоторые ответы на часто возникающие вопросы от начинающих программировать. В дальнейшем объеденю все это в отдельной статье:

      1. Как возвести в степень число?
      1.1 Первый вариант: Использование циклов.

      q:=12; //тут число которое нужно возвести в степень.
                r:=1;   //множитель, впоследствии будет результатом возведения в степень          
                for t:=1 to n do  
                begin
                  r:=r*q;  // перемножаем множитель на число
                end;


      В итоге мы получаем число q возведенное в степень n

      1.2 Второй вариант: Использование Exp().

      Число q в степени n можно записать в виде формулы:

      X:=exp(ln(q)*n);


      В итоге так же получаем степень. Этот пример подходит как для Delphi так и для Pascal.

      2. Как добавить запись в конец файла без его перезаписи?
      Ответ:


      assign(output,'output.txt'); //Назначение текстового файла переменной
      append(output); //открываем файл для записи
      write('Hello!'); //Пишем текст в файл
      close(output); //Закрываем! Это обязательная процедура!


      Опять же, в процессе работы с файлами у меня возникли некоторые вопросы: Например, если нам необходимо как то по другому назвать переменную для файла, то есть не output а например f тогда код будет выглядеть иначе!


      var f:text;
      begin
      assign(f,'output.txt'); //Назначение текстового файла переменной
      append(f); //открываем файл для записи
      write(f,'Hello!'); //Пишем текст в файл, при этом явно указываем переменную для файла в который пишем! Иначе будет ошибка
      close(f); //Закрываем! Это обязательная процедура!
      end;


      3. Как разделить число на составляющие?
      Ответ:
      Данный пример был разобран в решении задачи выше!
      Самое просто решение данной проблемы является использование функции inttostr();

        k:=inttostr(i);     //Разбиваем число i на составляющие. При этом компоненты числа будут записаны в массив k[]
        for j:=1 to n do    //Перебираем каждую составляющую числа. n это разрядность числа... например однозначное.
          begin
           Writeln(k[j]);
          end;


      В итоге получаем число разбитое на составляющие! Для наглядности вывел их с помощью перебора циклом на экран.
      Так же есть и другой способ... например целочисленное деление на степени числа 10... но это долго и занимает много времени!
      • 0
       (голосов: 0)
      5241 | 1
        #1

          • Kunya
            Посетитель
            Рега: 2.11.2010
            Постов: 0
            Сообщений: 1
            --
          у меня тоже такая задача. не могу понять как сделать форму или ее вообще убрать.
            3 ноября 2010 22:38

            Информация
            Информация

              Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.

                Лучшее на Delphi Studio

                Лучшие книги по Delphi

                • Книга Delphi 2010 Handbook with Source Code
                  Книга Delphi 2010 Handbook with Source Code - Книга Delphi 2010 Handbook with Source Code посвящена CodeGear Delphi 2010
                • Книга Программирование в Delphi глазами хакера. Фленов
                  Книга Программирование в Delphi глазами хакера. Фленов - В книге вы найдете множество нестандартных приемов программирования на языке Delphi, его недокументированные функции и возможности. Вы узнаете, как создавать маленькие шуточные программы. Большая часть книги посвящена программированию сетей
                • Книга Delphi в шутку и всерьез что умеют хакеры М.Флёнов
                  Книга Delphi в шутку и всерьез что умеют хакеры М.Флёнов - Электронная книга о профессиональных приемах программирования в Delphi. В легкой и доступной форме с использованием большого количества профессиональных примеров рассмотрены вопросы корректного написания кода, оптимизации программ, работы с системным окружением, создания сетевых приложений
                • Книга Библия Delphi Михаил Фленов (2-е издание) + CD
                  Книга Библия Delphi Михаил Фленов (2-е издание) + CD - Книга посвящена программированию на языке Delphi от самых основ до примеров построения конкретных приложений. Подробно описывается логика выполнения каждого участка кода, чтобы читатель смог использовать эти знания при решении собственных задач. Книга содержит большое количество примеров практического программирования
                • Книга О чем не пишут в книгах по Delphi + CD Григорьев А.Б
                  Книга О чем не пишут в книгах по Delphi + CD Григорьев А.Б - Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP
                • Книга Delphi 7 Учебный курс С.Бобровский
                  Книга Delphi 7 Учебный курс С.Бобровский - Электронная книга является руководством по программированию в среде Delplii 7. Описывается весь процесс разработки программы: от конструирования диалогового окна до организации справочной системы и создания установочного CD-ROM
                • Книга Delphi Быстрый Старт
                  Книга Delphi Быстрый Старт - В книге описываются интерфейс системы визуального программирования Delphi на основе 6-й версии, состав и характеристика элементов проекта приложения, приемы программирования на языке Object Pascal
                • Книга Indy in Depth. Глубины Indy
                  Книга Indy in Depth. Глубины Indy - Книга Indy in Depth Глубины Indy будет интересно для тех, кто интересуется хакингом, вирусописанием, а значит и для тех, кто занимается защитой сетей, программ, информации. Эта книга не только по Indy, она про Интернет, про протоколы, термины, методы работы, а к Indy относятся только примеры
                • Книга OpenGL - Графика в проектах Delphi + CD. М.В.Краснов
                  Книга OpenGL - Графика в проектах Delphi + CD. М.В.Краснов - Книга посвящена использованию стандартной графической библиотеки OpenGL в проектах Delphi. Начиная с самой минимальной программы, последовательно и подробно рассматриваются все основные принципы программирования компьютерной графики: двухмерные итрехмерные построения, анимация, работа с текстурой, визуальные эффекты
                • Книга Delphi 7 для профессионалов. Марко Кэнту
                  Книга Delphi 7 для профессионалов. Марко Кэнту - Книга, которую должен прочитать каждый, кто хочет стать профессиональным программистом на Delphi. Книга не предназначена для начинающих. Требуются хорошие знания Delphi. Предназначена для тех, кто хочет стать именно профессиональным программистом


                Поиск на Delphi Studio




                На Delphi Studio нашли

                олимпиадное программирование на делфи олимпиадное программирование на делфи
                пароли в делфи пароли в делфи
                delphi как узнать существует ли файл delphi как узнать существует ли файл
                memo в delphi memo в delphi
                двумерный массив в memo delphi двумерный массив в memo delphi
                Проект теста на делфи Проект теста на делфи
                создание скорости интернет соединения на Delphi создание скорости интернет соединения на Delphi
                исходники в Delphi исходники в Delphi
                Delphi 7 использую компанент WebBrowse Delphi 7 использую компанент WebBrowse
                Delphi Простой текстовый редактор исходник найти Delphi Простой текстовый редактор исходник найти
                IZS-SMS 1.0 for delphi IZS-SMS 1.0 for delphi
                учебник GUI на Delphi учебник GUI на Delphi
                listBox в delphi listBox в delphi
                Delphi пароль ini Delphi пароль ini
                исходник калькулятор delphi исходник калькулятор delphi
                книга что могут хакеры фленов книга что могут хакеры фленов
                разрыв графика delphi разрыв графика delphi
                сокеты в delphi сокеты в delphi
                [_] свернуть в трей builder [_] свернуть в трей builder
                открытие анимированного gif вудзрш открытие анимированного gif вудзрш
                свойствa form delphi свойствa form delphi
                "delphi 7" "ListBox" "OnClick"
                form delphi form delphi
                form delphi описание form delphi описание
                функции клавиш клавиатуры для хакера функции клавиш клавиатуры для хакера
                .ini пример .ini пример
                дельфи число Армстронга дельфи число Армстронга
                работа со строками delphi  delete работа со строками delphi delete
                delphi сделать панель прозрачной delphi сделать панель прозрачной
                idhttp idhttp
                скачать адоб флеш плеер на мобильник
скачать адоб флеш плеер на мобильник
                авторизация вконтакте на delphi
авторизация вконтакте на delphi
                функции floattostr delphi 7
функции floattostr delphi 7
                как программно свернуть прогу в трей
как программно свернуть прогу в трей
                Delphi исходник для трея
Delphi исходник для трея
                примеры использования timer в delphi
примеры использования timer в delphi
                количество одинаковых чисел в матрице delphi
количество одинаковых чисел в матрице delphi


                Информация

                Сайт Delphi Studio рассчитан для начинающих, новичков, чайников, которые решили программировать на Delphi :)
                Добавляйте свои примеры, исходники, компоненты, статьи и тогда на сайте будет много полезной информации, что поможет друг другу находить нужный материал.


                Случайные новости

                Книга Delphi 7 Учебный курс С.Бобровский
                Книга Delphi 7 Учебный курс С.Бобровский - Электронная книга является руководством по программированию в среде Delplii 7. Описывается весь процесс разработки программы: от конструирования диалогового окна до организации справочной системы и создания установочного CD-ROM
                Книга О чем не пишут в книгах по Delphi + CD Григорьев А.Б
                Книга О чем не пишут в книгах по Delphi + CD Григорьев А.Б - Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP
                Как открыть и закрыть CD-ROM в Windows (MMSystem). Пример на Delphi
                Как открыть и закрыть CD-ROM в Windows (MMSystem). Пример на Delphi - Пример на Delphi показывающий как можно открыть и закрыть CD-ROM в Windows. В uses нужно дабвить MMSystem


                Опрос

                Что вы хотите больше на Delphi Studio?
                Исходники
                Книги, Учебники
                Компоненты
                Статьи
                Примеры


                Лучшее на Delphi Studio


                Информация

                А знаете ли вы что такие известные программы как AIMP, Skype, QIP, QIP Infium, R&Q, The Bat!, FL Studio, Guitar Pro, Game Maker, Total Commander, PowerArchiver, Download Master написаны на Delphi? И это далеко не весь список программ чем может похвастаться продукция Borland Delphi!


                rss