Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Работа с текстовыми файлами




Текстовыми файлами [Л1, стр. 70-74] называются файлы, состоящие из строк символов ASCII. Строки отделяются друг от друга символами “конец строки”, т.е. при вводе данных в файл с клавиатуры нужно нажимать клавишу “ENTER” для ввода каждой компоненты данных. В программе текстовый файл может быть описан в разделе переменных, например, так:

var f: text;

где fуказатель файла (файловая переменная), играющая роль “окна”, через которое можно прочитать или записать компоненты данных, размещаемых в файле.

Чтобы связать имя файловой переменной и соответствующее ему имя файла на магнитном диске нужно записать в программе оператор:

assign(f, ‘ff.dat’);

где f - имя файловой переменной в Pascal-программе, а ff.dat - соответствующее ему имя файла на магнитном диске.

В отличие от массива, количество компонент в файле не фиксировано, место компоненты не определяется индексами.

При каждом обращении к файлу (для чтения или записи) имеющийся указатель записи автоматически перемещается от начала файла к его концу (или в обратном порядке).

Перед работой с файлом нужно открыть файл, используя один из приведенных ниже операторов:

reset(f); – открыть файл для чтения

rewrite(f); - открыть файл для записи

где f - имя файловой переменной в Pascal-программе.

Для чтения (ввода данных) из файла и записи (вывода данных) в файл используются следующие процедуры:

readln(f); – прочитать данные из файла с именем f;

writeln(f); – записать данные в файл с именем f.

После окончания работы с файлом f нужно закрыть файл, используя процедуру

Close(f);

Пример 21. Вычислить таблицу значений функции:

yi=xi2 , если xi ≤ a

yi=xi+1, если xi > a (i=1, 2, …, n) (n≤10)

Пусть исходные данные (выбранные произвольно) размещаются в файле с именем fread.dat и пусть они принимают следующие значения:

n =5; a =2.5; x={0.5, 1.2, 2.5, 3.2, 3.5},

где n – количество элементов массива, x – массив, состоящий из n элементов, т.е. x={x1,x2,…,xn}.

Результаты вычислений поместим в файл с именем fwrite.dat

 

Программа

 

program prim21; {заголовок программы}

var f1, f2: text; {описание файловых переменных f1 и f2}

x, y: array[1..10] of real; {описание массивов}

i, n: integer; {описание переменных}

a: real;

begin

assign(f1,'fread.dat'); {связать f1 с именем файла на диске}

reset(f1); {открыть файл f1 для ввода данных}

read(f1,n); {ввод из файла f1 значения n }

read(f1,a); {ввод из файла f1 значения a }

for i:=1 to n do

read(f1,x[i]); {ввод из файла f1 массива x }

close(f1); {закрыть файл f1}

assign(f2,'fwrite.dat'); {связать f2 с именем файла на диске}

rewrite(f2); {открыть файл f2 для записи результатов}

for i:=1 to n do

if x[i]<=a then y[i]:=x[i]*x[i] else y[i]:=x[i]+1;

writeln(f2,'Таблица y(x)');

writeln(f2,' x y ');

for i:=1 to n do

writeln(f2,x[i]:6:3,' ',y[i]:6:3); {вывод результатов в файл f2}

close(f2); {закрыть файл f2}

end.

Файл, содержащий Файл, содержащий

исходные данные (fread.dat): результаты вычислений(fwrite.dat):

 

5 n Таблица y(x)

2.5 a x y

0.5 x1 0.500 0.250

1.2 x2 1.200 1.440

2.5 x3 2.500 6.250

3.2 x4 3.200 4.200

3.5 x5 3.500 4.500

 

Функции в языке Pascal

 

Функции в языке Pascal - это программные единицы (подпрограммы), предназначенные для вычисления значения функции одной или нескольких переменных [Л1, стр. 64].

Они могут помещаться в рабочей программе или в библиотеке (модуле).

Заголовок в подпрограмме - функции имеет вид:

 

function имя-функции (список формальных параметров);

 

где список формальных параметров - это список переменных, являющихся исходными данными (аргументами) для вычисления значения функции с указанным в заголовке именем.

Для обращения к подпрограмме–функции в рабочей программе нужно в каком- либо операторе присваивания записать имя функции, а в скобках указать список фактических параметров, в качестве которых могут быть переменные или константы, соответствующие по типу, количеству и порядку расположения списку формальных параметров.

 

Пример 22. Вычислить корень алгебраического уравнения f(x)=0 методом половинного деления на интервале [a,b] с точностью e.

Пусть нужно решить уравнение x2 - 5 = 0 и вывести на экран приближенное значение корня x, значение функции f(x ), количество последовательных приближений n.

Пусть известно, что в интервале [2,3] имеется единственный корень.

Будем выполнять расчеты при различных значениях e.

В данном примере поместим подпрограмму - функцию в рабочую программу.

В программе будем использовать следующие обозначения для имен переменных: t – середина интервала [a,b], fa – значение f(a), ft - значение f(t), eps- значение e.

 

Program Primer22;

var a, b, eps, t, x, fa, ft: real;

n: integer;

function f(x: real): real; {подпрограмма-функция f(x)}

begin

f:=x*x-5;

end;

begin writeln(‘a, b, eps’);

readln(a, b, eps);

n:=0;

fa:=f(a); {обращение к подпрограмме-функции f(x) при x=a}

while abs(b-a) > eps do

begin

t:=(a+b)/2;

n:=n+1;

ft:=f(t); {обращение к подпрограмме-функции f(x) при x=t}

if (fa*ft) < 0 then b:=t else begin a:=t; fa:=ft; end;

end;

x:=(a+b)/2;

writeln(‘x = ’, x:5:3, ‘ f(x) = ’, f(x):5:3, ‘ n = ’, n:3);

end.

 

Контрольные расчеты

Исходные данные Результаты вычислений
a b e x f(x) n
    0.01 2.23828 0.0099  
    0.001 2.23583 -0.001  
    0.00001 2.23605 -0.00006  

 

Примечание.

Если x является приближенным значением корня уравнения, то f(x) ≈ 0.

 

 

Процедуры в языке Pascal

 

Процедуры в языке Pascal - это программные единицы (подпрограммы), которые могут помещаться в рабочей программе или в библиотеке (модуле) [Л1, стр. 61-64].

Заголовок в подпрограмме - процедуре имеет вид:

Procedure имя-процедуры (список формальных параметров);

где список формальных параметров - это список параметров-значений и параметров–переменных, являющихся исходными данными и результатами вычислений соответственно.

Для обращения к подпрограмме–процедуре в рабочей программе нужно записать имя процедуры, а в скобках указать список фактических параметров, в качестве которых могут быть параметры-значения и параметры–переменные,соответствующие по типу, количеству и порядку расположения списку формальных параметров.

Пример 23. Даны матрицы A, B. Вычислить матрицу C=A+B. Элементы матрицы С вычисляются по формуле: cij = aij + bij.

 

Программа

 

Program prim23;

const m=2;

n=2;

type matr=array[1..m,1..n] of real;

var i,j:integer;

a,b,c:matr;

procedure readmatr(var x:matr); {процедура ввода матрицы}

begin

for i:=1 to m do

for j:=1 to n do

read(x[i,j]);

end;

begin

writeln('Ввести матрицу a');

readmatr(a); {обращение к процедуре ввода матрицы a(m,n)}

writeln('Ввести матрицу b');

readmatr(b); {обращение к процедуре ввода матрицы b(m,n)}

writeln('Матрица с');

for i:=1 to m do

begin

for j:=1 to n do

begin

c[i,j]:=a[i,j]+b[i,j];

write(c[i,j]:5:2,' ');

end;

writeln;

end;

end.

 





Поделиться с друзьями:


Дата добавления: 2016-10-30; Мы поможем в написании ваших работ!; просмотров: 515 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент всегда отчаянный романтик! Хоть может сдать на двойку романтизм. © Эдуард А. Асадов
==> читать все изречения...

2481 - | 2215 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.