Задание 1 Массив одномерный. Отчет по выполнению заданий 1 и 2 по статическому и динамическому массивам. По заданию 3 в отчет включить код, комментируя функции. 2
Скачать 116.17 Kb.
|
Пример разработки приложения и оформления отчета по заданию 1Условие задачи варианта Скопировать задание Скопировать условие варианта Дан массив из n элементов целого типа long. Сформировать массив из чисел Армстронга (153=13+53+33) Разработка программы Постановка задачи Дано. Дан массив из n элементов целого типа long. Результат. Сформировать массив из чисел Армстронга (153=13+53+33) Ограничения. Массив натуральных чисел Описание модели решения Исходный массив А статический максимального размера N=100. Текущий размер n массива А определяет пользователь n<=N. Новый массив B, который формируется программой – статический максимального размера N, фактический размер массива nB будет определен программой. Математическая модель определения числа Армстронга Пусть Х исходное число, проверяемое на число Армстронга Степень равна количеству цифр в числе -p . Найти сумму возведенных в степень p цифр числа Х это S и сравнить исходное число Х с полученной суммой S. Если X=S то нашли число Армстронга. Модель формирования массива чисел Армстронга nB – индекс элемента в который вставляется значение и текущий размер массива В. Каждое найденное число вставляется в массив В по индексу nB и после вставки nB увеличивается. Декомпозиция – список алгоритмов, которые требуется разработать в соответствии с исследованной моделью Список подзадач Определение количества цифр в числе Возведение целого числа в степень Определение числа Армстронга Формирование нового массива из чисел исходного Определение прототипов функций Заполнение исходного массива значениями с клавиатуры Предусловие. n – число заполняемых элементов,0 ≤n≤Max, где MAX – максимальное число элементов, L – массив с переменной верхней границей. Постусловие. Заполненный массив из n элементов void input_ar(Array_Static L[], int n); Вывод значений массива Предусловие. n>0 Постусловие. Вывод значений массива void output_ar(Array_Static L[], int n); //Определение количества цифр в числе Предуслвие. 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); Разработка алгоритмов операций и представление его на псевдокоде Алгоритмы вода и вывода массива определим при реализации Алгоритмы задач декомпозиции Алгоритм функции 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 } Далее алгоритмы других функций Набор тестов для тестирования программы
Код программы Таблица тестов для каждой функции и программы. |