Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Структура программы на языке Турбо Паскаль



Билет№4

Программное обеспечение

Совокупность программ, предназначенная для решения задач на ПК, называется программным обеспечением. Состав программного обеспечения ПК называют программной конфигурацией.
Программное обеспечение, можно условно разделить на три категории:

· системное ПО (программы общего пользования), выполняющие различные вспомогательные функции, например создание копий используемой информации, выдачу справочной информации о компьютере, проверку работоспособности устройств компьютера и т.д.
· прикладное ПО, обеспечивающее выполнение необходимых работ на ПК: редактирование текстовых документов, создание рисунков или картинок, обработка информационных массивов и т.д.
· инструментальное ПО (системы программирования), обеспечивающее разработку новых программ для компьютера на языке программирования.

Пакет прикладных программ — программный пакет, комплекс взаимосвязанных программ, предназначенных для решения задач определённого класса конкретной предметной области. Служат программным инструментарием решения функциональных задач и являются самым многочисленным классом программных продуктов. В данный класс входят программные продукты, выполняющие обработку информации различных предметных областей.
Инструментальное средство разработки экспертных систем – это язык программирования, используемый инженером знаний или (и) программистом для построения экспертной системы. Этот инструмент отличается от обычных языков программирования тем, что обеспечивает удобные способы представления сложных высокоуровневых понятий.

По своему назначению и функциональным возможностям инструментальные программы, применяемые при проектировании экспертных систем, можно разделить на четыре достаточно большие категории.

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

Общими словами, операционная система — это первый и основной набор программ, загружающийся в компьютер. Помимо вышеуказанных функций ОС может осуществлять и другие, например предоставление общего пользовательского интерфейса и т.п.

Сегодня наиболее известными операционными системами являются ОС семейства Microsoft Windows и UNIX-подобные системы.

 

Билет№5

http: //gadzzilla.org/2004-2011/azbuka/index10.htm#002

Билет№6

Алфавит языка Турбо Паскаль включает буквы, цифры, шестнадцатеричные цифры, специальные символы, пробелы и зарезервированные слова.
Буквы — это буквы латинского алфавита от а до z и от А до Z, а также знак подчеркивания _ (код ASCII 95). В Турбо Паскале нет различия между прописными и строчными буквами алфавита, если только они не входят в символьные и строковые выражения.

Цифры — арабские цифры от 0 до 9.

Каждая шестнадцатеричная цифра имеет значение от 0 до 15. Первые 10 значений обозначаются арабскими цифрами 0—9, остальные шесть — латинскими буквами A—F или a—f.
Специальные символы Турбо Паскаля:

+ - * / =, '.: ; < > [ ] { } ^ @ $ #

К специальным символам относятся также следующие пары символов:

< > < = > =: = ( * * ) (..)

В программе эти пары символов нельзя разделять пробелами, если они используются как знаки операций отношения или ограничители комментария. Пары символов (. и. ) могут заменять символы [ и ] соответственно.

Особое место в алфавите языка занимают пробелы, к которым относятся любые символы ASCII в диапазоне кодов от 0 до 32. Эти символы рассматриваются как ограничители идентификаторов, констант, чисел, зарезервированных слов. Несколько следующих друг за другом пробелов считаются одним пробелом (последнее не относится к строковым константам). В Турбо Паскале имеются следующие зарезервированные слова*:

and end nil shr

asm file not string

array for object then

begin case const constructor

destructor div do downto

else function goto implementation

if in inline interface

label mod of or

procedure program record repeat

set shl to type

unit until uses var

while with xor packed

Тип данных — фундаментальное понятие теории программирования. Тип данных определяет множество значений, набор операций, которые можно применять к таким значениям, и, возможно, способ реализации хранения значений и выполнения операций. Любые данные, которыми оперируют программы, относятся к определённым типам.
Константы – неизменяемые величины в программе. Их можно классифицировать на:

1. арифметические;

2. логические;

3. символьные;

4. строковые;

5. множественные.

Арифметические константы можно классифицировать на:

1. целого типа: десятичные и шестнадцатеричные;

2. Целая десятичная константа – любое десятичное число без десятичной точки со знаком или без него.
Пример: -128 127 +127.

3. Целая шестнадцатеричная константа – набор шестнадцатеричных цифр:

4. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Переменные

Переменная — это именованный участок памяти, в котором хранится значение, которое может быть изменено программой. Все переменные перед их использованием должны быть объявлены.

Билет№7

Структура программы на языке Турбо Паскаль

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

Писать программы в Турбо Паскале можно как строчными, так и прописными символами.

Заголовок программы начинается с ключевого слова program, после которого должен быть написан сам заголовок. Например, program raschet;

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

После заголовка, обычно с новой строки, идет список используемых в программе модулей. Этот список начинается с ключевого слова uses, после которого через запятую перечисляются модули. В модулях Turbo Pascal (или Delphi) содержаться функции, облегчающие работу программиста. Они могут быть стандартными или пользовательскими. К стандартным модулям относятся system (этот модуль подключается автоматически к каждому проекту), crt, overlay, printer, graph, dos. Все эти модули находятся в файле turbo.tpl и только модуль graph, расположен в graph.tpu. Пользовательские модули написаны самим программистом для облегчения собственной работы. Их использование позволяет избавиться от копирования кода из одного проекта в другой. Данный раздел также не является обязательным.

После описанных модулей следует блок описание. Он также не является обязательным, однако без него трудно написать полезную программу. В блоке описания могут быть использованы следующие ключевые слова:

Const – для описания констант. Константы перечисляются через точку с запятой, и имею вид «имя константы»=«значение». Например, const min=0; max=100;

Type – описывают типы. Запись типов имеет вид «название типа»=«тип». Например, Type dni=1..31; bukva=‘a’..’z’;

Label – описывает метки которые можно установить перед любым оператором, для перехода к нему из любого места программы. Для перехода необходимо использовать оператор goto. Пример записи меток: Label M1, M2;

Var – встречается практически в каждой программе. Описывает используемые переменные. Запись переменных имеет следующий вид «имя переменной»= «тип переменной». В качестве типа переменной могут использоваться стандартные типы или типы, описанные в разделе описания. Пример. Var x, y: real; t: integer;

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

Последним обязательным разделом является раздел операторов. В нем записываются все действия, которые должны происходит в программе. Данный раздел начинается с ключевого слова begin и заканчивается ключевым словом end.

Раздел описания констант

Константа - это величина, которая не изменяет своего значения в процессе выполнения программы. С константами мы с Вами уже встречались, так как в общем случае константой является любое целое или вещественное число, символ, идентификаторы false и true, а также идентификаторы, обозначающие значения переменных перечисляемого типа. Но константа может быть обозначена и именем. В этом случае она должна быть описана в разделе описания констант. Раздел описания констант начинается словом Const от англ. constancy - постоянство).

Например,

Const N = 25; K = 38; D = (N + K) Div 2; Letter = 'f'; M = 5E15

Здесь n, k, d - это целочисленные, letter - константа символьного типа, а m - константа вещественного типа. Следует заметить, что константа d принимает свое значение после вычисления выражения. В разделе констант можно использовать лишь некоторые стандартные функции, такие, как Abs, Chr, Pred, Succ, Odd, Ord.

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

Раздел описания переменных

Одним из центральных понятий любого языка програмирования является переменная.
Наряду с переменными и константами существуют и так называемые типизированные константы. В описании типизированной константы присутствуют описание типа и одно из допустимых значений, например,

Const N: Integer = 15; ch: Char = #87.

Типизированные константы являются, собственно говоря, переменными. В частности, они могут изменять своё значение в процессе выполнения программы. К преимуществам можно отнести и то, что они инициализируются в начале программы.

Раздел описания типов

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

Тип данных определяет:

формат представления данных в памяти ЭВМ;
множество допустимых значений;
множество допустимых операций.

 

Билет№8

Функции в Паскале

Набор встроенных функций в языке Паскаль достаточно широк (ABS, SQR, TRUNC и т.д.). Если в программу включается новая, нестандартная функция, то ее необходимо описать в тексте программы, после чего можно обращаться к ней из программы. Обращение к функции осуществляется в правой части оператора присваивания, с указанием имени функции и фактических параметров. Функция может иметь собственные локальные константы, типы, переменные, процедуры и функции. Описание функций в Паскале аналогично описанию процедур. Отличительные особенности функций: - результат выполнения - одно значение, которое присваивается имени функции и передается в основную программу;
- имя функции может входить в выражение как операнд.

Билет№9

Оператор ввода read

При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Чтение исходных данных логического типа в языке Паскаль недопустимо. Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.

Если в программе имеется несколько операторов read, то данные для них вводятся потоком, т.е. после считывания значений переменных для одного оператора read данные для следующего оператора читаются из той же строки на экране, что и для предыдущего до окончания строки, затем происходит переход на следующую строку. Другой вариант оператора ввода с клавиатуры имеет вид:

readln(< список ввода> )

Этот оператор отличается от read только тем, что после считывания последнего в списке значения для одного оператора readln данные для следующего оператора будут считываться с начала новой строки.

 

Оператор вывода write

Переменные, составляющие список вывода, могут относиться к целому, действительному, символьному или логическому типам. В качестве элемента списка вывода кроме имен переменных могут использоваться выражения и строки. При выводе на экран нескольких чисел в строку они не отделяются друг от друга пробелами. Программист сам должен позаботиться о таком разделении.
Второй вариант процедуры вывода на экран:

writeln(< список вывода> )

Его действие отличается от оператора write тем, что после вывода последнего в списке значения происходит перевод курсора к началу следующей строки. Оператор writeln, записанный без параметров, вызывает перевод строки.

Вывод каждого значения в строку экрана происходит в соответствии с шириной поля вывода, определяемой конкретной реализацией языка. Форма представления значений в поле вывода соответствует типу переменных и выражений: величины целого типа выводятся как целые десятичные числа, действительного типа - как действительные десятичные числа с десятичным порядком, символьного типа и строки - в виде символов, логического типа - в виде логических констант TRUE и FALSE.

Оператор вывода позволяет задать ширину поля вывода для каждого элемента списка вывода. В этом случае элемент списка вывода имеет вид А: К, где А - выражение или строка, К - выражение либо константа целого типа. Если выводимое значение занимает в поле вывода меньше позиций, чем К, то перед этим значением располагаются пробелы. Если выводимое значение не помещается в ширину поля К, то для этого значения будет отведено необходимое количество позиций. Для величин действительного типа элемент списка вывода может иметь вид А: К: М, где А - переменная или выражение действительного типа, К - ширина поля вывода, М - число цифр дробной части выводимого значения. К и М - выражения или константы целого типа. В этом случае действительные значения выводятся в форме десятичного числа с фиксированной точкой.

Билет№10

Оператор ветвления (условная инструкция, условный оператор) — оператор, конструкция языка программирования, обеспечивающая выполнение определённой команды (набора команд) только при условии истинности некоторого логического выражения, либо выполнение одной из нескольких команд (наборов команд) в зависимости от значения некоторого выражения.
Условный оператор

Условный оператор реализует выполнение определённых команд при условии, что некоторое логическое выражение (условие) принимает значение «истина» true. В большинстве языков программирования условный оператор начинается с ключевого словаif.

Встречаются следующие формы условного оператора:

Определение

Понятие составного оператора появилось в языке программирования Алгол. Введённые в этом языке структурные операторы (ветвление, цикл) были организованы таким образом, что в них могла использоваться только одна команда языка. Чтобы не ограничивать программиста, в язык было введено понятие составного оператора: любой набор операторов, размещённый между ключевыми словами begin и end, с точки зрения транслятора становился одной командой (оператором) и мог использоваться в любом месте программы, где следует использовать один оператор.

 

Билет№11

Цикл – это многократно повторяющиеся фрагменты программ.Алгоритм циклической структуры – это алгоритм, содержащий циклы.
В ТР существует три оператора цикла:

· цикл с предусловием;

· цикл с постусловием;

· цикл с параметром.

Для всех циклов характерны следующие особенности:

· значения переменных используемых в цикле, и не изменяющиеся в нем д.б. определены до входа в цикл;

· вход в цикл возможен только через его начало;

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

 

Билет№12

Табулирование функции — это вычисление значений функции при изменении аргумента от некоторого начального значения до некоторого конечного значения с определённым шагом.

Алгоритм табулирования

Применяется для составления всевозможных таблиц, которыми могут быть как абстрактная таблица значений математической функции, так и конкретная таблица стоимости товара или платежей, совершенных абонентом сотового оператора.
В общем виде алгоритм можно описать так:

1. до цикла задается начальное значение управляющей переменной, условием выхода из цикла служит достижение управляющей переменной конечного значения;
2. в теле цикла на каждом шаге вычисляется очередное значение функции, зависящее от управляющей переменной, затем формируется строка таблицы;
3. в конце шага цикла значение управляющей переменной (обозначим ее x) изменяется оператором вида x: =x+d;, где d -- заданный шаг по управляющей переменной.

В качестве примера составим таблицу синусов в пределах от 0 до π с шагом по аргументу 0.25. Обозначим аргумент как x, значение синуса от x обозначим как y. В простейшем случае программа табулирования может выглядеть так:

var x, y: real;

begin

writeln('x': 10, 'sin(x)': 10);

{печать заголовка таблицы до цикла}

x: =0; {начальное значение аргумента}

while x< =pi+1e-6 do begin

y: =sin(x); {вычисление функции}

writeln (x: 10: 2, y: 10: 2);

{печать строки таблицы}

x: =x+0.25; {шаг по x}

end;

end.

 

Билет№13

Рекуррентная формула (от лат. recurrens, родительный падеж recurrentis — возвращающийся), формула приведения, формула, сводящая вычисление n-го члена какой-либо последовательности (чаще всего числовой) к вычислению нескольких предыдущих её членов. Обычно эти члены находятся в рассматриваемой последовательности " недалеко" от её n-го члена, число их от n не зависит, а n-й член выражается через них достаточно просто. Однако возможны Р. ф. и более сложной структуры.

Рекуррентная формула — формула вида , выражающая каждый член последовательности через p предыдущих членов.

 

Билет№14

Массив — упорядоченный набор данных, для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа.

Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя — двумерными и т. д. Одномерный массив нестрого соответствует вектору в математике, двумерный — матрице. Чаще всего применяются массивы с одним или двумя индексами, реже — с тремя, ещё большее количество индексов встречается крайне редко.

???

Билет№15

Одномерный массив – это массив, в котором каждый элемент определяется с помощью одного номера.

Номер элемента массива называется индексом. Массив задается с помощью слова array.

 

Билет№16

Билет№17

Билет№18

Билет№19

Program Pr22 (Input, Output); Объявление имени программы
Var Блок объявления глобальных переменных
X: Array [1..20, 1..20] Of Real; Переменная X - двумерный массив действительных чисел, размер - не более 20x20
N: Integer; Переменная N - число элементов массива X
S: Real; Переменная S - искомая сумма элементов массива
i, j: Integer; Переменные i, j - параметры циклов
   
Begin Начало тела программы
   
WriteLn ('PASCAL: Вычисление суммы элементов прямоугольной таблицы.'); Формулировка цели алгоритма
Write ('Введите размерность таблицы: N = '); Запрос ввода N - числа элементов массива
ReadLn (N); Ввод N
WriteLn ('Введите элементы таблицы: '); Запрос ввода элементов таблицы
For i: = 1 To N Do Цикл для i от 1 до N, где i - номер очередной строки
For j: = 1 To N Do Цикл для j от 1 до N, где j - номер очередного столбца
Begin Начало тела цикла
Write ('X[', i, ', ', j, '] = '); Вывод удобной подсказки
ReadLn (X [i, j] ); Ввод очередного элемента - X[i, j]
End; Конец тела цикла
   
S: = 0; Переменной S присваиваем начальное значение 0
For i: = 1 To N Do Цикл для i от 1 до N, где i - номер очередной строки
For j: = 1 To N Do Цикл для j от 1 до N, где j - номер очередного столбца
S: = S + X [i, j]; Прибавляем к S очередной элемент массива X - X[i, j]
   
WriteLn ('Cумма: S = ', s: 6: 1); Вывод полученного значения суммы
ReadLn; Ожидание нажатия клавиши Enter для завершения
End. Конец программы.

 

Билет№20

Нахождение наибольшего элемента в заданной строке матрицы

Пусть задана матрица А из действительных чисел размера 3х4. Найти наибольший элемент во второй строке данной матрицы.

Программа решения задачи:

Program max_st;

Type Matr=array[1..3, 1..4] of real;

Var max: real;

a: Matr;

i, j: integer;

begin

for i: =1 to 3 do

for j: =1 to 4 do

begin
writeln(‘Введите элемент а[‘, i, ', ', j, ']');

readln(a[i, j]);

end;

max: =a[2, 1];

for j: =2 to 4 do

if max< a[2, j] then max: =a[2, j];

writeln(‘Наибольший элемент второй строки=', max: 8: 2);

end.

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

Билет№21

Файл - это упорядоченная последовательность однотипных компонентов, расположенных на внешнем носителе. Файлы предназначены только для хранения информации, а обработка этой информации осуществляется программами. Использование файлов целесообразно в случае:

1. долговременного хранения данных;

2. доступа различных программ к одним и тем же данным;

3. обработки больших массивов данных, которые невозможно целиком разместить в оперативной памяти компьютера.

В Паскале определены текстовые файлы, типизированные и нетипизированные. Файл, не содержащий ни одного элемента, называется пустым. Создается файл путем добавления новых записей в конец первоначально пустого файла. Длина файла, т.е. количество элементов, не задается при определении файла.

Все файлы должны быть описаны в программе либо в разделе переменных VAR, либо в разделе типов TYPE. Под чтением файла понимают ввод данных из внешнего файла, находящегося на диске, в оперативную память машины. Запись в файл - вывод результатов работы программы из оперативной памяти на диск в файл.

Работа с файлами выполняется следующими процедурами:

Assign – устанавливает связь между именем файла в программе (файловой переменной ) и физическим именем файла, принятым в ОС.
Reset - открывает существующий файл для чтения.
Rewrite – создает и открывает новый файл для записи на внеш нем устройстве (если файл ранее существовал, вся предыдущая информация из него стирается).
Close - закрывает открытый файл.

Текстовые файлы

Текстовые файлы – файлы на диске, состоящие из символов ASCII. Для разделения строк используются символы «конец строки». Текстовые файлы являются файлами с последовательным доступом. В любой момент времени доступна только одна запись файла. Другие записи становятся доступными лишь в результате последовательного продвижения по файлу. Текстовые файлы внутренне разделены на строки, длины которых различны. Для разделения строк используется специальный маркер конца строки. Объявляются текстовые файлы переменной типа text. Обрабатывать их можно только последовательно и с помощью процедур и функций:

Readln (f, st )- чтение строки st из файла f и переход на начало следующей;
Writeln (f, st )- запись строки st в файл f и маркера конца строки;
Append (f ) - процедура, открывающая файл f для добавления строк в конец файла;
Eoln (st )- логическая функция, результат выполнения которой равен TRUE, если достигнут маркер конца строки st.

Типизированные файлы

Типизированные файлы – это файлы, состоящие из нумерованной последовательности объектов (записей) любого типа. С такими файлами можно работать в режиме прямого доступа, при котором выполняется непосредственное об ращение к любой записи файла. Каждая запись файла имеет свой номер, начиная с 0 и т.д.
Процедуры и функции обработки файлов:

1) Write и Read- записывают и читают информацию из указанного файла и перемещают указатель файла к сле дующей записи.
2) Seek (файловая переменная, номер записи); процедура перемещения указателя на запись файла с заданным номером.
3) Truncate (файловая переменная); процедура, усекающая файл по текущей позиции указа теля файла, т.е. все записи, находящиеся после указателя фай ла, удаляются.
4) Функция Filesize (файловая переменная); имеет тип Integer и определяет размер файла, т.е. число записей.
5) Функция Filepos (файловая переменная); имеет тип Integer и возвращает текущую позицию указателя файла.

Для добавления записей в конец файла используются процедуры:

Readln (a );
Seek (f, filesize (f));
Write (f, a);

Билет№22

Любые идентификаторы, введенные внутри какого-либо блока (процедуры, функции) для описания переменных, констант, типов, процедур, называются локальными для данного блока. Такой блок вместе с вложенными в него модулями называют областью действия этих локальных переменных, констант, типов и процедур.
Константы, переменные, типы, описанные в блоке program, называются глобальными. Казалось бы, проще иметь дело вообще только с глобальными переменными, описав их все в program. Но использование локальных переменных позволяет системе лучше оптимизировать программы, делать их более наглядными и уменьшает вероятность появления ошибок.

Функции.
Решение многих задач является достаточно универсальным. Незачем каждый раз писать алгоритм для ее решения, если он уже был написан много лет назад и одобрен сообществом программистов. Такие алгоритмы оформляются в виде функций и модулей, а затем используются в программах, которые пишутся здесь и сейчас.

Функция или процедура может быть уже включена в сам язык программирования, а может входить в модуль, который требуется «подключить» к программе.

1. Арифметические функции

2. Функции преобразования типов

3. Функции для величин порядкового типа

Формальные параметры – это наименование переменных, через которые передается информация из программы в процедуру либо из процедуры в программу.

 

Билет№23

Процедуры.

В большинстве языков структурного программирования подпрограммы существуют только в виде функций. В Паскале же их два типа: процедуры и функции. Их заголовки выглядят соответственно так:

procedure имя (параметры);

function имя (параметры): тип результата;

Между функциями и процедурами есть существенное отличие. Значение, полученное в результате выполнения кода функции, жестко соотносится с ее именем путем присвоения этому имени конкретного значения. Тип, который может принять вычисляемое значение, указывается в заголовке функции (тип результата). И в теле основной программы функция вызывается только в том случае, если ее имя фигурирует в каком-либо выражении. В то время как процедура вызывается отдельно.

Параметр-значения.

Если в качестве формального параметра указана переменная, то такой параметр и есть параметр-значение. Примерами таких параметров служат параметры a, b и с в процедуре sq:

procedure sq((a, b, c: real; var x1, x2: real);

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

Если фактический параметр есть имя переменной, например, r, то значение этой переменной пересылается в соответствующий формальный параметр, например, a. На этом всякая связь между a и r обрывается.

Параметры-переменные.

Если перед именем формального параметра стоит ключевое слово var, то такой параметр есть параметр-переменная. Примерами таких параметров служат x1 и x2 в заголовке

procedure sq(a, b, c: real; var x1, x2: real);

Фактический параметр, соответствующий параметру-переменной, может быть только переменной (не константой и не выражением).

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

Пример. При вызове процедуры sq оператором sq(p, q, r, y, z) для переменных x1 и x2 используются непосредственно те ячейки, которые отведены для y и z. Поэтому оператор присваивания x1: = (-b + sqrt(d)) / (2 * a) засылает полученное значение в y.

Под формальные и фактические параметры-значения транслятор отводит разные области памяти. Поэтому результат выполнения процедуры может быть передан только через параметр-переменную.

Билет№24

Модуль (программирование) — функционально законченный фрагмент программы, оформленный в виде отдельного файла с исходным кодом или поименованной непрерывной её части.

Структура модулей

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


Программный модуль может использовать другие модули, для этого они определяются в операторе uses. Оператор uses (если он имеет место) может содержаться в двух местах. Во-первых он может следовать сразу после ключевого слова interface. В этом случае любые константы и типы данных, описанные в интерфейсной секции этих модулей, могут использоваться в любом описании в интерфейсной части данного модуля.


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

Билет№25

Метод половинного деления

Его ещё называют методом дихотомии. Этот метод решения уравнений отличается от выше рассмотренных методов тем, что для него не требуется выполнения условия, что первая и вторая производная сохраняют знак на интервале [a, b]. Метод половинного деления сходится для любых непрерывных функций f(x) в том числе недифференцируемых.

Разделим отрезок [a, b] пополам точкой . Если (что практически наиболее вероятно), то возможны два случая: либо f(x) меняет знак на отрезке [a, c] (Рис. 3.8), либо на отрезке [c, b] (Рис. 3.9)

Рис. 3.8 Рис. 3.9

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

Билет№26

Билет№27

Численные методы решения алгебраических уравнений имеют самостоятельное значение для исследования статических моделей. Уравнение вида х = f(х) называют заданным в неявной форме, если неизвестная переменная х входит в обе части уравнения, а f — функция, не содержащая интегрирования, дифференцирования или запаздывания х.

Если решение уравнения х =f(x) существует и находится в области вещественных чисел, то оно может быть найдено по простой итерационной формуле

Метод Ньютона

Основная идея метода заключается в следующем: задаётся начальное приближение вблизи предположительного корня, после чего строится касательная к исследуемой функции в точке приближения, для которой находится пересечение с осью абсцисс. Эта точка и берётся в качестве следующего приближения. И так далее, пока не будет достигнута необходимая точность.

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

где α — угол наклона касательной в точке .

Следовательно искомое выражение для имеет вид:

Билет№28

Численные методы.
Разрешимость системы линейных уравнений.
Когда мы говорим о главной матрице системы линейных уравнений, то всегда имеем в виду квадратную матрицу nЧn, т. е. матрицу с одинаковым количеством строк и столбцов. Это важно.
Если, например, количество строк (количество уравнений в системе) будет меньше, чем количество столбцов (фактически, количества неизвестных), то система будет неопределенной, т. е. мы не сможем однозначно определить все неизвестные (решить систему).
Но это не единственное ограничение. Из векторной алгебры известно, что система линейных уравнений имеет решение (однозначное) тогда и только тогда, когда ее главный определитель не равен нулю: Δ ≠ 0.
Рассмотрим случай, когда определитель системы равен нулю. Здесь возможны два варианта:
1. Δ = 0 и каждый из дополнительных определителей Δ xi = 0. Это имеет место только тогда, когда коэффициенты при неизвестных xi пропорциональны, т. е. каждое уравнение системы получается из первого уравнения умножением обеих его частей на число k. При этом система имеет бесчисленное множество решений.
2. Δ = 0 и хотя бы один дополнительный определитель Δ xi ≠ 0. Это имеет место только тогда, когда коэффициенты при всех неизвестных xi, пропорциональны. При этом получается система из противоречивых уравнений, которая не имеет решений.

Постановка задачи

Пусть есть функция .
Требуется найти корень этой функции: такой при котором
Решение необходимо найти численно, то есть для реализации на ЭВМ. Для решения этой задачи предлагается использовать метод простых итераций.

Билет№29

Метод Зейделя

Метод Зейделя (иногда называемый методом Гаусса-Зейделя) является модификацией метода простой итерации, заключающейся в том, что при вычислении очередного приближения x(k+1) (см. формулы (1.13), (1.14)) его уже полученные компоненты x1(k+1), ..., xi - 1(k+1) сразу же используются для вычисления xi(k+1).

В координатной форме записи метод Зейделя имеет вид:


Поделиться:



Последнее изменение этой страницы: 2017-03-14; Просмотров: 860; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.12 с.)
Главная | Случайная страница | Обратная связь