Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Текст программы на языке Паскаль
Program Example_19; Var m : integer; A, Z : real; function Stepen(X: real; N: integer): real; Var i : integer; P : real Begin P := 1; If N < 0 then X := 1 / X; For i := 1 to abs(N) do P := P * X; Stepen := P End; Begin writeln; write(‘Введите действительное число А = ‘); read(А); write(‘Введите показатель степени – целое число М = ‘); read(m); Z := (Stepen(A, 5) - Stepen(A, -3)) / 3 / Stepen(A, M); writeln(‘Результат: Z = ‘, Z:8:4); readln end. Данные для тестирования 1) Для A = 2, М = 3 ð Результат: Z = (25 – 2-3) / 3 / 23 = (32 – 0.125) / 24 = 1.328125 2) Для A = -2, М = -3 ð Результат: Z = ((-2)5 – (-2)-3) / 3 / (-2)-3 = (-32 + 0.125)*(-8) / 3 = 85
Работа с МАТРИЦами В задачах этой темы исходная матрица (матрицы) должны считываться из заранее подготовленного текстового файла, в котором записана квадратная матрица размером не менее 6 строк и 6 столбцов. Числа, определяющие размер исходной матрицы (n или n, m) и другие скалярные исходные данные должны вводиться с клавиатуры. После завершения работы программы исходная матрица и результаты работы программы должны быть выведены на экран и в текстовый файл. Пример 9.1. Дана матрица действительных чисел n ´ m, все элементы которой различны. Найти сумму элементов строки, в которой находится наименьший элемент матрицы и столбца, в котором находится наибольший элемент. Решение задачи Выберем схему решения поставленной задачи. Прежде всего, на устройстве Е: создадим текстовый файл (назовём его data.txt), в котором разместим исходный массив размером не менее 6 строк и 6 столбцов. Это можно сделать с помощью приложения Блокнот или через редактор текста среды Turbo Pascal. С помощью ввода с клавиатуры зададим размеры n и m исходной матрицы. Считывание элементов матрицы {А} из файла и вывод их на экран организуем с помощью вложенных операторов цикла с параметром (for). Затем переходим к поиску наименьшего и наибольшего элементов массива. При отыскании наибольшего элемента будем запоминать номер столбца, в котором он находится, а при поиске наименьшего – номер его строки. Введём переменные: min – значение наименьшего элемента массива; max – значение наибольшего элемента массива; k – номер столбца, в котором находится наибольший элемент массива; r – номер строки, в котором находится наименьший элемент массива; S – искомая сумма. Вычисление искомой суммы элементов организуем также с использованием операторов цикла с параметром (for). Блок-схема алгоритма
Текст программы на языке Паскаль Program Example_20; Var i, j, n, m, k, r : integer; min, max, S : real; A : array [1..10,1..10] of real; F : text; Begin writeln; write(‘Задайте число строк матрицы N = ‘); read(n); write(‘Задайте число столбцов матрицы М = ‘); read(m); writeln(‘Исходная матрица:’); Assign(F, ‘E:\data.txt’); Reset(F); For i:=1 to n do begin For j:=1 to m do begin read(F, A[i, j]); write(A[I, j]:7:2) end; readln(F); writeln end; close(F); min := A[1, 1]; max := A[1, 1]; k := 1; r := 1; For i:=1 to n do For j:=1 to m do begin if A[i, j] < min then begin min := A[i, j]; r := i end; if A[i, j] > max then begin max := A[i, j]; k := j end end; S := 0; For i:=1 to n do S := S + A[i, k]; For j:=1 to m do S := S + A[r, j]; writeln(‘Искомая сумма S = ‘, S:5:2); Assign(F, ‘E:\result.txt’); Rewrite(F); writeln(F, ‘Искомая сумма S = ‘, S:5:2); close(F); readln end. Данные для тестирования Пусть в файле E:\data.txt хранятся следующие данные: -11 2 13 4 15 6 7 -30 8 -1 9 12 11 -3 0 -2 50 -5 -9 16 20 5 -7 -20 17 -4 21 -6 22 -8 -7 18 -2 -15 1 -9 1) Для N = 4, M = 6 ð Исходная матрица: -11.00 2.00 13.00 4.00 15.00 6.00 7.00 -30.00 8.00 -1.00 9.00 12.00 11.00 -3.00 0.00 -2.00 50.00 -5.00 -9.00 16.00 20.00 5.00 -7.00 -20.00 Искомая сумма S = 7 – 30 + 8 – 1 + 9 + 12 + 15 + 9 + 50 – 7 = 72 2) Для N = 5, M = 4 ð Исходная матрица: -11.00 2.00 13.00 4.00 7.00 -30.00 8.00 -1.00 11.00 -3.00 0.00 -2.00 -9.00 16.00 20.00 5.00 17.00 -4.00 21.00 -6.00 Искомая сумма S = 7 – 30 + 8 – 1 + 13 + 8 + 0 + 20 + 21 = 46 Пример 9.2. Дана матрица действительных чисел n ´ m. Определить количество таких элементов матрицы, сумма индексов которых нечетна, и которые меньше суммы остальных элементов своего столбца. Решение задачи Выберем схему решения поставленной задачи. Прежде всего, как и в предыдущей задаче, на устройстве Е: создадим текстовый файл (назовём его data.txt), в котором разместим исходный массив размером не менее 6 строк и 6 столбцов. С помощью ввода с клавиатуры зададим размеры n и m исходной матрицы. Считывание элементов матрицы {А} из файла и вывод их на экран организуем с помощью вложенных операторов цикла с параметром (for). Введём переменную k – количество элементов, удовлетворяющих заданному условию. Первоначально k = 0. Для поиска указанных элементов и сравнения их с суммой остальных элементов соответствующего столбца будем использовать вложенные циклы с параметром. В качестве параметра во внешнем цикле введём переменную j, отвечающую за изменение номера столбца. В первом внутреннем цикле с параметром i(переменная i отвечает за изменение номера строки) для каждого столбца вычислим сумму всех его элементов. Для этого введём переменную S и для каждого столбца первоначально будем задавать S = 0. Затем, во втором внутреннем цикле с параметром iс помощью условного оператора организуем проверку выполнения одновременно двух условий: 1) сумма индексов элемента Ai,j – нечётна (для этого можно воспользоваться, например, стандартной функцией odd(x)) и 2) элемент Ai,j меньше суммы остальных элементов своего столбца, т.е. меньше чем S - Ai,j. Если оба эти условия выполняются, то значение переменной k увеличиваем на 1. Результатом решения задачи будет значение переменной k. Его необходимо вывести на экран и в текстовый файл (предположим, Е:\result.txt). Блок-схема алгоритма |
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 481. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |