Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Текст программы на языке Паскаль
Program Example_17; Var n, i, Sg : integer; A : array [1..30] of word; Function SumDigit(K: word): integer; Var D, S : integer; Begin S := 0; While K > 0 do begin D := K mod 10; S := S + D; K := K div 10 end; SumDigit := S End; Begin writeln; write(‘Введите количество элементов массива N = ‘); read(n); write(‘Введите ‘, n, ‘целых положительных чисел : ‘); For i := 1 to n do read(A[i]); writeln(‘Результат:‘); For i := 1 to n do begin Sg := SumDigit(A[i]); writeln(‘Сумма цифр числа ‘, A[i], ‘ равна ’, Sg ) end; readln end.
Рисунок 8.1 – Блок-схемы алгоритма основной программы и функции для примера 8.1 Данные для тестирования 1) Для n = 3, A = {123, 4135, 47356} ð Результат: Сумма цифр числа 123 равна 1+2+3= 6 Сумма цифр числа 4135 равна 4+1+3+5= 13 Сумма цифр числа 47356 равна 4+7+3+5+6= 25 2) Для n = 4, A = {5753, 14, 5, 73} ð Результат: Сумма цифр числа 5753 равна 5+7+5+3= 20 Сумма цифр числа 14 равна 1+4= 5 Сумма цифр числа 5 равна 5 Сумма цифр числа 73 равна 7+3= 10 Пример 8.2. Описать процедуру Massiv(Х, K, X_cр, Т), находящую среднее арифметическое элементов массива {Х}, состоящего из K целых чисел, и возвращающую Т=True, если элементы массива упорядочены по неубыванию, и T=False в противном случае. Используя эту процедуру, вычислить среднее арифметическое и проверить упорядоченность элементов по неубыванию для двух целочисленных массивов {A} размером N и {B} размером М. Решение задачи Выберем схему решения поставленной задачи. В процедуре Massiv(Х, K, X_cр, Т) введём переменную S для накопления суммы элементов массива (начальное значение S=0). Вычисление суммы осуществляется с помощью оператора цикла с параметром (for) – на каждом шаге к переменной S добавляется очередной элемент массива. Среднее арифметическое элементов массива будет вычисляться: S / K. Для определения упорядоченности элементов массива по неубыванию в процедуре введём переменную Т с начальным значением Т=True (предположим, массив упорядочен по неубыванию, т.е. x1≤x2≤x3≤ .. ≤xk). С помощью оператора цикла с параметром (for) для каждой пары элементов будем проверять нарушение условия упорядоченности, т.е. xi > xi+1. При выполнении такого условия переменной Т присваивается значение False. В основной программе после того как будут введены все элементы массивов {А} и {В}, с помощью обращения к процедуре Massiv, вначале для массива {А}, а затем для массива {В} вычисляем нужные значения. Поскольку массивы будут передаваться в процедуру в качестве параметров, то необходимо при описании массивов использовать описанный тип пользователя. Блок-схемы алгоритмов основной программы и процедуры Massiv(Х,K,X_cр,Т) – представлены на рисунке 8.2 Рисунок 8.2 – Блок-схемы алгоритма основной программы и функции для примера 8.2 Текст программы на языке Паскаль Program Example_18; type mas = array [1..30] of integer Var n, m, i : integer; A_cp, B_cp : real; T_a, T_b : boolean; A, B : mas; procedure Massiv(X: mas; K: integer; var X_cp: real; var T: boolean); Var j, S : integer; Begin S := 0; For j := 1 to K do S := S + D; X_cp := S / K; T := True; For j := 1 to K-1 do If X[j] > X[j+1] then T := False; End; Begin writeln; write(‘Введите количество элементов массива A N = ‘); read(n); write(‘Введите ‘, n, ‘целых чисел – элементы массива А : ‘); For i := 1 to n do read(A[i]); write(‘Введите количество элементов массива В M = ‘); read(m); write(‘Введите ‘, m, ‘целых чисел – элементы массива B : ‘); For i := 1 to n do read(B[i]); writeln(‘Результат:‘); Massiv(A, N, A_cp, T_a); writeln(‘Среднее арифметическое элементов массива A равно ’, А_ср:5:2); if T_a then writeln(‘Массив A упорядочен по неубыванию’) else writeln(‘Массив A не упорядочен по неубыванию’); Massiv(B, M, B_cp, T_b); writeln(‘Среднее арифметическое элементов массива В равно ’, В_ср:5:2); if T_b then writeln(‘Массив B упорядочен по неубыванию’) else writeln(‘Массив B не упорядочен по неубыванию’); readln end. Данные для тестирования 1) Для n = 8, A = {1, 2, 3, 4, 5, 6, 7, 8} Для m = 5, B = {7, 2, 1, 4, 5} ð Результат: Среднее арифметическое элементов массива A равно 4.50 Массив A упорядочен по неубыванию Среднее арифметическое элементов массива B равно 3.80 Массив B не упорядочен по неубыванию Пример 8.3. Для заданных действительного А и целого М вычислить значение выражения Возведение некоторого числа X в степень N организовать с помощью функции Stepen(Х, N). Решение задачи Выберем схему решения поставленной задачи. Чтобы получить XN, нужно вычислить произведение . В функции Stepen(Х, N) введём переменную P для накопления произведения N сомножителей (начальное значение Р=1). Вычисление произведения осуществляется с помощью оператора цикла с параметром (for) – на каждом шаге переменная Р домножается на Х. Если N – отрицательное, то зададим Х = 1 / Х. Последний выполнимый оператор в функции Stepen – присвоение результата имени функции, т.е. Stepen := Р. В основной программе после того как будут введены значения А и M, с помощью обращения к функции Stepen с соответствующими аргументами, вычисляем значение выражения для Z. Блок-схемы алгоритмов основной программы и функции Stepen(Х, N) |
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 541. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |