Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf ·...

158

Transcript of Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf ·...

Page 1: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 2: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Росс Г.В., Дулькин В.Н., Сысоева Л.А. Основы информатшси и программирования. - М.: "Издательство ПРИОР"

18ВК 5-7990-0334-9

Пособие предназначено для углубленного изучения основных тем курса "Основы информатики и вычислительной техники", а также для организации практических занятий по программированию на алгоритхш- ческом языке МюгозоЛ Сиюк-ВА81С. В конце каждого раздела приводятся вопросы для повторения и упражнения, в конце пособия даны ответы и решения.

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

Корректор: Кудрявцева Н.А. Верстка: Пронина Н.В.

"Издательство ПРИОР" Москва, Воронцовский пер., 5/7 Телефон: 964-42-00, 964-49-00 Издательская лицензия ЛР № 065184 Подписано в печать 19.^00О Заказ Отпечатано в Подольском филиале ЧПК 142110, Подольск, ул. Кирова, 25.

Тираж 2000

18ВН 5-7990-0334-9

9 785799 003340

© Дулькин В.Н., Росс Г.В., Сысоева Л.А.

Page 3: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

ПРЕДИСЛОВИЕ Учебное пособие написано по материалам занятий по программиро-

панию с учащимися школ г. Москвы и абитуриентами Института экономики, управления и права Российского государственного гуманитарного ^чшверситета.

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

Учитывая, что в большинстве средних учебньк заведений преподавание основ информатики и вычислительной техники ведется с использованием языка ВА81С, авторы выбрали именно этот язык, и именно его версию 0июк-ВА81С, так как она входит в комплект М8 В08, для изложения основ программирования.

Учебное пособие состоит из 4 глав. В первой главе содержатся сведения об основных понятиях информатики, системах счисления, представ- -гении данных в электроьшо-вычислительных машинах (ЭВМ) и математической логаки. Во второй главе рассматриваются техшнческие и программные средства ЭВМ. В третьей главе рассмотрены вопросы фор- чягрования структур данных, структур алгоритмов. В четвертой главе содержится инс^рмация об алгоритлшческом языке ВА81С (Бейсик) и основных правилах составления программ. Рассмотрены примеры типовых задач.

На различных стадиях работы над пособием авторы пользовались со- веталш и замечаниями, высказанными многами коллегами. Среди шнх Ю.С. Голубев-Новожзнлов, В.Ф. Шаньгин, Л.М. Поддубная, А.В. Стриж- ков, Д.О. Аветисян. Всем им мы выражаем искреннюю благодарность.

Page 4: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

ГЛАВА 1

Основные понятия информатики Терлшн информатика (гпГоппаисх) введен французскими учеными

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

Информатика (сотргНег 8с1епсе) включает в себя следующие разделы: теорш! алгоритмов и алгебра логики, теория структур (организации) данных, теория информации, теория баз данных, систехшое программное обеспечение электронных вьиислительных систем (ЭВМ), прикладное программное обеспечение, языки программирования, численные методы, математическое моделирование, разработка обучающих систем, систем искусственного интеллекта и др.

1, Понятие информации

Само понятие информации (йтГоппайоп) возникло от латинского слова "{пГоппайо" - разъяснение, изложешге и до середины 20 века предполагало сведешгя, передаваемые между людьми. В последние годы этот термин получил более ишрокое толкование - сведения, обмеьшваемые между людьшг, человеком и автоматом, автоматом и автоматом; обмен сигна- лаш1 в животном и растительном мире, передачу признаков от клетки к клетке, от организма к организму.

Можно выделить две формы существования информации: • статическая информация (книга, рисунки, записи, фото и т. п.); • динашгческая информация (процессы передачи информации по каналам

связи или в пространстве). Информацшо можно разделить на два вида: биологическую и социальную. Биологаческая информация обеспечивает жггзнедеятельность отдельно

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

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

Page 5: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Основныш! свойствалш информации являются неразрывная ее связь с определенной саморазвивающейся системой, структурированность, смысл и ценность.

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

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

Ценность информации выражается в таких понятиях, как содержательность, своевременность, полнота, достоверность, оперативность.

Понятие информации относится к основньш понятиям науки об управлении и тесно связано с такими понятиями, как "информапиошгый процесс" (Могашйоп ргосезз) и "информационные системы" (шГогтаЙоп 8у51ет).

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

Информационная система - это храшшище информации, снабженное средетва^а•I ввода, поиска размещения и выдачи информации.

Далее мы более подробно рассмотрим поьытия информационного процесса и информационной системы.

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

Обмен информацией происходит посредством сигнала. Сигнал - это материальный носитель информации (предмет, явление,

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

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

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

Page 6: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

виде датого сигнала. Р. Хартли предложил в качестве меры неопределенности логарифм от числа возможностей. Обычно количество информации представляется в виде 1оЁ2т, где т - число возможных выборов. Тогда стандартной единицей количества информации будет выбор из двух возможностей. Такая единица получила нашиенование бит и представляется одним символом двоичного алфавита, обычно это О или 1.

1,8, Системы счисления Системой счисления называют способ наименования и записи чисел. За

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

В непозиционных системах количественное значение сшмвола определяется только его изображением и не зависит от его места (позиции) в числе. Например, десятичное число 27 представляется в римской системе счисления как XXVII = 1 0 + 1 0 + 5 - 1 - 1 + 1 , другами словашг, количественное значение числа определяется суммой значений символов. Однако значение символа зависргг от его места по отношеьшю к друго\1у символу, то есть значение символа неоднозначно. (Например, IX = 9, а XI = 11.) В непозиционных системах счисления не представлены дробные и отрицательные числа.

Система счисления называется позиционной, если значение числа в ней определяется как цифрами, принятыми в системе, так и положением (позицией) этих цифр в числе. Закономерность построения позиционных чисел имеет простое математическое представление.

Введем следующие обозначения: Я - основание системы счисления. Основание систелщг - это целое

положительное число, большее 1 и равное максимальному количеству различных символов, употребляемых в данной системе счислешгя. В частности, для десятичной системы счисления я = 10;

Я; - любая цифра из множества цифр, принятых в данной системе счисления (в случае десятичной системы я, - любая цифра из множества о, 1, 2, ..., 9);

1 - ивдекс, который обозначает номер позиции, занимаемой цифрой в числе.

Позицию для целых тасел будем условно обозначать номерал{и 1, 2, ..., п, а позиции в правильных дробях - номера^ш -1, -2, ..., -т. Тогда любое число А в произвольной позициоьшой системе счисления с основанием я может быть записано следующим образом:

А<5 = а„ я" + я"‘‘ + - + а, я* + ао я° + а_1 я’^ + - + а.^ Я'™ где я,-. удовлетворяет неравенству

(1.1)

о < а^ < я - 1 (1.2)

Page 7: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

и принимает в этом диапазоне только целые значения, и называется весом 1- го разряда. Формулу (1.1) будем называть общей формулой записи числа в позиционной системе счисления с произвольным целым основанием Тогда число А в десятичной системе счисления будет иметь вид;

Аю = а„ 10" + ап_110"-! + ... + 101 + ад ЮО + а_1 10-1 + ... + а.,„ Ю-т

Для десятичной системы счисления понятие веса разряда соответствует общепринятым названиям позиций - единицы, десятки, сотни, десятые доли, сотые доли и т. д. Например:

1325ю = 1 X 103 4- 3 X 102 4- 2 X 101 + 5 X юО;

67,09ю = 6 X 101 4- 7 X 100 + о X ю-1 4- 9 х 10-2.

1.2.1. Двоичная система счисления

Большинство современных вычислительных машин работает в двоичной системе счисления (^ = 2). Согласно соотношению (1.2) для записи двоичного числа достаточно использовать только две цифры 0 и 1.

Для того чтобы перевести целое положительное десятичное число в двоичную систему счисления, необходимо:

1) разделить исходное число на основание системы 2; 2) выделить целую часть частного и остаток. Остаток - младший разряд

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

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

Црмнар 1.1; Перевести число 37ю в двоичную систему счисления.

в (в скобках записан остаток от деления) I Отват: 31\о ~ 100101г

Перевод целого десятичного числа в двоичное всегда является конечным процессом.

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

1. Умножить исходное число на основание системы 2.

Page 8: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

2. Выделить целую и дробную части произведения. Целая часть явля- ется старшим после запятой разрядом искомо!! двоичной дроби. Считать дробную часть произведения исходным числом, перейти к п. 1.

3. Процесс перевода заканчивается в двух случаях: 1) дробная часть некоторого произведения равна 0; 2) достигнута заданная точность перевода.-

Пример 1 .2 : Перевести число 0,125ю в двоичную систему счисления.

X 0,25 X X 0,125 2

0,250

0,25 2

0,50

0,5 2

1,0

1 о о

Ответ: 0,125ю = 0,001г

Пример 1 .3 : Перевести число 0,2ю в двоичную систему счисления.

X 0,6 X

0,2 2

0,4 2

0,4 0,8

0,8 2

1,6

0,6

2 0,2 2

1,2 0,4

Ответ: 0,2ю » 0,001102

Видно, что процесс вьпшслений в этом примере будет бесконечно периодически повторяться и его необходимо оборвать при получении заданной точности переюда. Можно утверждать, что максимальная допустимая погрешность переюда определяется весом последнего полученного двоичного разряда. В приведенном примере вес последнего полученного разряда равен 2‘5 и, следовательно, погрешность переюда составляет 2"^ = 0,03125ю.

Если требуется перевести в двоичную систему счисления смеша!шое десятичное число, то для этого следует воепользоваться сформулирован- ныш! выше правилаш! отдельно для целой и дробной частей.

Для перевода двоичных чисел в десятичную систему счислеьшя можно было бы юспользоваться ранее сформулированными правилами, заменяя везде основание ц = 2 на основание я = 10. Однако в этом случае все арифметические операции деления и умножешм пришлось бы выполнять в двоичной системе счисления. Собственно таким путем и осуществляется обратньш переюд в машинах. Однако человеку для обратного перевода удобнее пользоваться соотношением (1.1), подставляя вместо коэффициентов их двоичные значения и выполняя действия, указанные в формуле, в десятичной системе счисления.

гример 1 . 4 : Перевести в десятичную систему двоичное число ШООЫг.

1 Х 2 ' ’ + 1 Х 2 “ - 1 1 Х 2 ’ + 0 Х = 64 + 32 -1 16 + 2 + 1 = 115ю

Ответ: ШООНг = 115ю

2’ о X 2^ + 1 X 2^ -1 1 X 2° =

Page 9: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

1.2.2 Восьмеричная и шестнадцатеричная системы счисления

Двоичная система счисления, будучи естественной дая вьгаислш-ель- ных

ма1Ш1н, неудобна для восприятия человеком. Большое количество разрядов двоичного тасла по сравнешгю с соответствующим десятичным, однообразное чередование единиц и нулей является источником ошибок и затрудняет чтение двоичного числа. Поэтому для удобства записи дво- ИЧ1ГЫХ чи:сел необходима такая система счислешгя, которая, с одной стороны, сохраняла бы свойства двоичной, а с другой - в нашгсашш была бы близка к десятичной. Такими свойствалш обладают системы с основанием ^ = 2" и, в первую очередь, системы с основашгем 2^ = 8 и 2'* = 16. Любой символ восьмеричной системы счйслешм можно представить тремя двоичныли! знаками. Символы шестнадцатеричной системы стас- лешгя описьшаются четырьмя двоичными знакашг.

Правила перевода чисел из двоичной системы в восьмеричную или шестнадцатеричную и обратно могут быть получены из формулы (1.1).

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

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

Каждой триаде (тетраде) ставится в соответствие восьмеричный (шестнадцатеричный) симюл согласно таблице 1.1.

Припер 1 . 5 : Записать в восьмеричной системе двоичное число:

ПЮЮП,001110112

;Согласно правилу перевода разбиваем число на триады, затем,

;;пользуясь таблицей 1.1, получаем заданное число в восьмеричной

,системе счисления:

; ,001 101 011,001 110 ПОг = 153,166з. Ответ; 1101011,001110112 = 153,166з

Таблица 1.1

Триады Восьмеричный символ Тетрады Шестнадцатеричный символ 000 0 0000 0 001 1 0001 1 010 2 0010 2 011 3 ООП 3 100 А 0100 4 101 5 0101 5 110 6 0110 6 111 7 0111 7

1000 8 1001 9 1010 А 1011 В 1100 С 1101 0 1110 Е 1111 Р

Page 10: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 11: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

а) 670,2058 = Х2 б) ЕА9,016^6 = ^10 в) 1110101,101000012 = ^8 г) 11011,10101101012 = ^16 д) АЕ17,39ВС^6 = ^2 е) 370,775ю = ^16 ж) 9802,068ю = Ху(, ^ з) 7943,240810 = ^8 1.11. Найти х и у из условий: а) ЗЗх = 21у; б) 51х = 29у; в) 144^ = 504у. 1.12. Найти основание системы счисления из условий: а) 47,6 = 147х; б) 7004^ = 212х х 26ю; в) 202х = 130ю 1.13. Среди данных дробей найти наибольшую и наименьшую; 0, 125ю; 0,3328; 0,2116; 0,1018. 1.14. Данные числа записать в системах стесления с основаниями 2, 8,

16: а) 212ю; б) 105ю; в) 2020ю; г) ШООю. 1.15. Записать в виде двоичных систематических дробей:

7 ч 3 17 , ч

31 ; г) —.

1024 512

1,3, Представление информации в ЭВМ

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

1.3.1. Кодирование информации

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

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

Коды, использующие два различных элементарных сигнала, называются двоичными. Если отвлечься от физической природы сигналов, удобно обозначать их символами 0 и 1. Тогда кодовые слова можно представлять как последовательность из нулей и единиц. Первый, кто понял, что для кодироваьшя достаточно двух символов, бьш Фрэнсис Бэкон.

11

Page 12: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Существует много кодов: дюичный код обмена информации ДКОИ, восьмеричный код обмена информацией КОИ-8, в современных персональных компьютерах (ПК) ино^рмация представляется в коде А5СП (Атепсап 51апсЗа11 Собе Гог ГпГоппаГюп 1п1егс11апёс) - американский стандартный код для обмена информацией. В России используется так называемая альтернативная А5СП кодировка, содержащая символы русского алфавита (таблица 1.2).

' При вводе информащш в ко\шьютер каждый символ-буква русского или латинского алфавита, цифра, знак пунктуации йли действия кодируется определенной последовательностью из восьми двоичш>1Х цифр в соответствии с таблвдей кодировашгя. Комбинация из 8 бит называется байтом или слогом.

Таблица кодирования разбита на 16 строк и 16 столбцов, имеющих двоичные номера от 0000 до 1111 или шестнадцатеричные от 0 до Р. Код силшола, стоящего на пересечении строки и столбца, составляется из номера столбца (старппге разряды), к которому приписывается номер строки (младшие разряды).

Таблица 1.2

Первая шестнадцатеричная цифра кода в 0 1 2 3 4 5 6 7 8 9 А В с 0 Е р

Т 0 0 Р А Р а р Ё О 1 1 А О Б С б с ё р 2 2 В К В т в т

а 3 3 С 5 Г у г у

я 4 4 0 Т Д ф д ф

5 5 Е и Е X е X

ц 6 6 Р V Ж ц ж ц

и 7 7 О V/ 3 ч 3 ч

ф 8 8 н X И ш и ш

р 9 9 1 V й щ й щ

а А 2 к ъ к ъ

В к [ л ы л ы

к С 1 \ м ь м ь

о 0 М 1 н э и э

А Е N о ю о ю

а Р О п я п я

Нащзимер: Символ латинского алфавита А будет представлен в ЭВМ : как 4116 = 0100 0001г.

1.3.2. Формы и форматы представления числовых данных в ЭВМ

Каждый разряд двоичного числа представляется в ЭВМ физическим

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

12

Page 13: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

радных двоичных чисел и составляет разрядную сетку или формат представления числовых данных.

В ЭВМ, как и в математике, используется как естественная, так и нормальная формы записи чисел. Каждая из форм имеет определенные фгр- маты для каждого типа ЭВМ, составленные из целого количества байтов. Длину формата данных измеряют в машинных словах или в "юличестве двоичных разрядов (бит). Например, в вычислительных машинах единой системы ЕС ЭВМ (предшествующих персональным ЭВМ) использовались (|орматы: полуслово -^.0. байта (16 бит), слово - 4 байта (32 бит), двойное слово - 8 байт' (64 бит);)®-персональных ЭВМ: слово - 2 байта, двойное с.тово - 4 байта. г

Естественной формой представлештя данных обьмно называют представление чисел с фиксированной запятой, положение которой строго устанавливается, для правильных дробей - перед старшим разрядом, для смешанных дробей - в определенном месте, отделяющем целую и дробную части числа, для цельк чисел - после младшего разряда. В совре- менньк ЭВМ естественная форма используется в основном для представления целых чисел. Во всех форматах знак числа занимает место п:еред старшим разрядом и кодируется О - знак "плюс" и 1 - знак ’Чшнус". Знак от числа отделяется воображаемой точкой.

Рассмотрим диапазон представлештя чисел в коротком формате — Н = 2 байта и в длинном — Р = 4 байта (рис 1.1) В разрядных сетках вместе указаны коды наименьшего и наибольшего значений чисел.

Числа в формате Н имеют значения:

I I 1ШП 1 >

|А|шах = 215- 1.

Числа в формате Р имеют значения:

= 1;

|А|иах = 231- 1.

При представлении правилыгых дробей, например в формате Н, наименьшее и наибольшее значения определяются-.как:

|А|„ип = 0,00 .................... 01 = 1 X 215;

0,11. . 1 = 1 - 2-15.

Для сокращения записи двоичных чисел можно использовать

шестнадцатеричную систему. Так, в формате Н - Ащ1п = 0001; Ащах = 7РРР, в

(()ормате Р - Ат1п ~ 00000001, Ата,\ = 7РРРРРРР. Каждая шестнадцатеричная цифра представляет собой двоичную тетраду.

13

Page 14: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Формат Н

Формат Р

Знак 2'* 2« 2< 2®

0 0 0 0 1 0 1 1 1 . 1 0 1 2 14 15

Знак 230 2‘ 2“

0 0 0 0 1 0 1 1 1 1 0 1 2 30 31

^т!п

Рис. 1.1. Форматы чисел в естест11еннон'с1)орме '-.мтоэ И1..1

Црямер 1 . 1 7 : В форматах Н и Г представить )щсла. А = 173, В = -173 "Аг” = 0000000010101101;

Вг" = 1000000010101101;

;^А1б“ = ООАО; А16^ = ООООООАО; = 80АО; = 800000АП.

По первой шестнадцатеричной цифре можно определить знак числа. Если первая цифра меньше 8, то число положительное, если ее значение от 8 до Р, то отрицательное.

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

Нормальной формой представления числа называется представление его в виде мантиссы и основания системы в соответствующей степени.

Любое число можно представить в различной форме записи, например: А = 55,25 = 5525 х 10-2 = 0,5525 х 102 = 0,005525 х 10“*.

Любое число в нормальной форме представляется в виде

А= ±щ. (1.3)

где Шд - мантисса числа А, ^ - основание системы счисления, Р - порядок.

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

^ т <1. (1.4)

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

14

Page 15: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

Для представления чисел в нормальной форме используются фиксированные форматы разной длины. В разрядной сетке форматов отводятся места для знака мантиссы (нулевой разряд), знака порядка (первый разряд), значение порядка (6 разрядов, со 2-го по 7-ой), в остальные разряды записывается мантис^са числа. В других форматах первый байт не изменяется, а увелитавается^ под мантиссу. На рис. 1.2 представлена разрядная сетка в формате 4 байта.

1 Зм.тд ЗН.РА ____ 1 ____ ^Рл ______ I ____ ГТ^ тд П ------------- 1 1 0 1 2 7 8 9 30 31

Рис. 1.2. Формат числа а нормальной форме

Диапазон представления чисел можно оценить по максимальному 31 [ачению:

•^тах ~ ^^таx ^

где Штах = 1 - 2-2'*, Ршах = 26 - 1 = 63.

При ^ = 2:

Атах = (1 - 2-24) X 263 « Ю19.

По сравнению с естественной формой диапазон представления чисел при той же разрядной сетке увеличился на 10 порядков.

В ЭВМ ЕС используются три формата: короткий Е (4 байта), длинный О (8 байт) и повышенной точности (16 байт). Особенностями нормальной формы в ЭВМ ЕС являются следующие:

1. Смещение числовой оси порядков в область положительных значений для облегчения действий над порядками, не имеющими знака. В форматах 7 разрядов отводится под значение порядка и его знак. Следовательно, числовая ось порядков находится в диапазоне -2б < Р 5 2^ - 1 или -64 ^ Р 5 63.

Смещенный порядок, называемый характеристикой, определяется смещением порядка на +2б = 64 = 40(6, то есть характеристика Рх = Р -I- 40 не имеет знака.

Теперь характеристика может принимать значения в диапазоне 0 5 Рх 5 127 = 7р1б и под ее значение отюдятся 7 разрядов (2^ - 1 = 127). Очевидно, если Рх = 40, то Р = о, если Рх < 40, то порядок отрицательный (Р < 0), при Рх > 40 - порядок положительный (Р > 0). Если Рх < 0 или Рх > 7Р, то значение характеристики пропадает и результаты искажаются.

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

15

Page 16: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

сдвигу мантиссы на одну шестнадцатеричную цифру, то есть сразу на одну двоичную тетраду.

Действительно, если в формулу 1.3 подстав1тгь ц = 16, то

>1тах = (1 - 16-6) X 1663 « 1076.

Таким образом, значеш-ге порядка увелич1-шось в 4 раза.

пример 1 .1 8 : Представить в разрядной сетке формата Е два числа; А = 32008,5ю

и В “ “32008, Ью*

Запишем заданные числа в шестнадцатеричной системе: А = 7008,816, В =

-7008,816. Найдем нормализованные мантиссы и характеристики:

Шд = 0,70088, = 40 + 4 = 44;

Шв = -0,70088, Рхв = 40 + 4 = 44 (см. рис. 1.3)

Зн. т

0 100 0100 0111 1101 0000 1000 1000 0000 1 100 0100 0111 1101 0000 1000 1000 0000

А,6 = 55700880 > 0 8,6 =

С4700880 < 0

31

Рис. 1.3. Представление чисел в формате Е

Здесь также по первой шестнадцатеричной цифре кода числа определяется его знак.

/.4. Элементы математической логики Логика (от греческого слова "1о§о5" - слово, мысль, речь, разум) -

совокупность наук о законах и формах мышления, о наиболее общих законах мышления. Начало исследовашгй в области формальной логики было положено работаш! Аристотеля в IV веке до н. э. Логака оперирует понятиями, суждениями и умозаключениями. В середине XIX века возникла и начала интенсивно развиваться математическая лошка, применяющая для анализа рассуждений математические средства и методы. Именно она заложила теоретические основы последующей разработюг язьжов програмхпгрования.

Одним из основных разделов математической логики является алгебра логаки (исчислешге высказываний), основоположником которой был Джордж Буль (1815 - 1864), положгтшшг в основу своего логаческого учения методы алгебры (алгебра Буля).

1.4.1. Объекты и операции алгебры логики

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

Например: "истинные" - "Земля - планета Солнечной системы", "два умножить на два равно четырем", "3 - простое число", "Ребята, не Моск

16

Page 17: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

ва ль за нами?"; "ложные" - "Марс - не планета Солнечной системы", "пять меньше двух".

Предложения "Будь осторожен!", "Справишься ли ты с задаш1ем?" не являются высказывания^ш.

Вопрос об истинноспт простых высказыважй лежит вне сферы логики - на него отвечают кожретные науки, повседневная практика или наблюдеьше. Высказывания обычно обозначаются большилш буквами латинского алфавита. Если высказывашге А истинно, будем писать А = 1, если ложно, то А = 0.

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

таблицы ИСТИННОСТ1Г.

Логическая связка отрицание: в естественном языке ему соответствует выражение "неверно, что...", относящееся ко все^гу высказыванию, или присоединешге союза "не" к некоторой части простого высказывания. Например: если А - простое высказывание "Идет дождь", то отрицанием А (А) является высказьшашге "Неверно, что вдет дождь" или "Дохздь не идет". Отрицанию соответствует таблица истинности:

Таблица 1.3

1

Логическая связка конъюнкция: в естественном язьпсе ей соответствуют союзы "и", "а", "но", "да", "однако", "хотя" и т. п. Возможны различные варианты записи конъюшоцш: Р = А л В ; Р = А х В ; Р = А & В . Следует отметить, что в некоторых случаях, для упрощешгя записи, знак конъюнкции опускается и сложное высказывашге зашгсывается следующим образом: АВ. Иногда конъюнкцию называют лопгчесюгм произведением. Принято считать, что сложное высказывашге, полученное из двух простых высказываний, соединенных связкой конъюнкция, истшгно только в том случае, если истинны оба простых высказывашгя (см. таблвду 1.4.).

Например: если А - "3 - простое число" - "истина"; В - "3 х 2 = б" - "истина" ;

то А л В : "3 - простое число и 3 X 2 = б" "истина"

Таблица 1.4

А В А л В 1 1 1 1 0 0

1 0 0 0 —тг—

17

Page 18: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Логическая связка дизъюнкция: в естественном языке ей соответствуют союз "или". Союз "или" в естественном языке может употребляться в двух разных смыслах: нестрогое "или" - когда члены дизъюнкции не исключают друг друга, то есть могут быть одновремешю истинными, и строгое "или" (часто заменяется союзом "либо..., либо...") - когда члены дизъюнкции исключают друг друга.

Нестрогая дизъюнкция обозначается или Р = А V В, или Р = А + В. Принято считать, что сложное высказывание, получеьшое из двух простых высказываний, соединенных связкой, - нестрогая дизъюнкция - ложно только в том случае, если ложны оба простых высказывания (см. таблицу 1.5.).

Например: нестрогая дизъюнкция

если А - "Школьники в спортзале делают упражнения на брусьях";

. В - " Школьники в спортзале делают упражнения на турнике";

: то А V В - "Школьники В спортззле делают упражнения на брусьях ■;^или на турнике".

Таблица 1.5

А В А V В

1 1 1 1 0 1 0 1 1 0 0 0

Строгая дизъюнкция обозначается или Р = А у В, или Р = А V V В, или Р = А + В. Принято считать, что сложное высказывание, полученное из двух простых высказываний, соединенных связкой, - строгая дизъюнкция - ложно тогда, когда оба простых высказывания или ложны, или истинны (см. таблицу 1.6).

Налримвр: строгая дизъюнкция

если А - "Школьники в спортзале играют в волейбол";

В - "Школьники в спортзале играют в баскетбол";

то А у В - "Школьники в спортзале играют в волейбол или в бас- ;кетбол".

Таблица 1.6

А В А V В 1 1 0 1 0 1 0 1 1 0 0 0

Упражнения 1.19. Какие из следующих предложений не являются объектами алгебры

логики: 1) Войдите!

18

Page 19: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

2) Река Волга длиннее реки Оби. 3) Не курить! 4) "3 X 7 > 2 X 12". - 5) Пожалуйста, впустите! 6) Число 73 и.меет четыре простых делителя. 7) Которьпг час? 1.20. Одно высказывание "Музыку к балету "Гаянэ" написал А.

Хачатурян". Если в этом высказывашги заменить фамилию автора, будет Ли новое высказывание объектом алгебры логики? ' 1.21. Приведите высказьшания, записаьшые в виде формулы и в виде фразы, которые не являются объектами алгебры логаки.

1.22. Даны высказывания: "Семь больше девяти", "Баку - столица Америки". Составьте из этих высказываний логическое произведение и определите его истиьшость.

1.23. Истинное логическое произведешге состоит из трех простых вы- 1:казывагшй: А, В и С. Известно, что А и В истинны. Может ли высказывание С быть одшгм из следующих:

1) "Два ухшожить на три равно семи". 2) "Слоны живут в Африке и в Индии". 1.24. Дано сложное высказывание: "Сережа закончил тренировку, идет

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

1.25. Какие два из следующих высказываний, соединенных союзом ИЛИ, образуют ложную логическую сулгму:

1) "Утки зимуют на юге". 2) "Три умножить на три - семь". "Горе от ума" написал А. С. Грибоедов". "Основные законы логики были разработаны Александром

Македонским". 1.26. Вьщелите высказывания, образованные строгой дизъюнкцией: 1) Корнем квадратного уравнения является число Х} или число Х2- 2) Перед на^ш портрет Матвеева или Соколова. 3) Семь - делитель числа а или числа Ь. 4) Председателем палаты изберут Иванова или Петрова. 1.27. Даны высказывания "3 < И" и "3 < 7 < 15". Какое из них является

логическим произведением? 1.28. Даны высказывания: А - "Петя едет в автобусе", В - "Петя читает

книгу", С - "Петя смотрит в окно". Составить формулы алгебры логики следующих сложных высказываний: 1) "Неверно, что Петя едет в автобусе и читает книгу". 2) "Неверно, что Петя, едет в автобусе, читает книгу или смотрит в

окно". 3) "Петя не едет в автобусе, но при этом читает книгу или не смотрит в

окно". 4) "Петя не едет в автобусе, не смотрит в окно - он читает книгу". 1.29. Запишите в виде формулы алгебры логаки следующее высказыва-

гше: "Если Алеша решит задачу, то Володя решит ее; если же Алеша не

19

Page 20: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

решит задачу, то об успехе Володи ничего определенного сказать нельзя - он может решить, а может не решить".

1.30. Запишите в виде формулы алгебры логики высказывание: "Если Ваня и Алеша проголосуют "за", то Сережа поступит так же. В случае противоположного мнения у Вани и Алеши о мнении Сережи ничего определенного сказать нельзя".

1.4.2. Тождественные преобразования над высказываниями

Истинность всякого сложного высказывания устанавливают с помощью таблиц истинности, которые содержат всевозможные комбинации значений входных переменных вместе с соответствующими им значе- шгями выходных переменных, то есть значения функций. При п входных и одной выходной переменной таблжщ содержит 2п строк и п + 1 столбцов. Заметим, что самый простой' способ включения в таблицу истиьшо- сти всех возможных входных значений состоит в последовательном переборе в двоичной системе счисления всех чисел от 0 до 2п - 1. Функция Р в каждом столбце будет принимать значение либо О, либо 1 в зависимости от задаваемой функции.

Например, истинность высказывания Р = А V В л С можно установить с помощью следующей таблицы истинности (см. таблицу 1.7).

Первые три столбца содержат все возможные комбинации значений

простых высказываний. Третий столбец содержит значеьшя сложного

высказывания С . В четвертом столбце приведены значения сложного

высказывания В л С, полученные с учетом значений второго и четвертого

столбцов, и использова! ИЯ логической связки конъюьжция (таблица 1.4). В последнем столбце - значения сложного высказываьшя Р = А V В л С , полученные с использовашгем значений первого и четвертого столбцов, а также применения логической связки нестрогая дизъюнкция (таблица 1.5).

Таблица 1./

А В С С В л С Р 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1

Высказывания, у которых совпадают таблицы истинности, называются равносильными. Например, из таблицы 1.8 следует равносильность высказываний, записанных формулами А V В и В V А. Для обозначения

20

Page 21: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

равносильности высказываний будем использовать знак =. Таким образом, А

V В = В V А. При тождественных преобразованиях формул алгебры логаки можно

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

Таблица 1.8

А В А V В В V А 1 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0

Сложные высказываьшя, истинные для любых значений истинности, входящих в них простых высказываний, назьтаются тождественно истин-

1КЫМИ.

Примеры тождественно истинных формул:

А V А = 1 ; А л А = 1 .

Тождественно ложными назовем формулы, принимающие значения О ;у1Я любых значений истинности, входящих в него простых высказыва- |щй, например:

А л А = О

Тождественно истинные и тождественно ложные высказывания заменяются в формулах соответственно на 1 или 0.

1 : В У А Л А = В у О ; С У ( В У В ) = С У 1 .

1.4.3. Свойства отдельных операций

Операция конъюнкция Операция дизъюнкция А л*В — В л А А V В = В V А

(А л В) л С = А л (В л С) А V (В V С) = (А V В) V С А л А = А А V А = А

Ал 1 = А А V 1 = 1 А л 0 = 0 А V 0 = А

Отрицаьше:

А = А;

1 = 0,

0 = 1.

21

Page 22: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Взаимные распределительные свойства;

1 . А Л ( В У С ) = А Л В У А Л С ;

А л (В л С) = А л В л С.

2. А V (В л С) = (А V В) л (А УС);

А у (В у С) = А у В у С.

3. А - А .

Операция отрицания не обладает распределительным свойством относительно конъюнкции и дизъюнкции. Имеют место формулы де Моргана:

А л В - А у В;

А у В = А л В.

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

Например;

. А У В У С - А Л В Л С ; Щ ________ ^ А У В Л С - А Л < В У С >

Большое значение имеет закон двойственности, который говорит о том, что если X равносильно V, где X и V - формулы указанного вида, то при замене в каждой из них всех знаков дизъюнкции на знак конъюнкции и наоборот, символа 1 на О и наоборот, равносильность сохраняется.

Й

Например:

Из равносильности:

"АЛ (В У С) = (А Л В) У (А Л С) вытекает

|А у (В л С) = (А у В) л (А у С) .

4 Из равносильности: А У 1 « 1 вытекает А л О О.

Упражнения

1.31. Среди следующих высказываний выберите тождественно

ложное: Х] = (А у В) л (А у А)

Х2 = (А у В) л (А у В) л А Хз

= (А у В) л (А у В)

1.32. Среди следующих высказываний выберите тождественно

истинное; Х | = ( А У С ) Л А Л С

Х2 = (А л В) л (А у В)

22

Page 23: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

ХЗ = ( А У А ) Л ( А Л С У А V С )

1.33. Данные высказывания запишите, используя только операции дизъюнкции и отрицания: ' ' ’’

XI = (А V В) л (А л В)

Х2 = (А л В л С) V (А л С)

хз = (А л В) V (А л С) л (А V В)

1.34. Запишите приведешахе высказывания, используя только опера- Ц1 си конъюхпсцххи и отрицания:

XI = (АV В)

Х2 = (АЛ В ) V ( А л В ) У С

Хз = ( А л В л С ) V ( В л С ) V А

1.35. Какие высказывания в каждом из двух наборов равносильны:

1. Х1= А V В ; Х 2 = А л В ; x з = А V В ; х 4 = А У В

2. XI = А л В V С ; Х2 = (А л В) V ( А л В л С); Хз = ( А V В ) л С 1.36. Дахш высказывания: а) "Сейчас идет дождь, а гром не гремит"; б) "Сейчас не идет дождь или сейчас гремит гром". Как изменить второе высказывание, чтобы оно оказалось равносильно

первому?

1.4.3. Преобразование формул алгебры логики _________

Используя основные свойства операций алгебры логики, можно одну 4) ормулу заменить другой, ей равносильной. Рассмотрим специальное преобразовахше формул, которое называется минимизацией формул алгебры логики.

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

Рассмотрим один из многих способов минимизации. Минимизацию произвольной формулы осуществим в два этапа На первом этапе данхгую формулу запишем в совершеххной дизыоххктивной нормалыхой форме (СДНФ).

На втором этапе СДНФ подвергнем преобразованиям, результатом которых будет минимальная форма записи дахшой формулы. Для этого необходимо примехшть следующий алгорхггм:

1. Если данная формула не содержит рассмотренхше ранее логические операции, то их следует выразить через операции логического сложеххия, :/множения и отрицания.

23

Page 24: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

2. Если данная формула содержит отрицание сложных высказываний, то,

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

отрицание распространялось только на простые высказывания.

Например:

АВ + С = АВ • С = (А + В) • С;

(А + С) • В + С = АВС + С;

А В С + В = А В + С + В А В + С + В

(1.5)

(1.5)

(1.7)

3. Затем в полученной формуле нужно раскрыть скобки так, чтобы вся

запись представляла сумму произведений простых высказываний (или их

отрицаний). Формула алгебры высказываний, представляющая собой сумму

произведений простых высказываний (или их отрицаний), называется

дизъюнктивной нормальной формой записи высказываний (ДНФ).

Например, формула (1.5) после раскрытия скобок представляет собой ДНФ:

(А + В)С = АС + ВС . (1.8)

Первые части равенства (1.6) и (1.7) также являются ДНФ.

4. Все полученные ДНФ следует преобразовать в СДНФ, отличавшуюся от

ДНФ тем, что в ней каждое слагаемое (напомним, что оно есть произведение)

содержит все простые высказывания (или их отрицания), входящие в формулу.

СДНФ, например, для формулы (1.8) будет АС + ВС. Умножим первое

слагаемое АС на 1 = В + В, а второе ВС н а 1 = А + А и получим

АВ + ВС = АС (В+ В ) + В С ( А + А ) =

= А В С + А В С + А В С + А В С =

= А В С + А В С + А В С .

(1.9)

Результат (1.9) есть СДНФ формулы АВ + С, данной первоначально в форме

(1.5).

Существуют и другие важные формы записи формул. Например, всякая

формула приводима к конъюнктивной нормальной форме (КНФ), которая

представляет собой произведение сумм простых высказываний (или их

отрицаний), а также к совершенной конъюнктивной нормальной форме (СКНФ).

Примером СКНФ является высказывание

(А V В) л (А V В) л (А V В).

К обеим совершенным формам записи (СДНФ) и (СКНФ), содержащим два

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

(А л В) V (А л В) = А

24

Page 25: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

или, в силу закона двойственности,

(А V В) л (А V В) = А,

называемое склеиванием.

К некоторым нормальным формам применимо преобразование, называемое поглощением:

А V А л В = А или А л (А V В) = А.

1,4.4. Построение логической формулы ________________

По задаьшой таблице истинности также можно составить сложное высказывание. Одна из его форм называется совершенной дизъюнктивной нормальной формой (СДНФ) или стандартной суммой произведений.

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

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

значение, соответствует входной комбинации: А = 0 , В = 0 и С = 1.

Рассмотрим произведение входной комбинации А ■ В • С. Подставляя в него значения О, О и 1 для А, В и С, мы, очевидно, получим

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

Таблица 1.9

А В С Р 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0

Аналогичным образом определяем произведения всех остальных строк с

единичным значением функщги (третья строка соответствует А • В • С, шестая

строка — А • В • С).

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

Р = А В С - Ь А В С н - А В С .

Выражение такого типа является соверщенной дизъюнктивной нормальной формой.

25

Page 26: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

Существует и другая форма записи. По таблице истиьшости можно составить сложное высказывание в соверщенной конъюнктивной нормальной форме (СЬСНФ) или стандартное произведение сумм.

Обратимся снова к таблице 1.9, которая определяет функцшо Р. Таблица

истинности для инверсной функции - Р - получается инверсией значений в

последнем столбце. Результат показан в таблице 1.10. Пользуясь

рассмотренным вьппе способом, можно записать СДНФ для Г в следующем

виде: Р = АВС + АВС + АВС + АВС + АВС .

Если теперь вьщолнить отрицание над обеими частями этого равенства и воспользоваться законом де Моргана, то получим:

Р = Р = (АВС + АВС + АВС + АВС + АВС:

= (АВС)(АВС)(АВС)(АВС)(АВС) =

= (А + В + С ) ( А + В + С ) ( А + В + С ) ( А + В + С)-(А + В + С).

Таблица 1.10

А В С Р Р 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 1 0 0 1 1 1 1 0 1

Последнее выражение и является стандартным произведением сумм или соверщенной конъюнктивной нормальной формой.

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

26

Page 27: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

1.4.5. Законы алгебры логики

Сформулировать несколько законов, отражающих основные соотно- щения алгебры логики.

1. Свойства операций отрицания, конъюнкции и дизъюнкции

О = 1 Х м О = Х X V 1 = 1

1 = О Х л 1 = Х Х л О = О

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

2. Закон идемпотентности

Х м Х = Х Х л Х = Х

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

3. Закон двойного отрицания

Х м Х = 1 Х л Х = 0 X = X

устанавливает, что дважды выполненное отрицание эквивалентно пустой операции.

4. Закон коммутативности

X V У = У м Х Х л У = У л Х

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

5. Часто бывают полезны при упрощении булевых выражений следующие теоремы поглощения;

Х м Х л У = Х

X V X л У = Х м У

6. Закон де Моргана

Х л ( X V У ) = Х

X л ( X V У ) = X л У

( X V У ) = X л У ( X л У ) = X V У

описывает эффект отрицания переменных, связанных операциями И и ИЛИ.

27

Page 28: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

7. Согласно закону ассоциативности:

■■ (X V У) V 2 (X л V) л 2

= X V ( V V 2 ) = Х л ( У л 2 )

= ( X V 2 ) V V = Х л У л 2

= X V У V 2

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

8. Закон дистрибутивности

X V У л 2 = ( X V У ) л ( X V 2 )

Х л ( У м 2 ) = Х л У м Х л 2

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

9. Следует отметить свойство симметрии, присущее законам алгебры логики. Все законы представлены парой соотнощений. В каждой паре одно соотнощение получается из другого заменой всех операций конъюнкции на операции дизъюнкции, и наоборот, а также всех вхождений логического О на логические 1 и всех вхождений логической 1 на логические 0. Это свойство симметрии известно как принцип двойственности.

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

( Х м У у...м2) = Х л У Л...Л2

( Х л У л . . . л 2 ) = Х м У

м . . . м 2 , а закон дистрибутивности: \ У У Х Л У Л . . . л 2 = ( \ У м Х ) л ( \ У м У ) л...л (у/V 7.)

ЩХ V У V ... V 2 ) = Л У Х V \ У У V ... V \У2.

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

Проиллюстрируем процесс упрощения сложных высказываний на следующих примерах.

28

Page 29: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Пример 1 .3 7 . Упростите выражение (А V С) (А V С) (ВС у С) .

(А V С) (А V С) (В V С) (С V С) = (А V СС) (В V С) С =

= (А V О) (В V С) С = А (В V С) С.

Ответ: получено эквивалентное выражение А (В у С) С

[Пример 1 . 3 8 . Упростите выражение АВ + АВ + АВ + АС .

АВ + АВ + АВ + АС = АВ + АВ + АВ + АВ + АС =

= ВА + ВА + АВ + АВ + АС = В(А + А) + А(В + В) + АС =

= В • (1) + А • (1) + АС = В + А + АС = В + А(1 + С) =

= В + А(1) = В + А .

О'гве'г; получено эквивалентное выражение В у А.

Щтмвр 1 .3 9 . Упростите выражение АВ у ВС у АС.

АВ у ВС у АС = А В У В С Х 1 У А С = АВУВС(АУА) У АС =

= АВ у ВСА у ВС А у А С = АВ у АВС у А ВС у А С =

= АВ / АВС У А С У А С В = А В У А С .

Ответ: получено эквивалентное выражение АВ у АС.

Цример 1 .4 0 . Получите выражение, обратное данному (А В + С) А В.

(АВ + С) • АП = (АВ + С) + А + В = (АВ + С) + А + В =

= (АВ)С + А + В = (А + В)С + А + В = (А + В)С + А + В =

= АС + ВС + А + В = А(С + 1) + ВС + В = А + ВС + В.

Ответ; А у В С У В .

Упражнения

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

а) АВ + С ; б) (А + В)(А + ВС); в) АВ + АС(В + С);

г) А(ВС + А); д) АВ С + АС ; е) АВ ■ (В + С) + АВС;

ж) АВС + А(В + С); з) АВ + АС .

1.42. Какая из следующих формул записана в СДНФ:

Х[ = АВ у АС у АВ ; Х2 = АВС у АВС у ВС у АС; Хз = АС У АС у АС .

1.43. Какие из следующих формул не написаны в СКНФ:

XI = (А V В)( А V В) С ;

29

Page 30: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 31: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

ГЛАВА 2

Общие сведения ______ о вычислительной технике ___________

Современные ЭВМ - это тесное переплетение технических и программных средств. В данной главе будут обсуждаться основные компоненты вычислительных машин и их программное обеспечение.

История развития вычислительной техники

Появление машины, способной автоматически вьшолнить четыре арифметических действия, датируется началом XVII в. В 1623 г. В. Ши- кард (1542 - 1635) изобрел машину, способную не только суммировать и вычитать числа, но и частично перемножать и делить их.

Более известным механическим устройством, предназначенным для проведения вычислений, явился арифмометр, созданный в 1642 г. французским философом и ученым Б. Паскалем (1623 - 1662) для механизации канцелярских расчетов.

В 1671 г. немецкий философ и математик Г. Лейбниц (1646 - 1716) создал свою счетную машину, известную как "зубчатое колесо Лейбница".

Первые вычислительные машины По мере развития промышленности возрастала необходимость в

механизации вы'шслений. В XIX веке английский математик Ч. Бэббидж (1791 - 1871) разработал

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

Меценат проекта - графиня Ада Августа Лавлейс (1825 - 1852) - была программистом этой "аналитической машины". Именно она убедила Бэббиджа в необходимости использования двоичной системы счисления вместо десятичной. Ею были разработаны новые принципы программирования, предусматривающие повторение одной и той же последовательности команд и выполнение этих команд при определенных условиях (команды

31

Page 32: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

условного перехода). Ее именем назван разработанный в 1979 году алгоритмический язык АБА.

Во второй половине XIX в. Г. Холлерит (1860 - 1929) разработал ма- шиьгу с перфокарточным вводом, способную автоматически классифицировать и составлять табл1гцы данггых. Наличие/отсутствие отверстия в перфокарте обнаружгвалось электричесюаш конгактныхш щетками, а в счетчиках применялись реле.

Впервые эта машина использовалась в 1890 г. в Америке при обработке результатов переписи населешгя. Именно после переписи населешгя США в 1890 г. стало ясно, что без создания новых процессов обработки данных невозможно выполнять обработку больши}Гмассивов информации. С тех пор маипгны с перфорировашгыми картами получили широкое распро- странешге в деловой и административной сферах. В 1896 г. Холлерит основал фирму, которая явилась предшественником знаменитой 1ВМ (это название возникло в 1924 г.).

Скорость вьиислений в мехашгческих машинах на основе зубчатого колеса и в электричесгагх машинах, выполненных на реле, была ограничена, поэтому в 30-х гг. начались разработки электронных вычислительных машин (ЭВМ), элементной базой которых стала трехэлектродная вакуумная лампа, изобретенная в 1906 г. Лидом Форестом.

Первая треть XX века ознаменовалась последовательным развитием и внедрением многих вьпшслительных устройств. Весьма значительный вклад в эту область внес математик А. Тьюринг, который в 1937 г. опубликовал работу с описашгем универсальной схемы вычислешгй. Хотя машина Тыориша была лишь теорепгчесюгм построением и никогда серьезно не рассматривалась как экономически приемлемая мавпина, она привлекла вшгмание ряда исследователей.

Вторая мировая война дала серьезный толчок к усовершенствоваюгю вычислительных устройств и технологии их производства. В 1944 г. Г. Айкен и группа исследователей из 1ВМ построили электрическую вычислительную машину на релейньгх логачесгагх элементах.

С 1943 по 1946 гг. в университете г. Пенсильвания (США) была построена первая полностью электронная цифровая ЭВМ, получившая название ЕМ1АК. Главной целью при разработке этой машины было составлеьше числовых таблиц для вычисления траекторшг полета снарядов и ракет. Машина весила 30 т, занимала плошддь 200 кв. м, содержала 18 тыс. ламп. В ее работе использовалась десятичная система счисления. Команды по програхше вводились вру^шую; после введения программы порядок вьшопнения команд мог быть изменен только после вьшолнения всей программы. Каждая новая программа требовала ноюй комбинацшг сигналов путем установки переключателей и коммуникации разъемов. В результате на создание и вьшолнение даже самой простой программы требовалось очень много времени.

Сложности в программировании на ЕМ1АК натолкнули Джона фон Неймана (1903 - 1957), консультанта проекта, на разработку новых принципов построения архзтгектуры ЭВМ.

32

Page 33: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Принцип I - произвольный доступ к основной палигги. Память состо- 1СГ из дискретных элементов - ячеек, каждая из которых может содержать I

[абор символов, называемых словом. Время доступа (чтения или записи) 1Ю зависит от адреса ячейки.

Принцип II - хранение программы. Информация, храгашая в основ- ] [ой памяти, не имеет признаков принадлежности к определенному Т1шу (программа или данные). Поэтому процессор не различает, что он обра- батьпзает в данный момент времени.

Эти принципы были реализованы в новой ЭВМ ЕВУАС. В этой ма- ;иине применялась двоичная арифметика, основная память была способна хранить 1024 44-разрядных слова. Машина ЕВУАК бьша введена в жсплуатацию в 1951 г., а первой ЭВМ с храшгмой программой считается 5В8АК, работы над которой бьши завершены в 1949 г. в Кембриджском университете (Англия).

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

2.1.1. Поколения вычислительных машин '“-.ИТ" Ь Г-Г.Ч'’';’;»

Историю вычислительных машин принято рассматривать по поколениям: первое, второе, третье и т. д., сейчас можно говорить о четвертом и пятом поколении.

Первое поколение ЭВМ (1946 - 1960) - это время становлештя архитектуры машин фон-неймановского типа, построенных на электронных лалшах с быстродействием 10 - 20 тыс. арифметических операций в секунду. Программные средства бьши'представлены маш1шным языком и языком ассемблера. В Советском Союзе к первому поколению относится первая отечественная вычислительная машина МЭСМ (Малая Электронная Счетная Машина), созданная в 1951 г. в г. Киеве под руководством академика С.А. Лебедева, серийные машины Минск-1, Стрела, БЭСМ (Большая Электронная Счетная Машина), Урал-1, Урал-4 и др.

Второе 110колеш1е ЭЁМ (1960 - 1964) - это использовашге транзистора в качестве переключательного элемента вместо ваьсуумной ла^шы с быстродействием до сотен тыс. операций в секунду. Появилась основная память на маптатных сердечшжах и внешняя память на магштгных барабанах.

В это же время бьши разработаны алгоритмические языки высокого уровюг, такие как Алгол, Кобол, Фортран, которые позволили составлять программы, не учитывая тип маппгны. Первой полупроводниковой машиной бьша появившаяся в 1959 г. модель КСА-501. В Советском Союзе к этому поколешпо относятся машины Минск-2, Минск-22, Минск-32, БЭСМ-2, БЭСМ-4, БЭСМ-6, быстродействие которых составляло шш- лион операций в секунду.

Третье поколение ЭВМ {1964 - 1970) характеризуется тем, что вместо транзисторов стали использоваться интегральные схемы (ИС), а вместо

33

Page 34: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

Вычислительные машины третьего поколешгя, как правило, образуют серии (семейства) машин, совместимых программно. Такая серия состоит из ЭВМ, производительность и объем памяти которых возрастают от одной машины серии к другой. Но программа, отлаженная на одной из машин серии, может быть сразу запущена на другой машине этой серии (на машинах большей мощности).

Первым таким семейстюм машин третьего поколения была выпущенная в 1965 г. 1ВМ/360. Она имеет свыше семи моделей. В Советском Союзе такую серию составляли машины семейства ЕС ЭВМ (Единая Система ЭВМ).

Четвертое поколение ЭВМ {1970 - по настоящее время) - это машины, построеьшые на больших интегральных схемах (БИС). Такие схемы содержат до нескольких десятков тысяч элементов на кристалле. ЭВМ этого поколения выполняют десятки и сотни миллионов операций в секунду. Появляются шткропроцессоры, способные обрабатьшать числа длиной в 16 и 32 разряда, статическая память у которых емкостью 256 Кбайт и динамическая память емкостью в 1 Мб^1т.

ЭВМ по своим характеристикам так разнообразны, что их начинают классифицировать на: сверхбольшие ЭВМ (В-7700 - фирма Барроуз, Илли- ак-ГУ - Иллинойский университет, Эльбрус - СССР), большие (универсальные), мини-ЭВМ и микро-ЭВМ (персональные компьютеры - ПК).

Пятое поколение ЭВМ (1980 - по настоящее время). В 1979 г. японскими специалистами, объединившими свои усилия под эгидой научно- исследовательского це1пра по обработке информации, бьша впервые поставлена задача разработки принципиально новых компьютеров. В 1981 г. опубликован предварительный отчет, содержащий детальный лшогоста- дийный план развертывания научно-исследовательских и опытно-конструкторских работ с целью создания к 1991 г. прототипа ЭВМ нового поколения. Этот отчет лег в основу японской национальной программы создания ЭВМ пятого поколения. Отличительными чертахш ЭВМ этого поко- легшя являются - новая технолошя производства: отказ от архитектуры фон Неймана, переход к новым архитектурам (например, на архитектуру потока данньк) и, как следствие этого, превращение ЭВМ в многопроцессорную систему (матричный процессор, процессор глобальных связей, процессор локальных связей, машины базы дашшгх, процессор операционной системы и т. п.); новые способы ввода-вывода информации, удобные для пользователя (например, распознавание речи и образов, синтез речи, обработка сообщений на естественном языке); искусственный интеллект, то есть автоматизация процессов решения задач, получения выводов, манипулирования знанияхш.

34

Page 35: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

й,8. Основные харакгериетики и классификация $ВМ

Свойства ЭВМ любого типа оценивается с помощью их технических характеристик, к основным из которых относятся: операционные ресурсы,

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

операций, формы представления данных, их форматы, а также используемые способы адресации данш>1х в памяти. Чем шире операционные ресурсы, тем больше аппаратных затрат при построении ЭВМ.

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

Быстродействие ЭВМ определяет число коротких операций типа сложения, выполняемых за 1 секунду. Для более объективной оценки быстродействия ЭВМ при решении различных классов (научно-технических, экономI■1ческI^x и т. п.) используют производительность ЭВМ. Производительность оценивается статистически и определяет среднее число задач определеьшого класса, решаемых на конкретной ЭВМ за единицу времени (час, сутки).

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

Стоимость ЭВМ определяет суммарные затраты на приобретение аппаратных и программных средств ЭВМ, а также на их эксплуатацию за определенный период времени (обьино за год).

Таблица 2.1

Сравнительная характеристика поколений ЭВМ

Характеристика Поколения

Первое Второе Третье Четвертое 1946-1960 1960-1964 1964-1970 1970-1980

Основной элемент

Электронная лампа'

Транзистор Интегральная схема

Большая

интегральная

схема Размеры Очень большие

(ЕЫ1АС, Е05АС,

иЫ1УАС)

Значительно

меньше Мини-компьютеры Микрокомпью

теры

Быстродействие 1 (условно) 10 1000 10000 Носитель информации

Магнитная пента

Диск Гибкий диск

Многообразие свойств и характеристик порождает и многообразие классификаций ЭВМ, отличающихся разными признаками. Часто в качестве основного признака используют размеры системы. По этому признаку различают сверхбольшие, больппге, малые и ^а'Iкро-ЭВМ. Однако

35

Page 36: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

проблемно-ориентированные ЭВМ и специализированные ЭВМ. ЭВМ общего назначения отличаются большими операционными ресурсами,

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

Проблемно-ориентированные ЭВМ используются для решеьшя ограьшчен- ного круга задач, имеющих проблемное применение. Они сравнительно дешевы, просты в эксплуатации и обслуживании и рассчитаны на шссовое применение. Наиболее часто подобные ЭВМ используются в составе автоматизированных систем управлешгя технологическими процессами (АСУТП), в системах автоматизированного проекпгровашгя (САПР) и т. п.

Снижение стоимости ЭВМ данного класса достигается за счет разумного уменьшения операционных ресурсов применительно к конкретным проблелшым задачам. В качестве машин этого класса используются \ш- ни- и микро-ЭВМ, в том числе персональные компьютеры (ПК).

Специализированные ЭВМ используются для решения узкого круга задач с фиксированными алгоритмами. Такая специализация позволяет увеличить их быстродействие, что весьма важно при управлении объектами в реальном масштабе времени (бортовые систе1\ш самолетов, космических кораблей, в автомобилях и т. д.).

8,3, История создания и развития персональных компьютеров Официальная история ПК берет начало с августа 1981 г., когда фирма

1ВМ известила о создании "Персонального колтьютера 1ВМ". С момента принятия решения о создании персонального ко\шыотера 1ВМ до момента официального объявлеьшя о его создании прошел всего один год.

Фирма 1ВМ собиралась создавать 8-разрядный ПК, потому что это соответствовало существующим стандартам того времени. Одним из специалистов, консультировавших 1ВМ в процессе создашгя ПК, был Билл Гейтс, основатель фирмы Мюго5ой. Он предложил перейти в область более произюдительньк 16-разрядных вьршслений и изменить свои планы.

1ВМ РС появился осенью 1981 г. К весне 1982 г. этот ПК продавался в больших количествах, но, ко всеобщему удивлению, спрос намного превысил предложение. С самого начала появления ПК стало ясно, что необходима модель ПК, которую можно носить с собой в небольшом чемодане. Это привело к появлению фирмы Сотра^ Сотргйег. И первым пополнением семейства ПК стал компьютер, известный под названием Сотрац. О его создании было официально объявлено осенью 1982 г., спустя чуть больше года после выпуска оригинального ПК.

36

Page 37: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Следующей весной, в 1983 г., свой вклад в пополнение семейства ПК внесла

фирма 1ВМ. Появилась модель ХТ, которая добавила к ПК жесткий диск памяти

большого объема. Фирма Сотрая СотрШег ответила гем же, создав аналогичную

машину в переносимом варианте осенью 1983 г. Эта модель была названа Сотрад

Р1и5.

Летом 1984 г. появились две высокопроизводительные модели ПК. Одной из

них была модель Сотрая Оехк Рго, первый член семейства ПК, превосходивший

исходную модель по производительности вычислений. Вскоре после этого 1ВМ

выпустила компьютер АТ, скорость вычис- пений которого намного превышала

соответствующие параметры моделей исходных компьютеров и ХТ, и даже

нового Оезк Рго.

Изучение ПК неразрывно связано со знакомством с микропроцессорами,

которые представляют "мозг" машины. Если производитель компьютеров

самостоятельно проектирует компьютер, что называется с нуля, то он сам

определяет параметры и технические характеристики будущей машины,

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

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

производителями компьютерных интегральных схем.

Фирма 1ВМ выбрала микропроцессор 1п1е1 8088 в качестве основы своего

ПК. 1Ше1 8088 представляет собой всего лишь один микропроцессор из большого

семейства, называемого семейством 8086, разработанным фирмой 1Ше1.

Существенным шагом вперед стало создание микропроцессора 80286 (или

сокращенно 286), который используется в качестве базового для целой серии ПК.

В дальнейшем 1п1е1 разработала 386-й процессор, главным преимуществом

которого была возможность работать с 32-битными данными.

Затем появился 486-й микропроцессор, который был в 2 - 4 раза

производительнее МП 80386. В 486-ом микропроцессоре используются

раздельные 32-разрядные шины адреса и данных, обеспечивающие в

монопольном режиме скорость передачи данных до 106 Мбайт/с (при тактовой

частоте 33 МГц).

Следующим шагом в развитии микропроцессорной техники было появление

586-го микропроцессора (РепПит). Репйнт при полной совместимости с

предыдущими моделями имеет производительность свыше 100 млн. в секунду,

два отдельных кэш-устройства по 8 Кбайт (для команд и для данных), что

позволяет снизить число обращений к внешней памяти и увеличить

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

разрядов. Это позволяет за один такт передавать вдвое больше информации.

Блок предсказаний ветвлений позволяет предсказывать ход выполнения

программы. Два параллельных конвейера позволяют выполнять одновременно

две команды.

В сопроцессоре аппаратно реализованы умножение, деление и сложение.

Благодаря этому большинство операций с плавающей запятой выполняются за

один такт. РепБит работает в 2 раза быстрее, а на задачах с плавающей

арифметикой - в 5 раз быстрее, чем 486.

В настоящее время на рынке появились модели Репйшп РКО (Р6), которые

являются еще более мощными (тактовая частота Р6 от 150 до 300 МГц).

37

Page 38: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

я,4, Технические средства персонального компьютера

2.4.1. Структура персонального компьютера

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

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

Колшгество шин в интерфейсе определяется разрядностью передаваемой по нему информации. Обычно это 8, 16 или 32 разряда (бита).

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

Наиболее простой и широко используемой для построешгя мигга- и лшкро-ЭВМ (в том числе ПК) является структура на основе единого интерфейса (общая шина), которая представлена на рис. 1.

Все устройства подключаются к общей шине. Периферийные устройства (дисплей, клавиатура, накопители на жестких (НМД) и гибких (НГМД) магнитньгх дисках, принтер) подключаются к интерфейсу через свои контроллеры ПУ (КПУ - управлешге периферийным устройством). Необходимая эффективность обмена информацией между различными устройствами в такой структуре достигается при небольшом числе ПУ. Рассмотрим каждый кохшонент структуры ПК более подробно.

Рис. 2.1. Тшювпл стр}Т{тл1а ПК

38

Page 39: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

2.4.2. Устройства ввода данных

Клавиатура Каждый компьютер снабжен клавиатурой. Клавиатура ЭВМ содержит

цифры и буквы, которые расположены так же, как и на пишущей машинке. Такое расположение называют стандартным и иногда о^значают "словом" ^\VЕКТУ, которое отражает последовательность букв на клавишах в левой части клавиатуры. ВСлавиши бывают трех видов: алфавитные, функциональные, цифровые и установочные.

Графический планшет Данное устройство позюляст рисовать на экране дисплея точно так же,

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

Световое перо Это устройство наполошает обычное перо с той лишь разницей, что на его

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

Устройство оптического считывания знаков (сканер) Такое устройство позволяет "просматривать" отпечатанный на машинке

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

Устройство распознавания речи Устройства данного класса в настоящее время еще находятся в стадии

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

Мышь В кохшьютерный век слово "мышь" приобрело новое значение: так

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

39

Page 40: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

перечень действий), высвечиваемые на экране. Нужное действие выбирается перемещештем мыши, что в свою очередь приводит к перемещению курсора в требуемую позицию. Если при этом нажать кнопку, которой снабжена мышь, то ко.\шыотер выполшгг заданное действие.

Ручка управления

Если вам когда-нибудь приходилось иметь дело с кохшыотерными играми, вы наверняка знаете, что такое ручка управления (или джойстик). Она позволяет перемещать изображешге, линшо, слово или курсор по экрану. Ручка управлен1гя имеет то же самое назначение, що и клавиши управления курсором (няи установочные клавипш), но перемещение по экрану осуществляется быстрее и в восьми направлениях, а не в четырех.

2.4.3. Центральный процессор

Итак, мы рассмотрели устройства, с помощью которых вьшолняется ввод данных. Подобные устройства соединяются с кохшьютером с помощью кабеля. Для этого каждый вид оборудовашш имеет так называехшй порт (или многоразрядные вход и выход), с помощью которого осуществляется необходимое соединение.

После ввода данных встает вопрос: как компьютер их обрабатывает? Команды с клавиатуры или от других источников (например, программы)

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

Цегнральный процессор расположен внутри корпуса ЭВМ и является ее "мозгом" и координирующим цеьстром. Он выполняет арифметические действия, логические операции и осуществляет управление. При этом арифметические и логические операции выполняются одним элементом ЦП {арифметико-логическим устройством), а управление реализуется другим {устройством управления). Устройство управлешгя координирует работу всех устройств ЭВМ.

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

В современных ПК для ускорешгя работы м1гкропроцессора используется сопроцессор - устройство, осуществляющее обработку чисел с плавающей запятой. При проведешш расчетов с такими числами каждая операция над ни\п1 моделируется с помощью нескольких десятков операций микропроцессора. Это сильно снижает эффективность применения кохшьютера для научных вычислений, при использовании машинной график!! и для других применений с интенсшным использовашгем чисел с плавающей точкой. Наличие сопроцессора может увеличить скорость выполнешгя этих операцшг в 5 - 15 раз.

40

Page 41: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Микропроцессоры 1п1;е1-8048б и РепИшп са^ш поддерживают операции с плавающей точкой, поэтому при их использоваш-ш сопроцессор не зребуется.

2.4.4. Память '.•л-?л:»»вггзр^

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

Объем ко^шыотерной памяти обычно задается блоками по 1024 единицы. Значешге 1024 зашгсывается как К (сокращенно от кило); 64 К- ;>то 64 блока по 1024 единицы, то есть 65536 единиц.

У ко^шьютера имеется два вида памяти. Одна обеспечивает постоянное хранение информащш, на нее не влияет выключение питания. Это - постоянная

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

устройство (ПЗУ). Другой вид памяти - для временного хра- нешгя информации - оперативное запоминающее устройство. Для временного хранения информации используется и кэш-памэть.

Постоянная память. Каждый компьютер должен быть снабжен встроенным набором команд, которые сообщают ему, что делать после вклю- чеьшя питания. Разные ЭВМ имеют различные типы команд в постоянной памяти, но при этом некоторые команды одинаковы и обязательны ;|дя всех ЭВМ. Например, все ЭВМ должны уметь производить штема- тические вычисления.

Команды, введенные в ПЗУ, находятся там постоянно. Компьютер может читать или исполнять эти команды, но он не может ни измешгть их, ни что-либо добавлять к ним. Именно поэтому память называется постояшюй (предназначешюй для чтения).

Оперативная память (ОП). Оперативная память содерж!^ про1ра.ммы и дру- 1ую информащпо, введенную в нее в процессе работы. Например, все, что мы вводим в машину с помощью клавиатуры, помешается в операпгвную память.

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

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

Кэш-память представляет собой небольшой блок (обычно от 32 до 256 Кбайт) быстродействующей, но дорогой памяти, которая находится между процессором и ОЗУ.

В кэш-памяти хранятся наиболее часто используемые участки операптв- ной палтяти. Она может увелтгчить быстродействие процессора на 10 - 20%.

41

Page 42: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

2.4.5. Устройства вывода

Подобно тому, как есть целый ряд способов ввода данных в ЭВМ, существует и множество способов вывода данных.

Экран дисплея Экран дисплея - это экран электроьшо-лучевой трубки (ЭЛТ), который

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

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

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

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

Принтеры Принтеры предназначены для получегшя твердой копии данных, которые

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

Принтеры ударного типа являются полностью мехашгческими. К ним относятся устройства с литерной печатью и точечно-матричные принтеры.

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

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

Графопостроитель (плоттер) Хотя обычное печатающее устройство способно вьщавать некоторые

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

42

Page 43: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

2.4.6. Устройства ввода-вывода

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

Сенсорный экран Сенсорный экран есть не что иное, как разновидность светового пера. Прикасаясь к экрану,

можно перемегцать изображения, а также выдавать К()МПЫОтеру задание на вьшолнение

определенных команд.

Аудиоплата (5оипЛЫа5(ег) Аудиоплата (ЗогшбЫаЫег) - устройсгво, предоставляющее возможности

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

Модем Устройство, называемое модемом, предназначено для того, чтобы

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

Факс-модем Факс-модем - это дополнительное устройство, которое обеспечивает

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

2.4.7. Устройства хранения больших объемов информации ___

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

Кассета с магнитной лентой (стример) Кассета данного типа представляет собой небольшой рулон магнитной

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

43

Page 44: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

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

Гибкий диск Гибкие диски (дискеты) позволяют переносить даьшые и программы с

одного ко^шыотера на другой, храшггь информацию, не используемую постоянно на ПК, делать архивные копии информации, содержащейся на жестком диске. Гибкие диски выпускаются двух видов: 5,25-дюймовые и 3,25-дюймовые.

Жесткий диск Жесткий диск - это герметизироваьшый магнитный носитель. Жесткие

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

Жесткие диски отличаются от гибких дисков большим объемом памяти. Объем их колеблется от 20 Мб до 5 Гб (что приблизительно равно 5000 Мб).

Компакт-диск (СП) СВ-КОМ в колшьютере предназначен для чтения цифровых кокшакт-

дисков. Емкость компакт-дисков составляет более 700 Мбайт. Стандартная скорость чтения данных с дисков 150 Кбайт/с, а время доступа - 0,4 секунды. Сушествуют 6-, 8-, 10-, 12-, 18-, 20-, 24-скоростные приводы (скорость чтения 10-скоростного привода - 1,5 Мбайт/с).

Устройство для чтения кокшакт-дисков, производимое с помощью лазера, называется СВ-КОМ. Стандартная скорость чтения данных с СВ- дисков - 150 Кбайт/с, а время доступа - 0,4 секунды. В настоящее время уже используются 24- и 32-скоростные СВ-КОМ.

Магнитооптический диск Магнитооптические диски - устройства хранения информации, в которых

1шформация хранится на магнитном носителе, защищенном прозрачной пленкой, а чтешге и запись осуществляются с помощью луча лазера. Магнитооптические диски вьшускаются размером 3,5 и 5,25 дюйма.

Емкость дисков размером 3,5 дюйма - 640 Мбайт, а скорость доступа - почти такая же, как у жесткого диска, надежность хранения чрезвычайно высока. На дисках 5,25 дюйма помещается 2,6 Гбайта информации (при таких же показателях скороснг и надежности).

44

Page 45: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

8,5, Программные средства вычислительной техники

2.5.1. Общие сведения о программном обеспечении ЭВМ

Совокупность аппаратных и програмлшых средств ЭВМ образует вычислительную систему. Программные средства ЭВМ, в свою очередь, образуют программное обеспечение, стоимость которого составляет до 7,'5% стоимости системы.

В состав программного обеспечения (ПО) персональных ЭВМ входят следующие компоненты (рис. 2): • общее {системное, базовое) ПО, к которому относят; операционную

систему (ОС), системы програ^ширования (трансляторы языков про- грамхшрования) и комплект программ технического обслуживания;

• специальное {прикладное) ПО - пакеты прикладных программ.

Рис. 2.2. Структ5ра программного обеспечения

2.5.2. Общее программное обеспечение

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

45

Page 46: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Основным компонентом общего ПО является операционная система, которая выполняет следуюшце функции: • управление вычислительнььм процессом;

• организация управления вводом-выводом;

• организация диалога пользователя с ЭВМ;

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

перечисленные выще функции. Они после загрузки ОС постоянно хранятся в оперативной памяти ЭВМ (являются резидентными). Помимо управляющих в состав ОС входят обрабатывающие программы, выполняющие следующие функцшг: • сервис по ко^шоновке и отладке програм,\шых модулей; • хранение и настройка проIрам^^ныx модулей; • загрузка и исполнение программ.

Для разных классов персональных ЭВМ используются различные виды ОС (М5-008, ПК1Х, 08/2). Для каждой из ОС существует язык ОС - системные команды, с помощью которых пользователь общается аппаратными средствами ЭВМ.

Успехи в разработке оборудования сопровождались достижениями в програмлшровании. Первой важной разработкой, обычно пргашсываемой Г. Хопперу, }шляется симюлический мащинный язык, который освобождает программиста от многих чрезвычайно утомительных действий, порождающих ошибки. Другой вехой оказался первьш язык высокого уровня РоИпш (Фортран), появившийся приблизительно в 1955 г. и получивший широкое распространение. Этот язьпс включает \шогие элементы алгебраических обозначений, такие как индексированные переменные и математические выражения произюльной длины. Поскольку Фортран разработан фирмой 1ВМ, выпускавшей наибольшее число машшт, он быстро получил широкое распространение и, претерпев ряд модификаций, даже в настоящее время остается широко используемььм языком (Фортран 77).

Основные отличия алгоритмических языков от машинных языков состоят в следующем: • алгоритлатческий язык обладает гораздо большими выразительными

возможностями, то есть его алфавит значительно 1пире алфавита мапвшного языка, что существенно повышает наглядность текста программы;

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

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

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

математических обозначений;

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

46

Page 47: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

семантика. Алфавит - это фиксированный для данного языка набор основных

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

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

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

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

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

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

Запись алгоритма предназначена для ЭВМ, должна быть на языке, "понятном" ЭВМ. И здесь на первый план вьщвигается необходимость точной записи команд, не оставляющей места для произвольного толкования их исполнителем. Следовательно, язык для записи алгоритмов должен быть ({юрмализован. Такой язык принято называть языком программирования, а запись алгоритма на этом языке - программой для ЭВМ.

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

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

Алгоритмический язык - формальный язык, предназначенный для записи алгоритмов. Он определяется заданием алфавита (словаря исходных символов), точным описаьшем его синтаксиса (грамматики) и семантики.

47

Page 48: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

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

По перюму признаку оюг делятся на две большие группы: машинозависимые и машинонезависимые языки. Машинозависимые язьпаг классифицируют на машинные и машинно-ориетированные (автокоды) - рис. 2.3. Раз- лизгают два уровш машшшо-ориешггрованных языков: символического кодировашгя (ассемблеры) и макроязыки (макроассемблеры).

В мнемокоде цифровой код операции заменен буквенным (лшемони- ческим), а цифровые адреса - буквенными именашг.

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

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

геиератор программ

Рис. 2.3. Классификация алгоритмичесш1х языков

48

Page 49: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

программы, записанные на машинонезависимых языках, почти не зависят от типа ЭВМ. Структура этих языков ближе к структуре естественных языков, например к структуре англгатского языка, чем к структуре машинно-ориетированных языков. Поэтому эти языки могут применять непрофессиональные программисты.

Машинонезависимые языки в последние годы обьгчно разделяют на две 1РУППЫ. К первой, наиболее обширной группе, принадлежат процедуро- ориентироваьшые язьжи. Ко второй, наименее разработанной группе, относятся проблемно-ориентированные языки.

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

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

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

Система програмхшрования представляет собой колшлекс программ, обеспетаваюших выполнешге функции автоматизащги процесса подготовки программ и их выполнеьше в различных режимах работы ЭВМ. Обычно это набор стандартных языков программировашгя высокого уровня, к которым относятся языки ВА51С, РАЗСАЬ, С, РОКТКАМ и их модификации.

РОКТКАР[, с его четко определенными правила^пI вьшолнения арифметических действий, является классическим языком програмхшрования, наиболее подходящим для выполнешгя научных, математических и инженерных расчетов.

РАЗСАЬ разрабатывался швейцарсюгм ученым Н. Виром специально для обучения програмхшрованию студентов и бьш призван помогать фор- \шровать \п>1шление програмлшста, естественным образом отображать структуру алгоритма в программе. Однако из учебного языка РАЗСАЬ вскоре стал наиболее популярным профессиональным язьпсом программирования, на котором нагагсано больщинство современных программ.

Язык программирования С был разработан как инструментальное средство для реализагщи операционной системы ^NIX, однако его популярность быстро переросла рамки этой системы и кошеретных задач системного программирования.

Основу системы программирования составляют программы-редакторы и программы-трансляторы. Первые предназначены для создания и рсдак-

49

Page 50: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

Различают трансляторы компилирующего типа {компиляторы) и интерпретирующего типа {интерпретаторы). Компиляторы производят трансляцию всего текста программы на языке программирования на ма- щинный язык за один непрерывный проход (процесс) и создают программу на машинном языке, готовую к загрузке в ОП и исполнеьшю. Для больщинства языков программирования используются компиляторы. Их основное достоинство - большая скорость исполнения готовой программы. Основной недостаток - сложный процесс отладки программы.

Интерпретаторы последовательно анализируют операторы программы на языке программирования и осуществляют их преобразование на язык машинных команд Ь одновременным исполнением этих команд. Таким образом, интерпретатор должен постоянно находиться в ОП для вьшолне- ния программ, то есть требует большой объем ОП. Основное достоинство - простота отладки программ.

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

2.5.3. Прикладное программное обеспечение - пакеты прикладных программ ______ _________________

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

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

50

Page 51: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

2.5.4. Оригинальные программы

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

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

2.5.5. Представление о файлах и файловой системе _____

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

В зависимости от вида хранимой информации различают программные файлы и файлы данных. Обращение к файлу осуществляется по его имени с жазанием типа. Например: КНЮА.ТХГ - файл ККЮА для хранения текста; АЬЕАРАЗ - файл АЬРА для хранения программ на языке Паскаль.

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

Имя файла и его тип — это, по суги, и есть пшфр, по которому легко найти файл. Имя внепшего устройства памяти (диска) стоит перед именем файла и указывает устрогтство, на котором следует искать этот файл. На диске вьщелено место, где расположен главный каталог с именами подкаталогов и файлов. По имени файла можно обращаться к содержимому этого файла.

С: \КЫ1СА\ЕА2ВЕЪ\1ек. 1^x1:

:шифр каталог ^ устройства

подкаталог имя файла

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

2.5.6. Программы обработки текстов

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

К издательским системам, получившим наибольшее распространение, можно отнести следующие пакеты программ: Т1ге ОШсе РиЬИзйег, Ра^е Макет, УепРгга РиЬНзкег.

51

Page 52: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

Наибольщую известность в России получили следующие редакторы: Лексикон, СЫ\Уп1ег, \Уог<1РегГес1;, \Уогб81аг, \Уог<1 Гог \Утбо\УЗ.

Вьщелим их параметры и функциональные характеристики: 1. Редактирование текста на экране:

• перемещение по строкам, абзацам, страницам, в конец и в начало текста, запоминание позиций и возврат к ним;

• выделение фрагментов, состоящих из си\шолов, слов или строк, их удаление, вставка, копирование;

• форматирование отдельных строк и абзацев - выравнивание по лево- му/правому краю, задание отступа для первой строки абзаца, задание полей, задание переносов слов;

• разбивка на страницы - автоматическая или ручная установка страниц; • вьщеление заголовков, их центрирование, автоматическая или ручная

нумерация. 2 Разметка/выделение отдельных элементов текста:

• изменение шрифта отделып>1х слов, строк, абзацев;

• подчеркивание, разрядка слов, усиление яркости; • введение верхних и нижних индексов.

3. Введение в текст нетекстовых фрагментов:

• рисунков, математических выражений, химических формул. 4. Взаимодействие с файловой системой:

• сохранение/загрузка текстовых файлов; • вьщача каталога файлов и выбор из него файлов для работы; • слияние текстов из разных файлов, взаимные переносы фрагментов

текстов между разными файлами. 5. Вывод текстов на печатающие устройства разных типов с заданием

параметров печати: • тип принтера;

• размер страницы;

• левого поля и длины строки или левого и правого поля;

• интервала между строками;

• порядка нумерации страниц; • колонтитулов - стандартных надписей на верхнем и нижнем поле каждой

страницы; • необходимости печати в два столбца; • порядка работы принтера по окончании каждой страницы (ждать/не

ждать).

52

Page 53: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

2.5.7. Электронные таблицы (ЭТ)

Электронная таблица - это электронная реализация бумажной формы (Сданка), содержимое которой может храниться в оперативной памяти, выводиться на экран или принтер. Такая таблица является "активной" и управляемой. Электронная таблица организована в виде матрицы из столбцов и строк. Строки обычно имеют сквозную нумерацию (1,2, ...), столбцы обозначаются буквами, например от А до 2, а затем от АА до А2 и т. д. Каждому элементу матрицы могут быть поставлены в соответствие метка (слово), число или формула для вычислений, которые шдо произвести в данном элементе.

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

А В С О Е Р С

1

2

3

4

5

Рис. 3. Пример эле1{трон110й таблицы

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

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

графах; • предполагается использование математических вычислений над данными

таблицы; • предполагается статистическая обработка даьшых; • возможно частое изменение информации и, кроме того, отслеживается

большое число показателей; • предполагается изготовление нужного числа копий табличных

документов. Наиболее распространенные системы по электронным таблицам:

8ирегСа1с, ЬоШз 1-2-3, Ргателуогк, ЕХСЕЬ и др.

53

Page 54: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

2.5.8. Обработка графической информации ____________

Системы машинной графики на ПК можно отнести к нескольким классам, среди которых вьщеляют следующее:

• деловая графика;

• иллюстративьгая графика;

• инженерная графика;

• научная графика. Деловая графика. Системы деловой графики предназначены для

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

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

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

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

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

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

копирование, закраска или заштриховка; • наложение заранее созданных библиотечных элементов на вновь

создаваемые изображения; • шрифтовое оформление и др.

Наиболее распространенными пакетами такого рода являются: Р1юЩ81юр, СогсЮIа\V, Пиз1га1ог и др.

54

Page 55: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Инженерная графика. Основные направления развития систем инженерной графики связано с автоматизацией чертежных и конструкторских работ (САПР - системы автоматизации проектирования).

В системах инженерной графики для создания изображений используются: • объекты (примитивы) вывода, из которых строится выходное

изображение; • системы координат и их преобразование; • сегментация изображений и преобразование сегментов; • списки состояний графической системы и др.

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

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

• координатной сетки;

• контурного изображения некоторого района;

• графического отображения распределенных даьшых;

• условных знаков, нанесенных на определенные точки карты;

• объяснение смысла условных знаков;

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

формирования научной документации с использованием математических и хи- х[ических формул.

СУБД - это система управлешгя базами данных. База данных представляет собой совокупность связаьшых между собой сведений (например, библиотечные карточки, списки адресов и телефонов и т. д.), которая имеет определенную структуру.

При работе с базами данных пользуются специальной терминологией: • наименьший поименованный элемент информации, хранящийся в базе

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

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

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

;;ичные базы могут отличаться объемом хранявдихся в них данных.

55

Page 56: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Система управления базой данных (СУБД) представляет собой программу, которая позволяет средствами электронной техники хранить данные, отыскивать нужные сведешгя и управлять информацией.

С помощью СУБД быстрее и проще, чем в "ручных" базах данных, осуществляется запоминание, поиск, сортировка больших объемов информации. Чем больше информации содержится в базе данных, тем больше вероятность выигрьппа от использовашгя программньк средств СУБД.

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

каталога со всеми занесеннымгг в нее сведех-шями об одной книге является записью);

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

Система управления базой данных (СУБД) представляет собой программу, которая позволяет средства^ш электронной техники хранить данные, отыскивать нужные сведенш и управлять информацией.

С помощью СУБД быстрее и проще, чем в "ручных" базах данных, осуществляется запоминание, поиск, сортировка ^льших объемов информации. Чем болъще информации содержится в базе даннътх, тем боль- ще вероятность выигрьппа от использования программных средств СУБД.

Программные средства, используемые для работы с базами данных: Ассезз, Рагайох, РохРго.

56

Page 57: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

ГЛАВА 3

Разработка алгоритма решения задачи

Решение любой конкретной задачи предполагает обработку разнообразной информащти о реальных объектах. Например, при решении задачи о начисяе- 1П-Ш зарплаты сотрудникам фирмы объектами задачи могут бьпъ: табельньпй номер сотрудника, его фамилия, имя, отчество, оклад, отработанное время и т. д. При решеьжи системы алгебраических уравнений необходимой инфор- VIацией являются значения коэффициентов уравненшй и их правых частей.

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

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

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

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

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

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

Например, одномерный массив целых чисел под именем N размерностью 46, описанньш на языке ВА81С как В1М N(45), можно схематично представить следующим образом.

Данные -7 12 0 56 -32 3 Условные адреса N(0) N(1) КО К44) N(45)

57

Page 58: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Запись В1М N(45) означает, что под именем N в памяти ЭВМ предусмотрено место для записи до 46 целых чисел (элементов массива). N(0), N(1), N(1), N(45) - имена переменных, используя которые, можно организовать хранение, поиск и обработку соответствующих данных. Доступ к каждому из элементов массива осуществляется по имени и значению индекса массива. Например, после выполнения команды А = N(45) + N(2) переменной А будет присвоено значение, равное 3 + 0 = 3.

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

Двумерный массив размерностью 12 (3 строки и 4 столбца) описьшается на языке ВА81С как 01М 8Т(2, 3). Схематично форхогрование условных адресов элементов массива можно представить следующим образом:

5Т(0,0) 5Т{0,1) 5Т(0,2) 5Т(0,3) 5Т(1,0) 5Т(1,2) 5Т(1,3) 5Т(2,0) 5Т(2,1) 5Т(2,2) ___ 5Т(2,3) ___

3^ 1^ Этапы решения задачи на ЭВМ Подготовка любой задачи к рещвнию на ЭВМ состоит из нескольких

этапов. Все этапы взаимосвязаны: последующие этапы зависят от реализации

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

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

Второй этап - разработка математической модели решаемой задачи. Третий этап - выбор метода решения. Выбор метода определяется

решаемой задачей, а также возможностями ЭВМ (ее быстродействием, объемом памяти, точностью представления штсел, наличием разработаьшых ранее готовых программ и т. п.). Вьшолнение этого этапа требует некоторого 1фугозора как в области программирования, так и в области используемых методов.

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

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

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

Page 59: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

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

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

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

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

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

В про1рамме следует предусмотреть контроль вводимых данных (в частности, программа не должна вьшолняться, если данные выходят за пределы допустимого диапазона).

3. Некоторые простые приемы позволяют повысить эффективность программы (то есть уменьшить количество вьшолняемых операций и время работы программы). К таким приемам относятся: • использовагше операции умножения вместо возведения в степень (ХЗ = X X

X X X); • если некоторюе арифметическое выражение встрючается в вычислениях

несколько раз, то его следует вычислить заранее и хранить в памяти ЭВМ, а по мере необходимости использовать;

• при организации циклов в качестве границ индексов использовать переменные, а не выражешгя, которые вычислялись бы при каждом прохождении цикла;

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

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

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

Седьмой этап - тестирование, отладка и исправление обнаруженьшгх ошибок.

59

Page 60: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

Далее даются некоторые рекомендации по тестированию и отладке. 1. Необходимо проверить работу программы (или отдельных ее частей)

вручную до вьиода на компьютер. ’ 2. Проводить тестирование и отладку нужно отдельно для логически

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

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

необходимый объем данных. Восьмой этап - счет по готовой программе и анализ результатов. Этот

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

3,8, Алгоритм и его свойства Алгоритмом называется определенная, формальная, общепонятная

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

ЬСаждый алгоритм должен обладать следующими основными свойствами:

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

2. Определенность. Это свойство состоит в том, что каждая команда алгоритма должна быть че1>уг1ц однозначной и не оставлять места для произвола.

3. Конечность. Это свойство состоит в том, что алгоритм должен приводить к рещению задачи за конечное число шагов.

4. Массовость. Это свойство состоит в том, что алгоритм решения задачи разрабатьшается не для одной конкретной задачи, а для целого класса однотипных задач, различающихся лишь исходныхш данными.

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

60

Page 61: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Разработанный алгоритм можно зафиксировать несколькими способами, например;

• на естественном языке;

• в виде схемы (блок-схемы);

• на специальном языке (алгоритмическом языке).

3,3, Способы записи апгоритмов Обобщенная схема алгоритма обработки данных представлена на рис. 3.1.

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

Пример 3 .1 : Разработать алгоритм вычисления функции вида:

= (7 X X - 4 ) / ( 5 X X + 3 ) .

Этап 1. Математическое описание решения задачи. Оно представлено в условии задачи.

Этап 2. Определение входных и выходных данных. Следуя математическому описанию,

входным данным является аргумент функции х, выходным данным (результатом

вычислений) - значение функции у. Этап 3. Разработка алгоритма решения. Учитывая общие

рекоменда- ]ции, надо выполнить такую последовательность действий (шагов):

1. Начало алгоритма.

;|2. Ввод значения X.

.■I Обработка данных - вычисление значения У по формуле:

:= (7х - 4) / (5х + 3) .

4. Вывод результата вычислений У.

35. Конец алгоритма.

Перечислешгая последовательность действий является алгоритмом решения задачи. Символ ' означает действие присваивания, которое соответствует тому, что значение выражения, стоящее с правой стороны от символа, вычисляется и присваивается величине, записанной слева от сщтола.

Описание алгоритма на естественном языке состоит из перечня действий (шагов), каждый из которых имеет порядковый номер. Алгоритм должен выполняться последовательно шаг за шагом. Если в тексте алгоритма нагшсано "перейти к шагу с номером ЕГ', то это означает, что выполнение алгоритма продолжится с указанного шага с номером N. Словесное описание алгоритмов пр)нменяют при решении несложных задач, ЕЮ ОНО малопригодно для представления сложных алгоритмов из-за отсутствия наглядности.

Описание алгоритмов в виде схем. Для обозначения шагов решения, в виде схемы алгоритма, используктся специаль)Еше обозначения (символы). Перечень наиболее часто употребляемых символов приведен в таблице 3.1. Для задачи 3.1 алгоритм в виде схемы представлен на рис. 3.2.

61

Page 62: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

Таблица 3.1

Схемы алгоритмов и программ

Рис. 3.1. Обобщенная схема алгоритма обрабопш данных

Рис. 3.2. Схема алгоритма для задачи 3.1

62

Page 63: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.3.1. Алгоритмы линейной структуры

Алгоритмы линейной структуры (см. задачу 3.1) состоят из последовательности определенных алгоритмом действий. Например, ввод значения X, вычисление значения у и вывод результата вычисления у.

Цряыер 3 .2 : Вычислить высоту треугольника, опущенную на сторону а, по известным

значениям длин его сторон а, Ь, о.

Этап 1. Математическое описание решения задачи. Площадь треугольника можно

вычислить по формуле

Б = Ь. 1./2 ( 3 . 1 )

или по формуле Герона

3 = 7Р(Р - (Р - 1ь) (р - 1с) - ( 3 . 2 )

где В, - высота, опущенная на сторону а; 1., 1ь, 1о - длины сторон а, Ь, с соответственно; р

= (1., + 1ь, + 1о)/2 - полупериметр треугольника .

Из выражений ( 3 . 1 ) и ( 3 . 2 ) получим формулу для вычисления высоты ;треугольника:

Ь. = 2 д/Р<Р - 1а> <Р - 1ь> (Р - 1с) / I.- ( 3 . 3 )

Формула ( 3 . 3 ) является математическим описанием решения задачи. Этап 2. Определение

входных и выходных данных. Входными данными, исходя из условия задачи, являются

длины сторон треугольника. Выходным данным является значение высоты треугольника,

опущенной на сторону а. Кроме того, как следует из математического описания, потребуется

вычислить значение вспомогательной величины - полупериметра треугольника.

Этап 3. Разработка алгоритма решения. Введем обозначения: ЬА -

длина стороны 1.; ЬВ - длина стороны 1ь; ЬС - длина стороны 1^; Р - -полупериметр

треугольника; НА - длина высоты, опущенной на сторону а.

Словесное описание алгоритма решения:

1. Начало алгоритма.

2. Ввод исходных данных - ЬА, ЬВ, ЬС.

3. Вычисление полупериметра треугольника Р := (1А

+ ЬВ + ЬС) / 2 . 4. Вычисление высоты треугольника, опущенной на сторону а :

^ _ УР(Р - 1А) (Р - ЬВ) (Р - ЬС)

ЬА

5. Вывод результата вычисления на печать.

6. Конец алгоритма.

Описание алгоритма в виде схемы представлено на рис. 3 . 3 .

63

Page 64: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Рнс. 3.3. Схема алгоритма для задачи 3.2

Упражнения Разработать алгоритм: 3.3. Вылислеш^я значештй функции У = (7Х + 4)(2Х - 2). 3.4. Вычисления координаты середины отрезка (а, Ь). 3.5. Вычисления площади треугольника по формуле Герона, если заданы

длины его сторон 4, /(,, 1^. 3.6. Вычисления площади равнобедренной трапеции с основаниями а, Л

и высотой к. 3.7. Определения координат вершины параболы У = ах^ + Ьх + с (а^О).

3.8. Вычисления объема цилиндра с радиусом основаьшя г и высотой И. 3.9. Определить расстояние на плоскости между двумя точками М\{х1, УО

И М2{Х2, У2). 3.10. Определения расстояния, пройденного физетеским телом за время

1, если тело движется с постоянным ускорешюм а и имеет в начальный момент скорость

3.11. Определения времени свободного падения физического тела с высоты к (к > 0).

3.3.2. Алгоритмы разветвляющейся структуры

Решение задач не всегда можно представить в виде линейного алгоритма.

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

64

Page 65: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Цриыер 3.12: Разработать алгоритм нахождения действительных корней квадратного

уравнения ах^ + Ьх + с = О. Если действительных корней нет, то выдать соответствующее

сообщение.

Этап 1. Математическое описание решения задачи. Из курса математики известно, что такое

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

XI = Ь + -Уо

Х2 = - Ь - ^

2а 2а

где XI и Х2- первый и второй корни уравнения соответственно; О = - 4ас - дискриминант

уравнения.

Уравнение имеет действительные корни, если дискриминант больше или равен О [ О >

0 ) .

Этап 2. Определение входных и выходных данных. Входными данными являются

коэффициенты уравнения а, Ь, с, выходными данными - значения корней уравнения или

сообщение об отсутствии действительных корней. Для вычисления корней уравнения

необходимо знать дискриминант уравнения.

Этап 3. Разработка алгоритма решения. Введем обозначения: А, В, С - коэффициенты

уравнения, соответствующие а, Ь и с; XI, Х2 - первый и второй корни уравнения; О -

дискриминант уравнения. Словесное описание алгоритма решения:

1. Начало алгоритма.

2. Ввод значений А, В, С.

3. Вычисление дискриминанта 0 : = В ^ " 4 * А * С . 4. Если дискриминант В > О, то перейти к шагу 5, иначе - к шагу 7. 5. Вычисление значений корней

XI :=

-В + Уп - В - У о ■ ; Х 2

: = 2А 2А

; 6 . Вывод значений XI и Х2 на печать, переход к шагу 8.

‘7. Вывод сообщения: "Дискриминант уравнения меньше нуля".

8. Конец алгоритма.

В разработанном алгоритме имеются две ветви: одну ветвь составляют шаги 5 и 6, а другую - шаг 7. Выбор ветви определяется по значению дискриминанта на шаге 4. Здесь неравенство П > О является условием, определяющим порядок вьшолнения шагов (ветвей) алгоритма.

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

В схеме алгоритма (рис. 3.4) для обозначения условия использован символ "решение" (см. табл. 3.1) для элемента с номером 4. Если условие (неравенство), записаштое внутри с1гмвола "решешге", удовлетворяется при данном значении дискриминанта, то следующими выполняются элементы 5 и 6. Это следует из того, что они соединены с элементом 4 линией с надтгсью "ДА". Если условие в элементе 4 не удовлетворяется, то следующим вьшольыется элемент 7 (он соедцтнен с элементом 4 линией с надписью "НЕТ").

65

Page 66: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Рис. 3.4. Схема алгоритма для задачи 3.12

Упражнения Разработать алгоритм: 3.13. Определить номер квадранта, в котором расположена точка М (х, у)

с координатами х и у. 3.14. Вычислить значение функции у = 1 -1 х | в заданной точке х на

интервале (-1, 1). Если значение аргумента вне интервала, у равняется нулю. 3.15. Сравнить между собой значения величин х и у. Вывести на печать

результат сравнения в виде "х > у" или "х = у". 3.16. Среди значений функций 5т(х), соз(х), 1п | х |, при одном и том же

значении аргумента, определить и вывести на печать минимальное значение. 3.17. Определить корни квадратного уравнения ах^ + йс -Н с = О при

любых значениях коэффициентов а, Ь, с, в том числе при а = 0. 3.18. Определить, какая из двух точек - М\{х\, у\) иди Л^2(^2> У^^ ~

расположена ближе к началу координат. Вывести на печать координаты этой точки.

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

3.20. Определить, попадает ли точка М (х, у) с координатами х и у в круг радиусом г с центром в начале координат.

66

Page 67: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.3.3. Алгоритмы циклической структуры

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

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

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

Цикл организуют по определенным правилам. Циклический алгоритм состоит из подготовки цикла, тела цикла, условия продолжения цикла (рис. 3.5).

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

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

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

Рис. 3.5. Обобщенная схема циклического алгоритма

67

Page 68: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Цринар 3.21: Вычислить множество значений функции у = х' + Ь для X , изменяющегося от -10

до 10 с шагом 2, при Ь = 5.

Входные данные - начальное и конечное значения х, шаг изменения X и значения константы

Ь. Выходные данные - значения функции у для различных значений аргумента х.

Разработкя гшгарятча рашяняя аадачи Анализ условия задачи показывает необходимость многократного повторения вычислений

значений функции у для различных значений аргумента х, то есть необходимость

использования алгоритма циклической структуры.

В качестве параметра цикла можно взять величину аргумента функции X . Тогда начальным

значением параметра цикла будет начальное значение х; конечным - конечное значение х;

шагом изменения параметра цикла - шаг изменения значения х.

Состаязша частя цязсла Подготовка цикла: задание начального значения, конечного значения и шага изменения для

параметра цикла х. Это можно сделать путем ввода соответствующих значений.

Тело цикла: организация вычисления очередного значения функции

у; вывод текущего значения аргумента и вычисленного значения функции; подготовка

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

увеличение параметра цикла на величину шага.

Условие продолжения цикла: вычисления в теле цикла будут продолжаться, пока значение

величины х (параметра цикла) не превысит конечное значение параметра цикла.

Введем обозначения: ХМ - начальное значение х; ХК - конечное

значение х; ОХ - шаг изменения величины х; X - текущее значение величины х; У- значение

функции у; В - значение константы Ь. Словесное опясаяяа алгорятяа рашаняя:

1. Начало алгоритма.

2. Ввод значений ХМ, ХК, В и ОХ.

3. Задание первого значения X := ХМ.

4. Вычисление значения У := Х^ + В.

5. Вывод значений X и У.

6. Изменение значения X := X + ОХ. 7. Если X ^ ХК, то перейти к шагу 4, иначе - к шагу 8. 8. Конец алгоритма.

Дадим пояснения к приведенной на рис. 3.6 блок-схеме алгоритма решения задачи 3.21.

Подготовка цикла: блоки 2 и 3. Тело цикла: вычисление функции - блок 4; вывод значений - блок 5;

подготовка следующего значения параметра цикла - блок 6. Условие продолжения цикла: блок 7.

68

Page 69: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Рис. 3.6. Схема алгоритма для задачи 3.21

Цргше/р 3.22: Вычислить К первых членов арифметической прогрессии, заданных рекуррентной формулой: ап+1 “ а.. + 2, где а„ - п-й член арифметической прогрессии; а„.1 - (п + 1 ) - й член арифметической прогрессии. Пусть а1 = 5 и К = 1 0 0 . Входные данные - значение первого члена арифметической прогрессии, разность арифметической прогрессии и число членов прогрессии. Выходные данные - вычисленные значения членов арифметической прогрессии, начиная со второго и до последнего. Помимо этих величин необходимо иметь номер вычисляемого члена для определения окончания вычислений. Так как вычисление каждого последующего члена выполняется по одной и той же формуле, то решение задачи можно представить циклическим алгоритмом, в котором в качестве параметра цикла используется номер члена арифметической прогрессии п. Подготовка цикла. Необходимо задать начальное и конечное значения для параметра цикла. Вычисления начинаются со второго члена прогрессии, поэтому вводим значение первого члена прогрессии и задаем начальное значение параметра цикла, равное 2. Конечное значение известно из условия (К = 1 0 0 ) . Шаг цикла 1. Тело цикла. Здесь вычисляется и выводится значение члена арифметической прогрессии,

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

69

Page 70: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Условие продолжения цикла. Выполнение цикла продолжается до тех пор, пока не будут

вычислены все 100 членов арифметической прогрессии, то есть пока параметр цикла п а

1 0 0 .

Введем обозначения: А1 - значение первого члена арифметической

прогрессии; X - вычисляемый а„ член арифметической прогрессии - параметр цикла; К -

конечное значение параметра цикла (номер последнего члена арифметической прогрессии);

ВЫ - шаг цикла. Словесное описание алгоритма решения:

1. Начало алгоритма.

2. Ввод значений А1, К; вывод значения А1.

3. Подготовка цикла

N = 2 , В Ы = 1 ,

Х = А 1 .

4. Вычисление очередного члена прогрессии X = X + 2.

.^5. Вывод значения X.

6. Изменение параметра цикла ■ N =

N + ВЫ. 7. Если N 5 К, то перейти к шагу 4, иначе - к шагу 8. 8. Конец алгоритма. Блок-схема алгоритма приведена на рис. 3 . 7 . Каждый шаг алгоритма соответствует блоку на схеме.

Рис. 3.7. Схема алгоритма для .задачи 3.22

70

Page 71: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Прлыар 3.23: Вычислить сумму членов числовой последовательности,

^ которая задана в виде Ьт, Ьг, Ь„, где п - число членов ряда.

Этап 1. Математическое описание решения задачи. Обозначим сумму (членов через з. Тогда

3 = Ь1 + Ьг + ... + Ь„ ( 3 . 4 ) Этап 2. Определение входных и выходных данных. Входные данные - ^ значения и число

членов последовательности, выходные данные - '(значение суммы членов

последовательности.

:(В качестве параметра цикла можно взять номер члена последова- чтельности. Тогда

начальное значение параметра цикла равно 1, ко- |(нечное значение - п, шаг цикла 1.

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

цикла. Для корректного суммирования необходимо предварительно задать начальное

значение суммы, равное 0.

Тело цикла: в теле цикла будет выполняться накопление значения

:суммы й вычисляться Следующее значение параметра цикла.

Условие продолжения цикла: цикл должен повторяться до тех пор,

пока не будет добавлен последний член последовательности, то есть пока параметр цикла

меньше или равен конечному значению параметра цикла.

Этап 3. Разработка алгоритма решения. Введем обозначения: 3 -

«(значение суммы членов последовательности; I - номер очередного л| члена

последовательности - параметр цикла; N - число членов по- ;.;(следовательности; В,. - член

последовательности под номером I. Словесное описаняв алгорятма ртшаняя:

1. Начало алгоритма.

;2. Ввод количества членов последовательности N.

; ( 3 . Подготовка цикла: 3 = 0; I = 1.

• \ : ' 4 . Ввод очередного члена последовательности В,.

•5. Накопление суммы и вычисление следующего значения параметра : (цикла: 3 = 3 - / - В , ,

1 = 1 + 1 .

' | 6 . Если I $ Ы, то перейти к шагу 4, иначе - к шагу 1.

(7. Вывод значения суммы 3.

)8. Конец алгоритма.

В блок-схеме алгоритма (рис. 3.8) номера символов соответствуют номерам шагов словесного описания и алгоритм работы цикла полностью аналогичен алгоритму цикла в словесном описании.

Гфяявр 3.24: Вычислить произведение т членов арифметической прогрессии, если известны

значения первого члена а: и разность арифметической прогрессии Ь.

Этап 1. Математическое описание р>ешения задачи. Рекуррентная формула для

вычисления 1-го члена арифметической прогрессии а! = а1-1 + Ь. (3.5)

Обозначим произведение членов прогрессии через Р.. Тогда р = а! * аа * . . . * а„. (3.6)

Этап 2. Определение входных и выходных данных. Входными данными являются значение

первого члена арифметической прогрессии, разность арифметической прогрессии и число

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

прогрессии.

71

Page 72: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Этап 3. Разработка алгоритма решения. Алгоритм вычисления произведения членов последовательности аналогичен алгоритму вычисления суммы тех же членов, с той лишь разницей, что при подготовке цикла начальное значение произведения принимается равным 1. Кроме этого, в данной задаче значения членов прогрессии заранее не известны и

должны быть вычислены по формуле ( 3 . 5 ) .

Рис. Н.8. Схема 1и1Горитма для .задачи 3.23

Введем обозначения: Р - значение произведения членов арифметической прогрессии; I - номер текущего члена последовательности - параметр цикла; М - число членов прогрессии; А1 - значение- первого члена прогрессии; Н - значение разности арифметической прогрессии; А - значение очередного (1-го) члена прогрессии. Словесное опксаяке алгоритма решении:

1. Начало алгоритма.

2. Ввод значений М, А1, Н.

3. Подготовка цикла А := А1; Р := 1; I := 1. 4. Включение очередного члена последовательности в произведение Р := Р * А; вычисление следующего члена последовательности А := А -ь Н; увеличение параметра цикла I := I + 1.

5. Если I 5 М, то перейти к шагу 4, иначе - к шагу 6.

6. Вывод значения произведения Р.

7. Конец алгоритма.

Описание алгоритма в виде блок-схемы приведено на рис. 3.9.

72

Page 73: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Рис. 3.9. Схема алгоритма для задачи 3.24

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

рассмотренные в задачах 3.23 и 3.24, часто используют, как составные части при решении

сложных задач.

Упраяенення Разработать алгоритмы: 3.25. Вычислить и напечатать таблицу значений функции у = 5ш(3х +

ж/5)' для X, изменяющегося от 2 до 3,2, с шагом 0,1. 3.26. Вычислить и напечатать таблицу значений функции у = со8(х + 7с/3)

- со8(х - 7с/3) для X, изменяющегося от -2 до 2, с шагом 0,1. 3.27. Вычислить и напечатать таблицу значений функции у = а^/п для п,

изменяющегося от 1 до 10, с пигом 1, а = 2. 3.28. Сформировать последовательность, элементы которой

вычисляются по формуле = п/(п + 1), п = 1, 2, ..., 20. 3.29. Вычислить значение п! = 1 * 2 * ... * п для п = 7. 3.30. Вычислить сумму элементов последовательности я;, й2, Я2з,

шиеющих четные индексы. 3.31. Вычислить произведение элементов последовательности я/, (12, азо,

имеющих нечетные индексы. 3.32. Вывести на печать элементы заданной последовательности, я;, (12,

—, а25 в обратном порядке.

73

Page 74: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 75: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

Выход управляющей структуры "последовательность действий" (см. рис. 3.4, блоки 1, 2, 3) соединен со входом управляющей структуры "выбор действия по условию" (блок 4), выход "выбор действия по условию" - со входом "последовательность действий" (блоки 5, 6, 7, 8).

Основные управляющие .структуры можно вкладывать друг в друга. Например, в управляю1™о сгода^у (см. рис. 3.4) "выбор действия по условию" (сикпкш 4) влох^4!Ь'^у^а^а "последовательность действий" (блоки, 5, 6, 7). Вложение в блок-с)сУме алгоритма соответствует за.мене символа "про- песс" (см. табл. 3.1 и 3.3)'на одну из основных управляющих структур.

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

3.35: Имеется последовательность з^2^ • • • / значений

функции. Найти максимальное и минимальное значения данной функции. Этап 1.

Математическое описание решения задачи. Для данного примера математическое описание

имеет вид:

• X = т±п <а1; аг, • • • / ^п} ; у = гаах {ах, аг, • • • / а„} , где X и у - минимальное и максимальное

значения из последова- •:тельности значений функции а.^, аг, • • • / т1п и тах -

обозначе-

; - н и я нахождения минимума и максимума соответственно.

Этап 2. Определение входных и выходных данных. Входными данными ;являются значения

функции; выходными данными - минимальное и максимальное значения функции.

Слотосно& опмсгмн^ алгоритил решения в общей еиде: 1. Начало алгоритма. '2. Ввод значений функции ах, аг, • • • /

:3. Поиск максимального и минимального значений функции.

'4. Вывод на печать найденных значений максимума и минимума функции. ,5. Конец

алгоритма.

На рис. 3.10 представлена укрупненная блок-схема алгоритма задачи, в которой использован новый блок "предопределенный процесс" (№ 3). Введение этого блока обусловлено желанием показать необходимость дополнительного шага в раскрытии алгоритма. В качестве такого шага определим алгоритм поиска максимума и минимума.

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

75

Page 76: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

^^"начапо^^^^

_____________ 3

Поиск максимум^р^ , ^ и

минимума ^ ‘

> \;.п.

г

г К0'10 Э11Г/И:- '

Вывод змачемий

максимума ц и минимума

Конец

Рис. 3.10. Укрупненная схема алгоритма для задачи 3.35 При таком методе поиска минимального и максимального значений

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

функции. Начальное значегше параметра цикла будет равно 1, конечное - п, а шаг цикла равен 1.

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

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

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

Введем обозначения: X - значение кшнимума функции; У - значение максимума функции; I - параметр цикла; N - число значений функции (конечное значение параметра цикла); X/, ..., А„ - значения функции.

Словесное описание циклического алгоритма поиска максимума и минимума: 3.1. Подготовка цикла: Х = А], У = А], I = 2. 3.2. Поиск максимума и минимума. 3.3. Изменение параметра цикла 1 = 1 + 1 . 3.4. Если I < Н, то перейти к шагу 3.2, иначе - к шагу, следующему за

данным. На рис. 3.11 приведена схема алгоритма поиска максимума и минихотиа.

76

Page 77: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

В приведенном алгоритме необходимо детализировать шаг 3.2. На рис. 3.11 - это символ 3.2.

Будем исходить из того, что нам известно текущее значение максимума У и минимума X. Это предположение верно, так как при подготовке цикла были заданы начальные значения для X и У. Теперь остается только определить, является лк очередной элемент больше текущего максимума или меньше текущецэ минимума. Если это так, следует заменить максимальное или минимальное значение на значение этого элемента.

Словесное описание алгоритма определения максимума и мишгмума (шаг 3.2):

3.21. Если Л/< X, то X = 3.22. Если >У, то У = X/.

Рис. 3.11. Схема алгоритма поиска макенм^'ма и минимума для задачи 3.35

На рис. 3.12 приведена схехи определения максимума и минимума.

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

77

Page 78: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

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

1. Начало алгоритма. 2. Ввод значешгй функции Лд ..., А„. 3. Поиск максимума и миш1мума.

3.1. Подготовка цикла: X = Л/, У = Л/, 1 = 2. 3.2. Определение максимума и минимума.

3.2.3. Если Л/ < X, то X = Л,-. 3.2.4. Если Л; > У, то У = Л/.

3.5. Изменегше параметра цикла. 3.6. Если 1 < М, то перейти к шагу 3.2, иначе - к шагу, следующему за

данным. 4. Вывод значений максимума и хшнимума. 5. Конец алгоритма. На рис. 3.13 представлена схема полного алгоритма, в которой со)фанена

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

Упражнения Разработать алгоритм: 336. В заданной числовой последовательности ад а^ ..., азо подсчитать и

вывести на печать число положительных, отрицательных и нулевых элементов.

3.37. В заданной числовой последовательности а/, аз ..., а^о найти и вывести на печать номер первого отрицательного элемента. Если в последовательности нет отрицательных элементов, то напечатать значение 0.

3.38. Вычислить произведение положительных элементов числовой последовательности ад аз .... а„, где л = 30.

3.39. Найти наибольший элемент в заданной последовательности ад аз ..., 025- Напечатать его порядковый номер и значение.

3.40. Найти наименьшее значение функции у = ах^ + Ьх^ 3- сх + ^ на отрезке (0, 10) и значение аргумента, при котором оно получено. Аргумент X

изменяется с шагом 0,2. 3.41. На плоскости заданы десять точек М1(х2, У]), Му(х2, у2), ■■■, ^1о(^1а

У1о)- Вывести на печать номера и координаты точек, лежащих в круге радиусом г с центром в точке Мд(хо, у о).

3.42. Вычислить значения функции у = 5ш(пх) - со8(п/х), если п задано, а X

изменяется от хо до х* с щагом И. Вывести на печать значения функции, удовлетворяющие условию 0 < у < 0,5.

3.43. Определить, какие из данных точек М1(х2, у^, гд), Му(х2, у2, 12)> ..., М2о(х1о, у 10, 11О) принадлежат плоскости, определяемой уравнением Зх + 2у + 2 + б = 0.

3.44. Определить величину максимальной разности между элеметахш последовательностей ад ад ..., а;^и 6д йд .... 675.

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

3.46. Упорядочить последовательность из 20 чисел по возрастанию их элементов.

78

Page 79: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Рис. 3.13. Полная схема алгоритма для задачи 3.35

79

Page 80: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

ГЛАВА 4

ВА51С и искусство программирования __________ персональных ЭВМ _____________

в настоящее время существуют несколько версий языка ВА81С (ВА- 81СА, Мюгозой ^и^ск-ВА8IС, Мюгозой ВА81С, ОМ- ВА81С). Различаясь в частностях, они все имеют общую основу.

4,1, Алгоритмический язык программирования ВА5К и его структура в основе любого алгор1'Ггмического языка программирования лежит ггабор символов, которьш состоит из

алфавитных, числовых и спещ-гальных символов.

Алфавитные символы - это прописные (А - 2) и строчные (а - г) буквы латинского алфавита. Расппгреньгые А8СП-коды (символы с кодами 128 - 255, в том числе и символы кириллгщы) допустимы только в символьных константах и примечаниях.

Числовые символы - это числа 0 - 9 . Для загптси чисел в шестнадцатергтч- ной системе счггсдения допускается применение букв "А" - "Р' и "а" - 'Т'. Специальные символы: • знаки арифметических операций - (плюс), (минус), (ухшо- жеште),

(деление), "л" (возведение в степень); • знаки лоптческих операций - N07 (отргщание), АЫО (конъюнкция), ОК

(нестрогая дггзъюнкция), ХОК (строгая дизъюнкция), Е^V, 1МР (импликащгя);

• знаки операцигг отношения - (равно), ">" (больше), ">=" (больше или равно), "<" (меньше), "<=" (меньше или равно), "О" (не равно);

• специальные символы: "("^")" и др.; Знаки могут объединяться в слова, то есть в элементарные конструкции

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

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

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

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

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

80

Page 81: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

• безусловной передачи управления; • условной передачи управления; • цикла; • ввода и вывода данных.

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

Программная строка в языке ВА81С имеет следующий синтаксис; [идентификатор_строки] [оператор] [: оператор] ... [комментарий] Информация, представленная в квадратных скобках, в программе может и не присутствовать.

Идентификатор строки в ^и^ск-ВА8IС может быть номером строки или алфавитно-цифровой меткой. Номер строки - это любая комбинация чисел в диапазоне от О до 65529. Алфавитно-цифровая метка строки может состоять из любой комбинации латинских букв и цифр. Она должна начинаться с буквы и заканчиваться двоеточием. Номера строк и метки могут использоваться вместе в любой последовательности. После них должны следовать один или несколько пробелов. Строка может иметь только одну метку. ^и^ск-ВА8IС исполняет программу в порядке написания строк программы.

Налркмер:

100 РК1ЫТ "Исполняется первой"

‘ 10 РК1ЫТ "Исполняется второй"

‘Ме1;ка1: РК1ИТ "Исполняется третьей"

сото Ме1;ка1

Алфавит

Рис. 4.1. Структура алгоритмического я,зьпса

81

Page 82: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Операторы Ришк-ВАЗГС делятся на "исполняемые" и "неисполняемые". Исполняемые операторы оказывают влияние на исполнение программы. Они указывают на некоторое действие, которое должен вьшол- нить компьютер. Неисполняемые операторы не влияют на исполнение программы. Они выделяют память под переменные и массивы, указывают на положение комментария в програ^ше. На одной строке программы могут находиться несколько операторов, разделенных двоеточием.

Комментарий служит для пояснения отдельных операторов и блоков программы. Для ввода комментария используется оператор КЕМ или апостроф (симюл ').

Нлпргшвр:

10 КЕМ.Заголовок программы

;20 РК1МТ "Введите данные" Приглашение ко вводу данных

4.1.1. Типы данных * •

Основными данными языка 0и1ск-ВА51С являются числовые и символьные данные. В программе данные присутствуют в виде переменных и констант.

Константы - это заранее объявленные величины, которые не меняются в процессе выполнения программы.

Символьные константы - это последовательность до 32767 алфавитночисловых символов. Символьные константы должны заключаться в кавычки. Например: "дшск-ВА81С"; "1999".

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

В 0июк-ВА81С существуют следующие типы числовых данных: • Целое, в памяти занимает 2 байта. Используется для значений в диапазоне

от -32768 до -1-32768. • Длинное целое, в памяти занимает 4 байта. Используется для значений в

диапазоне от -2147483648 до -Ь2147483647. • Действительное обычной точности, в памяти занимает 4 байга.

Представляет диапазон чисел от -3.402823Е-1-38 до -1.40129Е-45 для отрицательных чисел и от -(-1.40129Е-45 до +3.402823Е-+-38 для положительных значений. • Действителшое двойной точности, в памяти занимает 8 байт. Представляется 15 - 16 десятичными знаками. Диапазон чисел от -1.79769313486231Е+308 до -4.94965Е-324 для отрицательных чисел и от -К4.94965Е-324 до +1.79769313486231Е-1-308 для положительных значений. Для записи действительных чисел используются две формы: с

фиксированной запятой (например: -7.28; 13.0275; 13.0275) и плавающей запятой (12.85Е-2; -0.375ЕЗ; -15.87Е-1). При записи действительных чисел вместо запятой, отделяющей целую часть от дробной, ставится десятичная точка, основание десятичной системы - 10 - заменяется буквой "Е". Например: число -12,85 х 10-3 будет представлено в программе константой -12.85Е-3.

82

Page 83: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

4.1.2. Типы переменных

Переменные. Каждая переменная обозначает определенный объект - число или набор символов. Имя переменной (идентификатор) может содержать до 40 символов, латинские буквы, цйфры, десятичную точку и символы определенного Т1ша (%, &, !, # и $). Первый символ должен быть латинской буквой. Если переменная начинается с РЫ, подразумевается вызов функции ОЕР РЫ.

Нлприыер:

■ А - переменная действительного типа;

;А# - переменная действительного типа двойной точности;

йА% - переменная целого типа;

:^А& - переменная целого длинного типа;

•;А$ - переменная символьного типа.

4.1.3. Выражения и операции

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

В ^и^ск-ВА5IС существует пять категорий операций: • арифметические; • отношения;

• логические;

• функциональные;

• строковые.

Операторы выполняются в следующем порядке:

1. Арифметические операции: • возведение в степень ('');

• присвоение знака числу (-); • умножение и деление (*

•, /);

• целочисленное деление (\); • модульная арифметика (МОВ);

• сложение и вычитание (-Ь, -). 2. Операции отношения (=, >, <, О, <=, >=). 3. Логические операции: ЫОТ, А]МВ, ОК, ХОК, Е^V, 1МР.

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

Стандартные функции, используемые в ри1ск-ВА81С: АВ8(Х) - математическая функция, возвращающая абсолютное значе- 1ше

числового выражения;

83

Page 84: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

АТN(X) - математическая функция, возвращающая арктангенс аргумента; С08(Х) - математическая функция, возвращающая значения косинуса от

угла в радианах; ЕХР(Х) - математическая функция, вычисляющая основание

натурального логарифма (число е) в степеш! заданного аргумента; Ь06(Х) - математическая функция, возвращающая натуральный логарифм

числового выражения; 86N(X) - математическая функция, возвращающая знак аргумента; 80К(Х) - математическая функция, возвращающая квадратный корень

аргумента; 8ПЧ(Х) - математическая функция, возвращающая значение синуса от

угла в радианах; ТАК(Х) - математическая функция, возвращающая значение тангенса от

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

а + (Ьх - 2,3)^

С08 X

Запись этого выраже1шя на языке 0и1ск-ВА81С;

(А + (В * X - 2.3)) ^ 3) / С08 (X).

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

1) вычисляется выражение, стоящее во внутренних круглых скобках: • В * X (находится произведение и запоминается);

• В * X - 2.3 (из запомненного числа вычитается константа 2.3 и запоминается);

• (В * X - 2.3) ■' 3 (полученная разность возводится в степень 3 и запоминается); 2) вычисляется выражение, стоящее во внешних скобках:

• А + (В * X - 2.3) (к запомненному числу прибавляется данное, хранящееся по адресу А, и запоминается);

• А + (В * X - 2.3) ^ 3 (запомненное число возводится в третью степень и запоминается); 3) вычисляется стандартная функция С08 (X); 4) находится значение искомого выражения:

• (А + (В * X - 2.3) ^ 3) / С08 (X) (производится деление).

84

Page 85: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

4.1.4. Операторы ввода/вывода информации

Оператор ввода/вывода ТЫРОТ - используется для организации вюда данных с клавиатуры во время выполнения программы и размещения их в списке переменных. Оператор имеет вид:

ШРОТ [;] ["комментарии ввода"{; |,}] список_переменных; ; - точка с запятой сразу после оператора оставляет курсор на той же

строке экрана после нажатия клавиши {ЕШег}; ; - печатать знак вопроса после символьной строки; или , - печатать строку без знака вопроса. Переменные в списке записываются через загоггую. Оператор ЕМРЦТ

останавливает программу и ждет ввода данных. Количество вводимых данных должно соответствовать количеству переменных в списке.

Оператор присваивания ЬЕТ - выражение, стоящее справа от знака ра- венства, помещается в оперативную память в место, соответствующее идентификатору, стоящему перед знаком равенства, например:

ЬЕТ А = 0.75 0.75

1

ЬЕТ В = -178 -178.0

1 ЬЕТ С = А + В -177.25

переменная

переменная В

переменная

Здесь переменной А будет присвоено значение 0.75, переменной В - значение -178. Строка 40 содержит инструкцию (программу) процессору - взять данное из памяти по адресу А, взять данное из памяти по адресу В, сложить их, а результат (-177.25) поместить по адресу С. Обычно оператор ЬЕТ может быть опущен.

Оператор ОАТА - используется для формирования блока числовых и символьшях данных для последующего чтения их оператором КЕАО.

I Нлпрмы€0р:

0.75 -178.0 рЛТА 0.75, -178 !в блок данных заносятся числа 0.75 и -178.

Оператор КЕАО - ввод/вывод данных, чтение данных из блока дан- ных оператора ОАТА и присвоение их переменным.

Налргшар: КЕАО А, В 0.75

-178.0

данные, сформированные оператором ОАТА,

!переменной А и переменной В.

переменная А

переменная В записываются в память

85

Page 86: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Оператор печати РШМГ [список вывода]. Переменные ю списка вывода могут отделяться друг от друга запятой или точкой с запятой, что влияет на форму печати. Если в качестве разделителя используется запятая, то печать зонная, при которой строка разбивается на 5 зон по 14 позиций в каждой зоне.

Ш Нгшрлшер.' I РК1ЫТ А, В ' организует печать по зонам

Й На экране дисплея информация будет отображаться в виде 0 . 7 5 1 7 8 , то есть значение

переменной А

будет напечатано в первой зоне, а переменной В - во второй зоне.

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

щ ; 1 РК1МТ А; В

I РК1ЫТ

РК1МТ "А="; А, "В="; В Розушктлт нл

зкрлно дксплзя:

_ .75 _ -178 А =

.75 В = -178

Если оператор РКШТ записан без списка переменных, то при печати будет пропускаться одна пустая строка.

Приемы программирования

4.2.1. Алгоритмы линейной структуры

^ Дрямвр 4 . 1 . Составить программу вычисления арифметического выра-

^жения у = (7х - 4 ) / ( 5 х + 3 ) ,

Словесное описание алхюритма: Ввод значения аргумента функции х.

й 5̂ - Вычисление значения функции у = ( 7 х - 4 ) / { 5 х + 3 ) .

й - Вывод на печать значений аргумента и функции.

Прог^гшыа 4 . 1 .

КЕМ Пример 4 . 1 .

С Ь З

1МРЧТ "Введите значение неизвестной X X

У = (7 * X - 4) / (5 * X + 3)

РК1ЫТ "При X = X; "У = "; У

Е П О

Комментарий

Оператор,

очищающий

экран

Ввод значения

аргумента

Вычисление

функции

Вывод

результатов на

экран дисплея

86

Page 87: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

результат нл зкргмз длсплзя:

Введите значение неизвестной X ? 2 П р и Х = _ _ 2 У = _ _.7692308

Пояснение к программе:

Введем обозначения: X - аргумент х; У - функция у. Алгоритм задачи состоит из следующих шагов: Шаг 1 - ввод информации (действительного числа). Шаг 2 - вычисление арифметического выражения У = (7 * X - 4) / (Д* X +

3) и присвоение результата вычисления переменной У. Оператор присвоения =.

Шаг 3. Вывод исходных данных и результатов вычислений на печать. Для тестирования программы было вычислено значение функции при X = 2, у = 0,7692308.

Для ввода значения X используется оператор ШРЦТ с комментариями. Число вводится после вопросительного знака, который печатает машина.

Щ>ямвр 4 . 2 , Составить программу нахождения положения середины отреэка[а, Ь)

относительно начала координат.

Словесноо описгшяа алгорятмл:

- Ввод исходных значений параметров отрезка а и Ь.

Вычисление середины отрезка х по формуле х = (а + Ь ) / 2 .

Вывод на печать полученного результата.

Тфогрлмнл 4 . 2 .

КЕМ Пример 4 . 2 .

СЬЗ

1МР11Т "Введите значение левой границы отрезка А", А 1МР0Т

"Введите значение правой границы отрезка В", В X = (А + В) / 2

РК1МТ "При А А; "В ="; В; "Координата середины отрезка X ЕЫВ Реаультаг на окрляв днсллея:

Введите значение левой границы отрезка ? 0.5

Введите значение правой границы отрезка ? 2

При А = ____ .5 В = _____ 2 Середина отрезка _

_1.25

Пояснение к программе:

Введем обозначения: А - левая граница отрезка а; В - правая граница отрезка Ь.

Алгоритм задачи состоит из следующих шагов: Шаг 1 - ввод значения левой границы отрезка (действительное число);

Шаг 2 - ввод значения правой границы отрезка (действительное число); Шаг 3 - вычисление середины отрезка (А + В) / 2 и присвоение результата вычисления переменной X.

Шаг 4. Вывод исходных данных и результатов вычислений на печать.

87

Page 88: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Для тестирования программы было вычислено значение середины отрезка при а = 0,5 и й = 2, координата х = 1,25.

« Пример 4 . 3 . Составить программу вычисления площади равнобедрен-

ной трапеции при заданных значениях оснований и высоты.

Хрограмые 4 . 3 .

КЕМ Пример 4 . 3 .

СЬЗ

1ЫР0Т "Введите значение верхнего основания трапеции ", А

1ЫР11Т "Введите значение нижнего основания трапеции В

тырит

3 = н

рктыт

ЕЫО

" Введите высоту трапеции

* (А + В) / 2

"Площадь трапеции равна

Н

Реаулитае на экране дисплея;

Введите значение верхнего основания трапеции ? .5

Введите значение нижнего основания трапеции ? 2 Введите высоту трапеции ? 3 Площадь трапеции равна

__________________________ 3.75

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

значение верхнего основания трапеции - 0,5; значение нижнего

основания трапеции - 2; высота трапеции - 3.

Площадь трапеции, соответствующая входным да1шым, равна 3,75. пример 4 . 4 . Составить программу вычисления объема цилиндра при к! заданных

значениях радиуса и высоты.

гШатематическое описание задачи: объем цилиндра вычисляется по

М формуле V = к Ь, где К - радиус окружности основания цилиндра, ■■Ь - высота цилиндра.

;|Для тестирования программы были заданы следующие данные:

- значение радиуса основания цилиндра - 5; м- значение высоты цилиндра - 2;

кОбъем цилиндра, соответствующий входным данным, равен 1 5 7 . 0 7 5 . Х^ограмма 4 . 4 .

КЕМ Пример 4 . 4 .

ПАТА 3 . 1 4 1 5 ' Задание числа л

СЬЗ

1ЫРиТ "Введите значение радиуса основания цилиндра ", К

1ЫРиТ "Введите значение высоты цилиндра ", Н

КЕАВ Р1 ' Запись числа я

У = Р 1 * К * К * Н

РК1ЫТ "Объем равен V

ЕЫО

88

Page 89: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Результат яа. 91^рамс дисплея:

Введите значение радиуса основания цилиндра ? 5

Введите значение высоты цилиндра ? 2 Объем равен

________________ 157.075

Упражнения 4.5. Составить программу решения задачи 3.9.

4.2.2. Алгоритмы разветвляющейся структуры ___________

В языке ^и^ск-ВА5IС операторы программы выполняются последова- тельно в порядке их написания. Однако в алгоритмах лшогих задач, в зависимости от выполнения условий, предусматривается изменение по- рядка выполнения операторов. Для этих целей в языке ^и^ск-ВА8IС имеется несколько операторов.

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

СОТО идентификатор_строки Операторы условного перехода 1Р [логическое_выражение] ТНЕN... или

1Р [логачеекое_выражение] 'П^ЕN... ЕЬ8Е... служат для изменения естествен- ного порядка выполнения операторов программы в зависимости от выпатне- ния или невьшолнения некоторого условия (логаческое_выражение истинно или ложно). Данные операторы хорошо использовать, когда необходимо вы- брать один вариант из двух. Если юзникает необходимость выбрать один ва- ртганг из многих (более двух), можно использовать оператор ОN [догиче- ское_выражение] СОТО иденшфикатор_строки,..., идентификатор_строки.

\ гример 4 . 6 . Составить программу нахождения наибольшей из двух

!площадей: квадрата со стороной а или круга с радиусом г.

IСловесное описание алгоритма:

|1. Ввод исходных значений переменных а и г.

2. Вычисление площади квадрата по формуле 5 ■=■ и площади круга

по формуле $ К - л * .

3. Путем сравнения площадей найти наибольщую площадь. |4. печать наибольшей площади.

Щ>огрячо€& 4 . 6 . КЕМ Пример 4 . 6 .

ВАТА

3 . 1 4 1 5

СЬЗ

1ЫРит "Введите значение стороны квадрата ”, А

1КРиТ "Введите значение радиуса круга ", К

КЕАО Р1

3 = А * А

ЗК = Р1 * К * К

Ввод значения числа л Вычисление

площади квадрата Вычисление

площади круга

89

Page 90: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

1Г 3 = ЗК ТНЕМ РК1МТ "Площадь круга равна площади квадрата" СОТО 10

1Г 3 > ЗК ТНЕМ РК1МТ "Площадь квадрата 3; "больше площади

круга ЗК

ЕЬЗЕ РК1ЫТ "Площадь круга"; ЗК; "больше площади квад-

рата"; 3

10 ЕМО

Результат на акране дисплея:

Введите значение стороны квадрата ? 2.5

Введите значение радиуса круга ? 3

Площадь круга ____ 28.26 больше площади квадрата ______ 6.25

Пояснение к программе: Для выбора нш-гбольшсй площади используется оператор ЕР

[логаческое_вы- ражение] ТНЕК... и оператор 1Р [логическое_выражение] ТНЕМ... ЕЬ8Е...

Если величина переменной 8 равна величине переменной 8К (логаче- ское_выражение истинно), то выполняется оператор РКЕКТ - на печать выводится следующая информация:

Площадь круга равна нлошдди квадрата Если величина 8 больще величины 8К (логическое_выраже™е истинно),

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

Площадь квадрата ... больще площади круга ..., иначе (логическое_выражение ложно). Площадь круга ... больше площади квадрата ...

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

• значение стороны квадрата - 2.5;

• значение радиуса круга - 3.

Площадь квадрата соответственно равна 6,25, площадь круга - 28,26.

, Цример 4 . 7 . Составить программу нахождения корней квадратного уравнения - ах^ + Ьх + с

= О при а О.

: Слопесное описание алгоритыа: ■^1. Ввод коэффициентов квадратного уравнения.

2. Вычисление дискриминанта О = 3. Анализ дискриминанта.

4. Если дискриминант больше

йкорни квадратного уравнения;

- ь - Т о - ь + Т о

4ас

нуля. Вычисляются действительные

X I Х г = - 2а 2а

:5. Если дискриминант равен нулю. Вычисляются действительные кор- I ни квадратного

уравнения:

: х 1 = Х 2 -ь 2а

90

Page 91: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

^|б. Если дискриминант меньше нуля. Печатать сообщение об отсутст- Ц В И И действительных

корней.

Црогргшиа 4 . 7 .

КЕМ Программа 4 . 7 .

СЬЗ

РК1ПТ "Введите коэффициенты квадратного уравнения"

1ЫРПТ "Введите значение коэффициента а ", А

1НРПТ "Введите значение коэффициента Ь ", В

1МР11Т "Введите значение коэффициента с ", С

А

" В С)

В, "С ="

(- В / К)

В = зок (В * В - 4

РК1НТ "При А ="; А,

К = 2 * А

1Г О = О ТНЕЫ 50Т0 10

10 РК1ПТ "Корень равен

СОТО 30

1Р О > о ТНЕЫ ЗОТО 20

РК1МТ "Действительных корней нет "

СОТО 30

20 КО = З О К ( О ) : XI = 1 - В - КО) / К Х2 = ( - В +

КО) / К РК1ЫТ "Корни действительные: XI = 30

ЕНО Рвзулитат на охрана дксплтя:

Вычисление дискриминанта С

XI; Х2 = Х2

Введите коэффициенты квадратного уравнения

Введите значение коэффициента при ? 2

Введите значение коэффициента при х ? 3

Введите значение коэффициента с ? .5

При А =_ _2 В =_ _3 С =_ _.5

Корни действительные: XI = - .376163 Х2 = -

1.12384

Пояснение к программе: Вводим обозначения: переменные А, В, С соответствуют коэффициентам

квадратного уравнения а, Ь, с; О - дискриминант; XI и Х2 - соответствующие корни квадратного уравнения и Х 2-

Если дискриминант равен нулю, программа переходит к выполнению блока операторов, который начинается с идентификатора строки - 10. В этом блоке вычисляется корень квадратного уравнения. Если дискриминант больше нуля, программа переходит к выполнению блока операторов, который начинается с идентификатора строки - 20.

В Пример 4 . В . Составить программу нахождения минимального значения Я среди трех

функций з 1 п ( х ) , с о з ( х ) и 1 п | х | при одном и том же )| значении аргумента.

Црограныа 4 . 8 .

КЕМ Программа 4 . 8 .

СЕЗ

1ПРПТ "Введите значение аргумента X

91

Page 92: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

А; В; М1Ы

А = 3 1 М ( Х )

В = СОЗ(Х)

М1М = Ь 0 С ( А В З ( Х ) )

РК1ЫТ "Среди данных

1Г М1Ы > В ТНЕЫ М1М = В

1Г М1М > А ТНЕМ М1М = А

РК1ЫТ "Минимальным является

ЕЫВ

Разул^тлт ял ажргию дясплая:

М1М

Введите значение аргумента ? 5 Среди данных _____ - .958924 ____ .283662 ___ 1.609714 Минимальным является - . 958924

Упражнения 4.9. Составить программу решения задачи 3.20. 4.10. Составить программу решения задачи 3.14.

4.2.3. Алгоритмы циклической структуры с использованием простых переменных ________________________________

Повторяющиеся части проIра^шы, использующие вычисления по одним и тем же алгоритмам, называются циклом. В языке ВА81С циклы могут быть организованы с помощью оператора 1Р, оператора РОК и NЕXТ либо операторов \УН1ЕЕ и \УЕМВ.

Рассмотрим организацию цикла с помощью оператора 1Р. 1цряыар 4 . 1 1 . Составить программу вычисления множества значений [функции у = + Ь

для X, изменяющегося от -10 до 10 с шагом Дх =

2; при Ь = 5. Алгоритм решения задачи описан в задаче 3 . 2 1 и !представлен на рис. 3 . 1 0 .

I Введем обозначения: X - аргумент х; У - функция у; XI - шаг из- !менения аргумента Дх; В -

величина Ь. Т^огрлмыл 4 . 1 1 (вариант 1). КЕМ Пример организации цикла с помощью оператора 1 Е . . . ТНЕЫ

ВАТА 5, -10, 2 КЕАО В, X, XI

СЬЗ

КЕМ Тело цикла 40У =

Х * Х + В

РК1МТ "X = X, "У = X = X + XI

1Г X <= 10 ТНЕЫ сото 40 ЕЫО

Блок исходных данных Чтение исходных

данных Очистить экран

Вычисление текущего значения функции

Изменение текущего значения

переменной

Контроль окончания цикла

92

Page 93: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

Рлзуллтлт на аг^анв дясплая:

Т^ограмма 4 . 1 1 (вариант 2).

КЕМ Пример организации цикла с помощью оператора 1Г.

СЬЗ

В = 5

XI = 2

X = -10

1Г X > 10 ТНЕМ СОТО 90

У = X * X + В

РК1ЫТ "Х= X, "У= У

X = X + XI

СОТО 40

90 ЕЫО Рвауттат на аг^анв днаплвя:

. ТНЕМ

40

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

Лринвр 4 . 1 2 . Составьте программу для вычисления значения факто- : триала

п ! = 1 * 2 * . . . * п для п = 7.

'Введем обозначения: N - элемент натурального ряда; Р - произве- ■дение элементов

(факториал) п!.

".'Алгоритм нахождения факториала представляет собой вычисление ‘I произведения

сомножителей, имеющих значения от 1 до N. Такое .(произведение вычисляется по

рекуррентной формуле Р = Р * N.

93

Page 94: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 95: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 96: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

4.2.6. Программирование задач с одномерными структурами данных . вши |',№'г ’ п тат ДЭИЦМВМ

в языке Ри1ск-ВА81С все используемые в программе массивы, если они по размерности больше 10, должны быть описаны в операторе 01М, который объявляет имя массива и его размерность (количество элементов). Оператор В1М располагают в программе до первого обращения к массиву. Например, по описанию В1М А(12), В%(155), С$(18) в памяти ко^шьютера резервируется место для 13 действительных данных с именем А (Ао, А1, . . А12), 156 целых данных с именем В (Во, В\, . . ... 5155) и 19 символьных дашгых С (Со, С\, . . С18).

Обращение к элементу массива происходит по имени массива и значению индекса, заключенному в круглые скобки. Индекс массива определяет порядковый номер элемента массива. Например, В(7) - 8-й элемент массива В; С(1) - 2-й элемент массива С; 0(К + 2) - (К -Н 3)-й элемент массива О.

Индексом массива могут быть числа, переменные, выражения. Наименьшее значение индекса 0, наибольшее не должно превосходить объявленного значения в операторе В1М. Если значение индекса выходит за эти границы, то при выполнении программы будет вьщано сообщение об ошибке.

Одномерные шссивы целесообразно обрабатывать в цикле с использованием операторов РОК и ЫЕХТ. Параметр цикла в этом случае выполняет подсчет количества циклов и используется в качестве индекса в обозначении элемента массива.

Для ввода элементов массива используются операторы КЕАВ или ШР11Т, записанные в цикле. Рассмотрим пример ввода массива в использованием оператора КЕАО:

“ 01М А (5)

ОАТА 2, -3, 4, О, 1, 5

ГОК 1% = О то 5 КЕАО А

(1%)

МЕХТ 1%

Здесь в качестве параметра цикла 1% взят текущий индекс элемента массива. Числа по оператору КЕАВ А(1%) последовательно выбираются из блока данных оператора Е)АТА и присваиваются элементам массива А. В результате А (0) = 2, А(1) = -3, А(2) = 4, А(3) = 0, А(4) = 1, А(5)=5.

I Щживр ввода алоыаитов ыасаява с яаполвзоваямам оператора 1ИРЦТ:

А (5)

]Г0К 1% = О ТО 5

1ЫРПТ "Введите данное ", А(1%)

1МЕХТ 1%

98

Page 97: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 98: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 99: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 100: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 101: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 102: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

1Ь’ Ь > к ТНЕМ СОТО 140 К =

К + 1

РК1ЫТ "Точка номер ", 1%, " с координатами {", Х(1%),

У(1%), " находится внутри окружности "

140 ЫЕХТ 1%

1Е К = о ТНЕЫ РК1МТ "Все исследуемые точки находятся вне круга" ЕМО Реаультлт на экране дисплея:

Введите количество исследуемых точек ?6 Введите

координату X центра окружности ?0 Введите

координату V центра окружности ?0 Введите радиус

окружности ?4 Введите координату X исследуемой

точки ?2 Введите координату V исследуемой точки

?7 Введите координату X исследуемой точки ?3

Введите координату V исследуемой точки ?6

Введите координату X исследуемой точки ?1.5

Введите координату У исследуемой точки ?2

Введите координату X исследуемой точки ?2

Введите координату У исследуемой точки ?3

Введите координату X исследуемой точки ?2.3

Введите координату У исследуемой точки ?3.1

Введите координату X исследуемой точки ?3

Введите координату У исследуемой точки ?4

Результаты исследований:

Точка номер 3 с координатами (1.5; 2) находится внутри окружности Точка номер

4 с координатами (2; 3) находится внутри окружности Точка номер 5 с

координатами (2.3; 3.1) находится внутри окружности

Пояснение к программе: После ввода исходной информации (координат центра окружности,

радиуса окружности, координат исследуемых точек) программа переходит к циклу, в котором определяется место положения точки относительно окружности. Вычислив расстояние Ь от исследуемой точки до центра окружности, программа сравнивает полученный результат с величиной радиуса окружности К (оператор 1Р... ТНЕМ...).

Если выполняется условие Ь > К, то управление передается на продолжение цикла. Если же Ь < К, то значение переменной К увеличивается на 1 и на печать выдаются координаты точки, попавшей в круг. После того как проверены все исследуемые точки, проверяется содержание переменной К. Если переменная К не изменила своего начального значения (К = 0), то на печать выводится сообщение "Все исследуемые точки находятся вне круга" (оператор РКШТ).

Для тестирования работы программы выбраны шесть точек с координатами: (2, 7); (3, 6); (1.5, 2); (2, 3); (2.3, 3.1); (3, 4) и окружность с радиусом 4, с центром в начале координат.

Цриывр 4 .2 4 . Составить программу для нахождения максимального значения среди

модулей разности между элементами последовательностей а1, а.2, . . . , а„ и Ьг, Ьг, . . . , Ь™.

104

Page 103: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 104: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

РК1МТ "Максимальная разность между данным под номером

РК1ЫТ "первой последовательности и данным под номером

РК1ЫТ "второй последовательности и равна ", МАХ

ЕМО Реэульз'аз' на э^фане дисплея:

ЫА% МВ%

Введите количество данных в первой последовательности ?3

Введите количество данных во второй последовательности ?5

Ввод данных первой последовательности

Вводите данные первой последовательности ?2

Вводите данные первой последовательности ?3

Вводите данные первой последовательности ?-5 * •

Вводите данные второй последовательности

Вводите данные второй последовательности ?-15

Вводите данные второй последовательности ?34

Вводите данные второй последовательности

Вводите данные второй последовательности ?12

Вводите данные второй последовательности ?4

Максимальная разность между данным под номером

первой последовательности и данным под номером

второй последовательности и равна _ ^39

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

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

|Д1 - ^,1, |Я1 - бг!, ..., 1^1 - ^>т1, 102 - Ьх \ , |Д2 " I, I «2 ‘ I,

I Яп “ 1 > 1 ■ ^2 11 • • •) I I • Для тестирования работы программы были выбраны две

последовательности чисел: 2, 3, -5 и -15, 34, -7, 12, 4. Модули разностей составят последовательность: 17, 32, 9, 10, 2, 18, 31, 10, 9, 1, 10, 39, 2, 17, 9.

Цриывр 4 .2 5 . Вводится последовательность действительных чисел. :1Найти сумму

положительных чисел, расположенных до первого отри- Ндательного числа, и Словесное

опяалняв ллгарктыл: 1. Ввести последовательность действительных чисел.

|:| 2. Подготовить сумматор - обнулить.

!;!З. Сравнить текущее число с 0. Если оно отрицательное, меньше ;]нуля, перейти к п. 5. Если

число положительное или равно нулю,

5 перейти к п. 4.

4. Прибавить текущее число к сумматору и перейти к п. 3.

115. Вывести на печать результаты вычислений.

;':6. Закончить работу программы.

;■) Введем обозначения; Н% - количество обрабатываемых данных; А - У массив,

используемый для хранения данных; ЗОМ - переменная для 1;^ хранения текущей суммы.

106

Page 105: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 106: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 107: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

сото 35

КЕМ Вычисление площади треугольника 20 1ЫР0Т "Введите длину

основания треугольника ", А 1ЫР0Т "Введите высоту треугольника ", Н 3 = А * Н / 2

60Т0 35

КЕМ Вычисление площади круга 30 1ЫР0Т "Введите..радиус круга ", К 3 =

3.14 * К *нН оте;;-;

35 РК1МТ "Площадь равна 3 ' Печать результата вычислений

РК1МТ "Для продолжения расчетов нажмите любую клавишу "

ЗЬЕЕР ' Оператор паузы

= о ИЕЫО 40 ЕЫО

Пояснения к программе: В данной программе впервые мы используем вложенные циклы. Внешний

цикл \УН1ЬЕ О 4 ... обеспечивает повторяемость вычис лений до тех пор, пока пользователь не решит прервать вычисления.

Внутреьший цикл используется с целью предложить пользователю несколько вариантов вычислений, которые предусмотрены алгоритмом задачи. Предлагаемые варианты принято называть "меню". Одновременно в этом цикле осуществляется логический контроль за выбранным пользователем вариантом. Если пользователь ошибется и задаст номер варианта вне предусмотренного диапазона (1 - 4), программа возвращается к началу внутреннего цикла.

Для выбора продолжения программы из четырех вариантов испшьзуется условный оператор ОК ООТО 10, 20, 30, 40. Если выбран первый вариант "меню" (Г4% = 1), управление передается строке с иденгафикатором 10, если N% = 2 - строке 20, если = 3 - строке 30, если = 4 - строке 40.

Упражнения 4.28. Имеется последовательность ненулевых целых чисел, за которой

следует 0. Определить, сколько роз в последовательности меняется знак чисел. 4.29. Составить программу вычисления функции у = х + / Ъ\ + /

5! -I- / 7! ...,, учитывая, что 1x1 < 1. Расчет продолжать, пока модуль разности между очередным и

предыдущим значениями у будет больше заданной величины (точности вычислений).

4.30. Имеется последовательность положительных и отрицательных чисел. Определить, является ли последовательность чисел, находящихся до первого отрицательного числа, возрастающей.

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

109

Page 108: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 109: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 110: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

КЕМ Блок вычислений

ГОК 1% = 1 ТО N4

3 = 0.0 ' Обнуление текущего значения

' суммы

К = о ' Обнуление текущего значения

' счетчика

ГОК а% = 1 ТО м%

1Г А(1%, 0%) < о ТНЕМ К = К + 1 : 3 = 3 + А(1%, 0%)

МЕХТ 0%

РК1ЫТ "Строка - ", 1%

1Г К = О ТНЕЫ РК1МТ "Отрицательных элементов в строке нет " :

60Т0 10

РК1ЫТ "Количество отрицательных элементов - ", К

РК1ЫТ "Сумма отрицательных элементов - ", 3

РК1МТ "Среднее арифметическое отрицательных элементов - ", 3/К

НЕХТ 1%

10 ЕЫО

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

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

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

4.37. Найти положение наибольшего элемента в строке двумерного массива действительных чисел.

4.38. В двумерном массиве целых чисел элементы главной диагонали заменить наибольши^ш значениями строк.

4.2.8. Программирование обработки символьной информации

До сих пор мы имели дело только с переменными, значеьшялш которых

являются числа. Их называют числовьши переменными. В ^и^ск;- ВА81С имеется возможность использовать также перемеьшые, значениями которых являются строки символов, - так называемые символьные (или строковые) переменные.

Имена символьных переменных отличаются от переменных других типов наличием в конце символа (знак денежной единицы) - А$. Количество символов, хранящихся в символьной переменной, может изменяться от О (пустая строка) до 32767 символов.

Символьным выражением называется: • строка символов, заключенная в кавычки; • символьная переменная;

112

Page 111: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

• элемент символьного массива;

• символьная функция;

• какие-либо из перечисленных элементов, соединенные знаком"+" или Обработка текстов имеет некоторое сходство с обработкой массиюв,

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

При работе с текстами можно выбирать по одному символу, изменяя номер позиции на 1, а можно сразу выбрать цепочку следующих подряд символов любой длины. Поэтому шаг просмотра текста может быть пе- ременным (и, в частности, зависеть от промежуточных результатов). В связи с этим при составлении програхш для обработки текстов не всегда целесообразно использование операторов цикла РОК - ЫЕХТ, требующих использования заранее определенного шага.

Ввод/вывод символьных данных осуществляется следующими опера- торами: ВЧРЧТ, КЕ.\0 и ВАТА, РШМТ.

В операторе ВАТА строка символов должна быть заключена в кавыч- ки. При использовании оператора ШРЦТ значение символьной пере- менной при вводе должно заключаться в кавычки, если среди состав- ляющих ее символов есть запятая (,). В остальных случаях использование кавычек необязательно.

Используя оператор присваивания (=), можно присвоить символьной переменной значегше символьной константы, которая обязательно долж- на быть заключена в кавычки. Например, А$ = "Москва".

Для си^шольныx переменных определена одна операция - "склеива- ние" - конкатенация (обозначается -Ь).

Псьз ’]ОАТА "Иванов", "Сидоров", "Петров"

Г11МРПТ "Введите название профессии " : ГОК

1% = 1 то 3 ; КЕАО А$ В$

С$ = В$ + " - " + А$

РК1ЫТ С$

|НЕХТ 1%

|ЕМО

Результагли на акрлна днсплен;

Операция склеиваний

Введите название профессии ? Юрист

Юрист - Иванов Юрист - Сидоров Юрист -

Петров

113

Page 112: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

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

й^5>имвр 4 .3 9 . Текст вводится фрагментами. Ввод символов "**" ука- Вэывает на

окончание ввода текста. Текст объединить и напечатать.

СЬЗ

А$ = ' Ведение пробела - символ должен

’ отличаться от "**"

ИНХЬЕ А$ О "**" ' Если условие истинно,

' выполняются операторы '

тела цикла

1МР11Т "Введите текст, для окончания ввода используйте символы

** ", А$ 1Г А$ О "**" ТНЕМ Т$ = Т$ + А$

НЕЫО

РК1ЫТ Т$

ЕЫО

Каждый фрагмент текста вводится в переменную А5, содержание которой затем присоединяется к содержанию переменной ("склеивается") Т$, в которой и формируется исходный текст.

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

Сравнение симюльных переменных осуществляется посимвольно, начиная с первого символа. Если первые символы обеих переменных совпадают, то сравниваются вторые и т. д. Если длины (количество символов) сравниваемых переменных не совпадают, то меньщее дополняется пробелами (пробел является самым младщим символом).

Нащ>гшар: если А$ = "Иванов", В$ = "Андреев", то при выполнении оператора ТЕ А$ > В$ ТНЕИ РКТЫТ А$

ЕЬЗЕ РКТЫТ В$

'если условие выполняется (истинно), на печать выводится - Иванов, иначе - Андреев.

4.2.9. Операции и стандартные функции для обработки символьных величин ________________________________

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

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

114

Page 113: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

• найти позицию (позиции), в которой располагается заданный СШУШОЛ или цепочка зада!шых символов;

• сжать текст, удалив из него один символ или цепочку символов; • раздвинуть текст, вставив заданную последовательность символов между

1-ым и (1 + 1)-ым символами исходного текста; • разделить текст на строки, если в качестве ограничителя строки в тексте

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

(например, ограничение на длину строки);

• сравнить символы или цепочки символов;

• выделить слово из текста;

• определить, является буква гласной или согласной;

• выделить из текста число и преобразовать его в числовую форму;

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

задажому условию. Рассмотрим реализацию этих действий на языке Ри1ск-ВА81С. Для

выполнения некоторых из них можно использовать специальные функции. Выполнение других нужно программировать.

1. Вычисление количества символов, содержащихся в переменной Х$, осуществляется при помощи функции ^ЕN(X$).

Ш Нлпргшар: |х$ = "МОСКВА __ "

|Х% = ЬЕМ(Х$)

После выполнения функции ЬЕЫ(Х$) переменной Х% будет присвоено число 8 (последними символами являются два пробела).

2. Функция ПЧ8ТК(К%, Х$, У$) осуществляет поиск первого вхождения подстроки У$ в строку Х$, начиная с символа под номером М%. Если N% не задано, то поиск осуществляется с первого символа. Значеже функции; целое число - номер позиции начала вхождения подстроки У$ в строку Х$: О - если подстрока не найдена; - если У$ - пустая строка.

|Х$ = "А *(В + С)-В/(С +

Х% = 1МЗТК(6, Х$, "(")

А) "

После выполнения функции П^8ТК(6, Х$, "(") переменной Х% присваивается значеже И. (Поиск символа "(" начжается с щестого символа, то есть в дажом тексте с символа С.)

3. Функция МГО$(Х$, Ы%, ,М%) осуществляет ввделение подстроки в М% символов из строки Х$, начиная с символа К%. Если М.% опущено или количество символов в строке справа от символа меньще, чем М%, то выделяются символы, начиная с символа N% до кожа строки. Если значеже М% = О или значеже М% превыщает длину строки, то результатом выполнения функции будет пустая строка.

115

Page 114: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

|Х$ = "ГОРОД МОСКВА - СТОЛИЦА РОССИИ"

|'1Г$ = МЮ$(Х$, 7, 6)

I РК1ЫТ У$

Рлауллтях на экрлнл днаплая:

МОСКВА

Вццвлвкна 1-го символа на огенста; ГОК 1% = 1 то 3

Т$ = МЮ$(Х$, 1%, 1)

РК1ЫТ Т$

ЫЕХТ 1%

Ртаут^тлт на лхрант дясплен;

4. Чтобы сжать исходный текст Т$, удалив из него цепочку символов, от (I + 1)-го до (I + Н)-го, нужно переслать по частям текст Т$ в новую символьную переменную 0$: от начала до 1-го символа и от символа (I + N + 1)-го до конца, используя операцию сочленения:

0$ = Мт$(Т$, I, I) + МГО$(Т$, I + N4- 1, N -1 - 1), где N -

длина исходного текста.

5. Чтобы раздвинуть текст Т$, вставив последовательность символов из переменной У$ между 1-ым и (I + 1)-ым символами исходного текста, нужно текст Т$ переслать по частям от начала до 1-го символа и от (I + 1)-го символа до конца в новую символьную переменную 0$, вставив между ними цепочку символов из У5. Значение переменной У$ должно быть определено в программе заранее:

0$ = МЮ$(Т$, 1, I) -ь У$ + мт$(Т$, I + 1, N - I - 1).

Вместо переменной У$ можно использовать символьную константу.

{:

С$ « МЮ${Т$, 1, I) +

- I - 1)

"дополнительный текст" + МЮ$(Т$, I + 1, N

6. Чтобы выделить и напечатать первую строку введенного текста, нужно определить позицию первого появления в тексте Т$ символа, являющегося разделителем (пусть это - символ

Р% = 1Н8ТК(1, Т$, "#").

Первая строка текста - это часть текста от 1-го до (Р96 - 1)-го символов:

У$ = МЮ$(Т$, 1, Р - 1).

116

Page 115: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 116: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 117: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

и второе слово - это

У$ = МГО$(Т$, К% + 1, К1% - К% - 1). Пример 4.42. Вводится текст, все слова которого разделены пробе-

лом. Вывести на печать отдельные слова.

Црограмыл 4 . 42 . г ■<,**-** + * + *- + * + *********-***-^*1к-*’******-****-*****-*' ' Программа 4.42. ' Печать отдельных слов текста

тырит "Введите текст ", Т$

Ы% = ЬЕЫ(Т$)

К% = 1 10 К1% = 1ЫЗТК(К%, Т$, )

1Р К1% = о ТНЕЫ сото 20

У$ = МЮ$(Т$, К%, К1% - К%)

РКТЫТ У$

К% = К1% + 1

сото 10

20 У$ = МЮ$ (Т$,

К%, Ы% - К%)

Задание начала поиска Поиск

положения текущего пробела в тексте

Выделение текущего слова

Изменение начала поиска

Выделение последнего слова в тексте

РКТЫТ У$ ЕЫО

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

Чтобы проверить, является ли символ буквой, можно воспользоваться тем, что все буквы русского алфавита имеют коды, численные значения которых следуют друг за другом. Прописные буквы от "А" до "Я" (128 - 159). Строчные буквы от "а" до "п" (160 - 175) и от "р" Д° "я" (224 - 239). Буква "Ё" имеет код 240, "ё" - 241.

7. Чтобы выяснить, является буква гласной или согласной, нужно сравнить ее с элементами подготовленного заранее массива гласных или согласных (массив гласных предпочтительнее - требует меньше памяти). Если буква не совпадает ни с одним элементом массива гласных, то эта буква - согласная.

8. Тексты в общем случае могут содержать и числовую информацию, заданную в символьной форме. Чтобы иметь возможность работать с этой информацией как с числами, нужно преобразовать ее к числовой форме при помошц функции УАЕ.

Для перевода числа из текстового представления в числовое необходимо:

• определить положение числа в тексте;

119

Page 118: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

• вьщелить число в текстовую переменную (функция М1В$); • перевести число в действительную форму (функция УАЬ).

Если числа - натуральные, то есть являются последовательностями цифр, то выделеш-ге таких чисел можно осуществлять аналогачно выде- ЛС1ШЮ слов, учитывая, что числовые значения кодов цифр следуют друг за другом. Наименьший код имеет цифра О, наибольший - 9.

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

Нсшример: |х$ = "126"

Й 3 = 1

I Р = 3 + УАЬ(Х$)

В результате выполнения этих операторов переменной Р будет присвоено число 127. Если последовательность символов не является числом, то выдается сообщение об ошибке.

9. Преобразование числа из числовой формы в символьную осуществляет функция 8ТК.$.

10. Чтобы сформировать новый текст из исходного, включая многократно (в цикле) в конец нового текста части, выделяемые из исходного, возможно, с добавлением дополнительных символов, приходится многократно выполнять операцию сочленения нового текста с новыми цепоч- ка.\ш симюлов, то есть выполнять оператор

0$ = 0$ + МГО$(Т5, 1%, Ш) + У$,

где МШ$(Т$, 19о, 1%) - часть исходного текста; Т$, У$ - дополнительная последовательность символов.

1 Пример 4.43. Вводится текст, слова разделены одним пробелом.

реформировать тот же текст, в котором слова отделяются двумя про-

белами.

Црох^гшыа 4 . 43 Орагитят) , К = 1МЗТК (1, Т$,

6$ = МЮ$ (Т$, 1, К)

К1 = 1МЗТК (К + 1, Т$,

1Г К1 = О ООТО 1050

Определение позиции

первого пробела

Перенос первого слова

с добавлением еще одного пробела

Если К1 равно О, пробел не найден

е$ = Е$ + МЮ$ (Т$, к, К1 - К) +

к = К1 : сото 1010

С$ = в$ + МЮ$ (Т$, К + 1, Ь - К + 1 )

Щример 4 . 4 4 . Вводится текст, слова которого разделены пробелом. ;Вывести на печать

слова, начинающиеся и заканчивающиеся на одну |и ту же букву.

120

Page 119: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 120: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

МЕТКА2: 1Г ЗЬ% О О ТНЕМ РК1МТ ("В заланном тексте 5Ь%; " слов

начинаются на букву"; В$)

ЕЬЗЕ РЯ1МТ ("В заданном тексте слов, начинающихся на букву";

В$; " нет") ЕМО

Контрольный пример; акула и амеба - представители животного мира. Результат на з^^аке

дисплея:

Введите текст ? акула и амеба представители животного мира

Введите букву ? а

акула

амеба

В заданном тексте 2 слова начинаются на букву а

11. 8ТК.5(Х) преобразует значение X из числовой формы в символь- 1€у10. При этом значение X представляется в таком виде, как если бы оно выдавалось на печать с помощью оператора РКШТ.

12. ТКМ(Х$) выдает на строку Х$ с отброшеьшыми конечными пробелами.

13. ЬЕРТ$ (Х$, К) - вьщеление N левых крайних символов строки Х$. 14. К10НТ(Х$, К) - выделение N правьк крайних символов строки Х$. Х$, У$, использованные при определении функций, представляют любые

символьные выражения; X, У, 2 - любые арифметтиеские выражения.

Упражнения

4.46. Задан текст, содержащий не более 255 си^толов. Определить частоту, с которой встречаются в тексте различные буквы русского алфавита (в долях от общего количества букв).

4.47. Запшфровать заданный текст (не более 255 символов), используя один перемешанный алфавит (полученный случайной перестановкой всех букв исходного алфавита).

АБВГДЕЭЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ ЕЖЧБПКЛАОТДУГЦЯЙХЫВЪЮИФСЩНЬЗЭШРМ 4.48. Удалить из заданного предложения тексты, находящиеся в круглых

скобках (после каждого слова ставится пробел). 4.49. Ученики зашифровали сюи записки, записывая все слова наоборот.

Составить программу, зашифровывающую и расшифровывающую сообщение.

4.50. Найти максимальное по длине слово в заданном тексте, все слова которого разделены пробелами.

4.51. Определить в заданном предложении количество слов, начинающихся на заданную букву.

4.52. Назовем сложностью предложения сумму количества слов и знаков прешгнания. Определить сложность заданного предложения.

4.53. Исключить из заданного предложения все вхождения "абс". 4.54. Проверить сбалансированность скобок в тексте (скобки

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

4.55. В заданном предложении поменять слою "юйна" на слово "мир".

122

Page 121: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 122: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 123: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 124: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.9. 3.10.

3.11.

126

Page 125: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.13.

127

Page 126: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.15.

128

Page 127: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.16.

129

Page 128: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.17.

130

Page 129: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3. 18.

131

Page 130: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3. 19.

132

Page 131: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3. 20.

133

Page 132: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.26.

134

Page 133: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.27.

135

Page 134: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.28.

136

Page 135: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3. 2» .

137

Page 136: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.30.

138

Page 137: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3. 31.

139

Page 138: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.33.

140

Page 139: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.34.

141

Page 140: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.36.

142

Page 141: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.37.

143

Page 142: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.38.

144

Page 143: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.39.

145

Page 144: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.40.

146

Page 145: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3. 41.

147

Page 146: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3. 42.

148

Page 147: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

3.43.

149

Page 148: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 149: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 150: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 151: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 152: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 153: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

155

Page 154: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 155: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных
Page 156: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

4.55.

С^8 INР^Т "Введите текст А$ Т$ = " " К% = О N% = ^ЕN(А$) 50 К1% = 1Ы5ТК (К% + 1, А$, "война") I Р К 1 % = 0 Т Н Е N СОТО 90 Т$ = Т$ + М10$(А$, К% + 1, К1% - К% К% = К1% + 3 СОТО 50 90 Т$ = Т$ + К1СНТ$(А$, N% - К%) РК1ЫТ "Исходный текст - А$ РРINТ "Исправленный текст "; Т$ ЕN^

1) + "мир"

СПИСОК ЛИТЕРАТУРЫ 1. Информатика; Энциклопедический словарь для начинающих /Сост. Д.А.

Поспелов. — М.: Педагогика-Пресс, 1994.

2. Основы информатики и вычислительной техники: Методические

рекомендации /Сост. В . Н . Дулькин, Г.В. Росс, Л.А. Сысоева. — М.:

РГГУ, 1995.

3. Основы информатики и вычислительной техники: Методические

рекомендации /Сост. Е.И. Макаренко, В.Н. Седди, А.К. Лобачева. - М.:

ГАУ, 1994.

4. Голубев-Новожилов Ю.С. Основы системы программирования ЭВМ ЕС:

Учебное пособие. - М.: МИЭТ, 1980.

5. Пельщиков В.Н. Сборник упражнений по алгоритмическому языку. - М.:

Наука. Гл. ред. физ.-мат. лит., 1989.

6. Программное обеспечение микро ЭВМ: Практическое пособие для

инженерно-педагогических работников системы проф.-техн.

образования. В 11-ти кн. / Под. ред. В.Ф. Шальгина. - М.: 1988.

7. Росс Г.В., Васильева Е . И . Алгоритмика как основа компьютерной

грамотности: Учебное пособие. - М.: М Г И А И , 1988.

8. Росс Г.В., Васильева Е.И. Введение в программирование на

алгоритмическом языке Б Е Й С И К : Учебное пособие. - М: М Г И А И ,

1987.

9. Росс Г.В., Васильева Е . И . Введение в программирование на

алгоритмическом языке Б Е Й С И К ; Лабораторный практикум. - М.:

М Г И А И , 1987.

10. Дулькин В . Н . , Росс Г.В., Пельцман Ю.Е. Элементы компьютерной

грамотности; Методические указания. - М.: РГГУ, 1993.

11. Светозарова Г.И., Мельников А.А., Козловский А.В. Практикум по

программированию на языке БЕЙСИК: Учебное пособие для вузов. -

М.; Наука. Гл. ред. физ.-мат. лит., 1998.

158

Page 157: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

СОДЕРЖАНИЕ

ПРЕДИСЛОВИЕ .................................................................... 3

ГЛАВА 1. Основные понятия информатики .............. 4

1.1. Понятие информации ......................................................................... 4

1.2. Системы счисления ............................................................................. 6 1.2.1. Двоичная система счисления ................................................................... 7

1.2.2. Восьмеричная и шестнадцатеричная системы счисления ................. 9

1.3. Представление информации в ЭВМ................................................ И

1.3.1. Кодирование информации ...................................................................... 11 1.3.2. Формы и форматы представления

числовых данных в ЭВМ ..................................................................................... 12

1.4. Элементы математической логики ................................................ 16

1.4.1. Объекты и операции алгебры логики .................................................. 16

1.4.2. Тождественные преобразования над высказываниями ................... 20

1.4.3. Свойства отдельных операций .............................................................. 21

1.4.3. Преобразование формул алгебры логики ........................................... 23

1.4.4. Построение логической формулы ......................................................... 25

1.4.5. Законы алгебры логики .......................................................................... 27

ГЛАВА 9. Общие сведения

о вычислительной технике ......... .. ................................. 31

2.1. История развития вьпислительной техники ............................... 31

2 . 1 . 1 . Поколения вычислительных машин ................................................... 33

2.2. Основные характеристики и классификация ЭВМ ................... 35

2.3. История создания и развития персональных компьютеров ..... 36

2.4. Технические средства персонального компьютера .................... 38

2.4.1. Структура персонального компьютера ............................................... 38

2.4.2. Устройства ввода данных ...................................................................... 39

2.4.3. Центральный процессор ........................................................................ 40

2.4.4. Память ....................................................................................................... 41

2.4.5. Устройства вывода ................................................................................ 42

2.4.6. Устройства ввода-вывода ..................................................................... 43

2.4.7. Устройства хранения больших объемов информации .................... 43

2.5. Программныесредства вычислительной техники 45

2.5.1. Обшие сведения о программном обеспечении ЭВМ ......................... 45

2.5.2. Общее программное обеспечение ......................................................... 45

2.5.3. Прикладное программное обеспечение - пакеты

прикладных программ ......................................................................................... 50

2.5.4. Оригинальные программы .................................................................... 51

2.5.5. Представление о файлах и файловой системе .................................... 51

2.5.6. Программы обработки текстов ............................................................. 51

159

Page 158: Росс Г.В., Дулькин В.Н., Сысоева Л.А.lib.bbu.edu.az/files/book/911.pdf · В первой главе содержатся сведения об основных

2.5.7. Электронные таблицы (ЭТ).................................................................... 53 2.5.8. Обработка графической информации .................................................. 54

ГЛАВА 3. Разработка алгоритма решения задачи ............ 57

3.1. Этапы решения задачи на ЭВМ ..................................................... 58

3.2. Алгоритм и его свойства ................................................................. 60

3.3. Способы записи алгоритмов .......................................................... 61 3.3.1. Алгоритмы линейной структуры .......................................................... 63

3.3.2. Алгоритмы разветвляющейся структуры ........................................... 64

3.3.3. Алгоритмы циклической структуры ................................................... 67

3.3.4. Алгоритмы сложной структуры ............................................................ 74

ГЛАВА 4. ВА51С и искусство программирования

персональных ЭВМ ....................................................... 80

4.1. Алгоритмический язык программирования ВА81С и его

структура ...................................................................................................... 80 4.1.1. Типы данных ............................................................................................ 82

4.1.2. Типы переменных .................................................................................... 83

4.1.3. Выражения и операции ........................................................................... 83 4.1.4. Операторы ввода/вывода информации ............................................... 85

4.2. Приемы программирования .......................................................... 86 4.2.1. Алгоритмы линейной структуры.......................................................... 86

4.2.2. Алгоритмы разветвляющейся структуры .......................................... 89

4.2.3. Алгоритмы циклической структуры с использованием

простых переменных ............................................................................................. 92

4.2.4. Цикл с известным числом повторений ................................................ 94

4.2.5. Цикл с неизвестным числом повторений ............................................ 96

4.2.6. Программирование задач с одномерными

структурами данных ............................................................................................. 98

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

4.2.8. Программирование задач с двумерными

структурами данных ........................................................................................... 110

4.2.9. Программирование обработки символьной информации.............112

4.2. Ю.Операции и стандартные функции для обработки символьных

величин .................................................................................................................. 114

Ответы и решения ... .............................................. .....193

Глава 1 ........................................................................................................ 123

Глава 3 ........................................................................................................ 124

Глава 4 ........................................................................................................ 150 Список литературы .... ................................................. 158

160