Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика 2 семестр.doc
Скачиваний:
14
Добавлен:
01.04.2025
Размер:
609.28 Кб
Скачать

Тема 6. Модули Пример выполнения задания

Задание. Уточнить с погрешностью 0,001 корень уравнения ln(x) – x + + 1.8 = 0 на отрезке [2; 3] методом простой итерации и методом дихотомии.

Решение. Пишем тексты двух модулей и программы.

unit metod_ur; {Модуль с подпрограммами методов}

interface

const e = 0.001;

type

tip = function(l, p : real):real; {Процедурный тип}

function dihotom(a, b : real) : real; {Объекты процедурного типа}

function iter(a, b : real) : real;

function f(x : real) : real; {Решаемое уравнение}

implementation

function dihotom; {Сокращенный заголовок функции}

var q : real;

begin

q := (a + b)/2; {Начальное приближение}

repeat

if f(a)*f(q) < 0 then b := q {Если функция меняет знак на отрезке aq}

else a := q; {и в противном случае}

q := (a + b)/2

until abs(f(q)) < e;

dihotom := q

end;

function iter;

var q : real;

begin q := (a + b)/2;

while abs(f(q)) > e do

q := ln(q) + 1.8;

iter := q

end;

function f;

begin f := ln(x) - x + 1.8 end;

end.

unit mod_ur; {Модуль с основной подпрограммой}

interface

uses metod_ur; {В этом модуле процедурный тип}

function koren(c, d : real; fun : tip) : real;

implementation

function koren;

begin koren := fun(c, d) end;

end.

program Reshenie_Uravneniya;

uses mod_ur, metod_ur;

var

a, b : real;

begin

writeln('Введите a и b'); readln(a, b);

writeln('Корень по методу простой итерации = ', koren(a, b, iter):6:4);

writeln('Корень по методу дихотомии = ', koren(a, b, dihotom):6:4);

end.

Варианты задания

Запрограммировать решение соответствующего варианта задания из темы № 2 “Процедурный тип”. Процедурный тип и относящиеся к нему подпрограммы должны быть описаны в отдельном модуле. В другом модуле должна быть описана основная подпрограмма.

Библиографический список

  1. Информатика: Базовый курс/С.В.Симонович и др. – СПб.: Питер, 2005. 639 с.

  2. Епанешников А.М., Епанешников В.А. Программирование в среде Turbo. Pascal 7.0. – 4-е изд., перераб. и доп. – М.: Диалог-МИФИ, 2002. 367 с.

  3. Новиков Ю.В., Кондратенко С.В. Локальные сети: архитектура, алгортимы, проектирование. – М.: Издательство ЭКОМ, 2002. 312 с.

  4. Карасев В.В. Основы информатики: Учеб. пособие (часть I). – Рязань: РГРТА, 2004. 80 с.

  5. Павловская Т.А. Паскаль. Программирование на языке высокого уровня: Учебник для вузов. – СПб.: Питер, 2004. 393 с.