- •1. Подпрограммы
- •1.1. Описание подпрограмм
- •1.2. Обращение к подпрограммам
- •1.3. Виды параметров подпрограмм
- •1.3.1. Параметры-значения и параметры-переменные
- •1.3.2. Параметры процедурного типа
- •1.3.3. Параметры-константы
- •1.3.4. Нетипизированные параметры подпрограмм
- •1.3.5. Массивы и строки открытого типа
- •1.4. Рекурсивные подпрограммы
- •2. Файлы данных
- •2.1. Текстовые файлы
- •2.2. Типизированные файлы
- •2.3. Нетипизированные файлы
- •2.4. Обработка ошибок, возникающих в действиях с файлами
- •3. Указатели - ссылочные типы данных
- •4. Модули
- •5. Локальные и глобальные сети эвм
- •6. Базы данных
- •6.1. Модели организации данных
- •6.2. Нормализация данных
- •6.3. Типы связей между объектами
- •7. Основы компьютерной безопасности
- •7.1. Компьютерные вирусы
- •7.2. Защита информации в Интернете
- •Контрольные работы
- •Тема 1. Параметры-значения и параметры-переменные
- •Пример выполнения задания
- •Решение. Составляем алгоритм (изображен ниже), а затем программу.
- •Варианты задания
- •Тема 2. Процедурный тип Пример выполнения задания
- •Варианты задания
- •Тема 3. Рекурсия Пример выполнения задания
- •Варианты задания
- •Тема 4. Текстовые и типизированные файлы Пример выполнения задания
- •Варианты задания
- •Тема 5. Указатели Пример выполнения задания
- •Варианты задания
- •Тема 6. Модули Пример выполнения задания
- •Варианты задания
- •Библиографический список
- •Оглавление
- •1.1. Описание подпрограмм ……………………………………………… 1
Тема 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 “Процедурный тип”. Процедурный тип и относящиеся к нему подпрограммы должны быть описаны в отдельном модуле. В другом модуле должна быть описана основная подпрограмма.
Библиографический список
Информатика: Базовый курс/С.В.Симонович и др. – СПб.: Питер, 2005. 639 с.
Епанешников А.М., Епанешников В.А. Программирование в среде Turbo. Pascal 7.0. – 4-е изд., перераб. и доп. – М.: Диалог-МИФИ, 2002. 367 с.
Новиков Ю.В., Кондратенко С.В. Локальные сети: архитектура, алгортимы, проектирование. – М.: Издательство ЭКОМ, 2002. 312 с.
Карасев В.В. Основы информатики: Учеб. пособие (часть I). – Рязань: РГРТА, 2004. 80 с.
Павловская Т.А. Паскаль. Программирование на языке высокого уровня: Учебник для вузов. – СПб.: Питер, 2004. 393 с.
