Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Текст программы на языке Паскаль
Program Example_15; Var n, i, k, Min : integer; t : boolean; A : array [1..30] of integer; Begin writeln; write(‘Введите количество элементов массива N = ‘); read(n); write(‘Введите ‘, n, ‘натуральных чисел - элементов массива A:‘); For i := 1 to n do read(A[i]); Min := A[1]; For i := 2 to n do If A[i] < Min then Min := A[i]; For k := Min downto 1 do begin t := true; For i := 1 to n do If A[i] mod Max <> 0 then t := false; If t = true then break; end; writeln(‘Наибольший общий делитель равен ‘, k ); readln end. Данные для тестирования 1) Для n = 8, A = {15, 27, 18, 21, 12, 6, 51, 48} ð Наибольший общий делитель равен 3 2) Для n = 5, A = {15, 75, 30, 45, 90} ð Наибольший общий делитель равен 15 Пример 7.2. Дан массив целых чисел {ai}, i =1, 2, ... , n. Вывести те из них, которые встречаются в массиве по одному разу. Решение задачи Выберем схему решения поставленной задачи. Ввод элементов массива {a} выполним обычным образом - с помощью оператора цикла с параметром (for). Затем, с помощью оператора цикла с параметром (for) будем перебирать все элементы данного массива. Для каждого элемента введём переменную k с начальным значением k=0. Во вложенном цикле (также с помощью оператора цикла for) каждый элемент массива будем сравнивать со всеми элементами этого массива и, как только будет найден равный ему элемент, к переменной k будем прибавлять 1. Если, после сравнения очередного элемента с элементами всего массива, значение переменной k будет равно 1, следовательно, он оказался равен только самому себе. Выводим этот элемент на экран. Блок-схема алгоритма – приведена на рисунке 7.1. Текст программы на языке Паскаль Program Example_16; Var n, i, j, k : integer; A : array [1..30] of integer; Begin writeln; write(‘Введите количество элементов массива N = ‘); read(n); write(‘Введите ‘, n, ‘целых чисел - элементов массива A:‘); For i := 1 to n do read(A[i]); writeln(‘В данном массиве по одному разу встречаются:‘); For i := 1 to n do begin k := 0; For j := 1 to n do If A[i] = A[j] then k := k + 1; If k = 1 then writeln(‘ ‘, A[i] ); end; readln end. Рисунок 7.1 – Блок-схема алгоритма для примера 7.2 Данные для тестирования 1) Для n = 10, A = {1, 2, 3, 4, 1, 3, 5, 4, 7, 3} ð В данном массиве по одному разу встречаются 2 5 7 2) Для n = 10, A = {1, 5, 7, 5, 3, -1, 4, 5, 7, -3} ð В данном массиве по одному разу встречаются 1 3 -1 4 -3
ПРОЦЕДУРЫ И ФУНКЦИИ Подпрограммой называют обособленную, оформленную в виде отдельной синтаксической конструкции и снабжённую именем часть программы. Использование подпрограмм позволяет, сосредоточив в них подробное описание некоторых операций, в основной программе только указывать имена подпрограмм, чтобы выполнить эти операции. Такие вызовы подпрограммы возможны неоднократно из разных участков программы, причём при вызове подпрограмме можно передать некоторую информацию (различную в разных вызовах), чтобы одна и та же подпрограмма выполняла решение подзадачи для разных случаев. Подпрограммы в Турбо Паскале реализованы посредством процедур и функций. Имея один и тот же смысл и аналогичную структуру, процедуры и функции различаются назначением и способом их использования. Приведём примеры решения задач с использованием процедур и функций. Пример 8.1. Описать функцию SumDigit(K), находящую сумму цифр целого положительного числа K. Используя эту функцию, найти количество цифр для каждого из заданных целых положительных чисел {Аi} i = 1, 2, ... , n. Решение задачи Выберем схему решения поставленной задачи. В функции SumDigit(K) введём переменную S для накопления суммы цифр (начальное значение S=0). С помощью циклической структуры while и операций div и mod организуем выделение очередной цифры. Самую правую цифру числа можно получить, разделив нацело заданное число K на 10 и взяв остаток от деления. Результат целочисленного деления будем сохранять в этой же переменной K. Цикл будем выполнять пока переменная K будет больше нуля. Последним выполнимым оператором функции будет присвоение значения полученной суммы S имени функции. В основной программе после того как будут введены все элементы массива {А}, с помощью оператора цикла с параметром (for) для каждого элемента массива организуем обращение к функции SumDigit, передавая в качестве параметра очередной элемент, и вывод результата. Блок-схемы алгоритмов основной программы и функции SumDigit(K) – представлены на рисунке 8.1 |
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 526. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |