Главная страница
Навигация по странице:

  • //Определение числа Армстронга

  • //Формирование массива чисел Армстронга

  • Код программы Таблица тестов для каждой функции и программы.

  • Задание 1 Массив одномерный. Отчет по выполнению заданий 1 и 2 по статическому и динамическому массивам. По заданию 3 в отчет включить код, комментируя функции. 2


    Скачать 116.17 Kb.
    НазваниеОтчет по выполнению заданий 1 и 2 по статическому и динамическому массивам. По заданию 3 в отчет включить код, комментируя функции. 2
    Дата19.02.2022
    Размер116.17 Kb.
    Формат файлаdocx
    Имя файлаЗадание 1 Массив одномерный.docx
    ТипОтчет
    #366770
    страница2 из 6
    1   2   3   4   5   6

    Пример разработки приложения и оформления отчета по заданию 1


    1. Условие задачи варианта

      1. Скопировать задание

      2. Скопировать условие варианта

    Дан массив из n элементов целого типа long.

    Сформировать массив из чисел Армстронга (153=13+53+33)

    1. Разработка программы

      1. Постановка задачи

    Дано. Дан массив из n элементов целого типа long.

    Результат. Сформировать массив из чисел Армстронга (153=13+53+33)

    Ограничения. Массив натуральных чисел

      1. Описание модели решения

    Исходный массив А статический максимального размера N=100.

    Текущий размер n массива А определяет пользователь n<=N.

    Новый массив B, который формируется программой – статический максимального размера N, фактический размер массива nB будет определен программой.

    Математическая модель определения числа Армстронга

    Пусть Х исходное число, проверяемое на число Армстронга

    Степень равна количеству цифр в числе -p .

    Найти сумму возведенных в степень p цифр числа Х это S и сравнить исходное число Х с полученной суммой S. Если X=S то нашли число Армстронга.

    Модель формирования массива чисел Армстронга

    nB – индекс элемента в который вставляется значение и текущий размер массива В.

    Каждое найденное число вставляется в массив В по индексу nB и после вставки nB увеличивается.

      1. Декомпозиция – список алгоритмов, которые требуется разработать в соответствии с исследованной моделью

        1. Список подзадач

    1. Определение количества цифр в числе

    2. Возведение целого числа в степень

    3. Определение числа Армстронга

    4. Формирование нового массива из чисел исходного

        1. Определение прототипов функций

    1. Заполнение исходного массива значениями с клавиатуры

    Предусловие. n – число заполняемых элементов,0 ≤n≤Max, где MAX – максимальное число элементов, L – массив с переменной верхней границей.

    Постусловие. Заполненный массив из n элементов

    void input_ar(Array_Static L[], int n);

    1. Вывод значений массива

    Предусловие. n>0

    Постусловие. Вывод значений массива

    void output_ar(Array_Static L[], int n);

    1. Функции декомпозиции

    //Определение количества цифр в числе

    Предуслвие. x≥10

    Постусловие. Результат целое, сумма цифр

    int count(long x);

    //Возведение целого числа в степень p

    Предуслвие. а>0 – цифра числа, p>0 – количество цифр в числе

    Постусловие. Результат целое, возведение а в степень p

    long double pow_1(unsigned short a, unsigned short p);

    //Определение числа Армстронга

    Предуслвие. х>0 целое число,

    Постусловие. True если х число Армстронга, false иначе

    bool Armstrong(long x);

    //Формирование массива чисел Армстронга

    Предусловие. A исходный массив размера n>0. В – указатель на массив, подготовленный в функции main под результат.

    Постусловие. Результат массив В из nB элементов. Если в массиве А нет чисел Армстронга, то nB=0 и массив В пустой.

    void newArrayB(long *A, int n, long *B, int &nB);

      1. Разработка алгоритмов операций и представление его на псевдокоде

    1. Алгоритмы вода и вывода массива определим при реализации

    2. Алгоритмы задач декомпозиции

    Алгоритм функции Armstrong(long x);

    Armstrong(long x){

    int p←count(x); //количество цифр в числе и значение степени

    int sum←0;

    long copyx←x; //копия исходного числа

    while(x!=0)

    do

    sum←sum+pow_1(x%10,p);

    x=x/10;

    od

    if (copyx=sum)

    then результат true

    else результат false

    }

    Далее алгоритмы других функций


      1. Набор тестов для тестирования программы

    Номер теста

    Исходные данные

    Ожидаемый результат

    Результат программы

    Тест пройден/не пройден

    1

    n=3

    А(1, 2, 3)

    nB=3

    B(1,2,3)







    2

    n=5

    А(11, 12, 13,14, 15)

    nB=5

    B() Нет таких чисел







    3

    nB=3

    B(1,22,153)

    nB=2

    B(1,153)










    1. Код программы

    2. Таблица тестов для каждой функции и программы.
    1   2   3   4   5   6


    написать администратору сайта