Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторки по информатике.doc
Скачиваний:
18
Добавлен:
06.11.2018
Размер:
9.06 Mб
Скачать

Input “X m h “ ; X , m% , h

OPEN “result” FOR OUTPUT AS #1

s = 0

FOR n% = 1 TO m% STEP h

t = x + n%

y = ( x + t) / ( t* SQR( n%+1))

s = s + y

NEXT n%

PRINT s

WRITE #1, “s = “, s

CLOSE #1

END

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

OPEN “товар” FOR OUTPUT AS #3

INPUT “ имя товара :”,it$

WHILE it$ <> “zzz”

INPUT “код и цена”, cod$, price$

WRITE #3, it$, cod$, price$

INPUT “имя товара :“, it$

WEND

CLOSE #3

END

Здесь использован неопределённый цикл WHILE . . . WEND, цикл по условию, который повторяет выполнение операторов тела цикла пока имя товара “it$” не равно “zzz”.

Эту же задачу можно реализовать с файлом прямого доступа:

TYPE buf описание пользовательского типа данных,

goods AS STRING *25 имеющего смысл записи в файл. Этому типу

code AS STRING *10 присвоено имя buf и в нём определены поля

price AS SINGLE записи

END TYPE

CLS очистка экрана

DIM recb AS buf описаниие переменной recb как записи buf

OPENgoods.dbFOR RANDOM AS #1 открытие файла прямого доступ

INPUTgoods :”,goods$ ввод наименования товара

WHILE goods$ <> “zzz” пока goods$  “zzz”

INPUT “code , price”, code$,price$ ввод кода товара и цены

I = I + 1 увеличение номера записи

recb.goods = goods$ присвоение полям записи

recb.code = code$ соответствующих значений

recb.price = price переменных

PUT #1 , I , recb передача записи в файл

INPUTgoods :”,goods$ ввод след. наимен. товара

WEND конец цикла

CLOSE #1 закрытие файла

END конец программы

1.5.4. В качестве задания составьте программу “Записная книжка” в файле прямого доступа с тремя полями: имя, адрес, телефон.

Лабораторная работа № 1.6 (C:\USER\GROUP\NOF\lab6.bas)

Программирование итерационных вычислительных процессов

1.6.1. Цель работы. Получение практических навыков алгоритмизации и программирования простых циклических процессов , число повторений которых не задано.

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

Yi+1 = f( Yi ) , i=0,1,...,N-1, (1.6.1)

где i-номер итерации; N - номер итерации, на которой обрывается процесс вычислений.

При этом начальное приближение Y0 ( нулевая итерация ) выбирается по

определенным правилам или задается заранее.

Численное значение N определяется из выполнения условия cходимости итераций

| Yi+1 - Yi | ≤Е , (1.6.2)

и считается, что величина Y = YN вычислена с заданной точностью Е [I, 1-2].

1.6.3. Пример. Подготовить и организовать на ПЭВМ итерационные вычисления по рекуррентной формуле

Yi+1 = 1 / 2 * (Xi / Yi + Yi ) , i=0,1,...,N-1 (1.6.3)

с заданной точностью E. Значение аргумента X, начальное приближение Y0 и точность вычислений Е, задается следующим образом:

X = 4.5 ; Y = 0.9 * X ; E = 10-3; (1.6.4a)

X = 2 ; Y = 1 ; E = 10-2 . (1.6.4б)

Для удобства программирования запишем Y в виде:

Y0 = R * Xk, (1.6.5)

тогда для случая (1.6.4а) значения множителя R и степени k соответственно равны

R = 0.9 ; k = 1 , а для случая ( 6.4б ) R = 1 ; k = 0 .

Алгоритм решения задачи основывается на циклических вычислениях по рекуррентной формуле (1.6.3) и проверки выполнения условия (1.6.2). При этом алгоритм решения задачи должен предусматривать запоминание значений Y на i+1 и i итерациях (Y и Z).Текст БЭЙСИК - программы алгоритма решения задачи для примера (1.6.3) приведен ниже