Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции_Информатика

.pdf
Скачиваний:
27
Добавлен:
23.03.2016
Размер:
2.42 Mб
Скачать

81

этих точек выполняется указанное условие. Схема алгоритма уточнения корня методом Ньютона (методом касательных) приведена на рис. 5.15.

 

 

 

 

 

 

Начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ввод a, b, ε

 

 

 

 

Нет

 

 

 

 

 

 

 

Да

 

 

f(a)f"(a) > 0

 

 

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

Да

 

x:=a

 

 

f(b)f"(b) >

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x:=b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"ошибка"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Останов

 

h:=f(x)/f'(x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|h| < ε

 

 

Вывод x, f(x)

Конец

5.15Схема алгоритма уточнения корня методом касательных

5.3.4.Метод хорд

Геометрическая интерпретация метода хорд приведена на рис. 5.16. Проведем через точки (a, ya) и (b, yb) прямую. Уравнение этой прямой:

y f (a)

 

x a

.

 

f (b) f (a)

b a

 

 

 

 

y

 

 

Рис. 5.16 Графическая иллюстрация

y=f(x)

 

 

метода хорд

 

 

 

yb=f(b)

0

a x0

x1 x2

y =f(a)

x

Переход к ОГЛАВЛЕНИЮ

b b

 

82

Начальное приближение корня равно абсциссе точки пересечения и оси абсцисс (легко определяется также из соответствующих пропорций):

x

a

b a

f (a).

 

0

 

f (b) f (a)

 

 

 

 

Из двух отрезков [a, x0] и [x0, b] выберем тот, на концах которого функция f(x) имеет разные знаки (т. е. отрезок, содержащий корень уравнения). Проведем секущую на новом отрезке [x0, b] и получим следующее приближение корня x1. Формируем последовательность x0, x1, x2, …, xn, … до выполнения условия

|xn xn-1| < ε.

Схема алгоритма уточнения корня методом хорд (методом пропорциональных частей) приведена на рис. 5.17.

Начало

Ввод a, b, ε

z:=f(a); t:=f(b) x:=a

u : x

 

 

 

x : a

b a

z

t

z

 

 

y : f (x)

 

 

 

 

 

 

 

Нет

 

Да

 

 

y·z < 0

 

 

 

 

 

 

 

A:=x; z:=y

 

 

b:=x; t:=y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нет

|n-z| < ε

 

 

 

Да

 

 

 

Вывод x, f(x)

 

 

 

 

Конец

Рис. 5.17 Схема алгоритма уточнения корня методом хорд

Переход к ОГЛАВЛЕНИЮ

83

5.4.Алгоритмы обработки массивов

5.4.1.Определение минимального элемента в массиве.

Задача нахождения минимума (или максимума) в массиве из N элементов может быть решена последовательным сравнением "текущего" минимального (максимального) значения со значением очередного элемента массива и "запоминанием" при необходимости нового значения. Схема алгоритма показана на рис. 5.18.

 

Начало

 

 

Ввод

 

 

 

данных

 

 

x

 

 

= x

1

 

 

min

 

 

 

 

i

min

= 1

 

 

 

 

 

 

 

 

i =2,n

 

 

Нет

x

<x

 

 

Да

 

min

 

 

 

i

 

 

 

x

min

= x

 

 

i

i

min

= i

 

 

 

Вывод

x

min

, i

min

 

 

Конец

Рис. 5.18 Алгоритм определения минимального элемента массива

5.4.2. Сортировка массива.

Допустим, необходимо упорядочить массив из N элементов по возрастанию. Задача решается последовательным сравнением пар соседних

Переход к ОГЛАВЛЕНИЮ

84

элементов массива и при необходимости их перестановкой. Сравнение происходит при N-1 проходах по всему массиву. Схема алгоритма показана на рис. 5.19.

Начало

Ввод исходных данных

i=1(1)n-1

k=i(-1)1

Нет

Да

 

 

a >a

k+1

 

 

k

 

 

 

x=a

 

 

 

k

 

 

a =a

k+1

 

k

 

 

a

=x

 

k+1

 

 

Вывод результата

Конец

Рис. 5.19 Алгоритм сортировки массива методом пузырька

5.4.3. Произведение матриц

Пусть необходимо найти произведение двух матриц А и В размером 2х3 и 3х3 соответственно. Элементы результирующей матрицы С (размером 2х3) определяются по формуле

m

 

cij aik bkj ;

i 1,2, ,n; j 1,2, , p,

k 1

 

где n – число строк матрицы А;

m – число столбцов матрицы А и число строк матрицы В;

Переход к ОГЛАВЛЕНИЮ

85

p – число столбцов матрицы В.

В общем случае результирующая матрица имеет размер n p. Схема алгоритма умножения двух матриц представлена на рис. 5.20.

Начало

 

Ввод

 

 

матриц

 

A, B

 

 

i=1,n

 

 

j=1,p

 

 

S=0

 

 

k=1,m

 

S=S+a

ik

b

kj

 

 

 

c

=S

 

 

ij

 

 

 

 

Вывод

 

C

 

 

 

Конец

 

Рис. 5.20 Алгоритм умножения матриц

5.5. Алгоритм обработки строк

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

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

Переход к ОГЛАВЛЕНИЮ

86

слово до следующего пробела. После выделения слово удаляется из строки. Для выделения последнего слова строки, если в конце строки нет пробелов, за слово будет считаться оставшаяся часть строки.

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

Начало

 

Ввод

 

строки

 

k:=0

 

Удаление

 

пробелов

 

Строка

Нет

 

не пуста

 

Да

 

Выделение

 

слова

 

Вывод

 

слова

 

k:=k+1

 

Удаление

 

пробелов

 

Вывод k

Конец

Процедура удаления

пробелов в строке

Вход в Trim(S)

Есть

Нет

 

пробел

 

Да

 

Удаление

 

пробела

 

Выход (S)

Функция

выделения

 

 

слова

 

Вход в

 

GetWord(S)

 

Определение

 

пробела в S

Да

Нет

 

Есть пробел

Выделение

Слово - конец

слова

строки

Удаление

Обнуление

слова

строки

 

Выход

 

(GetWord)

Рис. 5.21 Алгоритм подсчета количества слов в строке и их вывод

Переход к ОГЛАВЛЕНИЮ

87

5.6. Алгоритм обработка записей

Пусть имеются некоторые данные о заводах города, сведенные в следующую таблицу:

 

 

 

Основные сведения

 

 

 

 

 

 

 

 

Зани-

Объем выпускаемой

Количество

Завод

продукции

обслуживающего персонала

маемая

 

 

 

 

 

 

 

факти-

с высшим

со средним

 

площадь

по плану

 

чески

образованием

образованием

 

 

 

 

 

 

 

 

 

 

 

АЗЛК

800

484,9

484,9

282

204

ВАЗ

396

348,5

348,7

130

669

ЗИЛ

203

384,3

399,4

448

125

ИЖ

544

667,3

701,3

396

157

 

 

 

 

 

 

Всего

 

 

 

 

 

 

 

 

 

 

 

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

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

Начало

Ввод n

i = 1, n

Ввод i- й записи

Вывод

таблицы

Обнуление

сумм

i = 1, n

Накопление

сумм

Вывод

итоговой

строки

Конец

Рис. 5.22 Алгоритм обработки массива записей

Переход к ОГЛАВЛЕНИЮ

88

Глава 6. Лекция 6

6.1. Вычислительные сети

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

Каналы связи

Узлы

Структура вычислительной сети

Узел – это любое устройство, непосредственно подключенное к передающей среде сети. Узлами могут быть не только ЭВМ, но и сетевые периферийные устройства, например, принтеры.

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

Узлы обмениваются сообщениями. Здесь сообщение – это целостная последовательность данных, передаваемых по сети.

Отдельные части сети называются сегментами.

Передающая среда сети (канал связи) определяет, как будут передаваться сообщения по сети. Примерами передающих сред являются кабельные, радио-, спутниковые каналы.

Вычислительные сети имеют следующие характеристики.

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

- времени передачи запроса от пользователя к узлу сети, ответственному за его исполнение;

- времени выполнения запроса в этом узле; - времени передачи ответа на запрос пользователю.

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

3.Надежность – это среднее время наработки на отказ.

4.Безопасность – это способность сети обеспечить защиту информации от несанкционированного доступа.

5.Масштабируемость – это возможность расширения сети без заметного снижения ее производительности.

6.Универсальность сети – это возможность подключения к сети разнообразного технического оборудования и программного обеспечения от разных производителей.

Переход к ОГЛАВЛЕНИЮ

89

Вычислительные сети используются в следующих целях:

1)предоставление доступа к программам, оборудованию и данным для любого пользователя сети; эта цель называется совместным использованием ресурсов;

2)обеспечение высокой надежности хранения источников информации; хранение данных в нескольких местах позволяет избежать их потерю, в случае их удаления в одном из мест;

3)обработка данных, хранящихся в сети;

4)передача данных между удаленными друг от друга пользователями.

По виду технологии передачи вычислительные сети делятся на следующие типы:

-широковещательные сети обладают общим каналом связи, совместно используемым всеми узлами; сообщения передаются всем узлам; примером широковещательной сети является телевидение;

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

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

По размеру сети можно подразделить на следующие типы:

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

-региональные сети объединяют несколько предприятий или город; примером сетей такого типа является сеть кабельного телевидения;

-глобальные сети охватывают значительную территорию, часто целую страну или континент и представляют собой объединение сетей меньшего размера; примером глобальной сети является сеть Интернет.

По принципу построения сети делятся на следующие типы:

-одноранговые сети объединяют равноправные узлы; такие сети объединяют не более 10 узлов;

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

6.2. Модель взаимодействия открытых систем

Для описания общей модели взаимодействие открытых систем используется эталонная модель OSI (Open System Interconnection). Модель OSI состоит из 7 уровней (от низших к высшим):

1)физический;

2)канальный;

3)сетевой;

4)транспортный;

5)сеансовый;

6)представительский;

7)прикладной.

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

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

Переход к ОГЛАВЛЕНИЮ

90

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

Передача данных

Прикладной

Представительский

Сеансовый

Транспортный

Сетевой

Канальный

Физический

данных Прием

Уровни модели взаимодействия открытых систем

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

Рассмотрим задачи каждого из уровней модели OSI.

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

2-й уровень – канальный. На этом уровне физический канал преобразовывается в надежную линию связи, свободную от необнаруженных ошибок. Для этого формируется логический канал между двумя узлами, соединенных физическим каналом. Данные передаются по канальному уровню в виде кадров, которые включают, помимо данных, проверочную информацию. Проверочная информация позволяет установить, был ли передан кадр без искажений (ошибок) и частично восстановить информацию. Если кадр не был восстановлен, то происходит его повторная передача.

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

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

5-й уровень – сеансовый. Позволяет двум процессам (например, приложениям) разных узлов устанавливать, использовать и завершать соединение, называемое сеансом. Этот уровень управляет передачей между двумя узлами и определяет, какая из сторон, когда и как долго должна осуществлять передачу.

6-й уровень – представительский. На этом уровне определяется формат, используемый для обмена данными между узлами. Уровень отвечает за преобразование, кодирование и сжатие данных.

7-й уровень – прикладной. Предоставляет доступ прикладным процессам к сетевым службам. Этот уровень управляет общим доступом к сети.

Переход к ОГЛАВЛЕНИЮ

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]