Text
                    РА БОТАЕМ
НА ПЕРСОНАПЬНОМ
КО МПЬЮТЕРЕ
PCJБCJTPOH
1715
Под об щей редакцией
к ан д . техн. наук Н. В. Макаровой
Ленинград
"Машиностроение"
Ленинградское отделение
1989


ББК 32.973.2 Р13 УДК 519.6 Авторы: Н. В. Макарова, А . А . Докучаев, В. Н. Египко, Д. Н. Семенов Р13 Рецензент канд. техн. наук проф. В. В. Кириллов Работаем на персональном компьютере Робот­ рон 1715/Н. В. Макарова, А. А. Докучаев, В. Н. Египко, Д. Н. Семенов; Под общ. ред. канд. техн. наук Н. В. Мак ар о в ой. - Л.: Маши­ ностроение. Ленингр. отд-ние, 1989. - 367 с.: ил. ISBN 5-217-00703-6 Основная цель книги - ознакомить пользователя со струк­ турой и принципом работы современного персонального компью­ тера Роботрон 1715, обучить работе на нем, привив навыки обращения с пакетами прикладных программ: текстовым редак­ тором (РЕ ФОР), электрон ной таблицей (ВАРИТАБ), карто­ текой (КАРТ! 715), системой у пр авления реляционной базой данных (РЕБУС или dBASE). Кроме того, изложены сведения по алгоритмическому языку Бейсик. Книга предназначена для широкого круга пользователей ЭВМ, желающих освоить компьютер Роботрон 1715, а также может быть использована программистами как пособие по уско­ ренному его освоению. 2404040000-966 р o38 (0t)-89 -КБ-53-22-88 ББК 32.973.2 ISBN 5-217-00703-6 © Издательство «Машиностроение», 1989
ПРЕДИСЛОВИЕ Обработка информации в различных ее формах, видах, представлениях воспринимается как обычная производ­ ственная деятельность. В промышленно развитых странах обработка информации - одна из самых существенных сфер человеческой деятельности. Так, в США на инфор­ мационную работу во временном и стоимостном выраже­ нии приходится более 2/3 всех трудовых затрат. Сравнительно недавно появилось понятие, отражающее современный подход к деятельности людей по переработ • ке информации,- информационная технология. Под.: ин· формационной технологией понимается совокупность про· цессов сбора, передачи, обработки, хранения информацииf выдачи результатов потребителю с использованием ком· пьютерной техники. Что существенно нового можно за­ метить в этом понятии? Несомненно, сбором, обработкой, хранением информации люди занимались на протяжении всей истории развития общества. Но появление и внедре­ ние компьютеров заставило пересмотреть стереотипы об· работки информации и процессов, происходящих в любой сфере человеческой деятельности. С каждым годом компьютер все настойчивее заявляет о себе. Уже невозможно не заметить, что это техническое средство при умелом его использовании может не только выполнять рутинные операции, как в первые периоды его применения, но и оказывать реальную помощь в принятии решения, облегчить ваш труд, освободить время для твор­ ческой работы. Этот процесс еще больше активизировался 3
и приобр~л необратимый характер с поЯвлением персо­ нального компьютера и осознания его возможностей. Се­ годняшнее время, по-видимому, можно оценивать как этап зарождения информационной технологии. Еще во многом неясны концепции информационной технологии, специа­ .тшсты очень осторожно прогнозируют ее будущее, но одно, несомненно, ясно - мы должны овладеть методикой рабо­ ты с персональным компьютером как основой всей совре­ менной и будущей информационной технологии. Освоить компьютерную грамоту вы должны в такой степени, чтобы не возникало чувство робости перед незна­ комой техникой, чтобы компьютер ста.л таким же при­ вычным средством работы, как карандаш, ручка, бумага, линейка . И это вполне реально, так как и дизайн компыо­ тера, и комплекс программных средств по организации обработки информации ориентированы на организацию «дружественной» среды общения человека и компьютера. Подобные комплексы программных средств, называе­ мые пакетами прикладных программ, призваны реализо­ вать конкретные цели информационной технологии, а имен­ но : автоматизировать процесс подготовки текстов, исклю­ чив тем самым машинописные работы и многие традици­ онно сложившиеся элементы делопроизводства; изменить процедуру подгото.вки документов в виде таблиц, что по­ зволит сократить отводимые для этого время и средства; организовать хранение больших объемов информации; обес пе чить простоту и удобство доступа к информации и корректировки ее и т. д. Работа на персональном ком­ пыотере пользователя, не являющегося специалистом в об­ ласти компьютерной техники, заключается в свободном владении им средствами входного языка пакета приклад­ ных программ. Одним из первых современных персональных компью­ теров, получившим широкое распространение в нашей стране, является Роботрон 1715 производства ГДР . Он имеет традиционный состав устройстп как по внешнему 4
оформлению, так и по концепции их использования в со­ ответствии с принятым стандартом для персональных 1юмпьютеров. Хотя Роботрон 1715 и относится к группе компьютеров, в структуре к0торых применен 8-разрядный микропроцессор, но в перспективе более мощные его мо­ дели будут построены на базе 16-разрядных микропроцес­ соров. Этот компьютер современного направления уверен­ но может быть включен в общую систему информацион­ ной технологии. В настоящей книге вы ознакомитесь с основными прин­ ципами работы в среде пакетов прикладных программ. Применительно к каждому из пакетов прикладных про­ грамм изложение материала ведется по одной и той же схеме. Вначале рассмотрены назначение пакета и его воз­ можности, затем на конкретной задаче по методу · КЕУ-ВУ - КЕУ (клавиша за клавишей) показано, как использовать входной язык пакета для ее решения. На­ стоятельно рекомендуем вам все действия, связанные с реше­ нием конкретной задачи, проделать самостоятельно и в той последовательности, как изложено в книге. Только так можно достаточно просто и быстро понять стратегию ра­ боты в среде конкретного пакета прикладных программ. Основные возможности пакета вы освоите на конкретной задаче . Дополнительные же средства работы в среде па­ кета представлены в виде справочной информации в кон­ це каждой главы. В книге рассмотрены четыре пакета прикладных про­ грамм, используемых в персональном компьютере Робот­ рон 1715, и алгоритмический язык Бейсик . Первые три пакета -текстовый редактор РЕФОР, электронная таб­ лица ВАРИТАБ, система ведения картотеки КАРТ1715- рассчитаны на пользователя, знающего только основы компьютерной грамоты [6]. Пакет системы управления реляционной базой данных РЕБУС, являющийся своего _ рода системой программирования, как и язык Бейсик, .ориентирован, скорее, на профессиональных программистов. 5
Мате.!'tiал, изложенный в гл. 1 и 2, является базой, без знания которой невозможна ваша работа на компью­ тере. В гл. 1 описаны аппаратная часть компьютера, на­ значение и роль каждого устройства, показано, как на­ чать работу и управлять ею посредством клавиатуры. Глава 2 познакомит вас с операционной системой и об­ служивающими командами. Глава 3 научит вас работать с текстовым редактором по подготовке, редактированию и печати текстов различ· нога содержания и оформления. Глава 4 полезна тем, кто часто имеет дело с инфор­ мацией, представленной в табличной форме. Пакет при­ кладных программ, предназначенный для работы с элек­ тронной таблицей, позволит быстро создавать и печатать такие таблицы, проводить в них расчеты . В гл. 5 вы получите сведения, как организовать хране­ ние информации не в картотеке, а в компьютере, тем са­ мым сократив время поиска информации и освободив пространство, занимае мо е картотекой на бумажном но­ сителе. Глава 6 представит интерес для программистов , же­ лающих ознакомиться с концепцией работы системы управ­ ления реля1щонной базой данных. Показа но, как вносить данные в базу, проводить их коррекцию, извлекать данные из базы в режиме ввода одноразовых команд и режиме работы командного файла . В гл . 7 изложеньi базовые конструкции алгоритмиче­ ского языка Бейсик на конкретных приме р ах. Ознакомив­ шись с ними, вы научитесь составлять несложные про­ граммы. Авторы надеются, что, неукоснительно соблюда я ме­ тодику решения предлагаемых задач на компьютере Ро­ ботрон 1715, вы быстро освоите стратегию работы в среде рассматриваемых пакетов и, получив столь мощное инст­ рументальное средство, найдете ему применение в вашей деятельности. Желаем успехов! 6
1 ЗНАКОМИМСЯ С АППАРАТНОЙ ЧАСТЬЮ ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА РОБОТРОН 1715 7 1.1 . ОСОБЕННОСТИ СТРУКТУРНОЙ СХЕМЫ РОБОТРОНА 1715 Что представляет собой традиционная структурная схема персонального компьютера? Порадуемся вместе с ва­ ми: вы являетесь обладате­ лем персонального компью­ тера Роботрон 1715. Перед вами на столе стоят элект­ ронные блоки, на которые вы смотрите с некоторым почтением и надеждой, а возможно даже, в душе возникает сомнение: справ­ люсь ли я, сумею ли осво­ ить их. Не надо сомне­ ваться, настройтесь на то, что пользоваться персональ­ ным ком п ьютером вскоре станет для вас так же при­ вычно, как телевизором
или магнитофоном. Вас ведь вряд ли интересует принцип работы схем телевизора и магнитофона, так и здесь вам не потребуется знаний глубин микроэлектроники и происхо­ дящих процессов. Однако понимание того, зачем нужны оп­ р еделенные устройства, какие функции на них возлага­ ются и какая роль им отводится, является для вас необ­ ходимостью и залогом будущих успехов. Хотя, надеемся, вы освоили компьютерную грамоту [6), краткое повто­ рение ее основ поможет вам быстрее разобраться в назна­ чении устройств персонального компьютера Роботрон 1715. Совокупность электронных блоков, из которых сqстоит компьютер, называют аппаратной частью или комплексом технических средств. Работа аппаратной части компыо­ тера определяется программой. Пограмма представляет собой описание процесса обработки или управления на символическом языке, воспринимаемом компьютером. Без программы аппаратная часть - это груда бесполезных эле1~тронных и механических блоков. Аппаратную часть условно можно представить в виде центральной и пери­ ферийной частей (рис . 1.1). г--------- - -----~ г-- --- ------ -- --~ 1 Центра11ьная часть 1 1 Лерисрерийнст часть j 1 11 . 1 j !3нутренняя 11 1 Уотройотба J УDmройотба 1 ! память 1 1 Of!гOHUJaцuu O!J9JU 1 1 flpoцeccop 1 "f}нешней , о 1 1 1 памяти челоtJеком 1 '1 ..' ',1 1 L._ __ ___ JL___ _ __J Jtнтщхрейа Рис. 1.1. Типовая структурная схема персонального компьютера • е. Центральную часть со ставляют процессор и внут­ ренняя память (оперативная и постоянная). Процессор вы­ полняет арифметические и логические действия, а также управляет работой основных узлов и блоков компьютера. 8
Память любого принципа действия и исполнения пред­ назначена для хранения информации и программ. 8 8 S Оперативная память хранит текущую информа­ цию и текущую программу решения задачи в данный мо­ мент времени, а также ряд вспомогате л ьных программ для организации работы компьютера. В оперативную па­ мять можно записывать данные и программы и читать их из нее. Этот процесс схож с происходящим во время за­ нятий: преподаватель записывает мелом на доске ту или иную информацию, а учащиеся читают ее с доски. После занятий доску очищают от мела. Так и в компьютере - при отключении питания содержимое оперативной памяти стирается. 8 @ 8 Постоянная память хранит вспомогательные про­ граммы, неоднократно используемые в процессе решения любых задач. К постоянной памяти можно обращаться только для чтения информации и программ, записать в нее новую их порцию невозможно, так как в постоянную па­ мять запись осуществлена в процессе изготовления компьютера на заводе. Постоянную память можно срав ­ нить с книгой, которая была однажды создана, но поль ­ зуются ею многократно. Одна из основных характеристик памяти, роль которой вы должны четко осознать,- это ее емкость. Емкость па­ мяти характеризует максимальный объем информации, хранимой в ней, и выражается в килобайтах (Кбайт), мегабайтах (Мбайт), гигабайтах (Гбайт). Напомним! 1 байт=8 бит (8 двоичных разрядов) . В 1 байте можно хранить один символ, букву . 1 Кбайт= 1ООО байт. 1 Мбайт= 1000 Кбайт= 10 6 байт. 1 Гбайт= 1000 Мбайт= 109 байт. ф 4Ъ) S Периферийную часть любого компьютера состав ­ ляют устройства связи человека и компьютера (дисплей, клавиатура, печатающее устройство, графопостроитеJJь) и устройство организации хранения информации во внеш- 9
ней памяти (дисководы, накопители на магнитной ленте). В дальнейшем мы предоставим вам возможность ознако­ миться с этими устройствами подробнее. А сейчас лишь напомним, что техническую связь и взаимодействие всех устройств между собой осуществляет интерфейс - си­ стемная шина . Теперь можно перейти к рассмотрению ап­ паратной части персонального компьютера Роботрон 1715. Сос тав аппаратной части Ро ботроttа 1715 Структурная схема персонального компьютера Робот­ рон 171 5 аналогична вышеописанной (рис. 1.1), однако при ее конструктивном оформлении не было необходимо­ сти отделять центра л ьную часть от периферийной. В на­ стоящее время определен стандарт на конструкцию пер­ сонального компьютера в виде автономны х блоков : си­ стемного блока, дисплея, клавиатуры, печатающего устрой­ ства (принтера) (рис . 1.2) . !(;1atJuamypa Рис. 1.2 . Роботрон 1715 to
Системный блок является центром и основой персо­ нального компьютера. Здесь сосредоточена вся его мощь, позволяющая реально воплотить замыслы человека отно ­ сительно способа обработки информации. Дисплей, клавиатура, печатающее устройство - это вспомогательная часть, предоставляющая пользователю возможность общения с компьютером. Как глаза и уши позволяют человеку воспринимать (вводить) информацию, так и клавиатура организует восприятие информации компьютером . Речевая деяте льность че ловека (вывод ин­ формации) служит средством общения его с внешни м ми­ ром. В компьютере вывод информации и восприятие ее в удобной для по льзователя форме обеспечиваются печа­ тающим устройством и дисплеем . На рис. 1.2 показан общий вид Ро ботрона 171 5. На системном блоке установлен дисплей. Перед систе мн ым блоком располагается клавиатура, которую легко устано­ вить в удобном для вас положении. Рядом вы видите печатающее устройство. Эти устройства имеют небо ль шие габаритные размеры и массу, что позво лит вам разм естить их на рабочем сто ле и установить в удо бном для пользо­ вания ими положении. Внешнее офо рмле ни е апп ар атной части соответствует современным требованиям ди з айна. Назначение 1.2 . СОСТАВ СИСТЕМНОГО БЛОКА Устройства, входящие в системный блок, организуют обработку и хранение информации, управюпот работой всех узлов и блоков персонального компьютера. Из его назначения вам уже ясно, что системный блок имеет сложную структуру. Но нет надобности разбираться в тон­ костях его работы. Это удел специалистов. Вам достаточ­ но только ознакомиться с назначением его основных со-
ставляющих: системной платы, дисково~ов, адаптерных плат, источника питания. Системная плата Системная плата - центральная электронная часть не только системного блока, но и всего персонального КОi\ШЬЮ­ тера. На ней установлены интегральfrые схемы различного назначения. Интегральной схемой называется электронная схема, выполненная в виде кристалла кремния площадью 25- 40 мм2 • Характеризует интегральную схему степень интеграции - количество первичных элементов (диодов , транзисторов, резисторов, конденсаторов), расположенных на одном кристалле. Благодаря специальной технологии обеспечи ва ется степень интеграции · от нескольких сотен до деся тков тысяч первичных элементов. Интегральная схема размещена в герметичном стандартном корпусе с металлическими выводами, предна значенными для по­ дачи входных воздействий и снятия выходных сигналов. Рассмот рим назначение основных интегральных схем си­ стемной п л аты. eJ ~ ~ Переработку информации и управление всем про­ цессом обработки осуществляет микропроцессор, т. е. про­ цессор, выполненный в виде интегральной схемы. Микро­ процессор содержит несколько десятков тысяч первичных элементов . В Роботроне 1715 исполь зуется 8-разрядный микропроцессор U880, аналогичный 280 (фирмы «Зай­ лог»). Его структура · ориентирована на обработку инфор­ мации с длиной слова, равной 8 двоичным разрядам (би­ там). При сравнении 8-разрядного микропроцессора с широко распространенными в других п ерсональных ком­ пьютерах 16 - разрядными выявляются сущест ве нные не­ достатки: меньше скорость работы и существен но меньше о"бъем оперативной памяти. 8 8 8 На системной плате имеется ряд интегральных схем для организации оперативной и постоянной памяти. Объем оперативной памяти составляет 64 Кбайт. В по- 12
стою1ной памяти обязательно должна храниться програм­ ма автоматической загрузки в оперативную память опера­ ционной системы. •О~ Остальные интегральные схемы играют вспомога­ тельную роль при организации связи между устройствами. Дисководы По команде центрального процессора дисковод произ­ водит поиск и чтение инсЬопмации с диска, а также запись информации на ДИСК. B~I можете встретить также другое название Дисковода - накопитель на гибком или жестком магнитном диске. До появления персона ль ного компьюте­ ра дисковод входил в комплект ЭВМ как автономная кон­ струкция, занимающая определенную площадь, и устанав­ лива л и его отде л ьно от других устройств. Дальнейшее ра з витие интегра л ьных схем со все возрастающей сте­ пенью интеграции, а особенно появление микропроцессо­ ра позволили существенно уменьшить габариты централь­ ной части и свести по сути всю центральную часть к одной системной плате . Это послужило толчко м к интенсифика­ ции процесса, направленного на уменьшение габаритов Магнитная гоАоflка Рис. 1.3. Дисковод с гибким диском 13
внешних устройств, и к разработке малогабаритных дис­ ководов. Роботрон 1715 имеет два дисковода для гибких маг­ нитных дисков (флоппи-дисков или дискетов). Упрощенное представление о принципах работы дисковода можно по­ лучить на примере использо вания бытового проигрывате­ ля, где звучание достигается за счет соприкосновения го­ ловки воспроизведения с ..g.орожкой вращающейся пластин­ ки. Гибкий диск через специальное отверстие вставляется в дисковод и закрепляется на оси двигателя (рис. 1.3) . Магнитная головка производит запись и считывание ин­ формации с поверхности вращающего диска. Робот­ рон 1715 может быть укомплектован дисководами разного типа. 8 8 MFS 1.2 имеет одну головку и обеспечивает запись информации на 40 дорожек и считывание ее с оди­ нарной плотностью. , 8 8 О MFS 1.4 имеет одну головку и обеспечивает запись информации на 80 дорожек и считывание ее с двой­ ной плотностью . 8 ф MFS 1.6 имеет две головки и обеспечивает запись информации с двойной плотностью на каждую по­ верхность диска по 80 дорожек и считывание ее. Замечание. Под плотностью здесь понимается количество доро­ жек, размещенных на диске (радиальная плотность). Как устроен гибкий диск (дискета)? Диск представляет собой гибкую пластину, пок рытую магнитной пленкой ; помещен он в пластиковый чехол !:(рис. 1.4). Так же, как и грампластинка, диск имеет до­ рожки для хранения информации, однако на поверх ности диска вы их не заметите. Дорожки - это не физически, реально обозначенные на поверхности окружности, а ре­ эультат намагничивания отдельных частиц магнитного слоя электрическим током, протекающим по обмотке маг­ нитной головки. Объем хранимой на диске информации 14
выражается в килобайтах. В Роботроне 1715 используют· ся диски максимальной емкости 184, 384 и 770 Кбайт в за­ висимости от типа дисковода. Можно ли представ ить это себе в более наглядной форме и тем самым решить, хватит ли данного объема для реали з ации конкретной за д ачи? Приведем небольшой рас­ чет . На машинописной странице помешаются 1800 симво · а) !1лacm111ro d/J/й l/8ХОЛ о) 1йJмм "~· .• ., •J. . ;..."" . 1JJмм Маркерное oOJ{Jepomue Щель o.4fl магнитной 8[Jl!OfJкu Дорожки ~~ } Операционнар ,--- 02 системd ~~ } Программы • ЛO/llJJO(}QIТl(!;Jfl J9 или 79 Рис. 1.4 . Гибкий диск: а - в чexJie; б - структура диска 1!)
лов из расчета 30 строк по 60 символов в каждой. Для хранения на диске одного символа потребуется 1 байт, одной страницы машино писного текста - 1800 байт~ ~ 1,8 Кбайт, 100 страниц машинописного текста - 180 Кбайт, 200 страниц машинописного текста - 360 Кбайт. Сопоставьте эти цифры с емкостью дисков! Внешнее оформление диска стандартное. На пластико­ вом чехле имеются маркерное отверстие для указания на­ чала дорожки и прорезь, которая открывает поверхность диска для контакта с магнитной головкой дисковода (см. рис. 1.3, 1.4). Кроме того, предусмотрен вырез для бло­ кировки записи. При заклеенном фольгой вырезе запись на дискету произвести невозможно и вам предоставляет­ ся возможность только чтения ранее записанной инфор­ мации. На по верхность чехла наклеена этикетка фирмы, про­ изводящей эти диски, с указанием стандартных парамет­ ров ранжирования по степени возрастания его емкости. Условное обозначение и расшифровка этих параметров, а также рекомендуемый тип дисковода д.JJЯ Роботрона 1715 приведены в табл. 1.1. Наиболее ограничена сфера испо л ь­ зования диска SS/SD. Запись на диск может быть произведена только после его форматирования, т. е . задания определенной струк- Таблица1.1 Типы дисков I<оличест во 1 Ем1<0ст1>, Применение диско в ода Условное обозначе- рабочих Плотность Чис..~о MFS 1.2, MFS l .+\\FSl.6 поверх- дороже~< 1 Кбайт 11ие ноет ей SS/SD 1 1 Одинарная 40 184 +- - SS /DD 1 1 Двойная 80 380 ++- DS/DD 2 . 2х8о 770 +++ 16
туры. Сделать это можно командой INIT, подробно опи­ санной в параграфе 2.3 . В результате форматирования в зависимости от плотности записи диск будет содержать 40 или 80 дорожек. Пронумерованы дорожки от О до 39 (79) начиная с внешнего края (см. рис. 1.4). Каждая до­ рожка разбита на пять секторов емкостью по 1024 байта. Дорожки с номерами О, 1, 2 всегда отводятся для опера­ ционной системы. Часть третьей дорожки занимает ката­ лог диска. Остальные дорожки используются для хране­ ния программ пользователя, данных, пакетов прикладных программ. Адаптерная плата Адаптерная плата (адаптер) - это составная часть ин­ терфейса для соединения периферийных устройств с про­ цессором. Интерфейс персонального компьютера техниче­ ски реализован в виде адаптера, системной шины и разъ­ емов . Для каждого периферийного устройства используют обычно свою адаптерную плату, однако существуют адаптеры, объединя_ющие несколько функций. Адаптерная плата содержит несколько интегральных схем, составляю­ щих контроллер для управления периферийным устройст­ вом определенного типа. Работа адаптера осуществляет­ ся под управлением специальной программы - драйвера. Драйвер и контроллер должны соответствовать друг дру­ гу. Заменяя контроллер и драйвер, можно использовать адаптерную плату для подключения других периферийных устройств. , Адаптерная плата подсоединяется к системной шине, представляющей собой провода для . передачи ин­ формационных и управляющих сигналов и разъемы. Исто111шtс питания Источник питания подает напряжение соответствую­ щего номинала на внутренние электронные схемы . Он под­ ключается переводом переключателя, находящегося на 17
Q .,._ ~~~ "- ;;:: "- "- ·~·· "' "" ..... "" О) u.. ..... .. .. ..... "- -- ---- ---- ---- [Lt1~1 1~J 12 О) <JЗ <') : о ~ <1;) !() "( С> ;::;:: !:'- '<t ..... о ------------ ... 1 ft\() ..., u: 'оо -о "'"' "' ~~\С"" _,. ф 1.i -,i, 1 С>. ~'С> 1 ~ ~~~.... &~ ~<' :) !i ~: ::::r ~ ~ ~~ ~ ' ~ "' ~ "" ~ 10 t- - "':.: с о. f-< о '°о о.. «! о. >. f-< "':s: о:1 "'"= ::<;' .q <J = ~ передней панели системного бло­ ка с правой стороны, в положе­ ние ON (см. рис. 1.2). Для пре· дупреждения нагрева электрон­ ной части используется вентиля­ тор. 1.3 . КАК ПОСРЕДСТВОМ КЛАВИАТУ­ РЫ И ДИСПЛЕЯ ОРГАНИЗОВАТЬ РАБОТУ? Зачем нужны клавиатура и дисплей? С помощью клавиатуры вы вводите команды, числа, текст, программы в компьютер. Для проверки правильности ввода следует воспользоваться диспле­ ем, экран которого отражает не только процесс ввода, но и ре­ зультаты обработки информа­ ции. Дисплей - это электронное устройство отображения вводи· мой и выводимой информации. В персональном компьютере Ро­ ботрон 1715 использован моно­ хроматический (одноцветный) дисплей для отображения алфа­ витно-цифровой информации. На экране дисплея размещаются 24 строки по 80 символов в стро­ ке. Изображение воспроизводит­ ся зеленым цветом на темном фоне. Клавиатуру Роботрона 1715 вы освоите достаточно быстро, 18
немного поработав на ней. В качестве вспомогательного материала, облегчающего процесс ее освоения, используй­ те рис. 1.5. Рассматриваемые ниже назначения каждой клавиши не зависят от создаваемой программной среды и являются постоянными. Условно клавиатура разбита на три зоны: буквенно­ цифровую, цифровую и функциональную. В основном вы будете работать в буквенно-цифровой зоне, где размеще­ ны клавиши русского и латинского алфавитов, различных символов, управляющие клавиши. Ввод букв русского и латинского алфавитов Три ряда буквенно-цифровой зоны составляют клави­ ши русского и латинского алфавитов. На каждой клавише в ее верхней части находится русская букl!а, а в нижней части - латинская. Расположение букв русского алфави­ та соответствует стандарту клавиатуры пишущей машин­ ки. Буквы латинского алфавита размещены иначе, чем принято для пишущих машинок. Латинскую букву по­ мещают на клавишу с той русской буквой, с которой сов­ падает ее произношение. Например, на одной клавише расположены буквы П (русский алфавит) и Р (латинский алфавит). Буквы русского алфавита образуют верхний регистр, буквы латинского алфавита - нижний регистр. При вводе они отображаются прописными буквами. Для фиксации верхнего регистра используется черная клавиша без названия, при этом загорается находящийся слева от нее светодиод (индикатор). На рис. 1.5 эта кла­ виша условно обозначена Ф В Р (фиксация верхнего ре­ гистра). При включении компьютера автоматически под­ ключается латинский алфавит, что соответствует пога­ шенному светодиоду клавиши ФВР. Нажимая клавишу ФВР, вы переходите на верхний регистр с русским алфа­ витом, о чем свидетельствует загорание светодиода. Для отмены фиксации повторно нажмите эту клавишу. Убе- 19
· дитесь в правильности сказанного, поочередно нажимая клавишу ФВР и буквенные клавиши. Для кратковременного или одноразового перехода на другой регистр воспользуйтесь одной из черных клави­ шей без названия, для удобства пользования расположен­ ных с левого и правого краев зоны. На рис . 1.5 они усло в ­ но обозначены В П ДР - временное переключение на дру­ гой регистр. Ввод с другого регистра возможен то.r1ько при одновременном нажатии к J1авиши В ПДР и бу1<Вы . Запомните назначение клавиш ФВР и ВПДР, та1< каi< вы будете пользоваться ими постоянно. Ис1<;лючение - ввод сu;иволов ; - : . ,? Вводить символы ; - : . , ? вы должны иным, отлич­ ным от вышеописанного способом. Независимо от состоя­ ния клавиш ФВР (светится или не светится светодиод), нажав одну из них, вы введете символ, изображенный в нижней части клавиши. Для ввода символа, расположен­ ного в верхней части клавиши, нажмите одновременно клавишу В ПДР и клавишу с этим символом Таким обра­ зом, символы ; - : . , ? вводите всегда при нажатой кла­ више ВПДР. Так же можно ввести и цифры верхнего ряда, но на практике для ускорения процесса ввода ре­ комендуем пользоваться цифровой зоной. Функции клавиш управленuя Функции клавиш управления могут меняться в зави­ симости от пакета прикладных программ. Здесь вы озна­ комитесь с клавишами, действие которых в основном не- изменно в операuионной среде. . 8 8 0 Клавишей ввода ЕТ пользуйтесь при завершении набора строки . ГJос л е нажатия этой r<лавиши содержимое строки записывается в оперативную память и курсор пе­ ремещается в следующую стро к у . 8 8 ф CTRL действует то лыю совместно с буквенной клавишей и предназначается для генерации различных 20
управляющих воздействий. В специальной литературе эту клавишу часто обозна ча ют символом /\, иногда - кавыч­ ками ("). В табл. 1.2 приведены некоторые управляющие функции для операционной среды Роботрона 1715. При изучении пакетов вы часто будете сталкиваться с допол- Таблиц а 1.2 Управляющие фушщии I<лае11ша 1 Функция CTRL С Перевод операционной системы в начальное состояние, сброс дИСJ{ОВОЙ системы (дублирует J{Л авишу F14) . Кроме ТОГО, используется для выхода из обслуживающей J{Оманды CTRL S Останов в ы вода на ет клавишу F5) ЭJ{ран дисплея (дублиру- CTRL М. Дублирует J{Лавишу ЕТ CTRL U Отменнет ввод ст'ро!{И (дублирует клавишу СЕ) CTRL R По вторный вывод строки (клавиш:~ F4) CTRL Р Синхронные печать и вывод на эк ран CTRL Н Дублирует клавишу +- CTRL Х Дублируе т клавишу \+- нителы-тыми управляющими функциями, воспроизводимы­ ми за счет совместного действия к.павиши CTRL и буквен­ ной клавиши . Особенно инте н сивно используется клави­ ша CTRL в пакете прикладных программ по ред актиро­ ванию текста, например в РЕФОРе . 8 8 8 Sl/SO служит для выбора режима отображения букв латинского и русского ал фавитов, чаще использует­ ся при работе с русским текстом Об установке этого ре­ жима вам сигнализирует светящийся светодиод, установ- 21
ленный рядом с этой клавишей. Для ввода строчных букв :русского алфавита нажмите клавишу Sl/SO и проверьте, не нажата ли клавиша ФВР; об отсутствии нажатия сиг­ нализирует ее погашенный светодиод. Для ввода пропис­ ных букв нажмите клавишу ФВР, при этом засветится - ее светодиод. 8 Ф 8 Клавиша !-Е- стирает набранную строку. Клавиша +- стирает последний набранный символ и передвигает курсор на предыдущую позицию. 8 О 8 Клавиша табуляции - ~ передвигает курсор на восемь позиций вправо. 8 8 8 Клавиша ( R) - авто повтор символа, клавиша ко­ торого нажата в данный момент. Действует она то лько при одновременном нажатии клавиши ( R) и любой бук­ венно-цифровой клавиши. -~ ф 8 Клавиша DEL удаляет символ слева от курсора с одновременным отображением его на экране. Функция этой клавиши может быть изменена при использовании в среде прикладного обеспечения. ф ф 0 Остальные управляющие клавиши буквенно-циф­ ровой зоны действуют только в среде, создаваемой конк­ ретным пакетом прикладных програ мм. Клавиши цифровой зоны Числа набираются в цифровой зоне. Здесь же распо­ ложены клавиши с запятой (,) для отделения целой час-· ти от дробной и клавиша со знаком минус (- ) . О 8 8 Клавиша S дублирует действие клавиши ЕТ. О 8 8 Клавиша СЕ отменяет ввод. При ее нажатии в набираемой строке на экране появляется символ # и курсор переходит на следующую строку. Эта функция дублируется с помощью CTRL U. Функциональные клавиши Большинство функциональных клавиш используется конкретной прикладной программой. Однако есть несколь- 22
ко клавиш, которые предназначены для управления рабо­ той в операционной системе. 8 8 О F4 повторно выводит строку ввода на экран. Дуб­ лирует действие этой клавиши CTRL R. J?екомендуем ис­ пользовать эту клавишу, когда при наборе строк вы не­ сколько раз исправляли содержимое и на экране зафик­ сировались все ваши действия. Нажав клавишу F4 , вы получите строку ввода без исправлений в конечном виде. 8 О F5 останавливает вывод информации на экран . Дублирует действие этой клавиши CTRL S. 8 8 8 FlO - прогон листа. При работе печатающего устройства обеспечивает переход к началу нового листа . 8 О О f14 переводит операционную систему в нача л ь­ ное состояние, осуществляет сброс дисковой системы. Если вы хотите произвести замену дисков, то после замены обя­ зательно нажмите либо эту клавишу, либо дублирующую· ее действие CTRL С. В противном случае вы не сможете записать информацию на новый диск. 1.4 . ВОЗМОЖНОСТИ ПЕЧАТАЮЩЕГО УСТРОЙСТВА Вы получаете в руки универсальное средство печати Печатающее устройство (принтер) обладает широ ки ми­ возможностями по организации печати текстовой инфор­ мации или графических изображений. Работая на персо­ нальном компьютере Роботрон 1715, вы получаете мощ­ ное средство печати с многочисленными вариантами шриф­ тов и способами оформления текстов. Можно, например, выделять в тексте слова, печатая их вразрядку, жирным или сжатым шрифтом, а также используя подчеркивание. Можно регулировать расстояние между строками и раз­ мещать текст в нижней или верхней части одной строки. Различные комбинации шрифтов и умелое управление ре­ жимами печати позволяют печатать тексты и рисунки. удовлетворяющие любому взыскательному вкусу. 23
В этом параграфе вы ознакомитесь · с основными спо­ собами организации текстовой печати. Для более глубо­ кого изучения средств управ л ения печатью текста и ГР? · фических изображений вам необходимо обратиться к тех­ ническому описанию печатающего устройства [7], постав­ ляемому вместе с аппаратной частью Роботрона 1715. Техническая характеристика печатающего устройства В качестве печатающего устройства используется мат­ ричное знакосинтезирующее устройство . Головка печати состоит из девяти иголок, при разном сочетании которых воспроизводится символ в требу емом изображении . При наличии хорошей красящей ленты организуется высоко­ качественная печать символов, которые представляют со­ бой различное сочетание микроскопически х точек. Скорость печати порядка 200 знаков в секунду . Максимальное ко­ личество знаков в строке зависит от выбранного шрифта и типа печатающего устройства. Например, при стандарт­ ной печати для принтера К 6312-М максимальное количе­ ство символов в строке - 136, а при печати сжатым шриф­ том - 233. Расстояние между строками можно регулиро­ вать от 2,5 мм до любого значения. Максимальная ширина листа бумаги - 420 мм. Обратите вщ1мание! В технической литературе по компьютерной технике в качестве меры длины часто использу е тся дюйм (1 дюйм"" =25,4 мм). Для большей наглядности в да л ьнейшем изложении будем пользоваться привычной для нас мерой , выражен­ ной в миллиметрах. Например, механическ и м способом (переключателями) интервал между строками устанавли­ вается 1/8 или 1/6 дюйма , что соответств у ет 3,18 и 4,23 мм. При ср:;~внении скорости ра боты п е чатающего устройства с быстродействием центра л ьной части ЭВМ вы заметите существенную разницу. В це J1 ях устранения этого несоот­ ветствия используется промежуточное устройство для на- 24
копления информации, подлежащей печати, - буфер пе· чати как одна из разновидностей управляющей памяти. Буфер печати принимает информацию из центральной части компьютера, накапливает ее и по мере готовности печатающего устройства выдает на печать. Назначение клавиш и индикации 8 8 8 Состояние печатающего устройства характеризу­ ется двумя режимами: рабочим (ON LINE), когда орга­ низована печать информации, и нерабочим (OFF LINE). На передней панели печатающего устройства (рис. 1.6) PWR LINE ERR РЕ "f' FEED .... FORM FEED ON/OFF LINE Ри,с. 1.6 . Клавиши управления на передней панели печатающего устройства Роботрона 1715 .Подсветка индикатора: 1 - красная; 2 - зеленая; 3-желтая находятся ряд клавиш и свеrодиоды индикации для уп­ равления работой и сигнализации о его состоянии. Свето­ диоды имеют различную подсветку - красную, желтую, зеленую в зависимости от состояния принтера : красная (ERR - ERROR) - техническая неисправность; зеленая (PWR - POWER) - гото~ность к работе; желтая (РЕ - PAPER END) - конец бумаги. Желтое свечение рядом с клавишей ON/OFF LINE - принтер в рабочем режиме ON LINE. При погашенном светодиоде - принтер в режиме OFF UNE. 8 8 8 Клавишей ON/OFF LI NE вы будете пользоваться в том случае, если переключатель 5-1 находится в поло­ жении OFF. Тогда для подключения печатающего устрой- 25
ства в работу (режим ON LINE) вам необходимо нажать эту клавишу, проверив предварительно, закрыта ли крыш· ка принтера. При изменении состояния переключателя 5- 1 будет осуществлен автоматический переход принтера в режим ON LINE, и соответствующая клавиша не играет никакой роли (см . табл. 1.3 и рис . 1.7). ·8 8 8 Клавиша FO RM FEED предназначена для прого ­ на до конца листа стандартного формата . Формат - это стандартные длина и ширина листа печати . Например, при п е чати текста каретка принтера остановилась посередине формата. Для перехода к следующему листу печати на­ жмите клавишу FORM F EED. 8@8 Клавиши LIN E FEED. Нажимая клавишу А , вы продвигаете лист бумаги вперед. Нажав клавишу V, можно продвин уть лист бумаги назад. Те же операции вы можете проделать , пользуясь находящейся на валике руч ­ ко й перевода . Управле ние печа тью переключателями Открыв крышку , вы увидите 14 переключателей с обо­ значениями 5-18, а посеред и не панели из об ражены две стрелки : л евая стре лк а помечена буквами OFF, правая - буквами ON (рис . 1.7) . Каждый переключатель имеет две - OFFffiON- 567891011212131415161718 ~~r_ж~-:~ ~ :;_~ [:щ~с=-~~ ~ Рис. 1.7 . Переключатели режимов работы печатающего устрой- ства клавиши: верхняя обозначена цифрой 1, нижняя - цифрой 2. Каждая клавиша находится в одном из двух положе­ ний - левом (OFF) или правом (ON) . Вы можете, на­ пример, с помощью переключателя 10 выбрать шрифт, а переключателем 12 задать расстояние между строками . Табл . 1.3 ознакомит вас с функциями этих переключателей . 26
Пере­ клю·ш­ те ль 5 6 7 8 9 Таблиц а 1.3: Фуннuии перенлючателей Положение переключателя Номер1OFF \ ON 1 1 2 1 2 2 1 2 2 1 1 2 2 1 1 + + + + + + + + + + + + + + + + Функция Контакт крышки действует Контакт крышки не действует Не используется Обеспечен концевой контакт бу- маги Не обеспечен концевой контакт бумаги Обеспечен сигнал зуммера Не обеспечен сигнал зуммера Отсутствует автоматическое переклю- чение строк. Требуется программное управление Автоматическое переключение строк реализовано, если переключатель 7-2 находится в положении OFF Автоматический возврат каретки к ле­ вому краю, если переключатель 7-1 находится в положении ON Отсутствует автоматический возврат каретки. Требуется программное управ­ ление Не используется Строчные буквы русского алфавита Код управления ESC/P Код управления ИСО Строчные буквы русского алфавита Прописные буквы латинского и рус- ского алфавитов 27
Пере- По~ожение 1 клю- перек.r~ю 1ателя Ф_р1кuия чатель Номер j OFF 1 1 ON 9 2 1 Не использует ся Виды шрифтов: 10 1 + } 2 + станда ртный («пика») 1 +} 2 + «элита» 1 :t } сжатый 1 2 1 + } жирный 1 2 + 11 1 + Печать числа нуль в виде О 1 + Печать числа нуль в виде 0 2 + Интервал между строками 4,23 мм 2 + Интервал между строками 3,18 мм Длина формата листа: 12 1 :t } 304,8 мм (12 дюймов) 2 1 + } 279,4 мм (11 дюймоп) 2 + 1 + } 152,4 мм (6 дюймов) 2 + 1 + } 139,7 мм (5,5 дюймов) 2 + 13 1 + Подача бума г и на 25,4 мм за фальц. При непрерывной печати ЭТОТ П[:ЮГОН бумаги разгр а ничивает соседние J!И СТЫ печати 1 + Не действует 2 Не используется 28
Пере- Положение KJIIO- переклЮ 'i ателя Функция чате ль Номер/ OFF 1 ON 14 nредназна чены ;; ля организации ин- тep ll ейса между принтером и систем- ным блоком . Настрой1<а производит си 18 на конкретную модель [7] В ней установка переключателя в требуемое положение OFF или ON обозначается знаком +. Предостережение! Пользуйтесь переключателями только в случае крайней необходимости. Рекомендуем применять в качестве основного способа программное управление режимом печати. Частое механиче­ ское воздействие может привести к неисправности как переклю,1ате­ лей, так и печатающ его устройства. Управление печатью програм1.-1ным способом Управ ле ние печатью удобно производить из программы, ис польз уя соответствующие средства алгоритмического языка. Возможности программного способа го.раздо шире, и он более мобилен, нежели управление с помощью пере­ ключателей. Кроме того, при таком способе отсутствует механическое воздействие на принтер. Для освоения всех способов печати рекомендуем воспользоваться инструкци­ ей [7]. Здесь же будет показан основной способ задания шрифтов, ознакомившись с которым, вы легко освоите и другие способы. Воспользуйтесь интерпретатором алгоритмического яз ыка Бейсик, загрузив его в оперативную память, и ре­ комендациями параграфа 1.5 . + Поставьте диск, на котором записана операционная система и Бейсик, в дисковод А. 29
+ Начнется автоматическая загрузка операционной систе­ мы. После ее окончания на экране появится подсказка А> ф Наберите слово BASIC и нажмите клавишу ЕТ A>BASIC + После загрузки транслятора Бейсик снова появится подсказка А>. Теперь, находясь в среде языка Бейсик, для программ­ ного управления печатью вы будете пользоваться опе­ ратором LPRINT, после которого должен следовать код выбранного способа печати. ~ е * Предлагаемый вашему вниманию ОДИН из спосо­ бов обеспечивает печать текста выбранным шрифтом. Отмена выбранного варианта печати производится зада­ нием нового кода шрифта. Совокупность кодов - CHR м (27); "!"; CHRS (m) реализует один из возмож- Т а блиц а 1.4 ных видов шрифтов: стан- Коды шрифтов дартный, часто называемый . ::с Шрифт .... р. "' ":с "' .... u Стандартный о «Элита» 1 Сжатый 4 Жирный 8 Печать >. "' "' " "' '" "' р. "' ~ о "' р. " "' 16 32 17 33 20 36 24 40 ;., ""' "'" "'" ""о. о"' "'"' "о."' 48 49 52 56 1 «пика», «э.пита», сжатый, жирный с использованием стандартной или двойной печати, а также вразрядку . Вид шрифта определяется кодом из табл . 1.4, который вы должны подставить вмес­ то указанной в совокупности кодов буквы m. На рис. 1.8 показаны все возможные ви­ ды шрифтов. 8 8 ф Интервал между строками устанавливается также оператором LPRINT, за которым следует совокуп­ ность кодов, представленная в табл . 1.5 . 30
Например, вы хотите напе ч атать слово «ПРОГРАМ· МА » с начала жирным шриф том, а затем шрифтом «эли­ та» вразрядку . Интервал между строками должен быть об еспечен приблизительно 20 мм, для чего, исходя из Коды интервалов между строками 3,18 (1/8) 4,23 (1/6) n·.0,12 (n/216) Таблица 1.5 n·0,35 (n/72) "}' "Q" "2" t'JH; . иА"• Код ·1CHR:fZ(27);1CHR .>J_(27); 1CHR р (27); /CHR·.(:i {27) ;1CHRM (27)i CHR '(i' (n) CHR}i (п) СТАНдАРТНЫ171 ШРИФТ -дBOl'IHOl'I -Е:РАЭРЯДКУ ~ДВО~НОй ВРАЭРЯАКУ 'Jl!РИФТ uэЛ ИТ Ак -дBOPIHOPI -ВРАЗРЯ4КУ -дВОАНО~ ВРАЭРЯ4КУ. СШЫРI ~Риет - ABOlllIOI -BPAЭPSJtlKY -ABO~HOR ВРАЭРЯАКУ :ЖИРНЫРI ШРИФТ -АВОИНОИ -ВРАЭРSIДК'У ~ дsо~но~ ВРАЗРЯДКУ Рис. 1.8 . Ва рианты шрифтов 31
табл. 1.5, следует определить n=20/0,35:::::::5,7:::::::6 мм. Тог­ да программа управления печатью примет вид: 10 LPRINT CHR 'J'i_ (27); "!"; CHRS (8) ) Печатать 20 LPRINT "ПРОГРАММА" жирным шрифтом ) Интервал 30 LPRINTCHR Ц{27);"А";СНRД'.(6) между строками 40 LPRINT CHR tf. (27); "!" ; CHRS (33) шрифтом ) Печатать 50 LPRINT "ПРОГРАММА" «элита>> вразрядку 1.5 . КАК ПРИСТУПИТЬ К РАБОТЕ НА РОБОТРОНЕ 1715? Включите компьютер Включите персональный компьютер в сеть. Затем переведите переключатель, передней панели системного блока, в (см. рис . 1.2). Подклю•тте пе•ш тающее устройство Роботрон 1715 находящийся на положение ON При необходимости печати подключите печатающее устройство к работе с помощью клавиши включения, на­ ходящейся на его задней панели справа. Печатающее устройство автоматически подключается в нормальный режим работы ON CINE, и загорается желтый светодиод. Однако возможна ситуация, когда автоматического подклю­ чения принтера не произойдет. Это может быть либо по причине пло хо закрытой крышки или отсутствия бумаги. Для того чтобы убедиться в правильности предположения, откройте крышку и посмотрите, в каком положении на­ ходятся переключатели 5-1, 6-1. Если в положении OFF, 32
то устр а ните причину, закрыв крышку и заправив бумагу, ;i за те м нажмите клавишу ON/OFF LINE. Если в положе· ш1 и O N, то причина будет иной, и скорей всего - это не· 11 прав ность печатающего устройства. Пр и отсутствии потребности в печати· принтер не 01<.11 ю чайте! Заг рузите операционную систему Следующим шагом является загрузка операционной с и стемы . Вставьте диск с операционной системой в дис ­ ков од А и закройте защелку. Начнется автоматическая заг рузка операционной системы . После ее окончания на э кр а не появится название версии операционной системы и подсказка: ROBOTRON 1715 SCP VERS. ХХ-УУ. УУ. YY.-ZZ КВ А>_ Здесь условно обозначены: ХХ- номер версии; УУ.УУ . УУ - дата составления; ZZ - размер свободной зо ­ ны оперативной памяти . Подсказка А> означает, что ' левый дисковод с именем А определен актуальным. Сим­ вол _ (курсор) указывает позицию вводимого символа " Замечание! Операционная система всегда загружается с левого ' дисковода А. ·J Загрузите пакет прикладных программ , ·'. Загрузить в оперативную память пакет прикладных ; программ можно несколькими способами в зависимости:, от того, на каком диске находится операционная система_ . " 8 8 8 Предположим, что операционная система и па- · кет прикладных программ находятся на разных дис1<ах . Тогда откройте защелку дисковода А, . выньте диск с опе- .· рационной системой, вставьте туда же диск с пакетом прикладных программ и закройте защелку дисковода ...: · 2 Заказ No 594 зэ
Далее вызовите катаJ!ог диска, набрав команду DIR и на­ жав клавишу ЕТ: A>DIR Для загрузки пакета прикладных программ вам надо найти в каталоге имя ведущего файла. Затем · наберите это имя и нажмите клавишу ввода ЕТ: А> имя файла .._,,__... Таким образом, вь1 вошли в среду пакета. 8 8 8 В том случае, когда операционная система и па­ кет прикладных программ находятся на одном диске, вставьте этот диск в дисковод и проделайте все указанные выше действия, начиная с ввода команды вызова каталога. ф 8 8 Возможен- также вариант, когда вы хотите сохра­ нить системный диси в дисководе А. Тогда вставьте диск с пакетом прикладных программ в дисковод В и закройте зашелку. Далее сделайте дисковод актуальным {текущим), вводя строку А>В: На экране появится подсказка В>_ 'Далее вы вврдите либо имя пакета, либо, если вы забыли ~го, воспользуйтесь командой DIR для просмотра катало­ га диска, а затем введите имя. 1.6. ПРОВЕРЯЕМ СЕБЯ. ,Что ПРЕДСТАВЛЯ:iОТ СОБОЙ АllПАРАТНЫЕ СРЕДСТВА? Упражнения 1.1 . Из каких функциональньrх блоков состоит струк­ турная схема Роботрона 1715? 1.2 . В чем особенности аппаратной реализации струк­ турной схемы Роботрона 1715? 34
1.3 . Состав системного блока. 1.4 . Для чего нужен гибкий диск? 1.5. Как вы понимаете назначение дисковода? 1.6 . Какие дисководы могут входить в комплект по- ста вки Роботрона 1715? . 1.7 . Как вводить буквы русского алфавита? 1.8. Как вводить буквы латинского алфавита? 1.9. Назначение клавиши CTRL. 1.10. Как вводятся символы., : - ; ? 1.11. Что свидетеJiьствует о готовности печатающего устройства r< работе? 1.12. Как можно управлять работой печатающего устройства? 1. 13. В чем состоят возмо:Ншости печатающего устрой­ ст ва? 1.14. Как выглядит программная строка задания пе­ ча ти определенным шрифтом? l. 15. Какова последовате ,1ь ность ваших действий для р аботы с программой , хранящейся на диске? Ответы rc упражнепиял~ 1.1 . Структурная схема персонального компьютера Ро­ ботрон 1715 отражает традиционный подход к архитекту­ ре микроЭВМ, основанный на использовании интерфейса «об щая шина». В структуре персонального компьютера можно выделить центральную часть, состоящую из про­ цессора и внутренней памяти, и периферийную часть, со­ стоящую из устройств связи центральной части с внешней пам ятью и пользователем. Все устройства соединяются сис темной шиной . 1.2. Аппаратная реализация структурной схемы не име­ ет четко выраженной центральной и . периферийной час­ тей, как в классе больших ЭВМ. Конструктивно персо­ нал ьный компьютер Роботрон 1715 выполнен в виде четы­ рех автономных блоков : системного блока, клавиатуры,_ дис плея, печатающего устройства. 35
1.3 . В состав системного блока входят: системная пла­ т а, на которой реализована центральная часть компьюте­ ра, адаптерная плата, где установлены контроллеры для управ ле ния п_ериферийной · частью; дисководы; источни!} питания и вентилятор. 1.4 . Гибкий диск служит внешней памятью персональ­ ного компьютера для долговременного хранения программ и данных . 1.5. Назначение дисковода -организация записи ин­ формации на гибкий диск и чтение информации с диска. 1.6 . Роботрон 1715 может быть укомплектован диско­ водами одного из перечисленных ниже типов : MFS 1.2 обеспечивает одинарную плотность на одной стороне диска с 40 дорожками; MFS 1.4 обеспечивает двойную плотность на одной стороне диска с 80 дорожками; MFS 1.6 обеспечивает двойную плотность на обе сто ­ роны диска по 80 дорожек. 1.7 . Предварительно нажмите клавишу фиксации верх­ него регистра (ФВ Р на рис. 1.5), чтобы засветился инди­ катор, а затем нажмите буквенную клавишу. Если вы по­ стоя!-шо работаете с нижним регистром, вводя латинские буквы, то для единовременного вв ода русской буквы на­ жмите одновременно клавишу ВПДР (см . рис. 1.5) и бук­ венную клавишу. 1.8 . Необходимо, чтобы индикатор клавиши фиксации верхнего регистра был погашен. Ес ли вы работаете на верхнем регистре, то для единовременного ввода латин­ ской буквы нажмите одновременно клавишу ВПДР и со­ ответствующую буквенную клавишу . 1.9 . Клавиша CTRL действует совместно с буквенной клавишей для генерации управляющего во зд ействия. 1. 10. Необходимо одновременно нажать клавишу ВП ДР и клавишу с нужным символом. 1, 11. Светятся индикаторы: зеленый (P\VH.) и желтый под клавишей ON/ OFF LINIE. 36
1.12 . С помощью переключателей 5-18, находящихся под крышкой печатающего устройства, или посредством кодов программным способом. Предпочтителен программ­ н ый способ . 1.13. Возможности печатающего устройства: + печать разными шрифтами - стандартным («пика») , «элита», сжатым, жирным - обычным способом ИJJИ враз· рядку, а для большей четкости применяется двойная печать; + регулируется расстояние между строками ; ф при печати можно задать разный формат листа. 1. 14 . Программная строка на алгоритмическом языке Бейсик состоит из оператора LPRINT с кодами в соответ­ ствии с табл . 1.4 . Эта строка должна предшествовать вы­ водимой информации. Например, для печати слова « КОНТРОЛЬ» жирным шрифтом вразрядку программная строка имеет вид: 10 LPRINT CHR :б_ (27); "!"; CHRS (40) 20 l_ PRJNТ "КОНТРОЛЬ" 1. 15. Последовательность ваших действий такова: + включите Роботрон 1715 в сеть; + переведите переключатель на системном блоке в поло­ жение ON; + подключите печатающее устройство клавишей, находя­ щейся на его задней панели; + вставьте диск в дисковод А и закройте защелку; ф ждите, пока на экране не появится подсказка А>_; + наберите имя вашей программы и нажмите клавишу в вода ЕТ.
ИЗУЧАЕМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ РОБОТРОНА 1715 2.1. возможности ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 38
программы, разработанные и заложенные в память компью­ тера человеком, и от того, насколько они совершенны, зависят эффективность работы аппаратной части и · успеш­ ное решение поставленных задач. При решении вопроса о приобретении той или иной модели персонального компьютера опытный специалист пр ежде всего поинтересуется назначением и структурой стандартных программных средств, входящих в комплект поставки. Кроме того, он выяснит, какие имеются допол­ нительные программные средства и насколько они развиты, существуют ли реальные возможности их приобретения. Безусловно, предпочтение будет отдано модели с большим чи слом универсальных программ обработки информации р аз ли чного назначения. Совокупность программ общего назначения, органи­ зу ющую обработку и нформации на компьютере, назыв ают его программным обеспечением. Некоторые программы входят в состав компьютера и .поставляются на дисках вместе с аппаратурой . Однако же, как правило , это ни­ чтожная часть всего многообразия программных средств . В основном программное обеспечение вы должны поку­ пать у распространяющих его организаций. В нашей ст ране центральной ор·ганиза-цией, куда в основном обра­ щаются владельцы компьютеров, является научно-произ­ в одственное объединение «Uентрпрограммсистем» в городе Калинине. Кроме того, организуются подобные центры регионального назначения, например в Таллине, Ленин­ гр аде. Программное обеспечение, независимо от конкретной модели компьютера, подразделяется на три класса: сис­ те мное, система программирования, прикладное. Одна1ю это не означает, что, имея, например, прикладн·ое про­ гр аммное обеспечение для персональнQго компьютера, вы можете использовать его в мини-ЭВМ или больших ЭВМ. Программное обеспечение может быть общим только Для ком пьютеров с единой концепцией построения. Так, про- 39
граммное обеспечение больших ЭВМ с успехом приме­ няется в различных моделях ЕС, программное обеспечение персональных компьютеров является общим, если в их структуре используется один и тот же тип микропроцес­ сора, и неприемлемо для моделей, созданных на базе Олерационfiая система Программное о5еспечение Тесты контрмя Пакеты ЛPUКllaOHIJIX программ ЛрогрОММ6! ло11ьзо8f1mе­ ля Рис. 2.1. Структура типового программного обеспечения компьютера разных типов микропроцессоров. Однако это ограничение может быть снято, если дополнительно используются спе­ циальные программные и технические средства. Программ­ ное обеспечение Роботрона 1715 представлено на рис. 2.1 в соответствии с общей классификацией без отражения специфики конкретной модели. Системное программное обеспечение Системное программное обеспечение любого компыоте­ ра управляет обработкой информации и контролирует работу аппаратной части. В состав системного программ­ ного обеспеченин Роботрона 1715 входят операционная система SCP, обслуживающие команды, тесты контроля за работой устройств (см. рис. 2.1). 8 8 8 Операционная система SCP и обслужива1Qщие команды организуют обработку информации на компьюте­ ре и управляют его аппа.ратной частью. Это неотъемлемый 40
эле мент общей системы управления, без которой невоз­ можно ни одно действие компьютера. Операционную систе­ му можно считать практически неизменяемой частью с ограниченным набором команд для реализации основ­ ных функций управления. Однако ее возможности вы мо­ жете существенно расширить за счет использования обслу­ жива ющих (сервисных, транзитных) команд , хранящихся незави симо от операционной системы в виде файлов на дисках . ·· ~- ··:' 8 8 ф Тесты контроля за работой устройств представля­ ют собой специальные программы, с помощью которых вы Пров еряете работоспособность отдельных блоков и при неиспр авности выявляете причину ее возникновения. Система программирования Си стема программирования позволяет разрабатывать про граммы на символических языках, а не в машинных код ах, где инструкции компьютеру (команды) о проведе­ нии им тех или иных действий выражены двоичными ко­ дами - различными сочетаниями двух цифр : l и О. Напоминаем/ Программа - это совокупность инструкций, написан­ ных человеком, для выполнения компьютером определенных действий . Что представляют собой символические языки и како­ во их назначение? Символические языки должны обеспе­ чить понимание компьютер@м задач пользователя. Кон­ це пция их построения и использования схожа с разговор­ ным языком. Вспомните, как обучаются дети читать и пи­ сат ь. Сначала их знакомят с алфавитом языка, а затем, по степенно овладев правилами образования (синтаксисом) сло в, предложений, различных конструкций, они приобре­ тают способность свободно читать, правильно выражать сво и мысли, грамотно писать. Итак, важнейшим средством об щения между людьми является естественный язы1<. Об щение же человека и компьютера призвана обеспечить ср еда символического языка. 41
Символические языки также в основе своей имеют ал­ фавит, но в них предусмотрены не только буквы, но и спе­ циальные символы. В основу образования различных конструкций символического языка также заложены специ­ альные правила - синтаксис. Символические языки под­ разделяются на алгоритмические и машинно-ориентиро­ ванные. 8 8 По своей структуре алгоритмические языки не имеют ориентации на конкретную модель компьютера, и поэтому программы, написанные на каком-то определен­ ном алгоритмическом языке, с небольшими доработками, учитывающими специфику устройств ввода-вывода, вы можете использовать на разных компьютерах. Алгоритми­ ческие языки образуют многочисленное семейство, насчи­ тывающее порядка тысячи представителей. Наибольшее распространение получили языки Бейсик, Паскаль, ПЛ/1, Ада, Фортран. О 8 Машинно-ориентированные языки существенно сложнее, так как учитывают структуру конкретной моде­ ли компьютера. В связи с этим и программы, написанные на этих языках, рассчитаны только на те модели, где можно использовать идентичные наборы команд. К этой группе языков относятся Ассемблер, Макроассемблер, Ав­ токод и др. Одна~ю, поскольку компьютер способен понимать толь­ ко машинный язьш, необходимо хранить в его памяти комплекс программ, которые обеспечат перевод всех кон­ струкций ашоритмического языка в машинный язык I<OНI(· ретной модели компьютера с учетом специфики его струк­ туры. Такой комплекс программ называют транслятором . Организация работы транслятора может идти двумя пу­ тями - интерпретации или компиляции программ. Соот­ ветственно и транслятор будет называться либо ин­ терпретатором, либо компилятором. Различие их со­ стоит в разной процедуре обработки конструкций программы. 42
8 $ ф Интерпретатор производит анализ, перевод и вы­ поJiне~ше операторов, составляющих программу, один за другим. После интерпретации очередного оператора проис­ ходит переход к обработке следующего . Таким образом, на­ приме р, выполне_!}Ие в цикле какого-.1шбо оператора (или группы операторов) потребует его анализа и пере вод а столько раз, сколько выпо л няется цикл. Как вы понимае­ те, это приводит к замедлению процесса выполнения про­ г раммы, что особенно заметно при циклической обработке данных. Безусловно, такой путь трансляции не очень эффекти­ ве н. Однако интерпретатор обладает очень важными ка­ чествами, благодаря которым он получил широкое рас­ пространение. Интерпретатор особенно полезен при отладке программ. Работа с интерпретатором языка про­ изводитс:'я в диалоговом режиме путем выдачи им сооб­ щений на эr-\ран дисплея о допущенных вами ошибках при составлении программы. Многие интерпретаторы позво­ ляют обнаруживать ошибки непосредственно во время ввода исходного текста программы. Причем продолжение интерпретации программ возможно только после того, как вы внесете исправления. Практически любой интерпретатор позволит вам вы­ полнить прогR.f мму начиная с любого оператора и про­ смотреть содержимое п еременных, полученное в результа­ те выrюлнения программы. Основное удобство при работе с интерпретатором состоит в том, что вы получаете воз­ можность в диалоговом режиме внести исправления в про­ грамму и повторно ее выполнить без каких-либо за­ держек . 8 8 8 Компилятор, в отличие от интерпретатора, произ­ водит перевод целиком всей исходной программы, а затем тольк.о ее проверяет и выполняет. Если введенная вами программа не содержит ошибок, то дальше ничто не мешает ее выполнить. В противно м случае вам следует исправить обнаруженные ошибки и повто рить компиляцию. 43
Что даеТ' компилятор? Прежде всего он обеспечивает более быстрое, по. сравнению с интерпретатором, выпол­ нение программы за счет того, что анализ и перевод опе­ раторов, составляющих программу, выполняется один раз. Другое преимущество компилятора заключается в том, что, в отличие от интерпретатора, он не нужен в процес~ се выполнения программы. 888Вывод может быть сделан следующий - в процессе отладки программы целесообразно пользоваться интерпре­ татором. Отлаженную· же программу лучше всего обра­ ботать компилятором для обеспечения большей скорости ее выполнения. В компьютере Роботрон 1715 используются компиля­ торы с языков: Бейсик, Паскаль, Си, Ада, Фортран, Ассем­ блер. Кроме того, широкое применение как для создания программ, так и в целях обучения программиров"анию на­ шел интерпретатор языка Бейсик. Вы, вероятно, зададите вопрос: каким же языком прог­ раммирования вам лучше овладеть? Однозначного ответа дать невозможно, так как это зависит от цели поставлен­ ной задачи, возможностей конкретного языка, навыков и умения программировать. Если вы никогда раньше не имели дела с языком программирования, то целесообраз­ но изучить Бейсик и работать с интерпgG,татором. При желании стать профессиональным программистом, навер­ но, следует изучить язык Паскаль. На сегодняшний день это наиболее хорошо структурированный язык с бо льши­ ми возможностями . Языки Ассемблер, Си, Ада, Фортран понадобятся, безусловно, только профессиональным прог­ раммистам, постоянно работающим над созданием прог­ раммного обеспечения. Прикладное программное обеспечение Прикладное программное обеспечение персона л ьных компьютеров составляют пакеты прикладных программ и уникальные программы пользователя (см. рис. 2.1) . 44
Пакет прикладных программ (ППП) - это комплекс проrрамм для решения определенного класса задач . Су ­ ществую т три разновидности пакетов: ф м етодоориентированные для реализации метода реше­ ния задачи без привязки к конкретной области, например : для обработки статистических данных или решения задач' ли нейного программирования; + проблемноориентированные для реализации проблем о пределенной области. Например, для организации бух ­ гал терского дела. + общего назначения; например, для создания текстов исп ользуется текстовый редактор РЕФОР, для представ- · ле ния да .иных в табличной форме и ведения в неи расче­ тов - пакет прикладных программ ВАРИТАБ. Важной характеристикой качества работы пакета при ­ кла дных программ служит возможность создания им для ва с «дружественной» обстановки при работе на компью­ те ре, т. е. такой обстановки, при которой вы чувствуете се бя комфортно и над вами не довлеет чувство несостоя­ тельности перед незнакомой техникой. Это достигается за с чет организации диалога между вами и компьютером на вашем родном языке, причем темп диалога будете зада­ вать вы. Для работы в среде подобного пакета вам пред­ варител ьно надо изучить входной язык, т. е. команды, ре­ а лизующие функции пакета, и правила их использования. Входной язык пакета в отличие от алгоритмических язы ­ ков, как правило, очень прост, и достаточно, например , вни мательно прочитать эту книгу, чтобы овладеть основ ­ ными навыками работы с подобны ми пак етами. Для Роботрона 1715, построенного на базе 8-ра з ряд­ ного микропроцессора, можно использовать все программ· ные средства, ориентированные на работу с таким про­ цессором. За рубежом имеется солидный перечень пакетов пршо1адных программ для этого класса компьютеров, хо­ тя сейчас в основном выпускаются и ведутся перспектив­ ные разработки для 16- и 32-разрядных МИI{ропроцессов. 45
Конечно, для работы с пакетом, приобретенным за рубе­ жом, необходимо знание языка страны-изготовителя, что. безусловно, явля. ется препятствием на пути его внедре­ ния. Некоторые из наиболее распро страненных пакетов в настоящее время переведены на ру с ский язык и называ­ ют их ада птированными пакетами . Эти пакеты приклад­ ных программ находятся на сопровождении в научно-про­ изводстве н ном объединении «Центрпрограммсистем» и других региональных центрах, а в настоящей книге пока­ зано, как с ними работать . Несмотря на то что перечень рассматриваемых пакетов весьма ограничен, овладев на­ выками работы с ними, вы будете весьма успешно решать многие проб л емы в вашей области. Ведется большая ра­ бота по созданию более совершенных прикладных прог­ раммных средств , и, возможно, в ближайшие годы вы ·Сможете их приобрести, обративш ис ь в соответствующие центры по их распространению. 2.2. ОПЕРАЦИОННАЯ СИСТЕМА - rлдпн ы и ~'ПРАВЛЯЮЩИй О РГАН КОМПЬЮТЕРА Операционная система SCP является аналогом широ­ ко распростране1-шой · в мире операционной системы СР/М '(Control Program for l\'1icrocompttters), созданной в 1974г. Гарри Килдаллом (США) для 8 -р азрядного процессора. Несмотря на то что с тех пор эта система претерпела не­ которые изменения, основная концепция ее построения осталась неизменной и заложена в основу более разви­ rых операционных систем для 16- и . 32-разрядных микро­ процессоров. Система рассчитана на работу одного поль­ зователя и обладает очень надежной файловой системой.
• 2.2.1 . ПРЕДСТАВЛЕНИЕ О ФАйJ!ОВОй СИСТЕМЕ Для tteгo Н!JЖен файл и как образуеия его имя? ФайJJ - это совокупность логически связанных записей, занимающая определенное место во внешней памяти. За­ писями могут служить данные или фрагменты программ. А з11ачит, файлом может быть представлена любая про­ грамма или совокупность данных, обрабатываемая опре­ деленной процедурой, программой или командой. Каждый файл имеет уникальное полное имя, состоящее И3 имени файла и типа, разделенных точкой. Имя файла образуется максимум из восьми символов, исключая сим­ воJiы . * ?. Преимущественно используются латинские бук· вы или цифры. Тип файла служит для характеристики хранящихся в нем записей и образован максимум из трех символов, исключая символы . * ?. Причем тип файла обязательно должен быть согласован с использующими его программами . Например, существует договоренность отно­ сительно назначения некоторых файлов, которая выража­ ется соответствующим стандарт н ым типом: СОМ- обслуживающая команд;:~ операционной систе- мы в машинном коде; МАС - программа на языке ассем6 J1ера; ВЛS - программа на языке Бейсик; HLP - текст, позволяю·щий поJiьзователю с пакетом прикJiадных программ получить по командам входного нзыка. Посмотрите, как записывается полное имя: при работе разънснение GRUPPA. МАС; PIP. СОМ; A.BAS; КОТ.А Как быть в том случае, если фай J1 находится на диске в неактуальном дисководе, а вам он необход11м для рабо- 47
• ты? Тогда перед полным именем укажите имя другого дисковода, отделив его двоеточием . Например, В: REFOR. HLP ~ имя дисковода имя файла тип Обратите внимание! Дисковод будет актуальны111 (текущим) в том случае, когда автоматически производится процесс чтения и записи информации на диск, установленный в этом дисководе. О том, какой дишовод в текущий момент является актуаJ1ьным, вы узнаете из под­ шазки на экране, где указа но его имя. А1'Рибуты файла Для указания принципа использования файла введены атрибуты: + R/W (read/write) ...:._файл разрешено считывать, а так­ же можно записывать или стирать ненужные записи; + R/0 (read/only) - из файла разрешено только считы­ вание; ф DIR (directory) - имя файла выводится на индикацию резидентной командой DIR (см. параграф 2.2 .3); + SYS(SYSTEM) - имя файла не индицируется командой DIR. В большинстве случаев вы будете использовать файлы с атрибутами R/W, DIR, устанавливаемыми по умолча­ нию. Изменять атрибуты можно обслужнвающей коман­ дой STAT (см. параграф 2.2 .3). Обращение к н.ескольким файлам При обращении к нескольким файлам вы можете вос­ пользоваться символами * и ?. Символ * позволяет заме1шть любую последователь­ ность в полном имени файла при его вызове. Например, задав поJ11юе имя в виде * . BAS, вы организуете тем са­ мым обращение ко всем фай лам типа BAS. Задав же полное имя в виде WT ·*, обращаетесь к любому типу файла с именем WT. Символ ? может заменить в полном имени любой сим- 48
вол в указанном месте и служит для активизации не­ скольких файлов со схожими именами. Например, при вводе имени файла ABC???.BAS идет обращение ко всем файлам типа BAS, имя которых со­ держит три - шесть символов, начинающихся с АВС. Как органи:ювана файловая система? Файловая система - это способ распределения прост­ ранства внешней (дисковой) памяти и управление работой этого пространства. Представьте себе, что на диске на­ ходится множество файлов, каждый из которых имеет свое уникальное имя. Как же осуществить быстрый доступ к этим файлам, чтобы время ответов на запрос пользова­ теля было малым? Вспомните процедуру поиск а книги в библиотеке. Вы обращаетесь к каталогу, находите в нем шифр этой книги. Библиоте­ карь, пользуясь этим шифром, быстро отыщет в фонде тре­ буемую книгу и принесет ее вам. Смог бы библиотекарь, /(аталог Рис. 2.2 . Структура файловой зная только автора и название системы книги, найти ее? Квалифицированный библиотекарь, ско· рей всего, нашел бы ее. Но сколько бы врем е ни ушло на поиск, сколько ненужных действий пришлось бы совер· шить. Принцип поиска, основанный на использовании ката ­ лога и находящихся в них шифров, лег в о с нову органи ­ зации файловой системы. Итак, на диске на третьей до­ рожке выделено совершенно определенное место (2 Кбай ·r· для дисковода MFS 1.2 и 4 Кбайт для MFS 1.4) под ката­ лог, часто также называемый директорием. В нем хранят­ ся описатели файлов · с указанием имен файлов и занятого ими места на диске. Доступ к файлам возможен только через эти описатели, т. е . через каталог (рис. 2.2). Описатель файла состоит .из 32 байт, используемых для 49
запцси полного имени файла, карты распределения диска и вспомогательной информации операционной системы (рис. 2.3). Полное имя файла составляет 11 байт: байты с 1 по 8 занимает имя; байты с 9 по 11 отведены для типа и атрибутов. __.-!3спомогате11ьная -- ~ инrрормация о12 РИс . 2.3 . Структура описателя файла Карту распределения диска составляют номера заня­ тых данным файлом блоков по 2048 байт ( 16 записей по 128 байт), представленные в шестнадцатеричной системе счисления. Всего отводится для ка рты 16 байт (с 16 по 31 ) , а каждый номер в виде двух шестнадцатеричных цифр занимает один байт. Таких блоков, например, на диске с односторонней плотностью будет порядка 90 . Область размещения файла не обязательно должна быть непре­ рывной. Один файл может занимать несколько блоков на разных дорожках. В случае увеличения файла произ­ водится поиск незанятых блоков и их номера заносятся в карту распределения диска. Вспомогательная информа­ ция хранится в б.айтах с номерами 0,12-15, необходима операционной системе и связана с физическим размеще­ нием файла на диске. Таким образом, по имени файла и номерам занятых блоков операционная система найдет место его физического размещения. В том случае, когда требуется организовать файл большого объема, исполь­ зуется несколько описателей. Допустимо иметь для одного файла максимально 16 описателей, · причем все они свя­ зываются между собой операционной системой. При стирании файла его блоки поступают в распоря­ _жевие других файлов. 50
2.2 .2 . СТРУКТУРА И ПРИНЦИП РАБОТЫ ОПЕРЛШЮННОй СИСТЕМЫ . Структура операционной системы Операционная система SCP базируется на трех под­ системах: процессоре консольных команд, базовой Диско­ вой операционной системе и базовой системе вв ода - вывода. Организует связь между ними зона связи. При раз меще - 255 оайт ,....., . _, Зона cfJяJu оооон 0100/f 48Майт - Olf11acmь lljfiaHJ/JmHЫX 1fJОграмм -- 16 lйJaiJm · --;. 1Jgoцeccfli, /5аJо8ая /5аJО8ая ошжо8ая система ОНСО//Ь ЫХ опвg,ационнСJfl (}бода- комано си тема быfJсда Рис. 2.4 . Распределение оперативной памяти после за грузки в нее операционной системы · нии на диске операционная система всегда займет дорож­ ки с номерами О, 1, 2. Обратившись к рис . 2.4, вы увиди­ те распределение зон оперативной памя ти после загрузки в нее . операционной системы. Все три подсистемы занимают зону, определяемую старшими адресами объемом при­ мерно 16 Кбайт. Однако в процессе работы с прикладными программами объем памяти, отведенный для операци­ онной системы, может быть уменьшен за счет освобож­ дения ее от ' процессора консольны х 1<0манд. Освободив­ шаяся часть отдается в ведение прИI{Ла дного средства. Зона оперативной памяти, определяеман младшими адре­ сами ООООН - OIOOH (в шестнадцатеричной системе счис­ ления), - это зона для организации связи трех подсист ем. 51
Основной объем памяти (около 48 Кбайт) отдан в распо· ряжение прикладных программ и различных обслуживаю­ щих программ операционной системы. Эта зона памяти называется областью транзитных программ . На рис. 2.5 показано взаимодействие аппаратного обеспечения ком- r-------~:~=~н:~::ч::------: 1 1 1 1 J Прикладные программы. 1 1 1 1 1 1 1 1 1 1 1 1 Проце(J)Ор консольных команд 1 1 1 1 1"" 1 1~ ! 1~ ~ 1 бQ:зofJ011 fJucкotJaя операционная система 1 g 1 ~ 1 ~ 1 ~ 1 & 1 базо/Jа!l сщтема 6бdiJa-6ЬlfJoiJa '~ ., " 1 1 1 L ____ ----- --- -, 1 1 1 1 1 1 1 1 ( 1 1 -- 1 ! Аппаратное orfiJcileчeнue 1 L------- - ------ - ---------------- -------~ Рис. 2.5. Взаимодействие подсистем операционной системы с аппаратной частью Роботрона 1715 52
пьютера с его программным обеспечением, состоящим из. п одсистем операционной системы и прикладных про­ г рамм. Процессор консольных команд (ПКК) Процессор консольных команд служит - для организа­ ц ии связи пользователя и компьютера. Он анализирует н абираемые вами команды, проверяет их синтаксис и об­ р ащается к базовой дисковой операционной системе, на­ пример, посылая команды считывания или записи файлов,. для выполнения необходимых действий. Наличие на экра- н е подсказки А>_ с видетельствует о том, что процессор консольных команд . ждет от вас указаний в виде команд. Главная функция процессора консольных команд­ загрузка и запуск прикладных программ. Вы вводите на­ звание прикладнqй программы, процессор консольных команд загружает ее и передает управление этой про­ грамме . В процессе выполнения прикладной программы при нехватке места в оперативной памяти часть этой подсистемы может быть из нее удалена . По выходе из прикладной программы процессор консольных команд вновь подключается на связь с пользователем. Базовая дисковая операционная система (БДОС) Базовая дисковая операционная система является яд­ р ом операционной системы , так как ее функции не зави­ с ят от конкретной реализации аппаратных средств. В ос­ нову работы БДОС заложен принцип организации файло­ в ой системы безотносительно к тому, на каком диске· хранится или с какого диска считывается файл. В БДОС обеспечена полная независимость операционной с истемы от аппаратуры. Обращение к ней производится и з процессора консольных команд (см. рис. 2.5) для вы ­ полнения определенных функций. Основная функция ба - 53
эовой дисковой операционной системы состоит в организа ­ ции операций ввода-вывода с диском, т. е. в организации доступа к файловой системе. Например, БДОС органи­ зует открытие или закрытие файла, создание или удале­ ние файла, находит имя в каталоге или переименовывает файл, а также выполняет множество других операций по работе с файловой системой. Базовая система ввода-вывода (БСВВ) Базовая система ввода-вывода в отличие от двух дру­ гих подсистем операционной системы предназначена для работы с конкретным составом устройств аппаратной час­ ти. Основные функции базовой системы ввода-вывода со­ стоят в следующем: + прием символов с клавиатуры; + выдача символов на экран или печать их на принтере; + организация считывания информации с диска или ее запись на диск; + определение готовности внешних устройств и установ­ .ление различных их состояний. Обеспечить выполнение этих функций возможно толь­ 'КО, учитывая специфику каждого устройства. А это тре­ ·бует жесткой зависимости программных средств базовой .системы ввода-вывода от конкретного вида внешних устройств. При изменении типа внешнего устрой ства долж­ на быть изменена и программа связи с ним. Подобные программы, предназначенные для организации обмена данными между внешними устройств ами и центральной частью компьютера, называют драйверами. Совокупность драйверов образует базовую систему ввода- вывода . Драй­ вер включается в работу в тот м омент , когда в rrero из базовой дисковой операционной системы посту пает кома н­ да (см. рис. 2.5). Тогда он анализирует принятую коман­ ду и посылает сигналы в контроллер внешнего устрой ства , который организует физическую связь внешнего устройст­ ва с центральной частью. 54
Подводя итоги, можно сделать вывод: управление ра­ ботой внешних устройств осуществляется программно-ап ­ паратным способом, часть функций выполняют програм­ мы-драйверы, а часть - схемы-контроллеры. Например, при работе на клавиатур·е контроллер при­ нимает в буферную память код нажатой клавиши, сооб­ щает об этом процессору посылкой сигнала и продолжает прием вводимых символов, заполня51 соответствующими кодами свой буфер. По мере освобождения процессор, имея сигнал от контроллера клавиатуры, обращается к нему и принимает все накопленные в буфере коды. Роль. драйвера заключается в том, что он управляет обработ­ кой при смене регистра клавиатуры, проверяет, нажима­ лись ли управляющие клавиши, организует процесс запи­ си символов в буфер контроллера и выполняет еще мно­ жество функций, которые представляю:r интерес только для специалистов по компьютерной технике. Замена модели внешнего устройства влечет за собой замену контроллера и драйвера как двух взаимосвязанных и взаимодополняющих друг друга частей. Обратившись к рис. 2.5, вы увидите, что информация с внешнего устрой .­ ства попадает в прикладную программу через контрол­ лер и драйвер, подключаемые посредством базовой диско­ вой операционной системы, а при необходимости - и про- ­ цессором кон~ольных команд. Как работает операционная система? После загрузки операционной системы в оперативную · память кажда51 ее подсистема займет определенное м есто. памяти (см. рис. 2.4). Затем процессор консольных команд выдает на экран приглашение в виде имени активного дис­ ковода, символа > и курсора А_> _ Далее вы на клавиатуре набираете команду и через ба ­ зовую систему ввода-вывода она поступает в буфер про­ цессора консольных команд. Процессор консо~1ьных 55
команд анализирует и проверяет синтаксис поступившей команды, а затем решает, что делать дальше в зависимо­ сти от класса команд, так как каждая команда является либо резидентной, либо обслуживающей. При поступлении резидентной команды процессор кон­ сольных команд выполняет ее немедленно, используя две другие подсистемы - базовую дисковую операционную систему и базовую систему ввода-вывода . . При вводе обслуживающей команды процессор консоль­ ных команд обращается к базовой дисковой операцион ­ ной системе и базовой системе ввода-вывода, которые отыскивают на диске файл этой команды и загружают его в оперативную память начиная с адреса OIOOH. Затем управление передается введенной обслуживающей коман­ де, которая действует так же и на тех же правах, что и резидентная команда. После окончания обслуживающей команды управление передается на адрес ООООН зоны свя­ зи и происходит выход на процессор консольных команд, о чем известит вам появившаяся на экране подсказка А>. Возможно, что вы ввели команду, которая не являет­ -ся ни резидентной, ни обслуживающей. Тогда процессор консольных команд выдает имя введенной команды и знак вопроса. 2 .2 .3. КАК ПОЛЬЗОВАТЬG}! РЕЗИДЕНТНЫМИ КОМАНДАМИ? Резидентные команды, часто называемые встроенны­ ми, являются частью операционной системы и находятся в той зоне памяти, которая отведена под операционную ·систему. После ввода резидентной команды процессор консольных команд проверяет ее синтаксис и при отсут­ .ствии" ошибок немедленно приступает к ее выполнению. 56
. Операционная система SCP располагает шестью рези­ дентными командами, представленными в табл. 2.1 . Наи­ более употребительны команды DIR, ERA, REN, ТУРЕ. Ниже приводится описание этих команд, а в табл. 2.2 - сообщения об ошибках, возникающих при их выполнении. Резидентные команды Таблиц а 2.1 Команда 1 Назначение команды DIR Вызов каталога диска ERA Стирание файлов REN Переименование файлов ТУРЕ Вывод текстового файла с диска на экран SAVE Запись блоков оперативной памяти на диск в ви де файла USER Установка зон пользователя на диске Замечание! В строке ввода после команды могут следовать раз ­ личные параметры . Необходимо отделить команду и параметры про­ белом. П р и записи формата команды будут использоваться квадрат­ ные скоб 1ш [ 1 дш1 обозначения необязательных параметров. Команда DIR С rюмощью этой команды вы просмотрите каталог диска, в котором указаны имя файла и его тип . Сообще­ ния об ошибках при выполнении этой команды приведены в табл. 2.2 . Названия файлов с атрибутом SYS командой DIR не индицируются . Формат: DIR [ имн дисковода ][пuлное] им11 файла 57
' ' ' ' Таблиц а 2.2 'Сообщения об ошибках при выполнении резидентных команд 1 1 Пояснения, рекомендации Те1<ст сообщения Перевод по устранению Команда DIR NOT FOUND Не найден На диске нет файла с заданным именем NO FILE Нет файла Диск пустой Команда ERA SCPX ERR ON<A >: Ошибка SCPX на ди- Указанный файл нель- FILE R/O ске А:, файл с атри- зЯ стирать и в него нель- бутом R/O зя записывать . Для его стирания надо сна<1а ла изменить атрибут на R/W командой STA Т ALL (Y/N)? Все (Да/нет) До пол нитель ный за- прос - все ли файлы на- достирать?У- да, N- нет. Нажмите соответ- ствующую клавишу Команда REN FJLE EXJSTS Файл существует - Для переименования файла выберите другое имя, т. е. это ·имя уже имеется в каталоге NO FILE Нет файла На диске нет файла со старым обозначением Пр им еры. А> DIR. На экране появляется каталог диска, установленного в дисководе А. А> DIR *.СОМ На экране появляются имена всех файлов ти·па СОМ с диска дисковода А. А> DIR В: На экране появляется каталог диска, установленного 'в дисководе В. 58
Команда ERA С помощью этой команды вы сотрете один или не­ сколько файлов. Сообщения об ошибках приведены в табл. 2.2 . Фор мат: [ имя ] полное 1· ERA ______ д_1_1с_к_о_в_о_д_а____и_м_n_Ф_а_й_л_а_ _ _ _ • . Пр им еры. А> ERA ALFA . *Стираются все файлы с именем AU0 А с диска. в дисководе А. A>ERA В :* .* Стираются все файлы с диска в дисководе В. Ко;аанда REN Иногда требуется изменить имя фай.па. Для этог°' используйте rиманду REN. Сообщения об ошибках при­ веден ы в табл. 2.2. Формат : [ имя REN дисковода ]новое[имя1] полное= имя файла дисковода стаμое полное имн файла В формате команды REN имя дисковода с.пева и спра­ ва от знака = должно быть одним и тем же. Пр им ер. А >REN B:AAA.BBB=B:G .DDD На диске в дис1<оводе В файл с иыенем G.DDD переименовывается в файл с именем АЛА.ВВВ. l(омднда ТУРЕ Этой командой вы воспользуетесь, когда захотите про­ честь содержимое текстового файла. Вывод содержимого 69
любого другого типа файла не имеет смысла. Командой ТУРЕ, указав полное имя текстового файла, вы получае­ те возможность вывести текст на экран. Нажав одновременно клавиши CTRL Р, вы обеспечите параллельную печать индицируемого текста на принтере. Для останова выводимого текста нажмите одновремен­ но клавиши CTRL S. Для продолжения вывода вновь на­ жмите CTRL S. Прекратить вывод можно, нажав любую клавишу клавиатуры, например клавишу «пробел». Форыат: ТУРЕ Пр им ер. [ имя ] дисковода 1 полное имя файла А> ТУРЕ B:PRIMER.PRN Вывод содержимого файла печати с именем PRIMER.PRN с диска в дисководе В на экран. Команда SAVE Эта команда, возможно, вам не понадобится, в основ­ ном она используется профессиональными программиста­ ми. Ее назначение .- организация переписи части области транзитных программ оперативной памяти начиная с ад­ реса OlOOH {см. рис. 2.4) на диск в виде файла. Перепись осуществляется по сегментам объемом 256 байт каждый. Формат: SAVE Пр им ер. количество [ имя ] сегментов дисковода ! А> SAVE 5 В:КОТ .АВ<З полное имя файла Из оперативной памяти на диск дисковода В в файл с именем КОТ.АБС переписываются 5Х256 байт оперативной памяти начиная с адреса О lOOH. 60
Кома1tда USER Эта команда, так же как и команда SAVE, использу­ ется нечасто. Воспользоваться ею вы можете в том случае, когда хотите один диск условно разбить на несколько не­ зависимых зон, и работать вы будете с этими зонами так же, как если бы это была не зона диска, а весь диск. Командой USER можно установить 16 независимых зон {0 ... 15) . После установки зоны все команды операцион­ ной системы обслуживают только эту зону . Когда коман­ да USER не используется, вы работаете со всем диском, а по умолчанию принимается зона с номером О. Необхо­ димость в разбиении диска на зоны возникает тогда, ког­ да с этим диском работают несколько пользователей или на нем хранятся файлы для совершенно не связанных функционально задач. Формат: Пр им ер. USER номер зоны А :::>USER 7 Установлена седьмая зона польз ователя. Все ввод и ­ мые в дальнейшем команды будут обслуживать тол ько эту зон у . Для работы в другой зоне необходимо установить командой USER и ее номер. 2.3. ОБСЛУЖИВАЮЩИЕ КОМАНДЫ - СРЕДСТВО РАСШИРЕНИЯ ВОЗМОЖНОСТЕЙ ОПЕР А ЦИОННОЙ СИСТЕМЫ Назначение Обслуживающие программы расширяют возможности операционной системы и обеспечивают сервис работы пользователя на переональном компьютере. Обслуживаю­ щие программы, часто называемые ъранзитными или сервисными командами, не входят в состав операционной 61
системы, а хранятся в виде файлов типа СОМ на диске. Имя обслуживающей программы совпадает с именем· этого файла. Операционная система обращается с файлом обслуживающей команды, как с обычным файлом: на:; о­ дит его на диске по имени и переписывает содержимое этого файла в область транзитных программ. Затем управ­ J! е> н ие передается переписанной программе и начинается в ыполнение введенной команды. Для персонального компьютера Роботрон 1715 создан· целый ряд всевозможных обслуживающих команд, имею­ щих в большинстве своем уникальное назначение, хотя среди этого множества вы, возможно, и обнаружите дуб­ лирующие друг друга команды. Особенно широко исполь­ зются обслуживающие команды, поставляемые вместе с аппаратной частью Роботрона 1715, и программа POWER, реализующая множество разнообразных команд сервиса. В настоящем параграфе вы ознакомитесь с назначе­ нием и спецификой использования стандартного набора обслу живающих команд, а также получите краткий пе­ реч е нь сведений о назн а чении команд комплекса 1 l<оманда 1 DUMP JNIТ PIP Таблиц а 2.3 Обслуживающие 1<оманды Назначение команды Индик а ция содержимого файла в !(Ода х на 91(ране Форматир о в а ние лис ка Копирование ф а йлов SOEN Запись операционной системы на диск ST АТ Выдача информации о состоянии ф а йлов и дисков, а также изменение этого состояния SUBM Запуск команд ног.о файла --'----~~~~-~~~~~~~~~ 62
Таблиц а 2.4 Сообщени·я при выполнении обслуживающих команд Текст сообщения 1 Перевод 1Пояснения, рекомендации . ,1-~~~~~~~~~~~~~~=--~~~~-'-~~~~~~~~~4 Команда DUMP ILLEOAL FILE NAME Недопу- В команде либо не стимое имя указано имя файла, файла либо оно многознач­ ное fILE NOT FOUND Файл н е На диске нет фай- найден Команда INIT ==> INVALID DRIVE 1 Непра- ==> INVALID FORMAT вильное имя дисковода Непра­ вильный формат ==> FORMATING COMPLETE Формати- рование за­ кончено ER ROR ==> BAD TRACK Ошибка ·= => пло­ хая дорожr<а ERROR ==> DRIVE Ошибка ==> дис- 63 ла с заданным име- нем Вновь введите имя. 1 дисковода Необходимо вы- брать из меню дру­ гой формат После окон•1 ания форматирования вновь предл агае тся ввести имя дисковода и можно продол жить форматирование дру­ гого диска . Для окон­ чания нажмите CTRL ' с. Дорожка, для котп ­ оой ПОSIВИЛОСЬ 9ТО сообщенне, непригод­ на для хранения ин ­ формации. Устранип, этот дефект невоз­ можно Форматируемый диск не вставлен
Текст сообщения NOT READY ERIIOR ==> DISK WRIТE PROTECTED ERROR ==> INCORRECT SCP - VERSION / Перевод / Пояснения, рекомендапии ковод не го- в дисковод. Вставьте ТОВ его Ошибка У форматируемого ==>диск диска имеется физи­ защищен от ческая защита запи­ записи си. Для ее устране- ния нажмите клави­ шу ЕТ Ошибка Программа INJТ не ==>не - может работать в корректная данной операционной версия SCP системе . Надо поста- вить стандартную си" стему SCP Номанда PIP DISK READ ERROR Ошибка При считывании i DISK WRJТE ERROR BAD PARAMETER INVALID FORMAT NO DIRECTORY SPACE NO FILE STARТ NOT FOUND считывания с диска Ошибка записи на диск Непра­ вильный па­ раметр Непра- вильный формат Нет места в каталоге или записи обнару- ' жена ошибка. Надо снова ввести команду Надо параметр исправить Надо внести испра- вления в команду PIP Невозможно внести IJ каталог копируемый файл Нет файла Файла с указанным 64 имен ем не существу­ ет Не найде- Не найдены строки
Текст сообщения 1 Перевод 1Пояснении, реко"енда1ш11 но начало символов для ограни- QUIТ NOT FOUND Не найде- ченного копирования но оконча- ние NOT FOUND Не найден Названный файл не найден UNRECOONIZED DESТINATION Нераспо- Запрещенный файл назначения 3 знанный файл CANNOT READ Нельзя прочитать INVALID PIP FORMAT Непра- вильный формат PIP INV ALID SEPARATO R Непра- вильный разде.литель Команда SGEN Запрещенный или отсутствующий ИС• ходни1й файл В команде отсутст­ вует знак равенства или есть запрещен­ ный пр.обел В списке парамет­ ров испоЛt,зуется за­ прещенн.ый раздели­ тельный знак OUT OF MEMORYI Выход за Превышение емко- rраницу па- сти оперативного бу- мяти фера DISK ERROR! Ошибка Ошибка записи или диска считывания на диске OUT OF OFFSETI Выход за Превышение емко- границы сти системных доро- смещения жек на диске DIRECTORY FULLI Каталог Каталоr писка за- заполнен полнен ПОЛIЮСТЬЮ DISK FULLI Дн с к за- Диск заполнен пол- полнен ностью Заказ N~ 594 65
Текст сообщения Пеrевод LOADER GREATER THEN FILE! Загрузч1ш Г1 редос тере же ние. пре вышает файл Загруженный фаiiл м еньше, чем указа·н· ная в его описателе длина SOURCE FILE NOT FOUND! ' Файл - ис- На дисr<е нет фай- ВООТ LOADER-TYPE F ALSE! точник не ла с эталоном опера- найден ционной системы Плохой загрузчик На системных до­ рожках дисr(а-источ­ ника нет достоверной SCP DATA-PASSWORD F ALSE! Ложный Недостоверный пароль дан- идентификатор SCP ных системы SYSTEM-PASSWORD FALSE! Несовмести м ый идентификатор систе­ мы между SCP и SOEN NO OFFSETI На системных до- DRAVE N OT EXISTI рожках диска нет опе­ рационной сиием ы SCP Ди с ковод Нет привода с ука- отсутстIJует 1 за~н 1,1м именем. За­ даи те другое нмя Команда STAT FILE NGT FOUND INVAL!D FILE INDJCATOR INVALID DISK ASSIGNMENT Файл не найден Непра ­ вильные пара метры файла Исправьте имя фай­ ла Надо исправить п с - · раметры файл а (R / 'N, R/O, SYS, mR) Непра- ·1 Н епра вильное рас- 1вильн с е на- пределение атрибутов 66
Те кст сообщев:ня BAD DELIM!TER INVA!_JD ASS!ONMENТ Перевод зна ': ение диска Непра­ вильн ы й разделитель 1 Поясil е~:ин, рекомендации i для диска Надо исправить р азделители Непра- О шибо •1 ное распре- вильное на - 1 деление 1санала значение , l{оманда SUBM NO 'SUB' F!1.E PRESENT: РA!ZAMEТER ERROR : COMMAND ТОО LONG: COMMAND BUFFER OVERF LOW: DIRECTORY FULL: DISK "'RlTE ERROR : INV ALID CONТROL CHARACTER: Файла Нет rсоманяного " ... SUB" не файла существует Ошибка п араметров Длинная команда П ерепол­ нени е буфе­ ра команды Каталог заполнен Имеется ошибка в параметрих команд ы в 1rома I-11\HOM файле Длина строки с командоr1 превышает 12() C: ИMU OJIOB Длина командного файла прев ы шает 1023 символа Для r<амандного фай л а нет свободно­ го места в каталоге Ошибка Аппар;п1-1 а я ошибка за111-1 с и 1~ u дисков оде диск Непра­ вильн i,J Й уп­ равляющий СИМВОЛ 67 Б к оманд ном сJ.'айле исп о льзован ошибоч­ ный уп р авлнющий символ '
PO\VER. Шесть обслуживающих команд стандартного набора приведены в табл. 2.3 . Возникающие при их вы­ полнении сообщения о дальнейших действиях или ошиб­ ках сведены в табл . 2.4 . Для ввода команды наберите имя файла, который ее реализует, без указания типа. Обратите внимание! 804Э В строке ввода дJJя отдеJ1ения команды от параметров обяза­ тельно использ уй те пробел. 8S~ При записи формата коыанды для указания необязательных параметров используются квадратные скобки. 88~ Полное имя файла состоит из имени файла и типа, разделен­ ных точкой. 80~ ДJJя выхода из обслуживающей проrраыыы нажыите одновре­ менно две клавиши CTRL С. l(o1rra11дa DUMP Этой командой вряд ли вы будете пользоваться, так как ее назначение - индикация содержимого файла, пред­ ставленного в виде кодов. На экран выдается таблица ко­ дов. При выполнении команды возможны ошибки, сооб ­ щения о которых пр едставлены в табл. 2.4 . Формат: Пр им ер. DUMP полное имя файла А >DUMP КВОМ . АВ Нз элран выдается таблица нз 17 столб­ цов с кодами. ~оманда 1N lТ Из-за · частого использования команды INIT рекомен­ дуем отнестись к изложенному ниже материалу более внимательно и освоить процедуру работы с ней. Команда INIT предназначена для форматирования диска, т. е. за- 68
J( а 11ия ему формата, необходимого д л я работы в конкрет­ ной модели дисковода. Отсутствие или неправильное фор­ матирование диска делает невозможной работу с ним . Фо рматируем;ый диск может находиться в л юбом диско­ воде . Команда INIT выполняетс я в диа логе - вам необ­ х од имо ответить на ряд ВОГ'росов, п о сле чего начнется фор матирование. При его успешном о кончании будет вы­ на но сообщение FORMAТING COMPLETE ( форматиро- Таблица ~.5. Диалог между !NIT и пользователем Сообщение 1 Пеrсяод сообщени я Действия пользователя PL EASE ENTER DRIVE: А Укажите, пожал у йста, В - дисковод: А DISK FORMAT CAN ВЕ: O=DD-SS 16*2.':б*Ю l=DD-SS 26~'!28*40 2=DD-SS 5*1024*40 PLEASE SELECT FORMAT: 0 W ARNINO-~ALL FILES WILL ВЕ SCRATCHI::D (Y/N): FORMAT!NO TRACK (01) FORMATING СОМРLПЕ Форматы диска могут быть следующими: Выберите, пожалу йста, формат: .О. Предупреждение. Все файлы будут уничтоже­ ны (д/н): Форматируется дС'р ож­ ка (номер) Форматирова ние за- кончено 69 2 у Вы на блюда­ ете за номер ом форматируемой дорожки Нажмите 1< ла­ виши CТ.RL С или формати­ руйте сл едую­ Щl!Й ДИСК 1
вание окончено) и предложено провести форматирование другого диска. Для выхода из команды INIT нажмите одновременно клавиши CTRL С. Формат: IN!T Пример диалога между INIT н пользователем приве~ ден в табл. 2.5 . В этом диалоге предполагается, что дисr< будет использован в дисководе типа MFS 1.2 . При форма­ тировании чистый диск установлен в дисководе В. При появлении со общений об ошибках в процессе вы­ полнения ко м анды INIТ обратитесь за разъяснением I< табл. 2.4. 1( ожандn Р 1Р Главная функция команды PIP - копирование файлов с одного дис1<а на другой . Помимо этого вам предостав­ ляется возможность копирования участков данных, слия­ ния в один файл неско л ьких файлов , печати содержимого файлов в специальном формате. Предусмотрена также возможность с помощью 17 параметров модифицировать функнии команды PIP. Здесь вы ознакомитесь с процедурой копирования и слияния файлов. Для более глубокого изучения возмож­ ностей команды PIP, определяемых ее параметрами, вам следует обратиться к техническому описанию [ 19]. Обратите внил~апие! Если вы располагаете про1·μаммой PO\VER, то более удобной по сравнению с командой PIP явлнется аналоrич­ нан команда копированин СОРУ. При записи формата используется понятие файла (дисковода)-приемника для указания места, куда произ­ водится копирование, и файла (дис[{овода) - источника для 70
указ ания места, откуда производится копирование. При 1<011н ровании надо обязательно указывать имя дисковода- 1 1 р н ем ннка и имя файла-источника. Форы ат: * д · фаила-приеы- имяр I~ско- ·[ П<?_Лное имя вод:~~~~иеы- ника ]= [][] иыя диско· полное полное = вода-источ- : иыя файла- , .. " ию1 файла- ника источника источню<а Вводится команда PIP двумя строками . В первой стр оке вы набираете слово PIP и, нажав клавишу ЕТ, вводите его. В ответ на экране во второй строке появля­ ет ся символ * , после которого вы набираете строку с ука­ за нием дисководов и файлов копирования и нажимаете !{ла вишу ЕТ. Начинается процесс копирования. Посл е его ок ончания на экране вно вь появ л яется символ * и вы мо­ ж ете указать следующую группу копирования и т . д. Для в ыхода из команды PIP нажмите одновременно две кла­ виши CTR.L С. При появлении сообщений во время выполнения команды копирования обратитесь к табл. 2.4 . 11римеры. + В:= *· *Копирование всех файлов с диска дисковода А (по умоЛ· чанию) на диск дисковода В. + А:=В: *·*Копирование всех файлов с дис1<а дисковода В на диск дисковода А. ф В:= KROT. * Копирование всех типов фгйлов с именем KROT с диска дисковода А (по умолчанию) на диск дисковода В . + B:LOT.D=RAК.G Копирование файла RAК.G с диска диско· вода А (по умолчанию) с переименованием его в LOT .D на диск дисковода В. + B:Bl.ABG=Al.G,A2.G,A3.G Копирование и слияние трех файлов с диска дисковода А в один файл BI.ABC на диск дисковода В. Файлы сливаются в указанной последовательности один за другим. 71
Команда SG EN Эта команда позволит вам записать операцио:Jную систему на системные дорожки диска или в виде файла. Для работы с командой SGEN вам понадобятся два диска: на одном диске-источнике должна находиться операционная система; на втором диске - приемнике опе­ рационной системы нет, и ваша задача - ее там сформи­ ровать, т. е. сделать этот диск системным . Процедура формирования системного диска организована в виде диалога между командой SGEN и пользователем. Внача­ ле с диска-источника осуществляется запись операцион­ ной системы в оперативнч1й буфер с помощью меню, где предлагаются три возможных варианта записи. Пос ле ввода номера варианта на экране произойдет смена меню и появится второе меню , где наряду с уже известными вариантами предлагаются еще четыре новых дл я орга­ низации записи операционной системы из оперативного буфера на диск-приемник. Вам следует ввести номер ва­ рианта записи (4-7), и начнется формирование систем­ ного диска. Формат: SGEN 8 8 8 Меню записи операционной системы с диска - ис­ точника в оперативный буфер: 1- LOAD COM-FILE SYSTEM FROM DISK (загруз­ ка из файла в опе.ративный буфер); 2- LOAD ACТIVE SYSTEM FROM MEMORY (за­ грузка операционной системы из оперативной памяти в оперативный буф~р) ; 3- LOAD ВООТ SYSTEM FROM DISI\ (загрузка с системных дорожек в оперативный буфер); 4- ЕХIТ (завершение команды SGEN). 72
8 ф 8 Меню записи операционной системы из оператив­ ного буфера на диск-прием ник : 1 - LOAD COM-FILE SYSTEM ] из преды- FRОМ DISK дущего ме- 2 - LOAO ACТIVE SYSTEM ню, ЭТИ FROM MEMORY варианты 3 - LOAD ВООТ SYSTEM FROM DISK здесь не исполь з у- ются; 4 - RESET DISK (режим смены дисков); 5- SAVE COM-FILE SYSTEM ТО DISK (запись опе­ рац ионной системы на диск в виде фай л а); 6 - SAVE ACTIVE SYSTEM ТО MEM ORY (загруз к а о перационной систе м ы из оперативного буфера в оп е ра­ тивную память); 7 - SAVE ВООТ SYSTEM ТО DISK (запись опе р аци ­ о н ной системы на системные дорожки диска); 8 - ЕХIТ (завершение команды SGEN). При вы полнении команды SGEN возможно появ л ение сообщений об ошибках. Понять их и произвести соответ­ ствующие действия вам поможет табл . 2.4 . Команда STAT Этой командой вы будете пользоваться для получения информации о состоянии диска и фай л а, а также для из­ менения этого со стояния . Необходимым условием выпол­ нения этой ко ма нд ы является наличие системно го диска в дисководе А . П р и появлении сообщений во время вь1- полнения команды STAT обратитесь к табл. 2.4 . Команда STAT выполняет раз личные функции , которые определя­ ются параметрами. Рассмотрим их. Формат: ST Ат 73
На экране появляется сообщен ие об объеме (в кило­ байтах) свободной зоны на диске: А: R./W, SPACE: ***К ·~ атрибут объем свободной зоны Если диски установлены в обоих дисководах, то выво- дится сообщение о свободных зонах для этих дисков. Пр им ер. A>STAT A:R/W, SPACE: 23К Формат: ST Ат имя дисковода На экране появляется сообщение об объеме (в кнло­ бгйтах) свободной зоны на диске в указанном дисководе: BYTES REMANING ON ИМЯ =*** к: Пр им ер. A>STAT В: дисковода об~~ свободной зоны BYTES REMANING ON В: 134К Фор м ат: STAT гl имя :} дисковода пел нее имя фа11ла На экране появляется RECS BYTES ЕХТ *:{.* **к * ВУТЕS REMANING ON информация о структуре файла: АСС имя дисковода : R/* полное имя файла имя дисковода : :;,** К 74 объем свободной зоны
В сооб щении вместо символов * стоят rюнкретные чие­ м~ , 1< т ор ые указывают следующее: tl 11 с р в ой колонке (RECS) - число записей по 128 байт 11 фaii JJe ; uo в торой колонке (BYTES) - объем файла в кило­ G:1 йтах; в третьей колонке (ЕХТ) - Число зон по 32 Кбайт в файле; в ч етвертой колонке (АСС) - атрибут файла (R/\V, 1~/0) . П р и ы ер вызова информации Л >STAT * .СОМ о структуре фай;юв типа СОМ. RECS ВУТЕS 97 14К 58 sк 42 6К ВУТ ЕS REMAINING O N Формат: STAT [ ЕХТ 1 i 1 А:24К имя дисr<авода лес R/O f<!O ЩО :l= R/O J A:INП.COM A: PIP.COM A:STAT. COM На весь диск устанавливается атрибут R/0, т. е. с дис­ ка можно только читать, запись на неrо запрещена. Этот режим со храняется лишь на время работы с данным дис­ ком. Пос.пе но вого з а пуска диск вновь приобретает атри­ б ут R/W и становятся возможными и запись, и чтение. Пр им ер. A>STAT B:=R/0 Формат: STAT [ имя ] дисксвода : полное имя файла 5R/O Установка атрибута R/0. Указанный файл становится недоступным для записи, возможно только чтение. По окончании команды выдается сообщение: полное имя файла SET ТО R/0 75
Пр им ер. А> STАТ АА.СОМ 5R/O АЛ.СОМ SET ТО R/0 Файл АА.СОМ становится недоступным для чтения. Формат: STAT : r ИМЯ ] l дисковода полное имя (айла &R/\/./ Установка атрибута R/W. В файле мож но произво­ дить и запись, и чтение. По окончании команды выдается сообщение: полное имя файла SET ТО R/W Пр им ер. А > STA T ZELO.B &/R\V ZELO. B SET ТО R/W Формат: STAT [ имя : ] дисковод а _ полное имя файла ЦSYS Присваивание файлу атрибута SYS. Файл ы, имеющие атрибут SYS, выдают на индикацию свои имена в ката­ логе по команде DIR. По окончании команды выдается сообщение: полное имя файла SET ТО SYS Пр им ер. A.>STAT А. А J:::[ SYS А.А SET ТО SYS STAT Формат: [ имя дисковода п олное имя файла }:JDIR Присваивание файлу ат р ибута DIR. Подобные файлы получают возможность индицировать свои имена в ката- 76
логе по команде DIR. По окончании команды выдается со бщение: полное имя файла SET ТО DIR Формат: STАТ [ имя : ] DSK: ДИС!{О!Юда Характе ристика диска. Понять сообщение, которое вы­ дается в результате действия этой команды, предлагаем вам на примере: А> STAT DSK: Сообще11ие А: DRIVE CHARACTER!ST!CS 1472: 128 ВУТЕ l~ECORD САРАСIТУ 184: KILOBYТE DRI VE САРАСIТУ 64: 32 БУТЕ DIRECTORY ENTIOES 64: CHECKED DIRECTORY ENTRIES 256: RECORDS/EXTENТ 16: RECORDS/BLOCK 40: SECTORS/TRACK 3: RESERVED TRACKS 77 Пояс11ение Состояние диска ,в диско­ воде А Емкость диска 1472 записи по 128 байт, что составля­ ет 184 Кбайт 1 Каталог вмещает 64 опи­ сателя файла по 32 байт. т. е. объем каталога равен 2 Кбайт Каждый описатель ката­ лога рассчитан на макси­ мальную длину файла из 256 записей (32 Кбайт) В 1<а>1щом блоке содер­ жатся 16 записей по 128 байт, что составляет 2 Кбайт На каждой дорожке 40 записей по 128 байт Три резервные дорожки (О, 1, 2) для записи опера­ ционной системы
В связи с тем что параметры VAL, USR, DEV коман­ ды STAT используются редко, здесь они не рассматри ­ ваются. Команда SUBJ\\ С помощью команды SUBM вы запустите командный файл в работу. Командный файл - совокупность вызовов резидентных и обслуживающих кома нд операционной системы, запи­ санная на диске в виде файла. В момент выполнения ко­ мандного файла надо обеспечить наличие на диске исполь ­ зуемых в нем обслуживающих команд, в противном слу­ чае его выполнение становится невозможным. Командны й файл целесообраз но п рименять в том случае, когда тре­ буется многократное повторение одних и тех же действий , а вы хотите себя избавить от подобной процедуры. Как сформировать командный файл? Для этого вы должны научиться работать с текстовым редактором. Это достаточно легко сделать, если вы обратитесь к гл. 3, где представлен один из вариантов текстового редактора РЕФОР. Работая в среде пакета прикладных программ РЕФОР, вы создади те текстовый файл, состоящий из команд, присвоите ему любое имя с типом S UB и запи ­ шете на диск, с которым будете в дальн ейшем работать. Пр им ер 1 командного файла PRIMERI. SUB. ERA B:*.TBL - стирание всех файлов типа TBL 8i~ В: }индикация каталогов обоих дисков PIP В:=ВЕР. * -ко пир ование на диск дисковода В всех фati~oc с именем ВЕР с диска дисковода А Набор каждой строки кома ндного файла должен за ­ вершаться нажатием клавиши ЕТ. Вместо конкретных указаний полных имен файлов в команде можете испо льзовать параметры, т. е. симво JJ JJ:. и порядковый номер этого пара11л етра. Нумерацию 78
следует проводить в порядке применения этих файлов . Необходимо сть в этом возникает тогда, когда имена фай­ Jl ll опrедел яются конкретной ситуацией. В этом случае нм н а файлов вы записываете в виде параметров коман­ JЩ UBM. Рассмотрим, как изменится командный файл r I<1MEPJ . S UB при использовании в нем вместо конк­ р ет ных имен параметров Ц 1, м 2. Пр им ер 2 командного файла PRIMER2.SUB. ERA В:*· ·}:j'_ 1 ~тип TBL заменен 'Q i DIR DIR В: PIP В:= )::::{ 2.* - имя ВЕР заменено }j_ . 2 Для запуска сформированного командного файла сле­ дует вернуться в среду операционной системы и применить команду SUBM. Формат: SUBM имя командно го файла Г параметры, ] 1 разделенные L пробелом В команде SUBM не указыва ется тип командного фай­ ла. В качестве параметров используются имена фа йл ов, с котор ыми будет работать командный файл. Порядок следования параметров соответствует порядку следования их в командном файле. Для примера 1 1юманда запуска имеет вид: А > SlJВM PIOMERl Для примера 2 в предположении, что используются файлы примера 1, кома н да запуска имеет вид : А >SUBM PRINlER2 TBL ВЕР При выполнениИ командного файла PRIMER2 пара­ метр 'Ji 1 примет значение TBL, параметр :с( 2 -- значение ВЕР. В результате вы получите тот :же командный файл, что и в примере 1. Изменение t)араметрuв команды SUBM приведет к из­ менению имени файла, а значит, и команды. 79
Пример 3. Введя команду А> SUBM PR!MER2 МАС ААА, вы произведете запуск командного файла PR!MER2 для отличных от примера 1 файлов: ERA В : *.МАС- параметр для типа Ц 1 заменен на тип МАС DIR DIR В: PIP В:ААА.*- параметр имени .:tJ:' 2 зам енен н а имя ААА Для разъяснения сообщений, возникающих в процессе выполнения команды SUBM, обратитесь к табл. 2.4 . Прогршu~а POWER Приобретя программу POWER, вы существенно рас­ ширите свои возможности при работе в среде операцион­ ной системы. Однако это потребуется вам только в том случае, если вы приобрели навыки работы на ком­ пьютере Роботрон 1715 и хот-ите совершенствоваться даль­ ше. Здесь мы познакомим вас только с перечнем команд POWER, чтобы вы имели представление о нем. Для освое­ ния этих команд загрузите POWER, после появления на экране подсказки в виде АО= нажмите клавишу ? и по­ лучите подробное описание команд . СНЕСК- подсчет контрольных сумм указанных фай- лов СМ - сравнение двух областей памяти СОРУ - копирование файлов DIH - оглавление диска DISK- информация об организации диска DS -- просмотр и заFiолнение памяти DUMP -- вывод текстового массива ERA - стирание файлов ЕХIТ - выход в опеrационную систему FJLL - заполнение памяти константой ВУТЕ GO - запуск программы GROUP - список блоков данного файла 80
JP (ЕХ) - передача управления по адресу. LOAD (SAVE) - загрузка (выгрузка) файJ1а LOG - информация о состоянии POWER MOVE - перемещение области памяти [ЩАD (WRIТE) - прямой доступ к диску при чтении ( за писи) REA DGR (WRIТEGR) -:- обмен с диском RECLAIM - восстановление стертых файлов REN - переименование RESET- сброс диска RU N - загрузка и передача управления другой про• грамме SEARCH - поисr< символа, байта, теI{Ста в памнт1J SET - установка старшеt'О бита в коде символа имени или типа файла SETDIR (SETSYS, SETRO, SETWR) - установ1{а ат· рибуто в файла SIZE - определение размеров файлов SORT - сортировка каталога SPEED - установка скорости вывода на дисплей STAT- информация о запо.11i : енности диска TEST - тестирование диска ТУРЕ (ТУРЕХ, ТУРЕН, ТУРЕА) - вывод тексто вого файла на дисплей USER (XUSER) - использование областей поJ 1 ьэо· вателя 2.4. ПРОВЕРЯ ЕМ СЕБЯ. РАЗОБРАЛИ СЬ JШ ВЫ В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ~ Упражнения. 2.1 . Что следует понимать под программным обеспе· чением персонального компьютера, в том чисJJе и Робот· . рона 1715? .. 2.2 . Что такое файл? 4 Заказ No 594 ,81
2.3 . Как различаются файлы между собой? 2.4 . В чем суть файловой системы, лежащей в основе организации операционной системы? 2.5 . Из каких трех подсистем состоит операционная система? 2.6 . Назначение процессора консольных команд. 2.7 . Назначение базовой дисковой операционной сис­ темы. 2.8 . Структура базовой системы ввода-вывода. 2.9 . В чем заключается различие между резидентными и обслуживающими командами? 2.10. Правило ввода команд. 2.11. Как выводится каталог диска? 2.12 . Как вывести содержимое текстового файла? 2.13. Перечислите резидентные команды. 2.14 . Вы хотите переписать программы с одного диска на другой. Какая при этом должна быть последователь­ ность действий? 2.15. Как а я команда записывает операционную систе­ му на новый диск? 2.16. Каковы функции команды STAT? Ответы к упражне1lиям 2.1 . Состав программного обеспечения: + системные программные средства, в состав которых входят: операционная система, управляющая процессом обра­ ботки информации; обслуживающие команды, которые предоставляют все­ возможный сервис пользователю для работы в среде опе­ рационной системы; программы контроля и диагностики работы аппаратной части; + система программирования, состоящая из транслято­ ров и языков программирования; 82
+ прикладные программные средства в виде пакетов 1rрню1 адн ых программ и программ пользователя. 2.2 . Со вокупность логически связанных записей, занима · ющую определенное место во внешней памяти, называют файлом . Файлом представляются программы, данные. 2.3 . Каждый файл имеет имя и тип, составляющие его 1юлное имя. Имя каждого файла уникально и состоит не боле е чем из восьми символов. Тип файла зависит от ис пользуемых программ и состоит не более чем из трех сим волов. Имя и тип разделяются точкой. При образовании полного имени нельзя использовать СИМВ ОЛЫ ?* 2.4 . Файловая система управляет распределением про­ стра нства диска под файлы . К файлу организован доступ тол ько через каталог, где информация о нем хранится в описателе в виде полного имени и номеров занимаемых и м блоков. 2.5 . Процессор консольных 1шманд, базовая дис r{ов ая о перационная система, базовая система ввода-вывода. 2.6 . Организация связи между пользователем и ком• пьют ером . Процессор консольных команд анализирует вводимые команды и при необходимости подключает ба· зо вую дисковую операционную систему, а также запус­ ка ет прикладные программы . 2.7 . Основная функция - организация доступа к фай­ ловой системе. 2.8 . Базовая система ввода-вывода состоит из драйве ­ ров - программ, организующих обмен информацией меж­ ду центральной частью и конкретным типом внешнего уст ройства. Необходимым условием управления работой вн ешнего устройства является соответствие драйвера и контроллера. 2.9 . Резидентные команды входят в состав операцион­ ной системы . После ввода рез,идентной команды процес­ сор консольных команд немедленно ее выполняет. Обслу­ жи вающие команд1:>1 хранятся в, виде _ Ф<!-йлов на диска~ 83
и расширяют возможности операционной системы. После ввода обслуживающей команды процессор консольных команд подключает базовую операционную систему и ба­ зовую систему ввода-вывода, а по окончании загрузки со ­ ответствующего файла в оперативную память начинает ее выполнение. 2.10. После появления подсказки наберите имя коман­ ды и нажмите клавишу ввода ЕТ. Если в команде имеют­ ся параметры, например имя файла, то команды и пара­ метры при наборе разделяются пробелом. 2.11. Командой DIR. 2.12 Команда ТУРЕ предназначена для вывода текс­ тового файла на экран. Для синхронного вывода текста на принтер и экран следует нажать перед вводом коман­ ды ТУРЕ клавиши CTRL Р. 2.13. DIR, ТУРЕ, ERA, REN, USER, SAVE. 2.14. Последовательность действий такова: ф загрузите операционную систему с системного диска в оперативную память и обеспечьте наличие на диске команд INIТ, PIP; ~ встав ьте новый диск в любой дисковод; <) проведите форматирование нового диска обслуживаю­ щей командой INIТ; ф введите команду PIP или загрузите в опер ативную па­ мять программу POWER; поставьте в дисковод диск, с кото рого копируются файлы, предварительно вынув си­ стемный диск; ф проведите копирование с помощью команд ы PIP или, если вы работаете в среде программы PO\VER, то коман­ дой СОРУ. 2.15. Команда SGEN записывает операционную систе­ му на системные дорожки диска 0-2 или в виде файла. 2.16. Функции команды STAT таковы: + справка о свободной зоне на диске в килобайтах; + справка о структуре файла: число записей, объем фай- 84
J1a (в килобайтах), число зон, атрибут файла (R/W, J /О); + установка на файл атрибутов: R/ 0 (разрешено только 11тс11ие ); R/W (разрешены и чтение, и запись); SYS (за- 11рет индикации имени файла в каталоге); DIR (разреше- 11а индикация имени файла в каталоге); + справка о структуре диска в виде сообщения о емкости дис1\а, каталога, описателя, блока, дорожки. Справка. + Доступ к файлам организован через описатели, храня­ щиес я в каталоге. + Файл состоит из записей. Каждая запись занимает 128 байт. Обмен между диском и оперативной памятью произ водится по записям. + Минимальный объем файла - блок объемом 2048 байт=2 Кбайт (16 записей). Максимальный объем фай ­ Jiа -·весь диск. ф Записи файла сгруппированы по блокам объемом 2 Кба йт (16 записей). + Каждый блок файла имеет номер, ({Оторый хра­ ни тся в описателе файла. Максимально в описателе может нах одиться 16 номеров блоков, а значит, максимальный объем файла, соответствующий одному описателю, равен 32 Кбайт (16 блоков по 2 Кбайт). + Объем описатеJIЯ файла 32 байт. В каталоге мак­ си мально размешаются, например, для дис ко вода MFS 1.2 64 описателя, для MFS 1.4 - 128 описателей.
з ПРИМЕНЯЕМ РЕФОР- СИСТЕМУ ПОДГОТОВКИ ТЕКСТОВ 3.1. ЗНАКОМСТВО С РЕФОРом Назначение РЕФОР (РЕдактор - ФОРматтер) [ 15] является пакетом прикладных про­ грамм, основное назначение которого состоит в подго­ товке разнообразных текс­ товых материалов и доку­ ментов в экономической, торговой, администр ати вно­ хозяйственной, редакционно­ издательской и других по­ добных видах человеческой деятельности. С помощью РЕФОРа вы также можете формировать тексты про­ грамм на алгоритмических языках, например Паскале. Если сравнить РЕФОР с аналогичными пакетами программ д л я других ком­ пьютеров, например с EDI, TED, DOC для ЭВМ типа ._ __ ____ ___ ___ _. С.М.-4 или ED для персе- 86
нального компьютера типа ДВК, то следует что РЕФОР обладает значительно более средствами подготовки, хранения и печати документов. Объем пакета РЕФОР составляет 84 Кбайт. Основные понятия отметить, развитыми текстовых Переходя к рассмотрению средств РЕФОРа, догово­ римся вначале о том, что в дальнейшем будем понимать под редактированием и форматированием текстов. В ре­ дактирование включаются операции пользователя, свя­ занные как с начальным формированием текста посред­ ст вом ввода с клавиатуры, так и с внесением в уже имею­ щийся текст разнообразных изменений (вставки, удаления и замены отдельных символов, слов и целых текстовых фрагментов). Под форматированием будем понимать опе­ рации, определяющие структуру подготавливаемого текс­ та, например выравнивание строк по границе текста, центрирование заголовков, распределение текста по от­ дельным страницам документа, формирование таблиц, установку длины строки и др. РЕФОР позволяет подготавливать тексты на русском языке с использованием прописных и строчных букв, а так­ же с включением в текст прописных латинских букв. Работая с РЕФОРом, вы можете выполнять следующие операции: ф ввод текста с клавиатуры компьютера с автоматиче­ ским формированием строк заданного размера; + формирование таблиц с использованием табуляции, аналогично применяемой при работе на пишущих ма­ шинках; + редактирование текста, состоящее в замене, вставке, . удалении, дублировании или перемещении текстовых фраг­ ментов; ф форматирование текста при его подготовке к печати 87
с возможностью выделения заголовков, установки разме­ ров строк и страниц, выбора шрифтов и способов печати; + запись текста в файл на магнитном диске, копирование, переименование и удаление файлов; + печать текста на бумаге в виде рулона или отдельных страниц с возможностью вставки данных из другого фай­ ла или вводимых с клавиатуры. Как управлять работой РЕФОРа? Управление работой РЕФОРа производится посредст­ вом ввода с клавиатуры буквенных команд. Команды вводятся путем нажатия одной или последов 'ательно не­ скольких клавиш в любом регистре. Причем в ряде слу­ чаев ввод букв должен сопровождаться нажатием клавиши CTRL, что в дальнейшем будет обозначаться !{авычкой (") перед соответствующей буквой. Часть команд может быть введена нажатием одной из функциональных к л авиш, дублирующих отдельные буквенные команды. Все команды РЕФОРа сгруппированы и представлены в виде нескольких меню, схема взаимодействия котооых в виде направленного графа изображена · на рис. 3.1. Ме­ ню - это перечень возможных вариантов ваших действий в данной ситуации с указанием по каждому варианту на­ звания клавиш, которые следует нажать. Роль системного ме ню При входе в РЕФОР первоначально вы всегда окаже­ тесь в системном меню, название которого связано с воэ­ можностью выполнения в этом меню ряда операций, свой­ ственных операционной системе SCP: открытие файлов, их копирование, переименование, печать и удаление, вы­ вод каталога файлов на гибком магнитном диске, запуск отдельных программ операционной системы (INIТ - для разметки магнитных дисков, STAT - для оценки про­ странства на диске и др.). 88
Рис. 3. t. Схема взаи модействия меню РЕФОРа 89
Роль основного меню. Как с ним работать? Из остальных меню РЕФОРа следует особо выделить основное. Именно в этом меню выполняются основные операции редактирования и форматирования текста. Пе­ реход из системного меню в основное производится на ­ жатием одной из двух клавиш: д - при подготовке про­ извольного текстового документа; н - при подготовке текста программы . На рис . 3.1 переходам межд у меню соответствуют дуги графа, обозначенные буквенными командами, которые вызывают такие переходы. Ос обо следует пояснить переходы из основного меню в подчи ­ ненные ему вспомоr;ательные меню С1й, 110 , 11я, 11п, 11к) и обратно . Здесь возможны два варианта. В пер в ом из них переход осуществляется по команде, совпа даю щей с названием меню, куда вы намереваетесь перейти . Ч ере з две-три секунды после ввода команды поясняющи й текст основного меню сменится на текст вспомогательног о меню. Далее, выбрав и введя команду данного меню, в ы после ее выполнения вновь окажетесь, как правило, в осн ов ном меню. Если вы передумали выполнять какие- либо о п ера­ ции, находясь во вспомогательных меню, то можете вер­ нуться в основное меню посредством нажатия клавиши пробела, что помечено на рис . 3.1 символом пробела. По мере же накопления опыта работы в РЕФОРе для вас более предпочтительным окажется второй, более опе­ ративный способ выполнения команд вспомогате л ьных меню. Применение этого способа потребует от вас быст­ рого (в течение одной -двух секунд) ввода двухбук ве нных команд, складывающихся из названия вспомога тел ьного меню и команды внутри данного меню. Смены текста основного меню при этом не произойдет . Исключением здесь является выполнение двух коман.ц 11 1<-мен ю : 11 кд и '1 кь. По их окончании вы окажетесь соответ с твенно в системном меню или в операционной системе SCP. 90
Руководство к действию Н у а теперь вы приглашаетесь на ознакомительную п р о гу лку по меню РЕФОРа. Постарайтесь при этом сле­ дова ть нашим советам. Все последующие действия реко­ мен дуем выполнять по шагам. Подготовьте комп ьютер Включите питание компьютера клавишей POWE R, вс тавьте гибкий магнитный диск с операционной систе­ м ой SCP в дисковод А и закройте его защелку. Произой­ дет а втоматическая загрузка операционной системы, под­ тв ерждаемая выводом на экран подсказки А>. Уста новите режим ввода русских букв Нажмите клавишу Sl/SO. При этом индикаторная лам­ почка рядом с этой клавишей должна загореться. Далее нажмите клавишу пробела. Проверьте содержимое диска Уясните, каким образом размещены на дисках опера­ uионная система и пакет программ РЕФОР. Если РЕФОР записан на том же диске, что и SCP, то наберите коман­ ду вызова РЕФОРа: а> рефор и нажмите клавишу ЕТ. Если же РЕФОР хранится на отдельном диске, то заме­ н ите в дисководе А диск с SCP на диск с РЕФОРом и введите такую же команду. Начнется загрузка пакета Р ЕФОР . Вначале на экране появится рекламная застав­ к а, а через 20-25 с - текст системного меню. Для быст­ р ого перехода в системное меню нажмите клавишу про­ бела сразу же после появления рекламной заставки. Вставьте при необходимости дополнительный диск ·•; Примите решение, где будет фиксироваться в виде файла подготавливаемый текст. Если для хранения текс- 91
тового файла вами выделен отдельный диск, то вставьте его в дисковод В и закройте защелку, после чего введите команду системного меню л. Установите уровень помощи Находясь в системном меню, вы можете установить желаемый уровень вывода справочной информации РЕФОРа с помощью команды х. Рекомендуем вам для начала в ответ на запрос РЕФОРа ввести значение 3, что с:оответствует уровню вывода максимального объема спра- . вочной информации во всех меню. На остальных уров­ нях - 1-м и 2-м объем справочной информации уменьшен. Перейдите в осuовное меню Введите команду системного меню д, что соответствует якобы вашему желанию создать текстовой документ. В ответ на соответствующий Запрос РЕФОРа введите в качестве имени создаваемого текстового файла последо­ вательность не более чем из восьми символов, например прогулка. Завершив ввод нажатием клавиши ЕТ, вы пе­ рейдете в основное меню. Знакомство со структурой ин­ формации, отображаемой на экране в этом меню, у вас еще впереди. Воспользуйтесь возможностью самостоятелыюго обучения Обучение основным командам РЕФОРа может быть организовано вами самостоятельно с помощью поясняю­ щих текстов ''й-меню . Согласно рис. 3.1 путь к этому меню лежит через основное меню, в котором вы сейчас находитесь. Введите команду "й, и вы окажетесь в меню помощи "й. Команды этого меню позволят вам просмот­ реть разнообразные справочные материалы: + б пояснит использование команды форматирования строк "б основного меню; + ф расшифрует назначение служебных символов ; в пра- 92
в ой крайней колонке экрана (это сделаем и мы несколько н иже); + д пояснит использование команд "п-меню для управ· ле ния печатью текстового документа; + с расшифрует содержание верхней служебной строки ос новного меню; + м пояснит способ установки левой и правой границ ф ормируемого текста, межстрочного интервала, применение т абуляции и приемов формирования таблиц; + п пояснит правила внесения в текст специальных сим­ волов, так называемых маркеров начала и конца выде· ляемого текстового фрагмента - блока; + ж пояснит правила перемещения и дублирования текс· товых блоков; + и выведет перечень наиболее часто используемых команд ввода текста. Обучающие тексты 11 й - меню, как правило, выводятся на экран по частям. Для их чередования согласно под· сказке на экране нажимайте клавишу пробела. По окон· ч ании вывода обучающего текста вы автоматически вер· нетесь в основное меню. Поэтому для продолжения обу ­ чения вновь введите команду 11 й и букву интересуюшеrо вас раздела справочной информации. Прервать процесс обучения с возвращением в основное меню вы сможете в любой момент вводом команды пре ­ рывания 11у и последующим нажатием клавиши ESC. Познакомьтесь с остальными меню Продолжая ознакомительную прогулку по РЕФОРу , вы можете заглянуть и в остальные вспомогате.ТJы1ые меню: 110, пя, 11 0 и 11 к. Просмотр поясняющих текстов меню завершайте нажатием клавиши пробела, возвращаю· щим вас каждый раз в основное меню. Закончите работу Завершите озна~<амление с РЕФОРом вводом коман­ ды 11 кь, которая обеспечит выход в операционную систе· 93
му SCP. Следующая встреча с РЕФОРом потребует от вас более ·активных и созидательных действий по вводу, редактированию и форматированию текстов. 3.2 . ГОТОВИМ ТЕКСТ ПОЗДРАВИТЕЛЬНОЙ ОТКРЫТКИ Изобилие средств РЕФОРа, с которыми вы ознакоми­ лись, просматривая текстовые пояснения в его различ­ ных меню, вызывает естественные затруднения при на­ чальном освоении всего арсенала этих средств. Поэтому мы предлагаем вам пошаговое выполнение простых опе­ раций ввода, коррекции и печати текстов небольшого объема, например поздравительных открыток по случаю какого-либо праздника. Для выполнения таких операций вам потребуется лишь ограниченный перечень команд РЕФОРа . Итак, в канун Нового года вы готовите тексты поздра­ вительных посланий вашим друзьям и коллегам по рабо­ те. В вашем распоряжении пачка незаполненных почто­ вых открыток и компьютер Роботрон 1715, оснащенный пакетом РЕФОР. Для осуществления задуманного вам не потребуются большие объемы памяти, в том числе и на гибком маг­ нитном диске. Поэтому для простоты предположим, что пакет программ РЕФОР соседствует на диске с операци­ онной системой SCP, а свободная его часть будет исполь­ зована для запоминания подготавливаемых текстов позд­ равдений. Все последующие ваши действия рекомендуем разбить на отдельные шаги. Подготовьте колтьютер Включите питание компьютера и вставьте гибкий маг­ нитный диск с SCP и РЕФОР в дисковод А, после чего закройте его защелку. Начнется загрузка системных про­ грамм SCP в оперативную память компьютера. По ее за­ вершении вы увидите на экране символы А> .• 94
Установите режим ввода русских букв Нажмите клавишу Sl/ SO. При этом должна загореть· я индикаторная лампочка рядом с этой клавишей. Отра · ботайте переход в новый режим нажатием любой КJrави· 111и, на пример пробела. Загрузите в память РЕФОР Введите команду: а > рефор ЕТ. В результате на эк ране появится соответствующая заставка, а примерно секунд через двадцать вы окажетесь в системном меню. Для более быстрого перехода в это меню нажмите кла· вишу пробела. Устаиовите уровень помощи Введите команду х, а затем на запрос РЕФОРа - циф · ру 3 (значение, соответствующее максимальному уровню помощи ). Задайте режим создания текста Находясь в системном меню, введите следующую ком анду д, определяющую в дальнейшем режим создания произ вольного текстового документа (в отличие от созда­ ния текста программы на каком-либо алгоритмическом языке при вводе команды н). Создайте файл для вашего текста Выберите и введите имя файла (до восьми символов) , под которым создаваемый текст будет сохранен на диске, например открытка (указание типа файла необязательнQ) . Заметьте, что при запросе имени файла на экране вы· свечивается локальное меню, которое подсказывает вам, r~акими командами при необходимости следует воспользо· ваться для корректировки вводимого имени. Введя открытка ЕТ, вы окажетесь в основном · меню РЕФОРа . Обратите внимание/ " 888 В верхней строке экрана отображается служебная информация: + имя текстового файла; 95
+ номера страницы, строки и позиции в строке экрана (колонки), в которых находится в данный момент курсор; + подтверждение режима вставки, устанавливаемого автоматически. 888 Служебная область отделяется от рабочей трафаретом. Эта строка содержит следующие символы: · + д и р указывают соответственно на левую и правую граничные позиции строки текста; + ! фиксируют позиции табуляции; ф - отмечают остальные позиции в строке (всего таких символов п ервоначально 65). llf)08 Крайняя правая колонка экрана в его рабочей области назы­ в ается колонкой флагов. В этой колонке могут появиться следующи е символы: ф пробел - данная строка содержит текст начала или внутренней части абзаца; ф < - помеченная строка - конеu абзаца, заканчив ающегося сим · волом ЕТ; ф : - пуста я строка на экране находится над текстом (символ мо­ же т по я виться при просмотре текста 110 направлению к его начал у ); • .- п у ст а я строка на экране на х одится под текстом (символ мо­ жет п он вить с я при прос мотре те кста по на пр авJ1ению к его концу) ; ф + - на экране отобра жае тся лишь част ь строки (длин а строки текста превышает длину стро к и экрана); +П- строка - разделитель страниц текста; + - - следующая строка текста будет р аспечатана поверх да н ной строки (при печати с нало ж ением строк ); ф ? - в строку включена неполная или нераспо з нанная команда уп­ равления печатью (команда с точкой); + м - в строку введена команда включения данных при печати ( ко м анда слитной печати). Установите длину строки текста Устанавливаемая автоматически при входе в РЕФОР длина строки формируемого текста , равная 65 символам , вас не должна устроить, так как при печати поздравления на почтовой открытке могут разместиться, скажем, 50 сим­ волов. Поэтому воспользуйтесь командай "ор для сме­ щения влево правой границы строки текста. В qтвет на з апрос РЕФОРа введите номер новой крайней правой по­ зиции - 50 . Таким образом вы установили размер строки текста длиной в 50 символов , что подтверждается выво­ дом соответствующей строки-трафарета. 06
Вв од текста Ит а к, позади все необходимые подготовительные опе­ рации. Теперь можно вводить непосредственно текст ново­ годних поздравлений. Начнем с подготовки текста позд­ равл ения, адресованного вашему коллеге: Дорогой Константин Константинович, поздравляю Вас с Новым годо м ! И скренне желаю Вам крепкого здоровья и долгих лет жизни . Пу ст~. этот год принесет Вам счастье и благополучие. Пусть в этом году исполнятся все Ваши желания . Бодрости Вам и хорошего на­ строения. G уважением, Иван Петров. Как и ранее, постарайтесь следовать нашим советам. 8 8 8 Вводите текст с первой же позиции на экране и далее непрерывно, не заботясь о переносах на следую­ щи е строки слов, выходящих за правую границу текста , и воздерживаясь от завершения строк символом ЕТ. В сл учае выхода слова за установленную границу РЕФОР а втоматически обеспечит перенос его в начало следующей строки , а данную строку выровняет по правой границе за счет вставки дополнительных пробелов между сло­ вами. 8 8 8 При вводе прописных букв, точки, запятой удер­ ж ива йте в нажатом положении клавишу врем е нной фик­ с ации верхнего регистра клавиатуры. G. е Если вы нажали не ту клавишу, то ошибочно вве­ де н ный символ удаляйте нажатием клавиши DEL. ф 8 8 Если вы с запозданием обнаружили ошибки в уже в веденных строках, то не спешите прерывать ввод текста и переходить к исправлениям . Вы их исправите в даль ­ не йшем. · В результате на экране вы увидите текст: Аорогой Константин К онстантинович, поздравляю Вас с Новым годом! Искренне желаю Вам крепко г о :здоровья и долгих лет жизни. Пусть этот год гiринесет Вам счастье и благополучие. Пусть в. этом году исполнятся все Ваwи желания. Бодрости Вам . и хорошего настроения. С уважением, Иван Петров. 97
Что вы хотите редактировать? Допустим, при критическом рассмотрении полученного на экране текста вам кое-что в нем не понравилось. Во­ первых, слово «искренне» придает поздравлению н екото­ рую слащавость. Вы решаете удалить слово. Во-вторых, предложение «Пусть в этом году испо л нятся все Ваши желания» кажется вам л ишним. В-третьих, вы вспомнили, что ваш кол л ега Константин Конст а нтинович женат на Ирине Петровне, с которой вы, кстати, знакомы. В таком случае этикет требует поздравления обоих супругов, и вы намереваетесь начать его так: «дорогие Ирина Петровна и Константин Константинович!». Последнее исправление повлечет за собой замену в сех «Вас» и «Вам» на соот­ ветственно «вас» и «вам». Кроме того, было бы эстетич­ нее выделить имена с отчествами поздравляемых в отдель­ ные строки. Желател ьно также выделить вашу подпись. И со всеми этими исправлениями вам придется сми­ риться, что в дальнейшем скомпенсируется освоением ряда эффективных средств РЕФОРа. Действия, которые позволят вам реализовать все намеченные исправления, и составляют суть процесса редактирования текста. Редактирование текста Выhолнить все необходимые операции редактирования текста новогоднего поздравления вам поможет табл. 3. 1 . В первых ее двух графах · приведены общепринятые в из­ дательской деятельности корректурные знаки и собствен­ но исправления, l<Ьторые обычно изображ а ются на по л ях рукописи. В третьей графе приведен фрагмент машино­ писного текста на бумаге с введенным в него корректур­ ным знаком. В четвертой графе показан тот же с а мый фрагмент текста на экране дисплея, где начало исправ­ ления помечено курсором (-). Порядок нажатия кла­ виш и необходимые при этом пояснения приведены в пя­ той и шестой графах. В операции замены используются gg
Корректура Коррек-1 Исправ- турный ление знак у )Ирина Петровна и Н' \ие = 11-\1 lж kP Технология редантирования текста на бумаге Дорогоii\ГКснстантин Дорогу.{ ;.~ jeJ)BIO ." ~иАнияJ Бодрое'!'!( Текст / на экране Дорогой Констан- - тин Дорого!! !::fскренне желаю - Нажимае­ мые клавиши Ирина Петров- на и INS не 1: <б>~усть в этомlF7 1 желания. <1,>Б~- 1F8 дрости Табляца3.1 Пояснение Перед вводом вставля­ емого текста удостоверь­ тесь, что установлен ре­ жим ВСТаВJ<И Предварительно нажа­ тием клавиши INS от­ мените режим вставки Удалите слово справа от курсора При отмененном ре­ жиме вставки замените строчную букву на про­ писную Введите маркер на ча­ ла блоr<а, нажав клави­ шу F7. После этого на экране перед словом «Пусты появятся сим­ волы <6> . Далее пере­ ведите курсор в начало слова «Бодрости» Введите маркер конца блока, нажав клавишу
- ----- F8. В - резуш,тате после слова «желания» появ~т- · ся символы <к> "кы Удалите выделенный блок 1в Jac 1 (Курсор может на- '1 яа Начните операцию по- [в \fам ходиться в любом иска и замены пропис- 1 в fам месте текста) ных букв «В» на строч- в 1ам ные «В». в служебной 1 области экрана в ответ на запрос РЕФОРа вве- ВЕТ дите следующее: ПОИСК: вЕТ ЗАМЕНИТЬ НА: нr ЕТ ПАРАМЕТР: - Q ·Q ·z ПетровнаZи Петровна и ЕТ Вьщелите в отдельные z Константинович;z_ Константннович, ЕТ строки имена с отче ст- z - вами, а также вашу под- настро~ния .z настроения. ЕТ - пись. Для этого нажат.и- ем клавиши INS устано- вите режим вставки и введите в соответствую- щие позиции символ ЕТ Дорогие F2 Переведите курсор в И Константин F2 первую строку текста и ~ уважением, F2 нажатием клавиши F2 обеспечьте ее центров- ку. Аналогично выпал- ните центровку второй и последней строк тек- ста
два параметра: н - автоматический поиск и замена без допо J 11-штельного подтверждения пользователем; r - гло­ баJ1 ьный поиск и замена по всему тексту. В результате редактирования согласно действиям, опи­ санным в табл. 3. 1, вы увидите на экране текст, в кото­ ром нарушены равномерное распределение текста по стро­ кам и выравнивание его правой границы . Поэтому вы­ полни те форматирование текста с третьей по пятую стро­ ку поздравления с помощью трехкратного выполнения кома нды "б. В результате вы получите на экране следую­ щий текст: Дорог~е Ирина Петроsна и Константин Конс:тантиноsич, по:здравflS\Ю вас с Новым годом ! Жf?лаю вам крепкого здоровья и долгих лет жизн и . Пу~ть этот год принесет вам счастье и благополучие. Бодрости вам и хорошего настроени~. ,С уважением, Иван Петров. Установи1'е режим печати Очередная ваша задача - отпечатать подготовле нный текст на почтовой открытке. С этой целью предваритель­ но обеспечьте режим печати прописных и строчных букв русского алфавита. Данный режим вы можете установить двумя способами . Первый из них состоит в перемещени и вправо верхнего движка восьмого микропереключател я под крышкой печатающего устройства. Сделать это сле­ дует еще до его включения. Второй способ заключается в программной установке режима командой РЕФОРа "пы, которую введите перед первой строкой текста позд­ равления. Для этого предварительно зарезервируйте пус­ тую строку перед текстом, введя в режиме вставки снм­ _ вол ЕТ в левую крайнюю позицию его первой сi·рокн. 101
Далее введите "пы, что отобразится на экране как "ы. Последняя операция установит для печатающего устрой· ства режим вывода букв русского алфавита. Рекомендуем вам также воспользоваться командами управления шрифтами печати. Так, если вы желаете от­ печатать имена и отчества в поздравлении жирным шриф­ том, то введите до и после имен с отчествами команду "пб, отображаемую на экране как "б. Можете также свою подпись для разнообразия отпечатать мелким шриф· том «элита~, для чего непосредственно перед подписью введите "па, а после нее "пн. На экране эти команды отобразятся соответственно как "а и "н. Для подавления печати номера страницы можно ввести в конце команду .оп ЕТ. 1 'ь1 "б Дорогие Ирина Петровна и Константин Константинович, 11 б . поздравляю вас с Новым годом·! Желаю вам нрепкого ::здоровьfl и долгих лет жизни. Пусть этот год принесет вам счастье и благополучие. Бодрости вам и :<ороwего нэ.строения~ "а С уважением, Иван ·nетров. "н Печатайте/ До запуска печати воспользуйтесь командой "кс, ко­ торая обеспечит запись храняшегося в оперативной па· мяти компьютера текста на магнитный диск. Дело в том, что распечатке могут быть подвергнуты только файJ1ы, ко­ торые хранятся на магнитном диске. Включите печатаю­ щее устройство и заправьте его почтовой открыткой. Вве­ дите команду "кп - запуска печати текстового файла. При реализации этой команды в ответ на запрос РЕФОРа введите имя распечатываемого ·файла открытка, после 102
чего нажмите клавишу ESC. В результате вы получите распечатку новогоднего поздравления: Аорогие \/iрина Петраана и Константин Константинович, поздравляю вас: с: Новым годом! Желаю вам крепкого здороtзьs~ . и долп1х лет жизни. Пусть этот год принесет вам с:час:тье и благопоЛучие. Бодрости вам и хорошего настроения. С ува ж ением, Иван Петров. 3.3 . ПЕЧАТЬ ТЕКСТОВ ПОЗДРАВЛЕН Ий - НА КОНВЕЙЕР Ниже вы познакомитесь еще с одним замечательным свойством РЕФОРа, которое значительно облегчит ваши предпраздничные хлопоты, связанные с подготовкой позд­ равительных открыток вашим друзьям и многочисленным знакомым. Подготовьте единый текст поздравления, и РЕФОР об еспечит при печати вставку в этот текст различных имен, на пример: Сережа, Витя и т. д. Повторите вышеприведенную последовательность ша­ гов по подготовке поздравления вашему коллеге, закан­ чивавшуюся переходом в основное меню РЕФОРа. При этом файлу, где будет храниться текст, присвойте имя поз драв. Введите текст поздравления с необходимыми добавлениями: "ЬI .дм вsедите имя •аж имя "р 11.орогой &имя&! "е Поздравляю тебя с: наступающим Новым годом! · Желаю теi!5е успехов в труде, с:час:ть:я в личной жизни и вс:ячес:кого Еiлагополуч~1я ! С приветом, Ваня Петров. 103
Ввод первых четырех строк завершите, нажав клави· шу ЕТ. Теперь уясните : назначение команд, включенных в первые четыре строки текста: .дм обеспечивает при печати вывод на экран текста сообщения, помещенного непосредственно за командой; .аж приостанавливает печать текста и запрашивает ввод с клавиатуры значения; оно присваивается перемен­ ной, имя которой следует непосредственно за командой; "пы устанавливает режим печати букв русского алфа ­ вита (отображается как "ы); "пр, "пе указывают соответственно начало и конец текстового фрагмента, распечатываемого крупным шриф­ том вразрядку (отображаются как "р и "е). Подавить печать номера страницы можно, введя команду .оп. Закончив ввод текста, запишите его в файл на гиб­ ком магнитном диске с помощью команды "кд. Находясь в системном меню, введите команду м - запуска так на­ зьrваемой слитной печати. В процессе реализации данной команды поддерживайте диалог с РЕФОРом по следую­ щему сценарию: Слитн. печать какого файла? поздрав ЕТ Если ответ "Да" на все след. вопросы=ЕСЦ, а отд. вопросы= ЕТ Печать в файл (д/н)? н Старт со страницы номер (ЕТ-с начала)? ЕТ Стоп после страницы ( ЕТ - до конца)? ЕТ Количество копий (ЕТ - одна)? 10 ESC Вставляйте открытки в принтер и, вводя команду П, поддерживайте диалог по такому сценарию: введите имя имя? Сережа ЕТ введите имя имя? Витя ЕТ 104
В результате вы получите распечатки открыток: Де>ре>ГС)Й Се-ре-:жа. ! Поздравляю тебя с. н·аступающим Новым годом! Же.лаю тебе успехов в . труде, с часть я в .личной жизн~1 и всяческого б.nагопо.nучия! С приветом, Ваня Петров. Дс:>р е> г. сз!i:"':I Bi.-t-г :!R ! По~драе.n~ю тебя с: наступающим Нозым годом! Желаю тебе успехов в труде, с:час:тья в личной жизни и всяческого бл агоnолу чи~! С приветом , Ваня Петров. 3.4 . ОБЩАЯ СПРАВКА О РЕФОРе Приобретя некоторые навыки работы с РЕФОРом, вы сможете расширить свои возможности при создании текс­ тов. Для этого рекомендуем вам ознакомиться с содержа­ нием табл. 3.2, где все команды сгруппированы по функ­ циональному назначению. Большинство команд вводите, одновременно нажимая клавишу CTRL и русскую буквr,. Клавиша CTRL условно обозначена в таблице символ ом '. Неко·rорые · команды дублируются функциональной кла­ вишей, что создает дополнительные удобства в работе. Большинство команд, описанных в табл. 3.2 , выполня­ ются в основном меню РЕФОРа. Если же команда вво­ дится в системном меню, то это особо отмечаетсн в нонс­ нен ии команды. Часть команд РЕФОРа обеспечивает усrановку или отмену какого-либо режима работы. В табл. 3.2 режим, устанавливаемый автоматически еще до первого исполне­ ния таких команд, выделен другим шрифтом. Выделены также значения параметров некоторых команд, устанав- 11иваемые РЕФОРом по умолчанию. 105
Клавиша Русский / функ­ алфавит н~и.?~ая "с "д "а "Ф "е "ь "яс "яе "яь "яд "яр "яц "яО ... "я9 "яб "як "яж "яп "з "в 1- -1 1 ! -1 Fl2 Команды управления РЕФОРа Назначение коман.11ы Позиционирование курсора Влево на один символ Вправо на один символ Влево на одно слово Вправо на одно слово Табпица 3.2 Вверх на одну строку Вниз на одну строку Влево, в начало следующей строки Влево, в начало данной строки Вверх, в первую строку на экране Вниз, в предпоследнюю строку на экране Вправо. в конец строки Вверх, в начало текста Вниз, в конец текста Соответственно в маркеры <0> . • . <9> В начало маркиро u анного блока В конец маркированного блока В позицию перед выполнением последней коман­ ды поиска или работы с блоком В позицию перед выполнением предыдущей ко­ манды Просмотр текста файла Вверх на одну строку Вниз на одну строку 106
J \J l lllHIШЭ Р ус~ 1тr1 1функ- llJ1ф111J llT uио- на льна я "ц Ft5 "р F4 "яз "яв "б "ох "ос "ол FI "ор FЗ "оь "ог "ов "ой "ое "по "оц F2 Назначение команды Вверх на з1. экрана Вниз на 3/4 экрана Вверх постепенно (замедление просмотра 1 .. . 9) Вниз постепенно (замедление просмотра 1 ... 9) 1 Форматирование текста Форматирование строк абзаца (до символа ЕТ) Установка/отмена помощи при переносе слов У станов ка межстрочного интерuала (1 ... 9) Установка позиции левой границы текста (1 ... 240) Устано в ка позиции правой границы текста (... 65 ... 240) Отмена границ (до возвращения курсора в гра­ ницы) Сдвиг вправо левой границы текста до очередной позиции табуляции временно до ввода ЕТ Установка/отмена автоматической упаковки слов при переходе к новой строке Установка/отмена автоматического выраnнивания правого края текста за счет раздuижки слов Устано в ка/отмена ввода так на:;ываемого мя1·ко­ го дефиса для переноса слов, отображаемого на экране в виде символа подчеркивания и выводимо­ го при печати только в случае нахождения его в конце строки У ста нов ка неразделяемости слов при переносе (в , пробел. между словами) Центровка строки с курсором 107
i{ЛЗ!НtШа Русский а .1фаn11г "r "т "яы "я DEL ''ы "ны 1 функ- ЦИО• нальная liазначен · е команды Удаление символа, слова, строки, блока DEL УдJление символа слева от курсора Удаление символа в позиции курсора Удаление от курсора до конца слова Удаление от курсора до конца строки Удаление от начала строки до курсора Удаление строки полностью Удаление маркированного блока Вставка символа, слова, строки, бЛОI{а, файл а "ж iNS Установка/отмена режима вставки (д1iя вст ав кн "нж "кu "кр "яф "яа "л CИ ~ lBOJia, CJIOBa) ЕТ Ввод пустой строки из пробелов (для вставки стро - F9 ки) при нахождеиии курсора справа от предыдущей иди в начаде следующей строк и (в режиме вставки) Вставка бдока с позищ1и курсора при удал е нии бдока на прежнем месте Вставка блока с позиции курсора при сохранении блока на прежнем месте без маркеров (копирова -\ ние блока) Вставка файла с диска в текст Поиск и замена фрагмента текста FI 1 Поиск запрашиваемого фрагмента (до 30 сим t<о - лов) с вводом параметроR поиска 1 Поиск запрашиваемого фра1·мента и его зам-=н а на вводимый текст (с подтверждением замены) 1 Продолжение поиска того же фрагм. ента (послеl команды "яф) или поиска с заменой (после ком11н- ды "яа) ·-·." . !08
l< Jl/llJlllJ/3 r ycc 101r1 ll J1ф t1B llТ "он "ои "и "uф "ож "пы "па "пн "пд 11 пб "пт ''П}К "нв "пя "пр "пе 1 функ- llИО" нальная Назна t1ение 1<оманды Использование табуляции Отмена табуляции Установка новых позиций табуляции (! - для обычной табуляции, # - для десятичной) Переход к следующей позиции табуляции Автоматическая установка позиций табуляции и границ текста по строке, в начале которой нахо- дится курсор (строке-комментарию) Установка/отмена табуляции с переменными ог­ раничителями таблиц (для выравнивания по огра­ ничителям) Управ ление режимами печати Установка/отмена печати русскиы и буквами (П[JО­ писными и строчными) и прописными латински ~11 1 буквами Установка шрифта «элита» (до 164 знаков п. строке) 1 , Восстановление стандартного шрифта «пика» {до 135 знаков в строке) Установка/отмена двойной печати (попторноii 11 печати тех же символов) Установка/отмена жирного шрифта (четырехкрат- 1 но й печати) 'i Установка/отмена надстрочной печ ати Установка/отме на подстрочной печати Установка печати с непрерывным подчеркивани - ем Отмена печати с непрерывным подчеркиванием Установка печати вразрядку Отме_на печ.ати вразрядку 109
Клавиша Русский алфавит 1 функ- цио­ нальная Назначение команды "п ЕТ "пх "пц .аж .еж .дф .рж .фи .дм .цс . MT:j:j: Установка печати строки поверх предыдущей Установка печати символа поверх предыдущего Приостановка печати (для продолжения печати вводится команда "кп или п из системного меню) Управление вставками данных при печати Запрос ввода значения переменной с клавиатуры (имя переменной указывается непосредственно за !йшандой) Присвоение значения переменной (за командой следуют имя и значение переменной через запя­ тую) Спецификация файла для чтения из него значе­ ний переменных, имена которых указываются в по­ следующей команде .рж (за командой следует имя файла данных) Чтение значений переменных из файла, предвари­ тельно определенного командой .дф (имена перемен­ ных следуют за командой через запятую) Вставка в место введения данной команды тек· стового файла, имя которого указывается вслед за командой Вывод на экран следующего за данной командой текста (используется для подсказки ввода коман­ дой .аж) Очистка экрана Формирование и нумерация страниц для печати Установка числа пустых строк (#) от верхнего края листа бумаги до начала текста (по умолчанию :j:j: =3) 110
J(~nо иша Pyccicиn 1 фукк- 1111 фо uит н~:::ая . ПЛ# .мб# .оп .пн .хе .фо .пн .ПН# .па .цп:~t "п:it Наз•1ачение команды Установка числа строк ( #) на странице (по умолчанию :it = 66), включая отступы сверху и снизу Установка числа пустых строк ( :lt) ниже текста до конца листа (по умолчанию # = 8) Отмена печати номеров страниц стандартного для РЕФОРа расположения (внизу- посередине) Восстановление печати номеров страниц стандарт­ ного расположения (внизу - посередине) Установка/отмена печати общего заголовка для последующих страниц (текст заголовка вводится при установке непосредственно за командой, ис­ пользуется при печати номеров страниц сверху) Установка/отмена печати общей подстраничной надписи для последующих страниц (текст надписи вводитс я непосредственно за командой) Установка печати возрастающих номеров страниц начиная со страницы, где введена данная команда Установка п ечати возрастающих номеров страниц, начиная с номера :lt Переход на новую страницу (вводится в конец страницы, после которой осуществляется переход) Переход на новую страницу, если до конца поля текста на данной странице остается ме не е чем # строк (используется для предупреждения возможно­ го разрыва головок таблиц) Ввод комментария, игнорируемого при печати (используется в ка ч естве образца строки табуляции для команды "оф) Вставка в заголовок или подстраничную надпись символа :lt, указывающего позицию для печати но­ меров страниц (используется в командах .хе и .фо) 111
1 l<лавиша "пк "кп п м н д д 1 н "ко о "не е "кй ы " KJ! Назначение команды У станов1{а печати заголовка или подстраничной · надписи слева для четных номеров страниu и спра­ ва для нечетных номеров Управление процессом печати Запуск/приостанов печати файла с возможностью одновременного редактирования (имя файла запра­ шивается) Запуск/приостанов печати файла из системного меню Печать из системного меню с включением дан­ ных из другого файла или вводимых с клавиатуры (включение производится в заранее зарезервирован­ ные места текста) Продолжение печати, приостановленной команда­ ми "нп и п системного меню Прекращение печати Работа с файлами Открытие файла текстового документа (из сис­ темного меню) Открытие файла исходной программы ,и;; систем· ного меню) Копирование файла То же из системного меню Переименование файла То же из системного меню Удаление файла То же из системноrq меню· Переназначение текущего дисковода 112
l (.1 1;111 1111_1 3 ----···- - -- ' Pycc 1cиli 1 функ- ш1ф1.1uит цио" нальная л "кф "нв "нр Назначение команды Переназначение текущего дИС({Овода из систем- ного меню Установ({а/отмена вывода на Э({ран ({аталога диска Запнсь мар({ированного бло({а на дИС({ Встав({а считываемого с дис({а файла в место, у({азанное курсором "нс FlЗ Запись реда({тируемого фаr1ла на дис({ и продол - жение работы в основном меню (рекомендуется вводить периодичес({и) "нд fl4 Запись реда({тируемого фа1'1ла на дис({ и переход пнь ь "кя ре фор л ф х "йх р ь в системное меню Запись редактируемого файла на диск и выход в систему SCP Выход в систему SCP (из системного меню) Переход в системное меню без сохранения ре­ дактнруемого файла Прочие операции Начальная загруз({а РЕФОРа (в системе SCP) Переход к другому дисководу (в системном меню) Установна/отмена вывода на 9({ран каталога дис- ({а (в системном меню) Установ({а уровня помощи в системном меню (0 - подавление вывода справочной информации; 1 - выводится ТОЛЬ({О системное меню; 2- выводятся все меню, кроме основного; 3 - выводятся все меню) То же в основном меню Запус({ системной программы из системного меню (например, ST АТ, INI Т) Выход в систему SCP (из систем но го меню) 5 Заказ No 594 113
Клавиша РуссI<ий 1 функ- Назначение команды алфавит цио" нальная й Вызов меню помощи (из системного меню) "у Прерывание выполняе м ой ко м анды "яя Автоповтор вводимой Еслед з а "яя команды "кО..."к9 В вод/удаление маркера (для пользования команд "яО " . " я9 ) последующего и с - 111-iH F7 Ввод/удаление маркера нача ла блока (<б>) "нк F8 Ввод /удаление маркера конца блока (<к>) "кх F6 Установка/отмена индикации маркеров нача л а и конца б л ока FIO Прогон бумаги на принтере 3.5 . ПРОВЕРЯЕМ СЕБЯ. КАК УСВОЕН РЕФОР? Упражнения 3.1 . Обеспечьте вывод на экран каталога маг н итного диска в основном меню РЕФОРа . 3.2 . Каким образом можно удалить лишний симво л в слове? 3.3. Можно ли произвести поиск образца текста в фай­ ле по направлению к его началу? 3.4 . Как наибо л ее простым образом расположить ко­ роткую строку посередине текстового поля? 3.5 . Как предотвратить возможное при форматиро в а ­ нии текста ра зделение по строкам фамилии и инициало в? 3.6 . Как предупредить разрыв головки таблицы из четырех строк при автоматическом разбиении текста на страницы? 114
3. 7 . К аковы ваши действия в случае, когда русский ·1' t' 1<с т ра спечатывается в латинском алфавите? :1.8 . В ыполните печать подготовленного с помощью Р l ·: ФО Ра документа в нескольких экземплярах. О ·rае ты к упражнениям 3.1 . Введите команду "1\ф, в резу л ьтате выполнения 1(() т о ро й в служебной области экрана появится каталог ма гнитн ого диска. С помощью той же команды вы може· т е подав ить вывод каталога. 3.2. Предварительно переместите курсор в позицию у; l а ляе мого симво л а. Затем введите команду "г. 3.3 . При исполь з овании команд поиска ''яф и поиска с з аме ной "яа вы можете задать направjjение поиска к нач а лу текстового файла, если в список параметров поис ка введете символ б. 3.4 . Для центровки короткой строки переведите в нее ку рсор, а затем нажмите клавишу F2. 3.5 . Для предотвращения переноса инициалов на сле­ ду ющую строку введите в пробелы после фамилии и меж­ ду инициалами команду "по. 3.6 . Введите перед текстом шапки (головки) таблицы в предварительно зарезервированную строку команду .цп4. 3.7 . Выключите печатающее устройство, приподнимите его крышку и поменяйте положение верхнего движка во сьмого микропереключателя. Затем включите устрой­ ст во и повторите вывод на печать. 3.8 . Завершите подготовку текста документа нажати­ ем клавиши F14 с переходом в системное меню. Далее воспользуйтесь командой м, введя при подготовке к печа­ ти же л аемое количество копий документа. нs·
ПРИМЕНЯЕМ ВАРИТАБ­ ЭЛЕКТРОННУЮ ТАБЛИЦУ ·двс 1. 1---t---t-~t--~~~i--~ 2 Э Л еКТРОННё/ Я 3<> табли4а 116 4 4.1. ЗАЧЕМ НУЖНА ЭЛЕКТРОННАЯ ТАБЛИЦА? Сфера использования В процессе производст­ венной деятельности любого специалиста часто требует­ ся представить результаты работы в виде таблиц, где одна часть граф занята исходными данными, а дру­ гая - результатами вычис­ лений и анализа. Такая форма работы благодаря своей наглядности и просто­ те настолько широко рас­ пространена, что охватывает практически любую сферу деятельности. Даже шко л ь­ ники, проводя эксперимен­ ты, строя графики функ­ ций, исходные данные и результаты экспериментов фиксируют в таблице. На основании этих данных в
J\ 11.111 , 11ейшем производят расчеты и заполняют остальные 1·р11фы. Исп ользуют таблицы особенно широко в администра­ ' 1' 111 1 11ой, экономической, хозяйственной сферах. Расчеты, Р \':JуJ1ьт аты которых вносят в таблицы, как правило, очень 111юсты и для их проведения не требуется специальной математической подготовки. Характерными для них явля­ ются большие объемы перерабатываемой информации . Часто возникает необходимость в многократных просчетах, 11 ходе которых умышленно вносят некоторые изменения 11 исходные данные, т. е. нужно провести численное моде­ J1нрование той или иной ситуации. Расчеты при больших массивах данных - задача уто­ мительная, требующая повышенного внимания, и в неко­ тор ом смысле неблагодарная. Велик процент появления о шибок. Все это позволяет отнести такую работу к раз­ ряду рутинных . Ав томатизация расчетов с пом.ощью электронной таблицы Необходимо средство, которое позволит автоматизиро­ вать процесс проектирования таблиц. В качестве такого с редства служат специализированные программы, ориен­ т ированные на расчеты по одной и той же табличной форме. Недостаток этих программ - отсутствие универ­ с а льности. Другим, более универсальным средством яв­ ляются пакеты прикладных программ (ППП), используя которые можно проектировать различные формы таблиц и производить вычисления с помощью простого входного язы ка. К числу таких ППП относится пакет прикладных про­ г рамм для работы с электронной таблицей. Электронной называется таблица, создаваемая в компьютере посредст­ вом организации диалога между пользователем и ЭВМ. Пакет прикладных программ для работы с эJiектронпой таблицей часто называют табличным процессором или ва- 117
рнационной (вариантной) таблицей. Семейство подобных пакетов, созданное первоначально с целью облегчить рас­ четы по табличной форме, нашло более широкую сферу применения - моделирование различных ситуаций. В счи­ танные минуты вы можете получить ответ на вопрос «Что будет, если ... ?» из таблицы, содержащей несколько сотен расчетных данных. Суть автоматизации расчетов с помощью электронной таблицы заключается в следующем: ф ускоряется и облегчается процесс формирования таб­ лицы (заголов1<а и шапки) и заполнения ее данными; ф внесение изменений хотя бы в одну клетку таблицы вызывает автоматический пересчет всей таблицы; + если в таблице часто используется одна и та же фор­ мула расчета для разных переменных, то имеется воз­ можность не писать ее многократно в каждую клетку, а автоматизировать этот процесс с помощью одной команды; + автоматизирован процесс печати таблицы; ф просты для освоения и в эксплуатации средства редак­ тирования таблицы; + для персональных компьютеров с 16-разрядным микро­ процессором можно формировать новые таблицы, произ­ водя выборку из существующих, аналогично тому, как делается это при работе с базами данных, а также оформ­ лять данные в виде графиков. Обзор Одним из наиболее известных табличных процессоров является пакет прикладных программ SUPERCALC ( Суперкалк), имеющий несколько версий для разного класса персональных компьютеров. В отечественной пра к­ тике широкое распространение для персонального компыо­ тера Роботрон 1715 получила адаптированная на русский язык версия SUPERCALC под названием ВАРИТАБ ( ВАРиантная ТАБлица). Этот пакет находится на сопро­ вождении в НПО «Центрпрограммсистем». 118 '
В другой версии, например SUPERCALC-2 (С2), так­ же ад аптированной на русский язык, увеличен объем таб­ .1 11щ ы (255Х 127), добавлено несколько функций, в том 1 1 исл е сортировки, сделан вывод информации в файлы, совм естимые с языком BASIC и редактором текста vVOR DSTAR. В некоторых версиях введено более удобное сред ство перемещения курсора с помощью клавиш на- 11 рав ления вместо управляющих символов, где требуется одн овременное нажатие двух клавиш . Принципы построе- 11ия электронной таблицы заложены и в пакет прик л адных 11рог рамм MULТIPLAN (МР), предназначенный для пла­ нов ы х и статистических расчетов. . Применительно к персональным компьютерам с 16- раз рядным микропроцессором э л ектронная таблица пред­ ста вляет собой не только инструмент для обработки и фор­ ми рования таблиц, но и мощный интегрированный пакет п рикладных программ, где дополнительно используются : ф графические средства, позволяющие оформлять данные в виде различных диаграмм - столбиковой, круговой, ли,­ нейной и т. д.; + средства организации баз данных, где появляется воз­ м ожность выборки данных в соответствии с критерием . К таким .. пакетам, например, относятся LOTUS-1 -2 -3, ВА РИТАБ-86. Хар актеристика ВАРИТАБа Представленный ниже пакет прикладных программ В АРИТАБ отражает основные принципы построения эл ектронной таблицы, ознакомившись с которыми вы без т руда будете работать с любой версией электронной таб­ л ицы. ВАРИТАБ занимает на диске объем 64 Кбайт. Р абота по формированию таблицы, вводу исходных дан­ н ых, расчетам, выводу табJшчной формы осуществляется с помощью 19 команд в диалоговом режиме. Вам предла­ г ается вопрос и приводится перечень ответов, на одн.ом из которых вы останавливаетесь. Максимальный объем 119 .
электронной таблицы составляет 254 строки и 63 столбца. В электронной таблице строки в дальнейшем будут на­ зываться рядами. Нумерация рядов идет от 1 до 254. Столбцы электронной таблицы называются колонками. Каждая колонка имеет имя (номер) в виде одной или двух латинских букв: А, В, С, D, "., Z, АА, АВ, АС, "., BJ, ВК. Прежде чем работать с диском, уточните, записана ли на нем операционная система. В противном случае вам необходимо записать ее на первые три дорожки диска, отводимые всегда для операционной системы. Как быстро изучить ВАРИТАБ? Освоить ВАРИТАБ достаточно просто, если вы после­ довательно ознакомитесь с содержанием этой главы, где на конкретном примере показана основная концепция ра­ боты с электронной таблицей. Работа с таблицей органи­ зуется с помощью вводимых вами команд. В качестве сквозного примера рассмотрена методика создания ведо­ мости начисления заработной платы, организации ее рас­ четов и вывода результатов. Когда вы поймете механизм построения электронной таблицы и работы с ней, обрати­ тесь к описанию команд, их основных функций и струк­ туры и на конкретном примере проследите поэтапное вы­ полнение каждой команды. Обратите внимание! 888 Работайте с электронной таблицей, используя регистр русского алфавита. Для этого нажмите клавишу ФВР - фиксации верхнего регистра. Загорание лампочки индикации, находящейся в левой части клавиатуры, сообщает вам о фиксации русского алфавита. 888 В процессе работы не надо переключать регистры. В том слу­ чае, когда требуется ввести латинскую букву, достаточно просто нажать клавишу с этой буквой. Несмотря на то что вы не переклю­ чали регистр на латинский алфавит, ваши действия ВАРИТ АБ вос­ примет правильно. 888 Вам придется постоянно следить за правильностью ввода букв, так как некоторые буквы обоих алфавитов сходны по начер­ танию. i20
1\ .2. ИС ПОЛ Ь ЗУЕМ ВАРИТАБ J~ЩI РЕ Ш Е НИЯ КОНКРЕТНОЙ ЗАДАЧИ 4. 2.Г°СТАВИМ ЗАДАЧУ ­ РАССЧИТАТЬ ЗАРАБОТНУЮ ПЛАТУ Для приобретения первых навыков работы с элект­ ро нной таблицей предлагаем вам последовательно пройти JJCe этапы. Нач н ем с постановки задачи. Вам необходимо создать электронную таблицу, по ко ­ то рой ежемесячно будет производиться расчет заработной 11 л аты рабочих. Для более наглядного представ л ения фу нкции электронной таблицы расчет носит несколько усл овный , упрощенный характер и в нем учтены только ос новные удержания . Исходными данными для расчета являются : фамилия , и мя, отчество рабочего; тариф Т; количество отработан- Та блиц а 4.1 Таблица 4.2 Подох одный налог N Допол н ительная часть N 1 (при Z < 100 руб.) подо ходно г о налога (при Z> 100 руб.) Заработная 1 Налог N, плата Z, руб. руб. И I<ОП. Заработна я плата Налог N1, z,руб. руб. И !<ОП. 95 7.60 100<Z<200 1.30 96 7.72 200 < Z<300 2.60 97 7.84 300<z<400 3.90 98 7.96 400<Z<500 5.20 99 8.08 500<z<600 6.50 100 8.20 121
ных дней К. Надо ра.ссчитать заработную плату Z, подоходный налог N, профсоюзные взносы W по формулам: Z=TK; W=0,01Z. Подоходный налог зависит от суммы заработной платы: ф если Z ~ 100 руб., то для определения подоходного на­ лога N следует воспользоваться табл. 4. 1, где Z-зара­ ботная плата в диапазоне 70-100 руб.; ф если Z> 100 руб., то N =8.20 +N1, где N1 определяет­ ся из табл. 4.2. Сумма к выдаче на руки рабочему рассчитывается по формуле: S=Z-W -N . Необходимо определить также итоги по графам «За­ работная плата» и «Сумма к выдаче» последовательным суммированием каждого нового полученного данного к предыдущей сумме. Все исходные данные и результаты Таблиц а 4.3 Ведомость начисления заработной платы Удер>1н1.ние 1 Фамилия, Тариф Кол . Зара- 1 Сумма имя, от ч естоо отраб. ботная Проф. 1 Полох. к выда 1 ;е дней плата взносы налог Корнев !(, к. 7.20 20 Лапин Л. Л. 8.90 25 ? ? ? ? Маркова М. . М. 5.50 18 Итоrо ? 1 ? 122
р ;1 с11стов должны быть оформлены в виде табл. 4.3 . Для о11 щ й наглядности предлагаем провести расчет заработ- 11 о ii п латы для трех рабочих. /lattaлo работы 4.2.2. ЗНАКОМИ МСЯ СО СТРУКТУРОЙ ЭЛЕКТРОННОЙ ТАБЛИЦЫ Н а диске должна находиться операционная система (пе р в ые три дорожки) и ВАРИТАБ . После установки ю·r ск а в д и сковод А вызовите каталог и найдите имя ос нов ной программы пакета. В одной из версий это имя \VT. Введите имя программы A>WT На экране появится таблица, состоящая из восьми граф А, В, С, D, Е, F, G, Н и 20 пронумерованных рядов - 1, 2, ... , 20 (рис. 4.1). !А!! 1! <> 2! е>!!С!!D!!Е!!f!!G!!Н!! 3! 20! Сооержимое Ошиока fJ метки qюрмуле ..-------1'Пд1 г- --1 г- ---, L ____ ...J L _____J ~-,/ ширина: 9 nам~::~ть : 22 посл. кол/ряд: А1 Z п одсказ. . ~~1_>~ Строка tJ!Jooa Ст;юка поiJскаJ1щ Строка cocmoянuri Рис. 4.1. Структура электронной таблицы 123
Указатель и текущая таблица На рис. 4.1 вы видите в клетке Al два символа < >. Это указатель клетки, куда будет введено данное. В дальнейшем клетку, ряд, графу, где установлен указа­ тель, будем называть текущими . Кроме того, текущей яв­ ляется таблица, находящаяся в оперативной памяти и ото­ браженная на экране дисплея. Указатель по таблице можно передвигать с помощью управляющих символов. Для этого следует одновременно нажать две кавиши: CTRL S или -t-- влево; CTRL Е - вверх; CTRL D - вправо; CTRL Х - вниз. В некоторых версиях в электронной таблице для пере ­ движения указателя используются клавиши направления: -.-- влево; t - вверх; _.__вправо; ~ - вниз. Для отмены (сброса) набранной команды или данно­ го будете нажимать одновременно клавиши CTRL Z или в иной версии ~ . Под таблицей расположены три строки, которые слу­ жат вам для оказания помощи и ведения диалога . Строка состояния В этой строке отображаются три типа сообщений. О 8 8 Первое сообщение включает название текущей клетки и направление движения указателя . Например, на рис. · 4.1 ПА! означает, что указатель находится в клетке Al и при дальнейшей работе будет перемещаться вправо на одну клетку (буква П). Возможные варианты движе­ ния вы определите благодаря их обозначению: П - вправо; Л - влево; В - вверх; Н - вниз. 8 8 8 Второе сообщение выводится в середине строки и показывает содержимое текущей клетки . Если клетка 124
11уст ая, то это сообщение отсутствует, что и отображено на рис. 4.1 . Для вывода типа данного, находящегося о клетке, используются следующие условные обозначе­ ния : для формул и чисел - ФОРМ, например: ФОРМ= = 2 +3*7.2; для текста - ткет, например: ТКСТ=''ПЛАН: Jt.11я повторяющегося в нескольких клетках текста - ПТ КСТ, например: ПТКСТ='*· 8 8 8 Третье сообщение появляется довольно редко в конце строки состояния, так как оно служит для указа­ н и я ошибки при вводе данных и команд. Стр ока подсказки Строка подсказки имеет двойное назначение. ф 8 8 С помощью этой строки организуется диалог ме жду пользователем и электронной таблицей в процессе в ыполнения команды. Здесь формируется сообщение, ко ­ т орое подскажет вам, какую клавишу нажать для ввода п араметра команды. Кроме того, в любой момент вы, не з ная, как поступить дальше, можете попросить у ВАРИ­ ТА Ба помощи, нажав одновременно клавишу временного пе рехода на верхний регистр (ВПДР на рис. 1.5) и кл а ­ в ишу ? . В других версиях то же самое можно получить, на жав функциональную клавишу Fl. В этом случае на эк ране появится разъяснение интересующего вас дейст­ в ия. Например, вы нажали клавишу /, и в строке под­ с казки появится сообщение: УкажиА,Б,В,Г,д,3,И,К,Л,М,Н,О,П, Р,С,Т,У,Ф,Я? Вы еще не знаете, что означают эти буквы. Нажмите одновременно клавиши ? и В ПДР, на экране появится перечень команд ВАРИТАБ. Ознакомьтесь с ним. Для возврата к исходному состоянию нажмите клавишу ЕТ. Н а экране вновь появится исходная таблица с предложе­ нием ввести одну из букв. Теперь вы уже знаете, что ввод каждой буквы равносилен вводу команды. Не бой­ тесь нажимать клавишу подсказки ?. Это поможет вам 125
лучше освоить методику работы с электронной таблицей.~ ф 8 8 Вторым назнач.ением строки подска з ки является предоставление вам сведений о характеристиках текущей таблицы. + ШИРИНА означает ширину текущей клетки, где уста­ новлен указатель . По умолчанию, если вы не проводи л и форматизации клетки, ее ширина равна девяти позициям . Дополнительная позиция для разделения клеток не отво­ дится. Например, на рис. 4.1 ширина всех колонок, а з н а­ чит, и ширина клеток равна девяти позициям; ~ ПАМЯТЬ указывает объем оперативной памяти в 1ш­ лобайтах для текущей таблицы. Например, на рис. 4.1 для текущей таблицы выделено 22 Кбайт оперативной памяти . ф ПОСЛ.КОЛ/РЯД означает последнюю занятую клет­ ку, находящуюся справа внизу текущей таблицы. Это рав­ носильно указанию ее размеров, т. е. последней ко лонки и последнего ряда. Данное сообщение особенно важно при размещении таблицы на нескольких экранах. Вы всегда будете знать, какой колонкой и каким рядом она ограничена. На рис . 4.1 выведено сообщение «ПОСЛ . КОЛ/РЯД:Аl». Вы не заполняли таб л ицу, поэтому первая клетка является и последней. Например, если сообщение имеет вид ПОСЛ . КОЛ/РЯД: Еlб, то таблица содержит пять колонок (А, В, С, D, Е) и 16 рядов. Строtса ввода Здесь отображается информация, вводимая с клавиа­ туры. Текущая позиция, куда вводится очер.едной символ, указана курсором (символ - ) , а цифра, . находящаяся слева от символа > (см . рис. 4.1), означает номер пози­ ции курсора. 8 8 8 Для ввода данных в текущую клетку надо на­ жать клавишу .ЕТ. При этом строка ввода очистится. 126
8 ~ При вводе команд строка ввода сохраняется дотех 11ор , пока она не будет полностью сформирована. Ввод 1rромежуточных ответов на каждую подсказку при фор­ мир овании команды лишь дополняет строку ввода . 4.2 .3. ФОРМИР У ЕМ ЗАГОЛОВОК И Ш А ПКУ ТАБЛИЦЫ После знакомства с исходной таблицей, изображенной на р и с. 4. 1, вы можете приступить к формированию таб­ .11 и цы для расчета заработной платы . Сначала сформируй­ те заголовок и шапку (головку) таблицы, а затем присту­ па йте к вводу данных. Дл я изучения основных средств языка предлагаем в ам ограничиться вначале первыми четырьмя графами та бл. 4.3 . .К формированию остальных граф вы приступи­ те, освоив эти минимальные средства и желая более чет­ ко уяснить возможности использования электронной таб­ mщы (см. параграф 4.3). Вв од заголовка Ввод любого текста всегда начинается с кавычек ", а затем на клавиатуре набираются любые символы . Обычно заголовок располагают симметрично относи­ т е л ьно центра. Проведите предварительную работу по ра счету ширины табл. 4.3. В каждой графе определите м аксимальное количество символов в данном, добавьте д ля разделения каждой графы символ «пробел», и вы по­ лучите ширину документа. Ширина первой графы равна 20 позициям для записи фамилии и инициалов, второй г рафы - пяти позициям для записи слова «Тариф». Ши­ р11на третьей графы задается словом «Отраб . » и равна шести позициям, а четвертой графы - с-ловом «Заработ- 127
ная» и равна 10 позициям. Для отделения граф д0полни". тельно используйте три позиции. Всего ширина докумен­ та равна 20+5+6+ 10+3=44 позициям. Середина доку­ мента - 22-я позиция. Заголовок введите двумя строками ввода, так как он состоит из двух рядов (см. табл. 4.3). Установите указа­ тель в клетке Al. Для формирования текста в первом ряду нажмите клавишу ", затем 16 раз - клавишу про­ бела, наберите слово ВЕДОМОСТЬ. Тогда строка ввода примет вид 27>" ВЕДОМОСТЬ Д ~я ввода этой строки в таблицу нажмите клавишу ЕТ. Д ,1я формирования текста во втором ряду установите указатель в клетке А2, нажмите клавишу ", затем шесть раз - клавишу пробела, наберите слова НАЧИСЛЕНИЯ ЗАРАБОТНОЙ ПЛАТЫ. Строка ввода примет вид 35>" НАЧИСЛЕНИЯ ЗАРАБОТНОЙ ПЛАТЫ Для ввода этой строки в таблицу нажмите клавишу ЕТ. Чтобы отделить заголовок от таблицы, пропустите пустой ряд, переведя указатель в клетку А4. Так вы за­ н:ончили формирование заголовка электронной таблицы, который разместился в четырех колонках А, В, С, D. А!!В ;'! С»1 D 1! ВЕйОМОСТЬ '2! НА'-!ИСЛЕНИЯ ЗAPASOTHOJll. ПЛАТЫ 3! Далее приступайте к формированию шапки таблицы, последовательно устанавливая ширину каждой колонки и вводя название, а также выделяя границы таблицы го­ ризонтальной чертой. 128
Вв од горизонтальной черты Вы начинаете формировать горизонтальную черту, и з ображая ее многократно повторяющими символами = или - . Для организации многократного повторения в электронной таблице используется апостроф ' . Устано ­ в ите указатель в клетке А4, нажмите клавиши ' и = , В строке ввода появится 3>'= Нажав клавишу ЕТ, вы увидите, что символ - будет вв еден во все позиции клеток ряда 4. Устан овка ширины rилонки А и ввод названия ф ф 8 Установите указатель в клетке А5. Вам надо из­ менить ширину графы, сделав ее равной 20 позициям . Воспользуйтесь командой изменения форматов F (FOR- MA Т) . При вводе любой команды необходимо нажать д ве клавиши : первой будет символ / (слэж), а второй - первая латинская буква в названии команды . Вы е ще н е з накомы с командами? П омнuте! У вас в р у ках мощное средство подсказки. Воспо л ь · зу йтесь им. Нажмите клавишу /, затем одновременно клавишу по д ­ с каз ки ? и ВПДР. На экране появится перечень команд ВАРИТАБ а l с м . табл . 4.6). Ознакомьтесь с ним, а затем, наж а в клавишу ввод а ЕТ , вы будете возвращены к исходному состоянию экрана. После нажатия клавиши / состояния стро~< подска з ки и ввода изменятся: строка подсказки ВВЕДИТЕБУКВУА,Б,В,Г,Д,3,И,К,Л,М,Н,О,П, Р,С,Т,У, Ф , Я? строка ввода 2>/ Для ввода команды нажмите клавишу Ф (F) . Стро~<а 129 .
подсказки приглашает вас ответить на вопрос, а в строке ввода появится слово FORMAT: строка подсказки УКАЖИ ОБЛАСТЬ: ТАБЛИЦА, КОЛОНКА, RЯД ИЛИ ЭЛЕМЕНТ строка ввода 9>/ FORMAT, Вам надо увеличить ширину колонки, поэтому следует нажать клавишу К. Вновь изменятся состояния строк подсказки и ввода: строка подсказки УКАЖИ БУКВУ КОЛОНКИ строка ввода 16>/FORMAT, КОЛОН., Укажите букву колонки, нажав клавишу А и клавишу ЕТ. В строке подсказки вам будет предложено ввести форматы: строка подсказки ЗАДАйФОРМАТЫ(С,А,N,Ц ,Р,L,ТР,TL,*•!. ШИР. КОЛОНКИ) строка ввода 18>/FORMAT, КОЛОН., А, Однако вы еще не знакомы с видами форматов. Воспользуйтесь клавишей помощи ?. Нажмите ее и В ПДР, и на экране будет изображен перечень возможных форма­ тов. После ознакомления с содержанием экрана верни­ тесь к исходному состоянию, нажав клавишу ЕТ. Выбе­ рите требуемую ширину колонки (шир . колонки), а имен­ но: наберите число 20 и нажмите клавишу ЕТ. Вы уви­ дите, что строки подсказки и ввода очистились, а ширина графы А увеличилась до 20 позиций. 8 8 8 Теперь займитесь вводом названия колонки. Про­ верьте, установлен ли указатель в клетке А5. Введите строку 15>" ФАМИЛИЯ 130
Установите ую:1затель в клетку А6 и введите строку 17>" ИМЯ, ОТЧЕСТВО Установка ширины колонки В и ввод названия ~ ~ ф Согласно расчету шир:ина колонки В равна шес ­ т и позициям (5+ 1 - для обозначения вертикальной чер­ ты символом:). Попробуйте установить Ширину графы, не пользуясь подсказкой. Переведите указатель в клетку В5 и воспользуйтесь командой F (FORMAT), так же как при фор мировании ширины колонки А. Наберите полностью строку ввода, нажимая клавиши в следующей последова­ те льности: / F К В ЕТ 6 ЕТ (латинский алфавит) или / Ф К Б ЕТ 6 ЕТ (русский алфавит). После ввода каждого параметра коман д ы на экране в строке ввода появляется усл о вно е название выбранного параметра, заканчиваю­ щееся запятой. Одновременно изменится сообщение в стро­ ке подсказки . В результате действия введенной команды произойдет изменение ширины колонки В, она станет равной шести позициям. ~ ф 8 Введите название колонки тремя строками, уста­ навливая указатель сначала в клетке В5, затем для вво­ да следующих строк - в клетках В6 и В7: 8>'':ТАРИФ 3>": 3>": Установка ширины колонки С и ввод названия О 8 8 В соответствии с расчетом ширина колонки рав­ на семи позициям (6+1 - для символа :). Для вас уже не составит труда изменить ширину этой колонки. На­ помним, что надо нажать клавиши / F К С ЕТ 7 ЕТ (ла­ тинский алфавит) или / Ф К Ц ЕТ 6 ЕТ (русский алфа- 131
вит). После этого ширина колонки изменится и станет равной 7. 888 Установите указатель в клетке С5 и введите строку 8>": кол. Установите указатель в клетке С6 и введите строку 9>":0ТРАБ. Установите указатель в клетке С7 и введите строку 8>": ДНЕЙ Установка ширины колонки D и ввод названия 8 8 8 Согласно расчету ширина графы равна 11 пози­ циям (10+1-для символа :). Введите команду /FKDЕТ11ЕТ(латинскийалфавит)или/ФКДЕТ11 Et (русский алфавит). Ширина колонки О станет рав­ ной 11. 888 Установите указатель в клетку 05 и введите строку 13> ":ЗАРАБОТНАЯ Установите указатель в клетку 06 и введите строку 11>": ПЛАТА Установите указатель в клетку 07 и введите строку 3>'': Ввод горизонтальной черты Заканчивается формирование шапки таблицы гори­ зонтальной чертой . Установите указатель в клетку А8 и наберите в строке ввода повторяющийся текст 3>'= После нажатия клавиши ввода на экране появится во всех клетках восьмого ряда символ - . 132
Итак, вы проделали все операции по формированию з а го л овка и шапки таблицы. Для проверки правильности в ыполнения изложенных в этом параграфе действий с ве рьтесь с приведенным ниже изображением заголовка н ш а пки электронной таблицы. 1'! 2! 3! А !!В!!С!! ВЕДОМОСТЬ НАЧИСЛЕНИЯ ЗАРАБОТНОЙ ПЛАТЫ D 4'============================================ 5! ФАМИЛИЯ :ТАРИФ: КОЛ. :ЗАРАБОТНАЯ 6! ИМЯ,ОТ'-jЕСТБО :ОТРАБ.: ПЛАТА 7! :ДНЕй: 8!============================================ 9 ! f<DPHEB К. К. 10!ЛАПИН Л.Л. 11!МАРК08А М . М . 7.2 8.9 5.5 20 ..:~..J 18 144. (l(i 222.50 99.00 12!=====;;;:========:::::==:======::;:=::11======::============== 13 ! итого 465. 50 Надеемся, что все совпало. Если нет, то наберитесь т ерпения и проделайте еще раз те действия, которые, как ока залось, не увенчались успехом . Теперь нав е рняка все в порядке. /Ке л аем дальнейших успехов и п е рейдем к опи­ с анию процедуры ввода данных. 4.2 .4 . ВВОДИМ ДАННЫЕ В ТАБЛИЦУ Вв од текста в колонку А В колонку А внесите фамилии и инициалы У становите указатель в клетку А9 и наберите к ак текстовое данное, т. е . начиная с 11 : 13>''КОРНЕВ К. К. Введите эту строку, нажав клавишу ЕТ. 133 рабочих . фамили ю
Обратите внимание/ Введе н ный текст всегда будет располагать­ ся начиная с левого края . Переместите указатель в клетку AlO и введите строку 12>" ЛАПИН Л. Л. Переместите указатель в клетку А 11 и введите строку 14> '' МАРКОВА М. М. Ввод чисел в колонку В В колонке В содержатся числа, соответствующие та­ рифным ставкам рабочих. Установите указатель в клетку В9 и введите первое число 5>7.20 Установите указатель в клетку BlO и введите строку 5>8.90 Установите указатель в клетку В 11 и введите строку 5>5.50 Здесь стоит остановиться и сделать ряд замечаний по вводу данных: ф при вводе в клетку число располагается, прижимаясь к правому краю, а текст - к левому краю; ф при вводе числа в клетку автоматически выделяется пустая позиция слева, чтобы число не сливалось с содер­ жимым левой клетки. Например, если ширина колонки - семь позиций, а вы вводите число - 12 .3567, состоящее из восьми позиций, то оно округляется и будет состоять из шести позиций, т. е. -12 .36; + при вводе текста позиция между колонками не выде­ ляется. Ввод чисел в колонку С В графе С содержатся сведения о количестве отрабо­ танных дней каждым рабочим за истекший месяц. Уста­ новите указатель в клетку С9 и введите строку 3>20 134 .
Уста новите указатель в клетку ClO и введите строку 3>25 У стан овите указатель в клетку С 11 и введите строку 3>18 Все введенные исходные данные изображены в элект­ рон ной таблице, представленной на стр. 133. В вод формул в колонку D В ко л онке D будут размещены результаты расчета з аработ ной платы по формуле Z=TK. Что такое формулы? Формулой в электронной таблице называется арифме­ тическо е выражение. Вводите формулы в каждую клетку так же, как и числа. Прежде чем приступить к вводу фор­ мул, ознакомьтесь с некоторыми общими правилами их образования: ф формула, так же как и любое арифметическое выраже­ ние, образуется из знаков операu,ий, круглых скобок и операндов. Операндами могут быть числовые ко11станты, числовые перемен­ ные и фушш.ищ ф соблюдается традиционный порядок выполнения дейст­ ви й: возведение в степень ( /\); умножение (*) или деле­ ние (/), сложение ( +) или вычитание (-); + круглые скобки ( ) служат для изменения принятого порядка выпо J1 нения арифметических действий; + в качестве числовых переменных используются назва­ ния клеток, называемые ссылками; + в формулах часто оперируют наиболее употребитель­ ными в математ1ше функциями, для которых введены ус­ ловные обозначения, например: для вычисления функций ех - ЕКС (Х), для определения целой части числа - ЦЕЛ (Х) и т. д.; в качестве аргументов можно исполь­ зовать константу, арифметическое выражение, ссылки. 135
Как вводить формулы? Приступим к вводу формул в клетки D9, DlO, Dll. В качестве операндов в формулах служат названия кле­ ток (ссыJiки). Для вычисления заработной платы, скажем, Корневу К. К. (см . стр . 133) надо перемножить тариф (клетка В9) и количество отработанных дней (клетr<а С9), т. е. В9 *С9. Для удобства ввода фор мул со ссылками переключите регистр на латинский алфавит, нажав кл а­ вишу Ф В Р (индикатор погаснет). Установите указатель в клетке D9. В строке ввода на­ берите и введите 6> В9*С9 В клетке D9 появится число 144=7.2 :\020 . Указате ль передвинется в след у ющую клетку указанного направ л е­ ния. Убедитесь в том, что ваши действия правильны. П е­ редвиньте ука затель снова в клетку D9. Тогда в строке состояния, там, где помещается содер жи мое клетки , вы увидите сообщение ФОРМ = В9*С9. Это означает, что в клетку D9 была введена формула. Установите указатель в клетку D 10, В строке ввода наберите и введите 6>В10*С10 В клетке D 1О появится число 22 2. 5 . Установи те ука­ з атель в клетку D 11. В строке ввода наберите и в ведите 6> Bl 1*Cll В клетке D 11 появится число 99. Располагаются чис­ ла в таблице после ввода формул, прижимаясь к правому краю, т. е. 144 222.5 99 Как форматировать числа в колонке? Как вы понимаете, такое представление чисел в ко­ лонке D таблицы нежелательно . Надо, чтобы каждый раз ­ ряд числа занимал определенное место . Для наглядного 136
о тображения заработной платы в этой колонке следует пр ед с тавить числа с точностью до двух десятичных зна­ ков . Сделать это достаточно просто, если вы воспользуе7 тесь командой форматирования F с параметром ,Ц', кото~ р ы й дает возможность представлять числа в требуемом ф о рмате . С командой F вы ознакомились раньше, при ф орматировании ширины колонки. Теперь воспользуйтесь е ю для более наглядного изображения числа . Для ввода э той команды нажмите следующую последовательность клавиш:/FКDЕТ+:i._ ЕТ (латинский алфавит), где / F - название командь;; К - ука з ание на то, что форма­ ти р у ется колонка; D- имя колонки; ЕТ- клавиша вво­ д а ; :О: - выбранный формат. После выполнения команды вы увидите, что в графе D расположение чисел изменится и будет таким, как представлено в электронной таблице на стр . 133 : 144.00 222.50 99.00 Для завершения первого этапа проектирования табли­ цы вам осталось сформировать итоговую строку . 4.2.5. ФОРМИРУЕМ ИТОГОВЫЕ РЕЗУЛЬТАТЫ Формирование большинства таблиц заканчивается строкой, где размещаются итоги. Проведите горизонтальную черту в электронной табли­ це. Для этого установите указатель в клетке А12 и введи­ те строку 3>'= Во всех клетках 12-го ряда появится знак = . Переве ­ дите указатель в клетку А13, переключитесь на регистр с русским алфавитом и введите строку со словом ИТОГО : 9>" итого 137
Расчет итога про в едите по ко)юнке D «ЗАРАБОТНАН ПЛАТА» и запишите его в клетку D 13, предварительно установив там указатель. Для подсчета общей суммы за­ работной платы воспользуйтесь функцией суммирования СУМ и введите строку 12>СУМ (Д9:Д11) В клетке D 13 появится число 465.50. Убедитесь в пра­ вильности расчета, сложив три числа 144 + 222,5 + 99= = 465,5. Выражение Д9:Дl 1, являющееся аргументом функции СУМ, означает, что суммируется содержимое клеток D9, DlO, Dl 1. · Пояснение к функt{UU СУМ Эту функцию рекомендуем применять при суммирова­ нии нескольких слагаемых. В скобках через запятую пе­ речисляются клетки и блоки, значения которых следует просуммировать. Возможно, вам понадобится определить сумму чисел, находящихся в разных рядах и колонках. Например, для определения суммы чисел, находящихся в клетках Al, А2, АЗ, А4, В7, В8, СЗ, D4, D5, Dб, доста­ точно ввести в соответствующую клетку функцию, исполь­ зуя русский алфавит: СУМ {Al:A4, Б7, Б8, ЦЗ, Д4:Д6) 4 .2 .6 . ПЕЧАТАЕМ ТАБЛИЦУ Закончив формирование таблицы, вы хотите ее напе­ чатать. Это возможно сделать командой О, где вам пре­ доставляются две возможности: + в соответствии с первым вариантом, названным «DАН­ НЫЕ», распечатывается таблица с конкретными числами; • согласно второму варианту, названному «FОРМУЛЫ», напечатаются формулы, содержащиеся в клетках, причем 138
в каждой строке печати будет содержаться одна клетка с соответствующей формулой. Наберите в строке ввода и введите 3>/0 Появится подСI{азка «ПОКАЗЫВАТЬ DАННЫЕ ИЛИ F ОРМУЛЬI». Вам нужна вся таблица. Поэтому нажмите клавишу D, тем самым выбрав вариант «DАННЫЕ». Появление , новой подсказки «УКАЖИ МЕСТО» вынуждает вас ука­ з ать конкретную область таблицы. Такой областью может сл ужить клетка, несколько рядом стоящих клеток (блок), ряд, колонка, вся таблица . Для изображения диапазона клеток указываете первую и последнюю клетки, разделив их двоеточием. Для печати всей таблицы наберите слово ВС Е и нажмите клавишу ЕТ. Таким образом, строка вво­ д а примет вид: 22>/ОIПЕЧАТ., DАННЫЕ, ВСЕ, а в строке подсказки появится новое сообщение «УКАХZИ УСТР.- ВО/РЕЖИМ:АЦПУ, NАСТРОйКА, КОНСОЛЬ ИЛИ DИСК». Для печати на принтере достаточно нажать клавишу А. Через несколько секунд вы держите в руках лист с отпечатанной таблицей. Итак, для печати на принтере всей таблицы вы нажа­ ли клавиши: /OD ВСЕ ЕТ А. Запись на диск 4.2 .7. ЗАПИСЫВАЕМ ТАБЛИЦУ НА ДИСК, СЧИТЫВАЕМ ТАБЛИЦУ G ДИСКА После окончания работы с таблицей запишите ее на диск, так как выключение компьютера приводит к стира­ нию содержимого оперативной памяти и ваша таблица не 139
сохранится. Воцюльзуйтёсь командой s ·(SOXPAH.) . Вве­ дите команду / S. В строке подсказки появится сообrцение «УКАЖИ ИМЯ ТАБЛИЦЫ (ИЛИ 11 ЕТ 11 ДЛЯ ОГЛАВ­ ЛЕНИЯ)». Задайте имя таблицы и введите его. Имя может со­ стоять из одного - восьми символов и предшествующего имени дискового устройства с двоеточием. Присвоим на­ шей таблице имя ЗАРПЛАТА и запишем его на диск А. Учитывая, что ВАРИТ АБ находится на том же диске, в имени таблицы можно опустить имя дисковода. Набе­ рите слово ЗАРПЛАТА и нажмите клавишу ввода ЕТ. Тогда строка ввода примет вид 20> / SОХРАНИТЬ, ЗАРПЛАТА В строке подсказки появится сообrцение «\VCE, ZНА­ ЧЕНИЯ ИЛИ/\ АСТЬ». Для записи всей таблицы нажмите клавишу W, и команда начнет выполняться. После записи таблицы на диск вы уже не зависите от компьютера. Можете споко;1- но вынуть диск и выключить компьютер или выйти в опе­ рационную систему командой /QD. Запись в оперативную память На следующий день у вас появилось желание вновь поработать с таблицей, зарегистрированной под именем «ЗАРПЛАТА». Включите компьютер, загрузите с диска в оперативную память ВАРИТАБ, введя имя А>VП А затем воспользуйтесь командой Т (ТАБЛ.) для записи таблицы с диска в оперативную память . Нажмите клави­ ши/ Т, и в строке подсказка появится сообщение «УКАЖИ ИМЯ ТАБЛИЦЫ (ИЛИ 11 ЕТ" ДЛЯ ОГЛАВЛЕНИЯ)». Наберите имя таблицы ЗАРПЛАТА и нажмите клавишу ЕТ. Строка ввода примет вид 17> /ТАБЛ., ЗАРПЛАТА В строке подсказки появится новое сообщение «WCIO ИЛИ /\ АСТЬ ТАБЛ.». Для переписи всей таблицы на- 140
жмите клавишу W, и команда начнет выполняться. После о кончания работы команды на экране появится таблица с именем «ЗАРПЛАТА». Возможно, что вы забыли имя таблицы . Не отчаивай­ тесь, это легко восстановить. После появления подсказки «УКАЖИ ИМЯ ТАБЛИЦЫ» нажмите клавишу ЕТ, и на экране появится меню, с помощью которого вы вызовете каталог таблиц ВАРИТАБа, нажав клавишу W. Ознако­ мившись с содержанием каталога, для выхода из него нажмите ЕТ, а затем одновременно клавиши CTRL Z, и вы вернетесь к прежнему состоянию экрана, где в стро· ке подсказки находится 8>/ТАБЛ., Далее введите имя таблицы и действуйте так же, как и ранее. 4.3. ТЕМ, КТО ХОЧЕТ ЗАКРЕПИТЬ И РАСШИРИТЬ ВОЗМОЖНОСТИ ПРИМЕНЕНИЯ ВАРИТАБа План действий Полагаем, что вы уже владеете минима льно необходи­ мыми средствами ВАРИТАБа. Тогда попробуйте полностью построить электронную таблицу, идентичную табл. 4.3. При этом вы сможете ознакомиться с рядом дополнитель­ ных средств: ф автоматической записью в диа п азон клеток, идентич­ ных по содержанию формул, но отличных по названиям переменных (ссылкам); + созданием и использованием вспомогательных таблиц; ф редактированием предыдущей таблицы; + использованием функций логики и поиска . Дальнейшее изложение будем вести в более сжатой форме, расширяя его только для пояснения новых средств. Вам необходимо проделать следующее: + дополните таблицу колонками «УДЕРЖАНИЯ» 141
и «СУММА К ВЫДАЧЕ», одновременно проводя их фор- матирование; . ' ф проведите редактирование таблпцы, представленной на с1"9. 133, вводя пустую строку и названия трех новых колонок, затем введя формулы расчета в каждую ~<летку этих колонок, вы получите результаты; + при записи формул вам придется воспользоваться ло ­ гическими фующиями и вспомогате ль ными табл. 4.1 и 4.2 расчета налогов . Сфорл-~uруйте шапку Ширина каждой новой графы (см. табл. 4.3) равна шести позициям плюс одна позиция слева для символа :. Проведите форматирование колонок Е, F, G. Установите указатель в колонке Е и введите команду форматирования, нажимая клавиши / F К Е ЕТ 7 ЕТ. Установите указатель в колонке F и введите команду ;FКFЕТ7ЕТ Установите указатель в колонке G и введите коман ду /FКGЕТ7ЕТ Введите названия колонок 8 8 ф Установите указатель в клетке Е5 и введите 13>": УДЕРЖАНИЯ 8 8 8 Верхнюю и нижнюю горизонтальные черты шап- 1ш вводить не надо, так как вы в предыдущем разделе ввели символ = во все клетки соответствующих рядов. 8 8 8 Проведите горизонтальную черту в клетках E6- F6. Для ограничения горизонтальной черты справа уста­ новите указатель в клетку G6 и введите кавычки. Затем установите указатель в клетку Е6 и введите 3>."= Во всех позициях клеток Е6, F6 появится символ = . 8 8 8 Увеличьте длину шапки таблицы за счет введе­ ния дополнительной пустой строки после ряда 7. Сделай­ те это командой WCTABKA. Введите команду f.W R 8 ЕТ. 142
Н а экране после ряда 7 появится пустая строка, которая имеет номер 8, а все последующие ряды изменили преж­ шою нумерзцИю нз единицу, т. е. стали 9, 10, .. . 8 8 8 Введите названия колонок . Е, F . Установите ука­ затель в клетку Е7 и введите 9>": ПРОФ. Установите указатель в клетку Е8 и введите 9>":ВЗНОСЫ Установите указатель в клетку F7 и введите 9>":ПОДОХ. Установите указатель в клетку F8 и введите 9>": НАЛОГ Введите название колонки G. Установите указатель п кл етку G5 и введите 9>": СУММА Установите указатель в клетке G6 и введите 6>": к Установите указатель в клетке G7 и введите 9>":ВЫДАЧЕ Ввод формул в колонt'У «ПРОФ.ВЗНОСЫ» Расчет профсоюзных взносов ведется по формуле W =0,01Z (см . параграф 4.2 .1), т. е. в клетки электрон­ но й таблицы должны быть записаны фор м улы, схож и е п о своему назначению , но отличные по используемым в них ссылкам. Можно ли автоматизировать процесс з аписи идентичных формул в электронной таблице? Да, и этому вы научитесь, если внимательно отнесетесь к то­ м у, что изложено ниже. Представьте себе, что у вас не три клетки, как в на­ ше м примере, а сотни таких клеток . Набирать и вводит ь в каждую клетку формулу одинаковой структуры - про ­ цесс утомительный. Из это~о положения есть простой выход - использовать команду размножения R. - Эта команда в указанные клетки записывает требуемую фор­ м улу с одновременным изменением в ней ссы лок. 143
- · Внимание! Ссылки в нозьiх . скопированных формулах отражают . такое же взаимное расположение клетки-результата и клеток с исход­ ными даннЪ1ми, как и в формуле-оригинале, которая копируется командой R. -. Итак, у вас имеется клетка EIO, в которой хранится формула -оригинал O.Ol*DlO. Вам надо, чтобы в клетке Ell находилась формула O.OI*Dll, а в клетке Е12- О.01 * D 12 . Как видите, формулы различаются только ссылками. Причем указывают они на клетки, располо­ женные относительно результирующих клеток так же, как в формуле-оригинале. Подобное автоматическое изменение с~ылок в копируемой формуле называется автоматиче­ ской настрой,кой формулы, в отличие от индивидуальной настройки, где вам предоставляется возможность влиять на настройку, отменяя ее или разрешая. Командой размножения R восriользуйтесь следующим образом: + введите команду /R, и в строке подсказки появится сообщение «ОТКУДА? УКАЖИ МЕСТО», т. е. вам надо указать клетку, где хранится формула-оригинал,- ElO; + нажмите клавиши ElO ЕТ, вновь появится сообщение «КУДА? УКАЖИ МЕСТО, ЗАТЕМ пЕТп; или "," ДЛЯ ВАРИАНТОВ»; + вам необходимо скопировать формулу с настройкой в клетки El l, Е12; для этого задайте диапазон клеток, нажав клавиши Ell:E12 ЕТ; + вы увидите, что в клетке Е 11 появилось число 2.225, а в клетке Е12 - число 0.99; + убедиться в правильности копирования вы можете, установив указатель сначала в клетку El l, а затем - в клетку Е 12; при этом наблюдайте за строкой состояния, где будет индицироваться содержимое этих клеток в виде формул. Формирование вспомогательных таблиц Вспомогательные табл. 4.1, 4 .2 разместите в свободных колонках электронной таблицы: табл. 4.1 займет колонки 144
11 , 1, табл. 4.2 - колонки J, К. Для большей наглядности у простите названия табли-ц и ее граф. Установите на экране колонки Н, 1, J, К. Для этого п ереместите указатель в крайнюю правую колонку Н и нажмите четыре раза клавишу ЕТ. О 8 Формирование первой таблицы. Установите указатель в клетку Hl и введите 20>"НАЛОГ ДО 100 РУБ. Установите указатель в клетку Н2 и введите 3>'= Установите указатель в клетку НЗ и введите 10>"3АРПЛАТА Установите указатель в клетку Н4 и введите 4>'= Установите указатель в клетку 13 и введите 10>": НАЛОГ Итак, вы закончили формирование заголовка и шапки первой таблицы . Перейдите к вводу данных. Установите указатель в клетке Н5 и введите 95, затем · переместите указатель в клетку 15 и введите 7.60. По вто­ р ите аналогичные действия для последующих клеток Н6 , 16, Н7, 17, ... , вводя туда числа из табл. 4.1 , Результатом ваших действий будет таблица, которая изображена ниже. Н 11 I 1 ! НАЛОГ 110 1СЮ РУБ. 2!===~=============~ 3!3АРПЛАТА : НАЛОГ 4!:=~=2=~ === =~== ===~ 5! 95 7.6 6! 96 7.72 7! 8! 9! 10! 6 9.7 98 99 100 Заказ No 594 7.84 7.96 8.08 8.2 145
ф 8 8 Формирование второй таблицы. Установите указатель в клетку Jl и введите 21 >"НАЛОГ СВЫШЕ 100 РУБ. Установите указатель в клетку JЗ и введите 10>"3АРПЛАТА Установите указатель в клетку КЗ и введите 10>~': НАЛОГ .,. ·' Горизонтальную черту не вводите, так как она введе­ на предыдущими дейстиями при формировании первой таблицы. После формирования заголовка и шапки таблицы пе­ рейдите к вводу данных из табл. 4.2. Для того · чтобы в дальнейшем для определения налога воспользоваться функцией ПОДБОР, следует представить числа графы «ЗАРАБОТНАЯ ПЛАТА» из табл. 4.2 в ином виде. Уста­ новите указатель в клетку J5 и введите число 101. Пере· ведите указатель в клетку К5 и введите число 1.3. Повто­ рите аналогичные действия для последующих пар клеток J6, К6, J7, К7, ... ; вводя данные табл. 4.2 . Результатом ваших действий будет таблица, изображенная ниже. J !!к 1 1 НАЛОГ СВЫШЕ 100 Р. 2!================== 3 ! ЗАРПЛАТА ' НАлоr· 4'================== 5! 101 1.3 6! 201 7! 301 8! 401 9! 501 10! 601 2.6 3.9 5.2 6.5 7.8 Ввод формул вычисления подоходного налога Для вычисления подоходного налога согласно услови­ ям, изложенным в параграфе 4.2.1, воспользуйтесь функ­ циями. Поиск налога во вспомогательных таблицах мож- 146
но организовать с помощью функции ПОДБОР. Функция И Ф (если) позволит вам записать условие поиска в этих таблицах. Учитывая, что налог исчисляется исходя из целой части числа, характеризующего заработную плату, ис пользуйте функцию ЦЕЛ. С назначением и правилом использования этих функций вы можете ознакомиться в параграфе 4.4 .6. Установите указатель в клетку FlO и введите, поль- зуясь регистром русского алфавита, .. 67 >ИФ (ЦЕЛ (ДlО) < =100, ПОДБОР . (ЦЕЛ (ДlО), Х5:Х10), 8.2+ПОДБОР (ЦЕЛ (ДlО), й5:И10)) Сейчас мы продемонстрируем еще один способ копи­ рования клеток, удобный, когда надо изменять не все с сылки. Установите указатель в клетку FlO. Чтобы каждый раз не набирать эту формулу, в дальнейшем воспользуй­ тесь командой копирования (К) и редактi1рованпя (Р) . Введите команду ;К FlO ЕТ Fl 1 ЕТ. Затем вызоnите со­ держимое клетки Fl 1, т. е. копию формулы, и проведите редактирование командой Р. Для этого введите команду / Р F 11 ЕТ. С помощью курсора исправьте все · ссыJши. После редактирования формула примет вид ИФ (ЦЕЛ(Дl1)<=100, ПОДБОР (ЦЕЛ(ДJ1),Х5:Х10), 8.2+ПОДБОР (ЦЕЛ(Дll), 115 :1110)) Учитывая, что ВАРИТАБ во многих формулах автома­ тически замещает русские буквы латинскими, указанная формула идентична следующей: IF (CEL(Dl1)<=100, PODBOR (CEL(Dll), Н5:Н10), 8.2+PODBOR (CEL(Dl 1), JS:JlO)) Установите указатель в клетку FI2 и проведите ана­ логичные действия: /KF11 ЕТ F12 ЕТ и /PF12 ЕТ. Фор­ мула, записываемая в эту клетку, примет вид ИФ (ЦЕЛ(Д12)<=100, ПОДБОР (ЦЕЛ(Дl2), Х5:Х10), 8.2+ПОДБОР (ЦЕЛ (ДI2), й5:й10)) 147
В процессе ввода этих формул в клетки FlO, Fl 1, Fl2 · там появляются числа 9.5, 10.8, 8.08 . . 1 . Результат, аналогичный описанному выше, вы можете ; получить, если воспользуетесь командой размножения ' R · с параметром индивидуальной настройки S, где вы отве­ том Д(а) · или Н(ет) определяете настраивае мые ссылки. Ввод форжул вычислепия сулмtы и итога е ф ~ Воспользуйтесь формулой S =Z-W из парагра­ фа 4.2.1. Установите указатель в клетку GlO и введите 12>D10-E10-f10 Далее примените команду размножения R Для записи в клетки Gl 1, G12 идентичных по структуре формул, но содержащих от личные от исходных ссылки. Введите команду / R GlO ЕТ Gt 1:С12 ЕТ. Результатом описанных выше действий будет появление в клетках G 1О, · G 11, 012 чисел 133.06, 209.48, 89.93 . 8 е Для расчета итога по колонке G воспользуйтесь уже . известной формулой вычисления суммы. Установите в клетке G 14 указатель и введите 13>СУМ (G10:G12) После ввода этой формулы в клетку G 14 там появляется и:rоговый результат, равный 432.47. Вы получили электронн ую таблицу «ВЕДОМОСТЬ НАЧИСЛЕНИЯ ЗАРАБОТНОИ ПЛАТЫ» Вы проделали все основные операции по формирова­ нию электронной таблицы и заполнения ее данными. ВАРИТ АБ автоматически по мере ввода данных произво­ дил перерасчет уже заполненных колонок и выводил ре­ зультат в клетках. Для вас этот процесс расчета был практически незаметен. Электронная таблица по расчету заработной платы в соответствии с формой, приведенной в табл. 4.3, имеет следующий вид. 148
А !!В!!С!! D !!Е!!F1!G BEJJ.OMOCTb НАЧИСЛЕНИЯ ЗAPAБOTHOlll ПЛАТЫ ~ ФАМИЛИЯ l• ИМЯ, ОТЧЕСТВО 7 8 :ТАРИФ~ КОЛ. :ЗАРАБОТНАЯ:УJ].ЕРЖАНИЯ : СУММА :ОТРАБ.1 ПЛАТА ============~=: К : ДHElll : : ПРОФ. : ПОJ].ОХ. : ВЫJ].А'~Е :ВЗНОСЫ: НАЛОГ 9 ===== =============~================R==============~=~======= ~= === 10 КОР НЕВ К.К. 11 ЛАПИН Л.Л. 12 МАР1(08А М.М. 7.2 8.9 5.5 20 25 18 144.00 1 . 44 9.5 133. 06 222.50 2.225 10.8 209.48 99.00 .9 9 8.08 89.93 13 =========================~~=========================~===~======~= 14 итого 465.50 432.47 Если вы посмотрите на эту таблицу повнимательнее, то заметите некоторые погрешности в оформлении. Ис­ пра в ить их достаточно легко, используя уже известные команды, например, редактирования (Р) или изменения форматов {F). 4.4 . ОБЩАЯ СПРАВКА О ВАРИТАБе 4.4.1 . УПРАВЛЯЮЩИЕ СИМВОЛЫ И «МЕСТО» Вам будет интересно ознакомиться с содержанием этого параграфа только после работы на персональном компьютере РОБОТРОН 1715 по методике, изложенной в предыдущем параграфе. Сюда же вы будете обращать­ ся и в дальнейшем для более Глубокого изучения элект­ ронной таблицы. Здесь приведена справочная информация о командах и управляющих символах ВАРИТАБа. Пояс­ нение к каждой команде, включая иллюстративный мате- . 149
Клавиша 1 CTRL S ("-) CTRL D (-~) CTRLE(t) CTRL X(t) Таблица 4.4 Управляющие символы Действия компьютера и пояснения Начало команды. Этот символ предшествует вводу любой команды Перемещение указателя в другую клетку. При нажатии этой клавиши в строке ввода появля­ ется стрелка = = >. а в ст~: оке подсказки - сообщение «УКАЖИ , КУДА ПРЫГНУТЬ». Вам необходимо ввести номер клетки. Например, нажав клавиши -== ЕЗ ЕТ, вы переместите ука­ затель в клетку ЕЗ. Режим пересчета таблицы. Этим симБолом пользуются после установки командой задания параметров представления и пересчета/АИ ре­ жима управляемого расчета. В этом режиме пересчет таблицы осуществляется только после нажатия клавиши 1. В остальных случаях кла­ виша 1 Не действует Перемещение указателя между окнами . Кла­ вишу ; следует нажимать одновременно с к л а­ вишей временного перехода на верхний регистр ВПДР Перемещение указателя < > по таблице на одну клетку влево вправо вверх вниз при условии, что не начато заполнение строки вБода. В скобках приведена идентичная клавиша дЛ\! другой версии ВАРИТ А Ба Редактирование строки вво п.а (начато запол­ нение строки ввода). Четыре клавиши направ­ ления работают только в строке ввода 150
I<лавиша CTRL S (+-) или CTRLD (-) CTRL Е( t) CTRL. Х (i.) CTRL Z или 1+- " Действи~ 1<омпыотера и поясне ния Курсор перемещается влево или вправо по стро­ ке ввода. Для исправления символа достаточно установить курсор в требуемую позицию и на­ жать нужную клавишу Вставка пробела в позиции, указанной курсором Удаление позиции строки ввода, указанной курсором Очистка строки ввода Начало ввода текста в клетку Начало ввода гiовторяющеrося текста во все подряд стонщие пустые клетки начиная с теку­ щей и в направлении, указанном в строке состоя­ ния до первой занятой клетки риал в виде рисунков, примеров, таблиц, отражает ее основные функции. Перечень управляющих символов ВАРИТАБа приведен в табл. 4.4 . · При работе с командами вы столкнетесь с необходи­ мостью указать «место» - клетку, ряд, колонку, несколь­ ко рядом стоящих клеток (блок), с которыми будут про­ изводиться соответствующие действия. Для указания та­ кого места воспользуйтесь табл. 4.5. Для управления работой электронной таблицей слу­ жат команды. Каждая команда начинается с символа / (слэж). На жав клавишу с этим символом, вы увидите, что в строке подсказки появится сообщение УКАЖИА,Б,В,Г,Д,3,И,К,Л,М,Н,О,П, Р,С,Т,У,Ф,Я? Вам предлагается ввести команду, с первgй буквой имени команды . Ввод изменит состояние строки подсказки, где 151 нажав клавишу команды вновь вам будет пред-
«Место» Клавиши Наименование Цифровые 1-254 Ряд Одна или две бук- Колонка DЫотАдовк Буквы колонки Клетка и цифры ряда Буквы и цифры Блок -две : буквы · и цифры ссылки, разделен­ ные двоеточием ЕТ ВСЕ ESC Текущий ряд, колонка или клет­ ка Вся таблица Просмотр со- держимого клеток таблицы в . процес­ се формирования строки ввода 152 Таблиц а 4.5 Пример 25-указывается 25-й ряд В - указывается колонка В (латинский алфавит) · ВК - указывGется колон- ка ВК (латинский алфавит) 015- указывается к лет - ка 015 lлJвlc В2: С4- указывают- 1111 ся клепш 82, 83, 84, 21 1*1* С2, С3, С4 311*1* 411*1* Просмотр содержимого других клеток в процессе заполнения строки ввода. Указатель может переме­ щаться . по таблице при час­ тично заполненной строке ввода. Повторное нажатие ESC отменяет режиы.
; юж е но уточнить содержание введенной команды за счет 1шбо р а дополнительного параметра. Введя параметр, вы м о же т е вновь получить подсказку, и так до тех пор, пока 1юлно стью не будет сформирована команда. Обратите внимание! Работая с электронной таблиuей, пользуй­ ·1· сс ь р усским алфавито м , о чем будет свидетельствовать зажженная J1 а мп очк а индикации на !(Лави ше фиксации регистров алфавита. Одна- 1<0 подсказка или «меню» в каждой команде будет содержать пред­ Jю ж ение о вводе параметра латинского алфавита. Прич е м текст этог о 1 1 р едл ожения приводится на р у сском языке и . в нем первые русские буквы каждого слова заменены на латинские буквы. Эти буквы 11 буду т параметрами ко м анды. Не пере кл юч а й т е регистр! Достаточн о па ж ать соот в етствующую клавишу с латинско й бу1<Вой и ко м анд а в ыпо лнится. Н апример, в строке подсказки появится сообщение « ВЕЗ НАСТР " S НА СТР. ИЛИ ZНАЧЕНИЯ». Нажмите одну из клавиш с латин­ ским и буквами В, S, Z, не пер еключая регистр с русского на латин-· ск ий алфавит. 4.4 .2 . ХАРАКТЕРИСТИКА КОМАНД В Э'ГОМ и последующих параграфах вам предлагается о з накомиться с назначением и функциями каждой коман­ ды. Обратившись к табл. 4.6, вы получите общее пред­ ставление о командах ВАРИТАБа для компьютера Ро­ ботрон 1715. Их всего 19 и они условно могут быть раз­ б иты на три группы по функциональному назначению: ф ·команды изменения содержимого таблицы; + команды взаимодействия таблицы с памятью и ·прин­ тером; + команды управления режимом работы и формой пред­ ставления. Для того чтобы более глубоко изучить возможности каждой команды, рекомендуем ознакомиться с содержани­ ем последующих параграфов данной главы, где по каж- 153
Клапиша алфавита рус- 1латин­ ского СIСОГО Б в п м 1{ р r у в w р м к R о u Таблиц а 4.6 Команды Команда Условное обол1ачение н~значение команды Изменение содержимого таблицы ВЛАНК \VCTABKA РРАВКА МЕНЯТЬ копия RАЗМНОЖ ОАРАНТ UБР. ГАРАНТ Удаление содержимого клеток Ввод ново го ряда или колонки Редактирование содержимого клетки Перемещение колонки или ряд а в другое место Копирование клетки содержимого Повторение части колонк11 или ряда Установка защиты клетки (запрещается ввод в эту клетк у ) Снятие з ащиты клетки (разре ­ шается ввод в эту клетку) Взаимодействие таблицы с памятью и принтером н N 1 NОВАЯ Стирание таблицы из оператив· .' ТАБЛИЦА ной памяти с s SOXPAH Перезап~1сь таблицы из опера- тивной пам я ти на диск т т ТАБЛ Перезапись таблицы с диска в оперативную память л L LИКВИД Стирание таблицы с диска и ряда (колонки) из оперативной памяти 154
Команда Клаоиша алфавита Условное обозначение Назначение команды рус- 1 латин- c 1<oro скоrо о 1 о \отПЕЧАТ 1 Печать таблицы на принтере, вывод на экран или диск Упра вление режимом работы и формой представления я Q Q КОНЧАЮ Завершение работы А А АЛЫЕРН Задание параметров предста в - лении н пересчета 3 z ZАГОЛОВКИ Фиксации заголовка и левых колонок таблицы д D DBA ОКНА Разделение экрана на окна ф F !'ORMAT Изменение формата п р едст ав - ления данных в клетках и 1 IСПОЛНИТ Исполнение командно г о ф аf'1 ла дой команде дается разъяснение, сопровождаемое конк рет­ ными примерами и иллюстрациями. На рисунках ото бр а­ жена иерархическая структура команды, состоящая из нескольких уровней. Пе р вый уровень образуют симво л / и буква команды, а последующие уровни - параметр ы этой команды, представленные также буквами. Полезно вам также разобраться с примерами, кот орые св ед ены в табл. 4.7-4.10, где показано, как в соответствии с вв о димыми управляющими символами, парамет рами, данными изменяются состояния строк ввода и подск а з к и , а в некоторых случаях - и состояние экрана . К а ждая команда иллюстрируется на и более типичным вариан то м 155
ввода. Когда реакция компьютера на ваши ответы будет. неоднозначной, приводится несколы<о вариантов. Перед каждым примером вводите команду /ND. Назначение 4.4.3 . КОМАНДЫ ИЗМЕНЕНИЯ СОДЕРЖИМОГО ТАБЛИЦЫ Группа команд В, W, Р, М, К, R, G, U изменения со­ держимого таблицы позволяет вам отредактировать ста­ рую таблицу и сформировать новую таблицу. Вся работа по р едактированию производится с текущей таблицей, на­ ходящейся в оперативной памяти. В (ВЛАНК). Удаление содержшиого клеток С помощью этой команды вы очистите «место» в таб­ лице, т. е. клетку, ряд, колонку, блок, всю таблицу. При rrzI]] ' __ т_ _ l Г Меото L ____ ____J Рис. 4;2'. Струк- тура команды удаления содер- жимого клеток В (ВЛАНК) вв·оде команды подсказка напомнит вам о необходимости ввода «места», для чего воспользуйтесь рекомендациями табл. 4.5 . На рис. 4.2 команда В представлена в виде двух уровней: на первом - коман­ да, на втором - «место». Примеры использования команды В для очистки клетки Ц5 и блока Al :ЦЗ приведены в табл. 4.7. Рекомендуем! Для сти р ания всей таблицы лучше воспользоваться командой N (NОВАЯ ТАБЛИЦА). Команду В (ВЛАНК) применяй· те для очистки клеток. · 156
W (WCTABI(A). Ввод нового ряда али колонки С помощью этой команды вы можете вставить пустой · ря д или колонку в любое -место таблицы. При этом про­ из ойдет переименование всех рядов или колонок начиная со вставленного ряда или вставленной колонки. На рн с. 4.3 команда W представлена тремя уровнямш + на первом вводите коман- ду; Г7ТiА/1 ф на втором выбираете ряд ~ или колонку; ф на третьем конкретно у казываете номер ряда или б укву колонки. Пример использования команды \V для вставки пустой колонки В (Б) при­ веден в табл. 4.7. По окон- чании действия команды г__ф __ - , г---К ---, L_lj_Df!.e _!}_!!:.'t!_{]___J L_!!!_К!!!!_o:!_°.!!_Кi!.__J Рис, 4.3. Структура команды ввода нового ряда или колон- ки W (WGTABKA) произойдет переименование колонок. Новая пустая колонка займет место между старыми колонками А и В и получит название В. Старая колонка В переименована на С и т. д. Р (РРАВКА). Редактирование содержимого клетки Эта команда позволит вам внести изменения в содер­ жимое клетки. Предварительно установите указатель в клетку, подлежащую редактированию. В противном случае, хотя по команде Р в строку ввода и будет вы ­ звано содержимое редактируемой клетки, запись отредак­ тированного содержимого клетки будет произведена в ту клетку, где установлен указатель. Введя команду редак­ тирования, следует ответить на предлагаемую подсказку о вводе адреса клетки или просто нажать клавишу ЕТ для вызова содержимого текущей клетки. Затем после 157
- 1:11 Qr) Таблиц а 4.7 Примеры l{Оманд об изменении содержимого таблицы Нажима- 1 Стро1<а 1 емые Пояснения клавиши ввода 1 подсказки Команда В (Б) /В 1 /ВЛАНК 1 УКАЖИ МЕСТО 1 После ввода команды клетка Ц5 ЕТ · /ВЛАНК, Ц5 ЧИСТКА ПРОБЕЛОМ Ц5 (С5) будет пустой /В /ВЛАНК, УКАЖИ МЕСТО После ввода команды блок Al: ЦЗ /ВЛАНК, А! : UЗ ЧИСТКА ПРОБЕЛОМ клеток Al, А2, АЗ, С!, С2, СЗ ЕТ будет пустым Команда W (В) /W /\VCTABKA, RЯд ИЛИ КОЛОНКУ? Старый экран к /WCTABKA, УКАЖИ БУКВУ 1А1в1с1D колон .. колонки 1 1 1 1 БЕТ /WCTABKA, ВСТАВКА 1 10 15 50 колон" Б 21201251601 31301351701 Новый экран 1А1в1с1D 1 11101 115150 21201 125160 31301 135170
- cn <О 1 /Р А4 ЕТ ЕТ /М к АЕТ ЦЕТ /РРАВКА, /РРАВКА, А4 А2+ ЕЗ А2 + E3j2 1 - !/МЕНЯТЬ, /МЕНЯТЬ, КОЛОН., /МЕНЯТЬ, КОЛОН., А, /МЕНЯТЬ, КОЛОН., А, Ц Команда Р (П) ИЗ? УКАЖИ КЛЕТКУ - - - 1 - Команда М (М) RЯД ИЛИ КОЛОНКУ? ИЗ? УКАЖИ БУКВУ колонки В? УКАЖИ БУКВУ колонки - 1 1 Указатель установлен в клетке А4. Вызов содержимого А4 (мож- но нажать только ЕТ) Редактирование формулы с по- мощью клавиш (символов) на- правления \ Запись результата редактиро- вания Старый экран 1А 1в 1.С 1 1 10 1 7 1 0.1 2 1 20 1 7 1 0.2 3 1 30 1 7 1 0.3 Новый экран 1 А1в1с 117 10.1110 217.1.0.2120 31710.3130
~Q Нажимае-1 Строка 1 мые · клавиши ввода 1 подсказки /К /КОПИЯ. Команда К (К) ОТКУДА? (УКАЖИ МЕСТО) Al: А3 //КОПИЯ. А!: АЗ.1 КУДА? (УКАЖИ ЕТ КЛЕТКУ) И "ЕТ" ИЛИ ","ДЛЯ ВАРИАНТОВ Ц2 ЕТ 1/КОПИЯ . . Al: АЗ, Ц2 /К 1/КОПИЯ. АЗ ЕТ 1/КОПИЯ, АЗ, Ц2 s д N /КОПИЯ. АЗ, Ц2, 2* <В2> +вз 2* В2+ <ВЗ> сн.копии ОТКУДА? . (УКАЖИ МЕСТО) КУДА? (УКАЖИ КЛЕТКУ) И "ЕТ" ИЛИ "." ДЛЯ ВАРИАНТОВ ВЕЗ НАСТР.. S НАСТР., ИЛИ ZНАЧЕНИЯ ИСХОДН. КЛЕТКЕ АЗ НАСТР.В2(Д<>Н)? СН. КОПИИ ИСХОДН. КЛЕТКЕ АЗ НАСТР. ВЗ(Д< > Н)? ПЕРЕСЧЕТ ТА БЛИЦЫ Пояснении Копирование чисел из блока в блок АВС Копирование клетки в клетку с индивидуальной настройкой формулы АВСD 5 7 J Г2*LJ2·мl~* Dt..:вз\
- е= .. .. /К !/КОПИЯ. 1ОТКУДА? УКАЖИ МЕСТО El : Е21/КОПИЯ, Е! :Е2. ,КУДА? · , УКАЖИ КЛЕТКУ ЕТ И "ЕТ" ИЛИ "." ДЛЯ ЕЗ ЕТ !~копия. EJ : Е2, 1 ЕЗ /R /R АЗМНОЖ. , ВАРИАНТОВ - Ком-аида R (Р) ОТКУД А ? (УКАЖИ МЕС Т О) А2 ЕТ 1/RАЗМНОЖ., А2. \К УДА? Б4: д4 \/RАЗМНО Ж., А2 ЕТ Б4 :Д4 УКАЖИ МЕСТО, ЗА ТЕМ "ЕТ" ИЛИ 11 11 ДЛЯ ВАРИАНТОВ 1 Исходное состояние !c!DIE 1 ~ После копир ов ан и я с автома- тической настройкой Размножение формулы из од­ ной клетки в несколько клеток
- "" ...., Строка мые -----------,--------------- наЖимае-1 клавиши ввода /R /RАЗ М НОЖ., А2 ЕТ 1 /RАЗМНОЖ., А2, ПОДСI<ЗЗКИ ОТКУДА? (УКАЖИ МЕСТО) КУДА? УКАЖИ МЕСТО, ЗАТЕМ 11ЕТ11 ИЛИ 11 11 ДЛЯ ВАРИАНТОВ И ,: Д4 1 /RАЗМНОЖ., А2, 1 ВЕЗ НАСТР., S НАСТР. 64: д4 ИЛИ ZHA ЧЕНИЯ z /R 1 /!ZАЗМНОЖ" А1: А '>. \ /RАЗМНОЖ" ЕТ Al: АЗ, Ц2: Е2 1 /RАЗМНОЖ., Аl:АЗ ЕТ Ц2: Е2 ОП<У ДА? (УКАЖИ МЕСТО) !<УДА? УКАЖИ МЕСТО ЗАТЕМ 11 ЕТ" ИЛИ 11 11 ДЛЯ ВАРИАНТОВ Пояснения Размножение зна чения из одной клетк и в несколько клеток А1в1с1D1Е 10 20 о 4 РаЗм1{Qжение части коло нки в блок клеток ~w ',
Команда G (Г) /G 1/О А РАНТ.• А2 ЕТ /GAPAHT., А2 f УКАЖИ МЕСТО 1 После установки указателя в клетке А2 ~ строке состояния будет ФОРМ= Аз+в1 После окончания команды РФОРМ= АЗ+.В1 1 1 1 1 - ~ 1 Команда U (У) /U 1/UБР. ГАРАНТ, УКАЖИ МЕСТО После окончания команды в строке состояния пропадет А2 ЕТ /UБР. ГАРАНТ., буква Р А2 ФОРМ= АЗ+ Bl
появления содержимого клетки в строке ввода можно произвести любые действия по редактированию: вставку/ замену, удаление, воспользовавшись управляющиюi: символами_ (клавишами) изменения направления (см. табл. 4.4). На рис. 4.4 изображена структура команды редактирования: + на первом уровне- команда; · - + на втором - ввод номера клетки. ri/IPil Пример использования команды Р r--~-- для редактирования содержимого клепш 1 Номерметки 1 А4 приведен в табл. 4.7 . В клетке А4 на­ '--- ~-------J ходится формула А2+Е3. Сначала уста- Рис. 4.4 . Структу- новите указатель в клетк.е А4. После ра команды ре- ввода команды /Р А4 ЕТ или / Р ЕТ дактирования со- ф держимого клетки в строке ввода появится ормула, изме- Р (РРАВКА) ните ее и нажмите клавишу ввода ЕТ, для записи формулы в ту же клетку. М (МЕНЯТЬ). Перемещение колонки или ряда к г ~ 113? 1 \ Номер ряоа 11А11 j 1 tf!Jк{}a f(Ol/OHKIJ 1 ._ ____r ___ _ г----в ;-----1 1 Номерряо11 1ы11 1 1 tfуква l<O/IOH/(U 1 L--·- - --------j Рис. 4.5. Gтрукту• ра команды пере• мещения колонки или ' ряда в другое место М (МЕ- НЯТЬ} С nомощью этой команды вы смо­ жете переместить в другое место таб­ лицы содержимое колонки _ или ряда. Для этого укажите в команде имя перемещаемой колонки или ряда, а также имя колонки или ряда, ку да производится перемещение. · Невозмо­ жно поместить содер:Жимое колонки на место ряда. При перемещении про­ изойдет переименование колонок (ря­ дов). На рис. 4.5 показана структура команды из четырех уровней: + на первом уровне- команда; + на втором уровне определяете ряд или колонку; + на третьем уровне указываете но- 164
мер ряда или букву колонки, откуда надо перенести ин­ формацию; + на четвертом уровне указываете номер ряда или букву колонки, куда переносится информация. Пример перемещения содержимого колонки А в колон­ ку С приведен в табл. 4.7, где видно, что при перемеще­ нии колонки А занятые колонки В, С сдвигаются влево, а на место колонки С встает колонка А. К (КОПИЯ). Копирование с одержимого клетки Эта команда позволит вам снять копию содержимого клетки, блока, части ряда или части колонки и поместить е е в другое место таблицы. Причем адрес оригинала, с которого снимается копия, должен быть указан пол­ ностью, т. е. номера первой и последней клеток диап а зо­ на. Для указания адреса диапазона, куда помещается ко­ пия, достаточно ввести номер первой клетки, и команд а копирования соответственно оригиналу выдел и т кл ет rш для вс е го диапазона. ~О~ Процесс копирования чи_сел · заключается в том, что копируемые числа записываются на новом м е сте. 8 98 Процесс копирования содержимого клеток с фор­ мулой значительно сложнее. Здесь действует механизм на­ стройки формул. Вспомним, что в формулу наряду с кон­ стантами и функциями входят переменные, которые в электронной таблице называются ссылками или адре­ сами клеток. При копировании с нажатием клавиши ЕТ происходит автоматическое изменение ссылок. Новые ссылки будут · указывать на клетки, так же с,имметрично расположенные относительно результирующей клетки, как и в исходной копируемой формуле-оригинале. Часто воз­ никают ситуации, когда не все ссылки должны изменять­ ся, некоторые должны быть неизменными. В этом случае предусмотрена индивидуальная настройка в команде ко­ пирования К с помощью параметра S. 165
- Структуру команды копирования . (рис. 4.6) образую-u r · несколько уровней: ·г. + на первом уровне вводи_те команду; ф на втором уровне указываете диапазон клеток ориги­ rrала, т. е. откуда вы хотите копировать; fF!~ U,7~+~.1 Г___f:__ _ - - --_____ ·--,-L-_-_-_-_-_--.l_ __I 1 "летш fло~ Часть Часть К Откуда? 1'"' ' ряда колонки J . L---_--::_-:::_-:::_-:::_~===~===~~~-=--=--=--~-- г Номер перfюйметки r'----~кy~iJ,~a~?-- L--------- ---------~ Рис. 4.6. Структура команды копирования содержимо- . го ~<летки К (КОПИЯ) + на третьем уровне указываете номер первой КJiеткн диапазона, куда помещается копия; ф на четвертом уровне нажимаете клавишу ввода Е Т при простом копировании с автоматической настройкой формул; если вы хотите произвести копирование с и1-1ди­ видуалыюй настройкой, то нажмите клавишу , и попаде ­ те на пятый уровень; ф на пятом уровне, называемом уровнем настройки фор- мул, действуют три параметра: В, S, Z. · ~*Ф Параметр В (ВЕЗ НАСТР.) позволяет скопировать без каких-либо изменений формулы и соответствующи е 16б
им вычисленные значения. После копирования как в клеп<ах оригинала, так и новых . клетках вы увидите од110 и то же число (формулу). 88 Параметр Z (ZНАЧЕНИЯ) копирует только конк­ ретные значения клеток оригинала, формулы он не ко­ пирует. 8 88 Параметр S позволяет вносить изменения в копи­ руемые формулы за счет изменения ссылок на кл~;rку ; И спользуя параметр S, вы сможете изменить формулу так , что не все ссылки будут автоматически изменяться, не­ к оторые можно оставить неизменными. Например (табл. 4.8), вы копируете клетку АЗ, где и меется формула Al +В4, в клетку D4, используя пара- таблица 4.8 Ксп~рJЕание содержимого клетки АЗ в нлет ;'у 04 с настрайкой всех ссылок в копируемой фор:v~уле А в с DЕ 1 .''Ь .. ..з 15 Форму.и ;1, IJ ,rлетке - 2 4г;~)'50 0,()(IВUH(f/!e ' . 1А1 +84 - Копия-;:::::=;J 60 Формула !J v, vп ~ к11emf(e-к0flll1 4 ...,.._ ! 20 ,· ~~А !J2+E5 1 5 Цi70 ' -·. метр настройки S для ссылок Al и В4. Тогда в клетку D4 запишется формула D2+E5, поскольку эти ссылки рас­ положены так же симметрично относительно клетки-копии 1)4, как и ссылки в клетке-оригинале АЗ. Настройка фор­ мул производится последовательно по каждой ссы:ше. В строку ввода будет вызвана формула, и указатель уста­ навливается сначала па первой ссылке, затем на второй. Строка подсказки приглашает вас указать ссылку, ко­ торую вы настраиваете. Путем введения ответа Д (ДА) 167
или Н (НЕТ) осуществляется преобразование копируемой формулы. Вы вводите Д или Н столько раз, сколько в фор­ муле имеется ссылок. В табл. 4.7 приведены примеры коцирования чисел блока Al :АЗ, копирования формулы клетки АЗ с индиви­ дуальной настройкой и копирования формул из блока El :Е2 в блок ЕЗ:Е4 с автоматической настройкой. R (RАЗМНОЖ.). Повторение части колоюси или ряда Советуем вам ознакомиться с этой командой после изу- . чения команды копирования содержимого клетки (К). Эти команды очень схожи между собой по структуре об­ разования, вариантам подсказок и вводимым параметрам ответа. Однако надо основательно разобраться, в каких ситуациях использовать ту или другую команду. Обратите вни111ание! Основная разница этих команд заключа ется в следующем: + команда копирования К служит для обычного копирования, кото­ рое можно представить соотношением 1: 1; ф команда размножения R копирует «место» таблицы в несколько аналогичных ,мест, что можно представить соотношением 1:N (оди н оригинал и несколько копий.). Так же как и ком'анда копирования, команда размно­ жения может делать одну копию, но тогда рекомендуем все же воспользоваться командой К. В команде размно­ жения R существуют ограничения на диапазон копиро­ вания: + можно размножать клетку, часть колонки или ряда в клетку, часть колонки или ряда, ряд, колонку; + нельзя размножать блок:, в этом случае появляется со­ общение «ОШИБКА МЕСТА»; + нельзя размножать колонку в колонку и ряд в ряд, на экране появится сообщение «В ДОЛЖНО БЫТЬ ЧАСТЬ РЯДА (КОЛОНКИ)». На рис. 4.7 показана структура команды размножения, имеющая столько же уровней, сколько и в команде копи-· 168
рования. При внимательном рассмотрении структуры вы обратите внимание на различие в формировании диапазо ­ на копирования «ОТКУДА» и «КУДА». , Все нижеследую­ щие уровни идентичны как по форме, так и по соде ржа ­ нию . Для их понимания обратитесь вновь к команде ко­ пирова ния , В табл. 4.7 приведены три примера, в которых показа­ но, как размножить по команде размножения: ф формулу из одной клетки с автоматической настрой­ кой ссылок; + число из одной клетки в блок клеток; + числа из части колонки в блок клеток. 169
Замечание/ При размножении формул действуют т' же правила настройки, что и для команды 1( (КОПИЯ). Задав область, куда бу­ дет помещена копируемая формула, вы можете воспользоваться лю­ бым из вариантов копирования, нажав клавиши: ЕТ- произойдет автоматическая настройка формул; В - формулы и значения скопируются без изменения; Z - скопируются только значения; · S - часть параметров вы можете скопировать как при автома· тической настройке, а часть оставить без изменения. G (GAPAHT). Установка защиты клетtси Эта команда защитит содержимое клетки, ряда, ко­ лонки, блока, всей таблицы от случайного ввода. В даль- 11ейшем при установке указателя в защищенную клетку Рис. 4.8 . Струк· тура команды установки защи- ты клетки G (GAPAHT.) в строке состояния появятся формула или текст, помеченные буквой Р. Эта буква - сигнал о наличии защиты данной клетки. Например, после приме­ нения команды G для клетки А2 (см. табл. 4. 7) в строке состояния будет Р ФОРМ=АЗ+Вl. Структура команды G представлена на рис. 4.8 . U (UБР.ГЛРАНТ). Снятие защиты tслетки С помощью этой команды вы снимите защиту с клет­ ки, ря па, колонки, блока, всей таблицы. После выполне­ Рис. 4.9 . ния команды при установке указателя в ранее защищенную клетку вы увидите в строке состояния формулу или текст без предшествующей буквы Р. Структура команды U представлена на рис. 4.9. Струк- Пример использования команды U для тура команды А2 снятия защиты снятия защиты с !}летки приведен клетки U (UБР. в табл. 4.7. ГАРАНТ.) 170
4.4 .4. КОМАНДЫ ВЗАИМОДЕЙСТВИЯ ТАБЛИЦЫ С ПАМЯТЬЮ И ПРИНТЕРОМ Назначение Эти команды позволяют вам иметь доступ к дискам и принтеру, а таI{Же работать с таблицей как с единым целым, н~ занимаясь ее формированием. Основное назна­ че ние этих команд - организация связи между оператив­ н ой памятью и внешними устройствами (дисководом и принтером). Таблицу илR часть таблицы можно записать н а диск или отпечатать в нужнс~1 формате. Можно вы з вать таблицу с диска в оперативную память или стереть ее и з оперативной памяти. N (NОВАЯ ТАБЛИЦА) . Стирание таблицы из оперативной палtяти Эта команда позволит вам очистить оперативную память и уничтожить на­ ходящуюся в ней текущую таблицу. На вопрос подсказки «СТЕРЕТЬ ТАБЛИЦУ И З ПАМЯТИ?» вы ответите нажатием клавиши с буквами Д (ДА) или Н (Н ЕТ). Будьте внимательны, не со­ х раненную на диске таблицу вы потеряе­ т е безво з вратно . Структура команды очень проста (рис. 4. 10) . Пример исполь­ з о вания этой команды приведен в табл. 4.9. 171 Рис. 4.10. Стр у rс­ тура ком а нды стирания таб ли­ цы из опера­ тивной па мнт и N (NОВ АЯ ТАБЛИЦ А )
- ~/ Таблиц а 4.9 П римеры команд взаимодействия таблицы с памятью и принтером мые Нажимае-1 Строка 1 клавиши ввода j подсказки /N /Nовая таблица 7 д /S /SОХРАНИТЬ, КОТЕТ /SОХРАНИТЬ, КОТ w - /S /SОХРАНИТЬ, КОТ ЕТ /SОХРАНИТЬ, КОТ, Команда N (Н) СТЕРЕТЬ ТА БЛИЦУ ИЗ ПАМЯТИ? DA /NET Команда S (С) УКАЖИ ИМЯ ТАБЛИЦЫ ИЛИ 11 ЕТ 11 для or ЛАВЛЕНИЯ WCE, ZНАЧЕНИЯ ИЛИ ;\АСТЬ? НА ДИСК ... УКАЖИ ИМЯ ТАБЛИЦЫ ИЛИ 11 ЕТ" ДЛЯ orЛ А ВJIЕНИЯ ТАКАЯ ТАБЛИЦА УЖ Е ЕСТЬ С(МЕНИТЬ) ИМЯ, Д( У БЛЬ), П(ЕРЕЗАПИСЬ) По яснения Очистка экр ана и опера­ тивной памяти Запись всей таблицы на диск Запись значения клетки АЗ из текущей таблицы (на экране) в клетку АЗ табл и цы с именем «КОТ», находящейся на диске. \___
- -..J ~ д л /SОХРАНИТЬ, КОТ 1WCE.- ZНАЧЕНИ)'ГИЛИ ;\АСТЬ? /SОХРАНИТЬ. WCE ИЛИ ZНАЧЕ НИЯ? z А3 ЕТ КОТ, ЧАСТ, /SОХРАНИТЬ, КОТ, ЧАСТ, ZНАЧЕН" /SОХРАНИТЬ, КОТ , ЧАСТ, ZНАЧЕН., АЗ /Т 1 /ТАБЛ. , РОЗА ETI /ТАБЛ" РОЗА, W /ТАБЛ., РОЗА, wсю /Т /ТАБЛ" ЕТ /ТАБЛ" w /ТАБЛ. ОТКУДА? (УКАЖИ МЕСТО) В ПАМЯТЬ Команда Т (Т) УКАЖИ ИМЯ ТАБЛИЦЫ (ИЛИ "ЕТ" ДЛЯ ОГЛАВЛЕНИЯ) WCIO, ;\АСТЬ , ТАБЛ? В ПАМЯТЬ". УКАЖИ ИМЯ ТА БЛИЦЫ (ИЛИ "ЕТ" ДЛЯ ОГЛАВЛЕНИЯ) УКАЖИ: S-ВЫБОР УСТР" D-ДИСК , W - ВАРИТАБ 1 На экране появ ля ется _ катало~· таб л иц ВАРИТ А Ба ·причем при записи созда­ ется дубль табли цы , кото ­ рый содер _жит то ль ко зна­ ч ен ие этой клетки. Пара­ метр WCE верхнего уров­ н я записывает содержимое всей та бл ицы на диск. П араме тр WCE нижнего уровня служит для записи содержимого из заданной части таблицы· Вызов таблицы с именем «РОЗА» с диска в опера­ тивную память и на экран Перед вызовом таблицы вы знакомитесь с катало­ гом БАРИТ АБа. находИте имя таблицы и вызываете ее в оперативную память и на экран
Нажимае-1 Строка \ мые 1 Пояснения клавиши ввода подсказки 1 1 ЕТ jТАБЛ., CTRL Z /ТАБЛ. , КОТ ЕТ /ТАБЛ., КОТ, Jwcю, ;\АСТЬ ТАБЛ. w /ТАБЛ ., КОТ, WCIO /В ПАМЯТЬ... Команда L (Л) ~1 /L / /LИКВИД .. RЯд. КОЛОНКУ или ТАБЛИЦУ?. т 1/LИКВИД., ТАБЛ .. УКАЖИ ИМЯ ТАБЛИЦЫ Стирание всей таблицы (ИЛИ '' ЕТ" ДЛЯ с диска ОГЛАВЛЕНИЯ) КОТЕТ1 - 1 УДАЛЕНИЕ .. . \! 1 RЯД, КОЛОНКУ 1 /L / /LИКВИД. , ИЛИ ТАБЛИЦУ? Стирание колонки А из 1/LИКВИД., 1УКАЖИ БУКВУ текущей таблицы опера- 1{ тивной памяти . На диске колонк .. колонки все осталось без изменения 1 ,АЕТ
- -. .] Q1 /О ) /ОТПЕЧАТ., D /ОТПЕЧАТ., DАННЫЕ ВСЕ ЕТ 1/ОТПЕЧАТ.. D А ННЫЕ, ВСЕ, А Команда О (О) ПОКАЗЫВАТЬ DАННЫЕ 1 Печать таблицы на прин- ИЛИ FOPMY ЛЬ!? тере УКАЖИ МЕСТО УКАЖИ УСТРОЙСТВО / РЕЖИМ: АЦПУ, NАСТРОЙКА. КОНСОЛЬ ИЛИ DИСК КОНЕЦ ПЕЧАТИ ТАБЛ. НАЖМИТЕ ЛЮБУЮ КЛАВИШУ '\ Для остановки печати таблицы нажмите CTRL Z
S (SOXPAH.). Перезапись таблицы из оперативной памяти на диск Этой командой вы пользуйтесь всегда, когда заканчи­ ваете работу с таблицей. Она организует запись на диск таблицы или ее части, а также при желании - только вы­ численных значений таблицы. По окончании процедуры записи таблица сохраняется в оперативной памяти и вы~ водится на экран. Возможна ситуация, что после запроса «УКАЖИ ИМЯ: ТАБЛИЦЫ» вы случайно ввели уже имеющееся в ката­ логе имя. Тогда в строке подсказки появится сообщение «ТАКАЯ: ТАБЛИЦА УЖЕ ЕСТЬ. С (МЕНИТЬ) ИМЯ: Д (УБЛЬ), П (ЕРЕЗАПИСЬ) » и вы вводите ответ: + введя параметр С, вы вновь окажетесь в положении, когда в строке подсказки будет предложено ввести имя таблицы; вы должны исправить иля заменить уже набран­ ное имя; + после ввода параметра Д на диск запишется таблица, имя которой будет таким же, как у таблицы, записанной ранее; однако если вы посмотрите каталог, то увидите, что предыдущая таблица имеет расширение .DBL, а но­ вая таблица - расширение .TB L; в дальнейшем при вы­ зове с диска таблицы с этим именем в оперативную па­ мять и на экран попадает таблица, записанная последней и имеющая расширение .TBL; для вызова предыдущей таблицы необходимо указать ее полное имя с расширени­ ем, например, PRIMER .DBL; · ф , после ввода параметра П вся таблица, которая будет в дальнейшем создана на экране, запишется под тем же именем, что и предыдущая; старая таблица, хранящаясй на диске, будет стерта. Предположим, что, прежде чем записать таблицу на диск, вы хотели бы ознакомиться с каталогом файлов. Для этого достаточно нажать после ввода команды /S на ' клавишу ввода ЕТ и на экране появится меню: 176
ПЕРЕЧЕНЬ ТАБЛИЦ ВАРИТАБ С ДИСКА ТЕКУЩЕЕ ДИСК. УСТР-ВО А НАЗВАНИЕ ТЕКУЩЕЙ ТАБЛИЦЫ А: _(ИМЯ ТАБЛИЦЫ) ВАРИАНТ: S - ВЫБОР ДРУГОГО ДИСК. УСТР-ВА D - ОГЛАВЛЕНИЕ ВСЕХ ФАЙЛОВ ДИСКА \V-ТОЛЬКО ТАБЛИЦЫ, СОЗДАННЫЕ ВАРИТАБ CTRL Z-ДЛЯ ВОЗВРАТА К ТАБЛИЦЕ Вслед за меню в строке подсказки будет сообщение: «УКАЖИ: S - ВЫБОР УСТР., D - DИСК, W - ВАРИТ АБ» Вы воспользуетесь одним из перечисленных параметров: S разрешает перейти на другой дисковод; D вызывает каталог диска. Обратите внимание! Все файлы, хранящие таблицы, относятся к типу .TBL . Доступ к ним с раскрытием их содержимого возможен только командами ВАРИТАБа; W вызывает на экран только названия таблиц, создан­ ных в среде ВАРИТАБа; CT R. L Z (одновременное нажатие этих клавиш) воз­ вращает на экран текущую таблицу. Итак, после ввода имени таблицы вы должны решит ь в опрос относительно того, что с л едует переписать на диск . Рас­ см отрите внимательно рис.. 4.11, г де показана структура коман­ ды S. ~ 8 ф На первом уровне вы вводите команду. • 0 е На втором уровне вы вводите имя таблицы, при необ­ ходимости воспользовавшись ме· ню (клавиша ЕТ) . ~ ф 0 На третьем уровне вы с ообщите с помощью параметров, что следует записать на диск: 7 Заказ No 594 177 Oml(yoa? Рис. 4.11 . Стр у ктура коман­ ды пере з аписи таблицы и з оператиыюй памяти на ди ск S (SOXPAH.)
W (WCE) - записывается вся таблица; Z (ZНАЧЕНИЕ) - записываются только кош<ретные значения, находящиеся в клетках; . /\ ( ЛАСТЬ ТАБЛ.) записывается часть таблицы. Обратите впи,,,.шние! Ввод этого параметра возможен только пос­ ле перехода на . нижний регистр. Одновременно нажм ите клавишу /\ и клавишу ВПДР, в противном случае этот пара метр не вводится. 880 Последующие уровни уточняют смысл введенного параметра для записи части таблицы. Для лучшего понимания работы команды S ознакомь­ тесь с примерами, приведенными в табл . 4.9 . В перво м примере показано, как на диск записать всю таблиuу с именем «КОТ». Второй пример отражает более сложную структуру команды: + запись таблицы производится под тем же именем, что и у предыдущей таблицы, - «КОТ»; при этом предыдущая таблица получает расширение .DBL (дубль), а новая­ расширение .TBL; ф переписывается только значение клетки АЗ. Т (ТАБЛ:). Перезапись таблицы с дис.ка в оперативную память Вы уже освоили основные средства ВАРИТАБа и хо· тите внести некоторые изменения в ранее созданную и за­ писанную на диске таблицу. Вызвать эту таблицу с дис· ка в оперативную память и на экран может команда Т, в которой обязательно надо указать ее имя. Если вы за ­ были имя таблицы, воспользуйтесь после ввода команды /Т клавишей ЕТ. После ее нажатия на экране появится меню, с помощью которого мож·но вызвать каталог диска и найти имя. Не забудьте/ Перед вызовом таблицы следует очистить оператив­ ную память (экран). Иначе на экран попадет «мусор», т. е.. часть предыдущей таблицы, которая не заменилась. 178
Стру~тура · команды Т (рис. 4.12) и, <:оот ветственно, ваши деиствия будут аналогичными команде S. Подсказка поможет вам вызвать не только всю таблицу (W), но и ее часть ( А). При вызове части таблицы с помощью под­ с к азок вы уточняете, в каком виде, откуда и куда следует передать данные . В табл. 4.9 приведен пример перезаписи всей таблицы с именем «РОЗА» с диска в опе­ ративную память. Заметим, что на диске зафиксировано имя файла этой таблицы - «ROZA» . Пользуясь регистром русского алфавита, вы нажимаете соответствующие кла­ виши, поэтому имя будет введено русскими буквами - РОЗА. Второй пример (см. табл. 4.9) показывает, как перезаписать всю таблицу, если вы забыли ее имя и поль-зует·есь ката логом ВАРИ ­ ТАБа. После просмотра каталога дл я возврата к таблице одновре­ м енно нажмите клавиши CTRL Z. г-- -, 1ИМ/l maQA/JЦM n. __ _[~-f-[~< Отк!РJ? Гноме.о i7eptbl мет- к Куда? L!~~~':::!!.__ __ _J Рис. 4.12. Структура команды перезаписи таб­ лицы с диска в опера­ тивную память Т (ТАБЛ . ) L (LИКВИД.). Стиран.ие таблицы с диска и ряда (колон.ки) из оперативной памяти Эта команда обеспечит вам стирание таблицы с диска. Кроме того, она удаляет ряд или колонку из оперативно й памяти и прои з водит перенумерацию оставшихся кол о нок и рядо в. Структура команды L представ лена на ри с. 4.1 3 : + на первом уровне вводите команду; + на втором уровне определяете, что необходимо удалить; + на третьем уровне указывЗете конкретный адрес. В табл . 4.9 показано, как удалить таблицу с диска и колонку из текущей таблицы . 179
г_ф_1 Номер 1 1 pяlla 1 1------1 Yooлeitue иа оперштшtJной JliJ0-1eнue о оиrжо и из памяти оперотионой пс1мят11 -----------~ Рис. 4.13. Структура команды стирания таблицы с диша L (LИКВИД.) О (ОТПЕЧАТ.). Печать табли цы на принтере, вывод на эtсран или дuctc Эта команда позволит вам отпечатать таблицу или ее часть (блок, клетку, ряд, колонку). При необходимости можно вывести таблицу или ее часть на экран дисплея или диск . Структура команды О представлена на рис. 4. 14: F - ---- -- ------- 1< Гj~e:!!~a--~~-!r:!'_;н~a__!:'_o~_J?!ll_!!.1!}_J · Место 0ю0ctJ г ---- --1------------ -- - -- - _- - - l 1 0 . [ф] 0 [!] Настроика i ; ; ~ ~ па~~~%;;еоо.1 ~-------------------- -----~ Рис. 4.14. Структура команды печати таблицы О (ОТПЕЧАТ.) 180
~ на первом уровне вводите команду; ф перейдя на второй уровень, вы увидите подсказку « П ОКАЗЫВАТЬ DАННЫЕ ИЛИ FОРМУЛЫ?». Если вы выберете «DАННЫЕ», то напечатается таблица, клетки к оторой будут заполнены конкретными числами или текстом . Если вы выберете «FОРМУЛЫ», то на каждой строке напечатаются номер кл етки и находящаяся там формула. Не удивляйтесь при по я влении в строке печати чисел, так как константы тоже воспринимаются как формулы; ~ на третьем уровне указываете область выводимой таб­ лицы, т , е . клетку, колонку, ряд, блок или всю таблицу ; + на четвертом уровне с помощью подсказкц «УКАЖИ УСТР ОЙСТВО /РЕЖИМ: АЦПУ, NАСТРОйКА, КОН- СО ЛЬ ИЛИ DИСК» выберите режим. · При вводе параметров А, К, D осуществляется вывод таблицы . При вводе пара метра N на э1{ране появляется меню настройки печати: НАСТР . ПЕЧАТИ : Д - И ЗМЕНЕНИЕ ДЛИНЫ ЛИСТА (ДЛИНА= О ДЛЯ НЕ - ПРЕРЫВНОИ ПЕЧАТИ) (ТЕК. 66 СТРОК) Ш -ИЗМЕНЕНИЕ ШИРИНЫ ЛИСТА (ТЕК. 132 СИМВОЛ А) Н - КОДЫ PYЧHOVI НАСТРОИКИ Р -ПЕЧАТЬ ТАБЛ И ЦЫ CTRL Z - СНЯТЬ КОМАНДУ /0 Пример печати всей таблицы приведен в табл. 4.9. 4.4.5 . КОМАНДЫ УПРАВЛЕНИЯ РЕЖИМОМ РАБОТЫ И Ф OPMOVI ПРЕДСТАВЛЕНИ5l ТАБЛИЦЫ Q (I(OllЧAIO) . Заверtиен ие работы Эта команда позволит вам закончить работу с эле к т­ р онной таблицей и выйти в операционную систему . Посл е завершения команды экран очищается и на нем по яв и т с я подсказка операционной системы А>. 181
Пример использования команды завершения работы Q приведен в табл. 4.10. А (АЛЬТЕРН.). Задание napaJtteтpoв представления и пересчета В этой команде задание одного из параметров позво­ лит вам организовать удобный режим работы с таблицей. Параметры можно задавать, используя как русский, так Рис. 4.15. Структура команды задания параметров представ. ления и пересчета таблицы А ( АЛЬТЕРН.) и латинский алфавит. Струк­ тура команды представлена на рис. 4.15 в виде двух уров ­ ней: ф на первом уровне вы вво ­ дите команду; ~ на втором уровне з:~даете режим работы с таблицей. Всего предусмотрены восемь режимов: А, U, R, К, F, S, В, Т (латинский алфавит) или А, У, Р, К, Ф, С, Б, Т (русский алфавит). Выбрав режим, нажмите соответст­ вующую буквенную клавишу. Для отмены этого режима вы должны вновь ввести команду А и нажать клавишу другого режима. Ознакомьтесь с первыми четырьмя режимами А, lJ, R, К для определения поряд1<а проведения расчетов в таб­ ли це. 8~@ Команда /АА. Режим А (АВТО) установлен по умо лчан ию и позволяет производить автоматический пере ­ счет знач ени й т.аблнцы по мере ввода каждого данного или 1<0манды. Однако в больших таблицах из-за этого во~никает большая задержка во времени, что становится птJехой в работе. ~~~ Команда /AU. В режиме U (U КАЗ) при вводе данных и команд пересчета таблицы не производится. Ре - 1<0мендуем этот режим при вводе больших массивов дан­ ных. После окончания ввода данных достаточно нажать клавишу ! и начнется пересчет таблицы. 182
888 Команда /AR. Режим R (RЯД) позволит вам орга­ низовать пересчет таблицы последовательно по рядам начиная с первого ряда, затем - второго и т. д. 888 Команда /АК. Режим К (КОЛ.) позволит вам ор­ ганизовать пересчет таблицы последовательно по колон­ кам начиная с колонки А, затем В и т. д. Четыре параметра F, S, В, Т организуют режимы ра· боты внутри табл ицы . (i)Оф Команда /AF, Режим F (FОРМУЛ) обеспечит вывод в клетках таблицы текста и формул. ~011 Команда /AS. Режим S (SЛЕД) обеспечит пере­ мещение указателя после нажатия клавиши ЕТ в сле­ дующую клетку выбранного направления. ~~~ 1\оманда /АВ. Режим В (БОРТ) устанавливает и снимает отображение рамок таблицы. ~~~ Команда /АТ. Режим Т (ТАБУЛ) передвигает ука· затель только по незащищенным клеткам, пустые и защн· щенные клетки перескакивают. В табл. 4.10 Показаны примеры команд снятия рамок с таблицы (режим В) и отражения в клетках таблицы формул и текста (режим F). Z (ZАГОЛОВКИ). Фиксация заголовков и левых колон.ок таблицы Этой командой удобно пользоваться при просмотре содержимого больших таблиц, занимающих несколько экранов. Для этого верхние ряды или левые колонки остав­ лшот на экране, а все остальные ряды или колонки начи­ нают перемещать. Например, фиксируя шапку таблицы, вы сможете просмотреть содержимое всех колонок до конца и при этом на экране будут всегда находиться · на­ звания колонок. Прежде чем использовать эту команду, надо устаыо­ вить указатель. Для фиксации нескольких верхних рядов указатель установите в последнем фиксируемом ряду, а для фиксации нескольких левых колонок - в крайней правой фиксируемой колонке. Затем можно ввести команду . 183
- СХ> ""' Нажи- J\-1 аемые клави- ши /Q д /А в /А F Таблица 4.1О Примеры номанд управления режимом работы и формой представления таблицы Строка 1 Пояснения ввода ПОДСIСЗЗКИ Команда (Я) /Q КОНЧАЮ ВЫЙТИ В ОП. СИСТ.? - ДА или NET - - На экране появляется А > Команда А (А) /АЛЫЕРН., FОРМУЛ . , SЛЕД . , БОРТ, ТАБУ Л., СЧЕТ: RЯД/КОЛ, UКАЗ./АВТО . ? Снятие с таблицы рамок с номерами ко- лоно к и рядов. Для восстановления рамок /АЛЫЕРН., - вновь вводится эта команда БОРТ /АЛЫ Е РН. FOPMY Л" SЛЕД., ВОРТ, ТАБУЛ., СЧЕТ: RЯД/КО Л, В клетках таблицы показаны формулы UКАЗ . /АВТО.? и текст /АЛЫЕРН . , FОРМУЛ -
- °" с:п /Z WЕТ Команда Z /ZАГОЛОВКИ '\ПРХНЯЯ , LЕБАЯ. До фиксации ОБЕ или SНЯТЬ ШАПКИ? 1 А1 в 1 1 ГОД ВЫПУСК 2 МАШ ИН 3 ===== = ==== 411959 500 1 5 1960 600 - - 611962 450 20 19S 5 900 После фиксации и просмотра рядов 1 А1 в 1 год ВЫЛУСК 2 МАШ ИН 3 =-=== = = == 7 196 5 300 8 1966 400 9 197 0 700 23 1988 800 ' -
- Qo Q) Нажи­ маемые клави- ши ввода /D 1 /Ова окна w /А /АЛЬТЕР!-1., F Строка Пояснения подсказки Комаида D (Д) ДЕ ·ЛЕНИЕ: GОРИЗ., 1 Вначале установите указатель в колон· \VEPT .. ОДНО; кеD ДВИЖЕНИЕ: SИН- Экран после разделения по вертикали ХРОН .. АСИНХР. FОРМУЛ., SЛЕД., ВОРТ, ТАБУ Л, СЧЕТ: RЯД/КОЛ, UКАЗ/АВТО.? AIX Указатель переместился из колонки D в колонку с Вывод формул 11 левом окне Перемещение указателя из колонки С в колонку D
- °" .. .... = АЕТ /D s /F к ДЕТ ь:_п =* =>А /DBA ОКНА - /FOPMAT, /FOPMAT, колон. /FOPMAT, колон., д /FOPMAT, колон., д.:о: УКдЖИ. КУДА Установка в правом окне колонок А. ПРЫГНУТЬ ... В,С А в с АвсD - -- - -- - - - 110 1 <10> 50 - - --- - --- - - 2 2*AI AI+B3 2 20 40 - -- --- --- - -- ·- - - 3 Al+A2 3 30 70 ДЕЛЕНИЕ: GОРИЗ; WEPT., ОДНО; ДВИЖЕНИЕ: 1 SИНХРОН~ АСИНХР. Команда F (Ф) УКАЖИ ОБЛАСТЬ: ТАБЛИUА. КОЛОНКА, Исходное После с]прма- RЯД, ЭЛЕМЕНТ состояние тирования УКАЖИ БУКВУ ... 1D 1... ... /о1." колонки ЗАДАЙ ФОРМА ТЫ 2.785 2.79 (С, A,N. Jj, Р, L, 300 300.00 ТР, TL, *· ! , ШИР. КОЛОНКИ) 5.8 5.80 736.25 736.25
со со Нажи - маемые ,,:лаои - ши /F э Аl:БЗ ЕТ *ЕТ Строк1 1 1 1 ввода подсказ 1ш /FOPMAT, УКАЖИ ОБЛАСТЬ : ТАБЛИUА. КОЛОНКА, RЯД, ЭЛЕМЕНТ /FOPMAT, УКАЖИ МЕСТО ЭЛЕМ., /FOPMAT , ЗАДАЙ ФОРМА ТЫ ЭЛЕМ., (С, А, N, -р_ ,Р, Аl:БЗ L, ТР, TL,*, 1) /FOPMAT , ЭЛЕМ., Аl:БЗ, * Пояснения Исходное состояние АВ1 -- ----- 14 5 ------ 2 7 1 ------ 3 2 3 После форматирования А в - --- -- 1 **** ***** - --- -- 2 ;~**:~::::;::;: * - --- -- 3** ~: ;~ ;1:
Команда предусматривает четыре варианта работы, что задается параметрами W, L, О, S (рис. 4.16). ОФФ Команда /ZW. Параметр W (WЕРХНЯЯ) фиксирует текущий ряд и выше. е~О Команда /ZL. Параметр L (LЕ­ ВАЯ) фиксирует текущую колонку и все левее от нее. ~ее Команда /ZO. Параметр О (ОБЕ) фиксирует одновременно верхние ряды и левые колонки. ~*~ Команда /ZS. Параметр S (SНЯТЬ ШАПКИ) отменяет любую фиксацию. Рис. 4.16. Струк­ тура команды фик­ сации заголовков и левых колонок таблицы Z (ZАГО­ ЛОВКИ) Обратите вншпание! Если предыдущая команда фиксировала верхние ряды, а вы вводите команду фиксации левых колонок, то автоматически снимается фиксация верхних рядов, и наоборот. В табл. 4.1 О приведена команда фиксации заголовка таблицы, состоящей из трех рядов . Введите заголовок таб­ лицы и установите указатель в ряду 3. Введите команду /ZW. Переведите указатель вниз до 20 ряда и нажмите еще три раза клавишу ЕТ. На экране вы наблюдаете пере­ движение рядов, а затем установится последний ряд с но­ мером 23. D (DBA ОКНА). Разделение экрана на окна С помощью этой команды вы сможете разделить экран на две части (окна) либо по горизонтали, либо по верти­ кали. Используйте эту команду тогда, когда вам необхо­ димо организовать одновременный просмотр разных час­ тей электронной таблицы. Граница между окнами определяется колонкой, где указана нумерация рядов, и положением указателя в таблице. При горизонтальном делении все ряды, расположенные вверх от указателя, образуют верхнее окно. Все ряды вниз от указателя, а также текущий ряд, где находится указатель, образуют нижнее окно. 189
При вертикальном делен.ни все колонки, размещенные справа от указателя, а также текущая колонка, где нахо-­ дится указатель, образуют правое окно, а все колонкн, расположенные сле~за от указателя , - левое окно. После разделения экрана на два окна лере.мещать указатель между окнами можно · с помощью клавиши ; . Не забудьте нажать ее одновременно с клавишей ВПДР . Внутри окна пере­ мещение указателя производится обыч­ ным способом с помощью клавиш (сим­ волов) направления. В команде разделения экрана (рис. .4.17) испоJiьзуются параметры G, Рис. 4·17· Струк - W, О для выбора вариант а деления на тура команды раз - деления экоана на окна, а параметры S, А - для органи- окна D (DBA ОК- зации р'ежима движения информации НА) в окнах - синхронного или асинхронного. ~f;~ Команда /DG. Параметр G (GO- РИЗ) делит экран по горизонтали. 888 Команда /DW. Параметр W (WEPT) делит экран по вертикали. 88Ф Кома нда / DO. Параметр О (ОДНО) отменя ет д еление экрана на 01ша. 888 Команда /DS. Параметр S (SИНХРОН) осуществ­ ляет синхронное передвижение (сканирование) информа­ ции в окнах. Например, в одном окне выводятся формулы, а в другом окне - значения, вычисленные по этим форму­ лам . При движении указателя вдоль границы раздеJ1а будет одновременно движение информации в обоих окнах. Вы сможете одновременно увидеть и формулу, и вычи с ­ лен!1 ое значение для каждой клетки. 888 Команда /DA. Параметр А (АСИНХР.) позволяет оставить одно окно неподвижным и передвигать информа­ цию только в том окне, где находится указатеJiь. По умол­ чанию установлено асинхронное передвижение инфор ­ мации. 190
Рассмотрим пример разделения экрана на два верти­ кальных окна и установки в них синхронного сканирова­ ния (см. табл. 4.10). В левом окне вы предполагаете вы­ вод формул, в правом - значений. Установите указатель в колонку D и введите команду /D. Появится меню. Для разделения экрана по вертикали введите параметр \V. Произойдет разделение экрана на два окна: в левом окне находятся колонки А, В, С, в правом окне - D, Е, r~, G. Одновременно нажмите левую нижнюю пустую кла­ вишу (ВПДР) и клавишу ;, и указатель переместится из правого окна графы D в левое окно в графу С. Для вывода формул в левом окне воспользуйтесь командой / AF. После ее ввода в клетках левого окна по­ явятся формулы. Вновь нажмите клавишу ВПДР и кла­ вишу ;. Указатель переместится в правое окно. Для организации синхронного сканирования в правом окне необходимо иметь идентичные левому окну колонки А, В, С. Сделайте это с помощью указателя клетки (см. табл. 4.4). Нажмите клавиши =А. Вы увидите, что в правом окне появились три колонки А, В, С. Не заб удь­ те, что по умолчанию установлено асинхронное сканиро­ вание . В связи с этим, прежде чем на ·чать про смотр таб ­ лицы, установите режим сканирования, вводя команду разделения по два окна с параметром S, т. е. /DS. Теперь, перемещая указатель вдоль границы раздела вниз, вы бу­ дете наблюдать синхронное сканирование информации в обоих окнах, что дает возможность одновременно нметь и формулу, и ее значение. Обратите внимание! При с1<анировании двИжение начина ет сн сначала в левом 01<не, а затем указатель переходит в правое 01шо и просмотр информации продолжается уже в этом окне. Пос J1е 01<011 - чания с1<аиирова11ия фи!(сация рядов идентична в обоих О!{нах. F (FOPMAT). Изменение формата представления данных в клетках Основное назначение этой команды - создание табли­ цы, удобной для работы: красиво и компактно располо- 191
жены тексты, числа заданы в одном формате, выровнены все цифровые позиции в соседних клетках. Однако поль­ зоваться этой командой необязательно, если вас устраи­ вают форматы, действующие по умолчанию, а именно: текст в клетках всегда выравнивается по левому краю, а числа - по правому краю, при этом учитывается наибо­ лее рациональное представление этого числа . Рис. 4.18. Структура команды измен е ния фор мата пр ед ­ ставлен ия данных F (1·70РМАТ) Формирование фо м анды F зад ается четырьмя уровн я ­ ми (рис. 4.18). После ввода команды следует опр еделить область установки фор м атов в таблице: вся таблица (Т), колонка (К), ряд (Р), клетка или гру п па клеток (Э). Затем вы должны указать конкретный адрес этой облас­ ти, например, вводя букву колбiши или цифру ряда. На пос л еднем уровне вам предлагается задать формат вы­ бранной области: С (СЕЛ ЧИСЛ) - округление чисел до целого зн а ­ чения; А (АДАПТИВ) - рациональное представление чисел в клетках; N (NОРМАЛИЗ) - нормализация чисел; Ц - точность представления чисел - два знака пос л е з апятой; 192
Р (РРАВ) - выравнивание чисел по правому краю; L (LEB) - выр?_1ш ивание чисел по левому краю; ТР (ТЕКС РРАВ) - выравнивание текста по правому краю; TL (ТЕКС LEB) - выравнивание текста по левому краю; * показывает числа в виде линейной диаграммы; 1 (IСХОДН) - восстановление форматов, устанавли­ ваемых по умолчанию: А, Р, TL; ШИР. КОЛОНКИ устанавливает ширину колонки, для чего достаточно ввести число, соответствующее этой ши­ рине. В табл. 4.10 показано, как представить числа в колон­ ке D с точностью двух знаков после запятой. Второй при­ мер ознакомит вас с формой представления чисел блока в виде линейной диаграммы . 1 (IСПОЛНИТЬ). Исполнение командного файла При многократной работе с электронной таблицей вам приходится выполнять ряд однотипных действий. Для автоматизации этих действий можно создать командный файл. Запускает его в работу команда I. Для овладения этим методом работы советуем обратиться к дополнитель­ ной литературе [ 4], где подробно изложены процесс соз­ дания командного файла и стратегия работы с ним. 4.4.6. ФУНКЦИИ ВАРИТАБа При формировании формул вы часто сталкиваетесь с необходимостью вычисления функций. В ВАРИТ АБе предусмотрено универсальное средство, которое позволит по указанному имени функции произвести ее вычисление. Вам достаточно только правильно записать и использовать имя функции. В табл. 4.11 приведены условные обозначе- 193
Таблица 4 . 11 Функции Условное обозн·ачение пи АБС (Х) ЦЕЛ (Х) ЕКС (Х) ЛН (Х) СИН (Х) КОС (Х) ТАН (Х) ККОР (Х) ЛОГ 10 (Х) АСИН (Х) АКОС (Х) АТАН (Х) ИФ АНД ОР НЕТ СУМ (Х1, "" Хп) МИН (Х1, "., Хп) МАК (Х1, •••, Хп) СРЕДНЕЕ (Х1, ••• , Хп) НД ОШИБОК ПОДl30Р (ключ, диапазон клеток) 3, 14 1х1 Математическое обозна ч е1~ие [Х] - целая часть числа ех JnХ sin Х cos х tgх ух lgх arcsin Х arccos Х arctg Х Если и или Отрицание Х1+х2+ ... +хп Выбо р минима л ьного числа Выбор максвмальноrо числа Х1 +Х2+ ... +Х11 Не дейст вите л ьное значение Ошибка П61iск в двух соседних колонках (рядах) значения по ключу 194
ПРU (норма дисконтирования, диапазон клеток) + первона­ чальное ·значенriе Финансовая операция. Стоимость приведенная к текущему моменту, с учетом затрат и будущих дохо­ дов ния таких функций. Аргумент Х, указанный в скобках, может быть числом, арифметическим выражением, ссыл­ ко й (имя клетки). Ознакомьтесь с некоторыми функциями. ~-~ UЕЛ (Х). Uелая часть числа образуется отбрасы­ ванием дробной части: UЕЛ (12,3)-+12 UЕЛ (12,8)-+!2 ~еФ ДJ1я всех тригонометрических функций задается аргумент в радианах. Ф80 При вычислении обратных тригонометрических функций результат получается в радианах . ~-~ Для фунн:ций СУМ, МИН, МАК, СРЕДНЕЕ аргу­ ментом, кроме указанных выше, может быть также блок или диапазон клеток. Например, для вычисления суммы значений, содержащихся в клетках А5, Аб, А7, А8, ВЗ, Вб, D1, D2, Е!, Е2, нспользуется функц ия СУМ (А5:А8, ВЗ, Вб, D 1:Е2). 088 ПОДБОР (ключ, диапазон клеток). Эта функция осуществляет поиск значения по ключу в двух рядом стоящих рядах или колонках. Ключом мог ут быть число, ссылка, арифметическое выражение. Задаваемое или вы ­ численное значение ключа сравнивается с числами, нахо­ дящимися в указанном диапазоне клеток первой колонки (ряда). Если найдено число, равное значению ключа, а при его отсутствии ближайшее к нему, но меньшее по з начению, то в клетку, где используется эта фукнция, за­ носится число из второй колонки (ряда). Причем ряд (ко ­ лонка) этого числа определяется рядом, где находится число, найденное по ключу. Например, в пятом ряду (см. с . 196) расположены числа, сравниваемые с ключом, а в Шестом ряду - выбираемые значения. В клетке Е4 значение определяется как резуль- 195
тат функции ПОДБОР (С4, А5:Е5), где С4 - ключ, зна ­ чение которого равно 37; А5:Е5 - числа, с которыми срав­ нивается значение ключа С4. В результате сравнения ближайшим числом к числу 37 и не превосходящим его по значению будет 30. Из клетки Сб следующего ряда, находящейся под клеткой С5 с числом 30, будет выбран о число 400 и записано в клетку Е4 . А/)сDЕ' KAIOl/ 4 i37' ~ [/40~ L _.J / , 5 10 20 @О) 40,/Viю / Числа, с мторыми '\,. сда/Jни/Jается ЮJюц Г4о01 (.Выбираемые знацения 6 786 350 800 300 L __J ' Отметим некоторую особенность. При формирова нии в таблице чисел, сравниваемых со значен ием ключа, их надо располагать в порядке возрастания. 8@~ Функции НД, ОШИБК используются как вспомо­ Г:J.тельные в логи ческой функции либо появляются в таб­ лице как р езультат определенных действий. ti'P~O Функция ПРЦ предназначена для выпоюrения фи­ нансового расчета. Определяется приведенный к текущему моменту суммарный доход с учетом первоначальных затрат и чистых доходов от реализации по проекту. Форма записи: ПРЦ (норма дисконтирования, диапазон клеток)+ +клетка с данными о первоначальных затратах. Пр им ер. Задайтесь нормой дисконтирования 10 % и запишите ее в виде десятичного числа в клетку А2. Первоначальные затраты на приобретение оборудования составляют 10 ООО руб. Это значение надо записать в клетку А4 со знаком -. Ожидаемая прибыль, кото­ рая составит в течение трех лет 5000, 10 ООО, 20 ООО руб., занесена в клетки Аб, А7, А8 . Для определения суммарного дохода, приведен- 196
ного к текущему моменту с учетом первоначальных затрат, исполь­ зуйте функцию ПРЦ (А2, Аб:А8) +А4 ~~- Логические функции ИФ, АНД, ОР, НЕТ обеспе­ чат вам выбор операции по результату сравнения. Общий формат функции, реализующий условный оператор: IF (условие, выражение 1, выражение 2). Условие- это математические выражения, связанные между собой знаками отношений <, < =, >, ·> =, = , < > (не равно) и при необходимости - логическими функциями АНД, ОР, НЕТ. Выражение 1 выполняется, если вы полнено условие. Выражение 2 выполняется, если условие не выполнено. 4.5 . ПРОВЕРЯЕМ СЕБЯ . !( А !( УСВОЕН ВАРИТАБ? Упражнения 4.1 . В чем суть процедуры построения электронной таблицы? 4.2. Имеется ли возможность одновременно хранить в оперативной памяти несколько таблиц и организовать между ними связь? 4.3 . Какие управляющие символы используются в ВАРИТАБе? 4 .4 . Понятие «место» в электронной таблице. 4.5 . Приведите пример блока. 4.6 . Назначение команды ВАРИТАБа и ее структура. 4 .7 . Как классифицируются команды? 4.8 . Какими командами удаляют содержимое клетки или редактируют ее? 4.9 . Когда рекомендуется применять команды копиро­ вания К и размножения R? 4.10 . Как вставить новый ряд (колонку) или переме­ стить ряд (колонку)? 4.11 . Какие команды организуют запись таблицы па 197
диск и ее считывание с диска? Какова стратегия работы с этими командами? · 4.12 . Как стирается таблица? Ответы к упражнениям 4.1 . Процедура построения электронной таблицы сво - 1щтся к следующему: • в виде текста вводите название таблицы; + формируете шапку таблицы; + вводите данные и формулы в каждую 1<лешу таб- лицы; . • формируете итоговые строки; + печатаете таблицу; ф записываете таблицу на диск. 4.2 . В оперативной памяти находится одна электрон­ ная таблица. Однако, разделив условно эту таб л ицу на несколько частей, можно занять их вспомогательными т а б­ ющами, необходимыми для решения всей задачи в форме общей электронной таблицы. Имя присваивается всей таб­ лице в целом и в виде файла хранится на диске. Связь между вспомогательными таблицами и основной органи­ зуется с помощью ссылок (имен клеток). Так, в параrрё­ фе 4.3 показано, как рассчитать заработную плату (основ­ ная табл и ца) с учетом подоходного налога, представлен­ ного двумя вс помогательными таблицами. 4.3. Символы/= !;+-11 '4--илиCTRLZ Для передвижения указателя и курсора используются КJ1авиши направления либо однов ременно следует нажать две !{Лавиши - буквенную и CTRL: CTRLS(+-) C'fRLD(-)CTRLЕ(t) CTRLХ(t) 4.4. «Jv1,естом» в электронной таблице служат ряд, ко­ лонка, клетка, блок, вся таблица, с которыми про изводят ­ ся действия. 4.5. Блок - это две ссылки, разделенные двоеточием, например: АЗ:С5. В этот блок включено девять клеток: АЗ, А4, А5, ВЗ, В4, В5, СЗ, С4, С5. 198
4.6 . Команда ВАРИТАБа производит действия в элект­ ронной таблице в зависимости от используемых парамет­ ров. Формирование команды начинается с ввода символа / и первой латинской буквы названия команды. Регистры переключать не надо. Затем в соответствии с предлагаемой подсказкой выбираете и вводите параметры или в вИде первой буквы названия параметра, или в виде числа. При этом если после набора команды содержимое экрана не изменилось, то следует нажать клавишу ввода ЕТ. Напри­ мер , для увеличения ширины колонки А до 35 символов используйте команду форматирования /FKA ЕТ 35 ЕТ 4.7 . По своему назначению команды ВАРИТАБа мож­ но представить в виде трех групп: ф команды изменения содержимого таблицы; ф команды взаимодействия таблицы с памятью и прин­ тером; + команды управления режимами работы и формой представления. 4.8. Команда В удаляет содержимое клетки, а команда Р редактирует. 4.9 . Для получения одного экземпляра копирования рекомендуется воспользоваться командой К. Для копиро­ вания· одного «места» в несколько «Мест» воспользуйтесь командой R, учитывая следующее ограничение: нельзя р а змножать блок, колонку, ряд. 4.10. Команда \V вставляет ряд {колонку). Команда М пере ме щает ряд (колонку). 4.11 . Команда S записывает таблицу на диск. Коман­ да Т считывает таблицу с диска. При работе этих команд следует указать имя таблицы. Если вы забыли имя таб­ Jшцы, то воспользуйтесь предоставляемым в ваше распо ­ ряжение меню вызова каталога имен, хранящихся па этом диске файлов. 4.12. Из оперативной п.амяти - командой N, с диска - командой L.
ПРИМЕНЯЕМ КАРТ1715- СИСТЕМУ ВЕДЕНИЯ КАРТОТЕКИ 5.1 . ЗАЧЕМ НУЖЕН КАРТ1715? Назначение КАРП 715 представл яет собой пакет прикл адны х программ, предназначенный для создания и ведения ав­ томатизированных картотек различного назначения. При­ мерами таких картотек мо ­ гут служить деловые ка J1ен ­ дари и записные книжки, картотеки отделов кадров учреждений, библиотечные картотеки, картотеки склад­ ских хозяйств и т. п . Структура данных По существу пакет КАРТ! 715 является диаJIО­ говой информационно-спра­ вочной системой, в которой информация может хранить­ ся в виде совокупности кар­ точек. Каждая такая кар­ точка может включать до 200
26 информационных полей. В каждое поле заносится текстовая (символьная) информация, представляющая собой, например, фамилию, имя и отчество работника в картотеке отдела кадров, название книги в библиотечной ка ртотеке или тематику конференции в деловом календаре. Число символов в информационном поле не может пре­ вышать 1404. Суммарная длина полей в одной карточке ограничена также 1404 символами. Количество карточек в картотеке может достигать 30 тыс. При этом, конечно, следует учитывать ограничение рабочего пространст ва на используемом гибком магнитном диске. Объем пакета КАРТ1715 составляет 56 Кбайт, Основиые фующиtt Основные функции, реализуемые КАРТ 1715, сводятся к следующему: ф формирование картотеки, связанное с описанием струк­ туры карточки и занесением данных; ~ коррекция как структуры карточки, так и данных на отдельных ее по л ях; ф ведение картотеки, состоящее в добавлении новых и удалении имеющихся карточек; ф последовательный просмотр карточек; ф получение простой справки в виде сведений, п омеще н­ ных в какую-либо карточку, по так называемому ключе­ вому слову, в качестве которого могут быть ука­ за ны, :например, фамилия или табельный номер ра­ ботника; + получение более сложной справки в виде выборка кар­ точек (или отдельных полей) иЗ их исходной совокупности, на пример данных о работниках, имеющих высшее обра­ зование; ф просмотр полученной справочной информации на экра­ не дисплея, запись ее на магнитный диск или вывод на печатающее устройство. 201
Особенности КАРТ1715 Сравнивая пакет KAPTI 715 ~ известными системами управления базами данных, следует указать на простоту диалога, которыИ ведется пользователем при работе с дан ­ ным пакетом. Простота управления пакетом объясняется хорошей наглядностью информации, выводимой на экран дисплея, достаточным уровнем подсказок со стороны про ­ грамм пакета и ограниченным набором команд, которые вы должны освоить для реализации разнообразных функ ­ ций КАРТ1715. В связи с этим пакет может применяться шщами, не имеющими специальной подготовки в области использования ЭВМ. · Существенным о г раничением в использовании пакета КАРТ1715 является то, что заносимая в картотеку инфор­ мация может быть только сим~ольного (нечислового) вида . Поиск в картотеке возможен лишь на совпадение с зада­ ваемым ключевым словом. Поэтому с помощью пак ета нельзя производить поиск по критерию «больше» и ли «меньше» вводимого порогового значения. Например, не­ возможна реализация запроса в картотеке отдела кадр о в для вывода списка рабопIИI(ОВ моложе тридцати л ет и т. п. В ПаJ(ете не предусмотрены такие типов ые дл я ра­ боты с базами данных операции, как сортировка и ариф­ метические действия над данными . Например, нет воз ­ можности подсчитать средний возраст работников учреж ­ дения или суммарную стоимость товаров на складе. И все же следует ожидать, что пакет прикладных программ КАРТ 1 715, благодаря простоте его освоен ия и использования, найдет широкое применение в ра з лич н ы х системах хранения и обработки нечисловой информации . Ниже на простом примере ведения картотеки до;.,~аш­ ней библиотеки демонстрируется выполнение ос н овных операuий по управлению пакетом КАРТl 715. Предлагаем вам п роверить на компьютере приведенные последова­ тельности команд, вводимых в диалоге с прог р аммами 202
пакета. Следуйте нашим советам, и вы убедитесь в про­ стоте и эффективности средств КАРТ 1715. 5.2 . ЗНАКОМСТВО С КАРТ1715 Определите t{ель вашей работы Итак, вы намереваетесь составить картотеку вашей до­ машней библиотеки. Вначале уясните план ваших дейст· вий. В первую очередь вам следует выбрать и зафиксиро­ вать с помощью КАРП 715 структуру карточки с данны­ ми об отдельной книге. Затем можно будет приступить к заполнению картотеки учетной информацией. Наиболь­ ший интерес у вас должна вызвать работа с картотекой, в процессе которой вы сможете формировать различные запросы и получать необходимые справки. При знакомстве со средствами пакета программ КАРП 715 рекомендуем вам в первую очередь просмотреть текстовой файл, содержащий краткую информацию о на­ значении пакета, его основных функциях и перечне команд. Для этого выполните ряд указанных ниже действий. Загрузите операционную систелtу Вк л ючите питание компьютера. Установите гибкий магнитный диск с операционной системой и пакетом про­ грамм КАРТ1715 на дисковод А. Закройте защелку диско­ приемника, после чего выполнится загрузка операционной системы . Ознако.лtьтесь с меню КАРТ1715 Установите режим ввода букв русского алфавита, пе­ реключив клавишу SI/SO в положение, в котором заго­ рится расположенный рядом индикатор. Нажмите клавишу пробела. Введите команду: а> карт} 715 ЕТ. По оконча­ нии загрузки пакета на экране появится соответствующая заставка, а через несколько секунд - основное меню, вид которого приведен ниже. 203
l<АРТИН 8-1 ' r ЛАЕ:НЫЕ ФУНf::ции 1 ==> ДАННЫЕ ЗАдАНИЕ ФOF·MAiA СЕРЕ:ис ОПЕРАЦИОННОlll сиет. +. + ВТОРИЧНЫЕ ФУНr:ции 1 + ,+ + + + ==) noИCf<. АНАЛИЗ СОЗДАН. Е:ОССТ. ' ++++++++++++++++++++++++++++++++++'+++++++++++++++++++++++ ГЛАВНАЯ ФУНЩИЯ "' ААнн'ыЕ 8ТОРИЧНАЯ ФУНl<IJ.ИЯ = ПОИСf'; 'ФА\llЛ "'* . СМЕНА ДИСКА = НЕТ ДЛЯ ВЫБОРА.НАЖАТЬ КЛ. IГ,8,ф,Д) ИЛИ КЛ. есц= Информация меню, выводимая в верхней половине экрана, представляет собой перечень доступных для поль­ зователя функций: главных и вторичных. ф ~ ~ ТТод главными функциями пакета понимаются следующие: ф работа с данными, вводимыми или хранящимися в кар­ тот е ке (позиция меню «данные»); ф задание или коррекция структуры карточки '(«Задание фор м ата»); ф копирование файлов картотеки и удаление прочих файлов («Сервис операционной системы»). ~ (§) ~ Вторичная функция конкретизирует то действие, которое может быть выполнено в данный момент. Убеди­ тесь, нажимая клавишу Г, что перечень вторичных функ­ ций меняется в зависимости от положения стрелки-указа­ теля главных функций. Заметьте также, что по достиже­ нии нижней строки меню главных функций стрелка будет переброшена вновь в начало меню, если в очередной раз нажать клавишу Г. Аналогичным образом вы можете 204
управлять перемещением стрелки-указателя вторичных функций, нажимая клавишу В. Обратите внимание! В нижней половине экрана выводятся наименования тех функций, которые установлены в данный момент. Сделайте вызов справоuнай .информации В целях просмотра текстового файла со справочной информацией о пакете КАРТl 715 установите функции: главную - «данные», вторичную - «Поиск». Нажмите клавишу Ф для последующего ввода имени файла спра­ вочной информации. Обратите внимание на то, что справа от сообщения ''ФАйЛ = " появилось многоточие, число точек в котором соответствует допустимому числу симво­ лов в вводимом имени. Введите имя курс, завершив ввод нажатием клавиш ЕТ и ESC. Проанализируйте появив­ шееся в нижней части экрана меню: ДЛЯ СМЕНЫ - НАЖАТЬ КЛ. 11С11, ДЛЯ ВЫПОЛНЕНИЯ - КЛ. 11В11 ИЛИ 11К11 - КОНЕЦ РАБОТЫ Однобуквенные команды в этом меню означают сле­ дующее: С - возврат к основному ме ню для смены функций; В - запуск выполнения установленных функций; К - выход из пакета КАРТ! 715. Ознакомьтесь со справочной инфорл~ацией Нажмите клавишу В. Через несколько секунд на экра­ не появится первая страница (карточка) поясняющего текста. В нижней же части экрана появится новое меню с перечнем команд, позволяющих просматривать файл с правочной информ ации. Нижеприведенные однобуквен­ ные команды вводите при нажатой клавише CTRL, что в дальнейшем будет помечаться символом кавычки " сле­ ва от буквы: "Р - переход на первую страницу (карточку) файла; "Ц- переход на последнюю страницу файла; 205
"А- переход к предыдущей странице; "Ф - переход к следующей странице. Используя данные команды, просмотрите текст, пояс­ няющий работу пакета KAPTI 715. Для возвращения в основное меню нажмите клавиши М, Е и ЕТ . На этом первое знакомство с КАРП 715 заканчивается . s:з . ФОРМИРУЕМ СТРУКТУРУ КАРТОЧКИ Вы уже поставили себе цель - создать картотеку до­ машней библиотеки. Для ее размещения может быть ис­ пользован диск с пакетом КАРТ 1715, на котором имеется достаточно свободного пространства. Все последующие действия старайтесь выполнить так, как будет рекомен­ довано ниже. Создайте файл формата карточки Находясь в основном меню КАРТ1715, установите сле­ дующие функции': главную - «Задание формата», вторич­ ную - «Создание» . Нажмите клавишу Ф и введите имя создаваемой картотеки, например библи. Далее нажмите клавишу ESC, а затем - В. В результате будет открыт файл формата карточки библи.фмт, определением кото­ рого вы сейчас и займетесь. Выберите функцию создания формы карточки Обратите внимание на сообщения, появившиеся на экране. В верхней его части выведено сообщение «ВЫБОР ФУНКЦИИ», а в нижней - меню функций, которые мож­ но выполнить при определении формата карточки: Э - создание или коррекция формы карточки с воз­ можностыо разметки всех ее полей (Э вводится в верхнем регистре); П - определение формата избранного поля; У - удаление поля из формы карточки; Ф - задание основного формата печати карточек; 206
Д - запись созданного илИ скорректированного файла форма та на диск; М - возврат в основное меню. В ведите команду Э при нажатой клавише верхнего регистра (ВПДР). ОЗнакомьтесь с меню режима коррекции экрана На экране - очередное меню, соответствующее состоя­ нию «КОРРЕКТ. ЭКРАНА» (в нашем случае - создания экранной формы карточки): "С (или +-) - перемещение курсора влево на одну по­ зицию; "д (или - . ) - перемещение курсора вправо на одну по­ зицию; ' 1 Е (или Т) - перемещение курсора вверх на одну строку; "Ь (или 1) - перемещение курсора вниз на одну строку; ">К, ''Г - соответственно вставка и удаление . колонки; "Н , "Ы - соответственно вставка и удаление строки; "В - ввод символа -разделителя полей карточки; "11 - печать формы карточки . Созда йте структуру карточки Для определения структуры карточки вам необходимо предварительно решить, какие данньiе, какой длины и · в какой последовательности будут храниться в карточке. Допустим, вы ограничились такими сведениями о книге в вашей домашней библиотеке: сведения об авторстве, на­ звание книги и год издания и решили расположить эти данные в полях, как показано ниже. ----------~---~--------------~--------------------------- --- ---- ------- --. "':" ..... ___ _ __________ :,,..·-- ..:. -""'!-·--~--------------.:.... ! Авто р: !Год ~1зд. --------------------------------------------------------- . . . 207
В состоянии «КОРРЕКТ.ЭКРАНА» начинайте размет­ ку полей карточки. С этой целью переместите курсор в крайнюю левую верхнюю позицию рабочей области экра­ на, после чего с помощью команды "В проведите гори ­ зонтальную линию необходимой длины. Далее сместите курсор на три строки вниз, верните его в крайнюю левую позицию экрана и проведите вторую линию той же длины. Таким же образом проведите на экране и третью горизон­ тальную линию. Перемещая курсор соответствующим об­ разом, проведите вертикальные линии с помощью симво­ ла «!». В результате будет получена экранная форма кар­ точ 1ш, которую при желании вы можете распечатать с помощью команды "П . Результат такой печати пред­ ставлен ниже. КАРТИНСФА~Л) ,ФА~Л биб.nИ,фNТ f<OPPEl<T . ~>КРАНА +++++++++++++++++++++~+++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ КУРСОР: ц трл+ С С=ЛЕВ, Д=В.ПРАВ, Е=88ЕРХ, Ь=ВНИЭ) КОР.;цтрл+IЖ=ВСТ.КОЛ,Г=УД.КОЛ; Н=ВСТ.СТРОКУ,Ы= УД .С ТР . 8=СИМБОЛ-РА3ДЕЛИТЕЛI:·, П=ПЕ'-JА П:·) , ЗАТЕМ" ее ц" J Завершив разработку формы карточки, нажмите кла­ вишу ESC. В результате вы вернетесь в меню «ВЫБОР ФУНКЦИИ». Ознакоhtьтесь с меню определения полей карточ1щ Введите команду П, после чего осуществится переход в состояние «ОПРЕДЕЛ.ПОЛЯ». Ознакомьтесь с новым меню, выведенным в нижней части экрана: 208
Н - задание символа-идентификатора, которым запол­ нится поле по окончании его создания, а также двухбук­ венного наименования для последующих ссылок на это поле; И - задание режима индексирования слов поля, т. е. по­ метки тех слов, которые будут просматриваться при вы­ полнении поиска в картотеке на совпадение с ключевым словом; 3 - введение текста заголовка, поясняющего хранящиеся в поле данные; С, К - задание позиции соответственно левого верхнего и правого нижнего углов создаваемого поля. Определите поля карточки Введите команду Н и в ответ на соответствующий з а­ прос введите символ-идентификатор (например , А) и сразу же после него - двухбуквенное наименование поля, на­ пример НА. Далее введите с помощью ко м анды 3 текст заго л овка поля, например Название: . Нажимая клавишу И , установите режим индексации слов ВСЕ, что соответ­ ствует режиму индексации всех слов в тексте поля. Затем переместите курсор в левый верхний уго л первого поля карточки на экране и нажмите клавишу С, зафиксировав таким образом начало поля. Переместите курсор в пра­ вый нижний угол поля и с помощью команды К зафикси­ руйте конец создаваемого поля . На экране появится соз­ данное поле с заголовком и символом-идентифика­ тором. В конце нажмите клавишу ESC. Аналогичным образом определите второе поле, задав идентификатор Б, наименование поля АВ и введя заголо­ вок Автор:. При создании третьего поля задайте иденти­ фикатор Г, наименование поля ГО и заголовок Год изд.:. В результате на экране будет создана структура карточки. 8 Заказ N2 594 209
КАРТИНIФАйЛ> ,ФАйЛ = библи.Фмт ВЫБОР ФУНЩИИ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ~Наз~ани~: аааааааааааааааааааааааааааааааааааааааааааа ! ! ааааааааааааааааааааааааааааааааааааааааааааааааааааа ! ++++++++++++++++++++++++++++++++++++++~++++++++++++++++++ !Автор: бббббббббббб~бббб~бббSбSбб !Год изд. гrгггггггг ! +++++++++++++++++++++++++++++++++++++++++++++++~+++++++++ Э=КОР.ЭКРАНА, П=КОР./СоэnАНИЕ поля, У=УnАлить ПОЛЕ, Ф=ФОРМАТ ПЕ'~АТИ ВЫХОД: "Д"=Ф-Л НА ДИСК, 8 МЕНЮ -"М" УКАЖИ КОД ФУНКЦИИ: Задайте формат печати карточки Завершите определение структуры карточки заданием формата распечатки картотеки. Для этого введите в со­ стоянии «ВЫБОР ФУНКЦИИ» команду Ф и после появ­ ления на экране параметров формата печати с помощью команды 3 измените число записей на странице , введя цифру 5. Затем нажмите клавишу ESC и в конце - Д для записи созданного файла на диск . 5.4 . ЗАПОЛНЯЕМ КАРТОТЕКУ ДАННЫМИ Допустим, список книг в вашей домашней библиотеr<е начинается следующим перечнем: 1. Пушкин А. С . Собрание сочинений в 10 томах. 1959-1962. 2. Мейлах Б. Жизнь Александра Пушкина. 1974. 3. Пушкин А. С . Стихотворения и поэмы. 1976. 4. Новиков И. А. · Пушкин в Михайловском. 1982. 5. Пушкин А. С. Сочинения в 3 томах. 1985-1986. Теперь занесите эти данные в картотеку, формат кото- рой уже вами определен, соблюдая указанный ниже поря­ док работы. 210
Определите файл данных · В основном меню установите функции: главную - «дан­ ные», вторичную - «Создание». Введите команду Фи ука- жите имя файла данных библи. · · Вызовите меню создания данных Нажмите клавишу ESC, а затем введите команду В (выполнить) . В нижней области экрана появится меню, из которого вам пока потребуются команды: + ДОБАВИТЬ - включение в картотеку новых карточек при создании или расширении картотеки; + КОРРЕКТ - коррекция содержимого изображенной на экране карточки; + УДАЛИТЬ - удаление изображенной карточки при на­ жатии клавиши ЕТ; ф ПЕЧАТЬ - запись выборки карточек на диск или вы­ вод на печатающее устройство; + СОХРАН - запись введенных карточек в картотеку на диске; + MEI-IIO - возврат к основному меню. Все перечисленные команды вводятся двумн первыми буквами с последующим автоматическим расширением слова команды. Введите данные и проконтролируйте их ввод Введите кома нду ДО, после чего на экране появится структура карточки и курсор переместится в начало пер­ вого поля карточки, в которое введите . текст Собрание сочинений в 1О томах. Закончив ввод, нажмите клавишу ЕТ. Произойдет переход к очередному полю, в которое введите Пушкин А. С. В третье поле занесите 1959 - 1962. В кон­ це нажмите клавишу ESC, а затем введите команду С для записи карточки в буфер оперативной п амяти. При этом осуществится переход к следующей карточке. Аналогичным образом заполните остальные карточки; 211
Для контроля результатов ввода воспользуйтесь команда­ ми просмотра картотеки, приведенными в параграфе 5.2 . При необходимости распечатки сформированной картоте~<;и введите команду ПЕ. Результат печати первой страницы с пятью первыми карточками приведен ниже. +++++·++++++++++++++++++++++++++++++++++++++++++++++++++++ !Название: Собрание сочинений в 10 томах +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Автор: Пуwкин А.С. 'Год изд. 1959-1962 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Назван~1е: Ж~·щнь Алек:сандра Пушкина +++++++++++++++++++++++++++++++++++;++++++++++++++++++++++ !Автор: Меkлах Б. !Год изд . 1974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! Название: Сти::{отеорениs.1 и поэмы ! +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Автор: Пушк:ин А.С. !Год изд. 1976 ++++++++++++++~++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Назван~1е: Лушю1н в М11:<айловском ++++++++++++++++++++++++-~+.++++++++-!;++++++++++++++++++++++ !Автор: Новиков И.А, !Год изд. 1982 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! Назв ан,1е: Сочинения il 3 тома:< ++++++++++++++++++++++++++.+++++++++++++++++++++++++++++++ !Ав тор: Пуwю1.н А.С. !Год и:эд. 1985-1986 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ По мере необходилtости проведите коррекцию карточек При обнаружении ошибок в какой-либо карточке, ис­ пользуя команды просмотра картотеки, выведите содер- 212
жание этой карточки на экран . Затем введите команду КО и проведите коррекцию указываемого дополнительно · поля. Для удаления карточки целиком выведите ее на экран, введите команду УД и нажмите клавишу ЕТ. 5.5. ПОЛУЧАЕМ СПРАВКУ ИЗ КАРТОТЕКИ Для получения из картотеки той или иной справочной информации придерживайтесь наших рекомендаций и ни­ жеследующего порядка действий. Установите режим поиска Установите функции основного меню: главную - «дан­ ные», вторичную - «Поиск». Введя команду Ф, задайте имя файла вашей картотеки - библи. После нажатия клавиши ESC введите команду В (выполнить). В резуль­ тате на экран будут выведены первая карточка, храня­ щаяся в картотеке, служебная информация в верхней части экрана и меню команд в нижней его части, как это показано ниже. г- -------- -- --,, ~-- ..- вывод 1 КАРТИН ( ПОИС!:О 'ФА111Л = а: Е'if·Н;/ли_ ._-~ Фf1)1 YF'O~:. о : :зАпис~,. 1 ИЗ 5 . ·' ~-· ' . ! +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Название: Собр"'ние сочинений s 10 томах ! + -: -+++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Ав·rор: Пуwкин А.с. [год f·н;эд. :i9:s9-1962 +++ •> ·++++++++++++++++.+++++++++++++++++++++++++->+:..++++++++:• 8Е:011. Kot1AHt:\Ы : МАСКА; 8Ы6С)Р; вк)1Ю'-IАЯ; КРОМЕ; ИСТОРИЯ; воэвF·АТ; cSPOC; список; ' д06АЕ:ИТЬ; ДУБЛЬ; КОРРЕКТ; УДАЛИТЬ; ВВОД; ПИСАТЬ i ФОРМАТ; ПЕ'~АТЬ ; СО>(РАН; МЕНЮ . ТЕ:~\СТ: ц трл+ <'Р=.1. ЗАП, Ц=ПОСЛ, А"'БОЗВ, ф;;;ВПЕР; КDМ:ЬАУДАЛИТЬ 1 Х=ВQЭ6.НА СИМ> 213
06раrите внимание! Служебная информация вклю •1 ает имя файла данных к артотеки библи . фил, число 1<арточек в ней и п6рЯдковы·й ·номер той · •К'ар·точки, которая отображается . в данный момент на экра.н,е:..;!~ . в,11де ~ообще1щя "Запись 1 из 5". "Уровень О" соответству~ .иc~oдliOi\ B?I.Qpp_кe, в кот9р ую включены все хранящиеся в кар:готеке kартdчкИ. · · · · Просмотрите вашу картотеку Рекомендуем вам просмотреть хранящуюся на· гибком магнитном диске картотеку. При ограниченном ее объеме «перелистывание» карточек - наиболее простой способ получения нужных сведений. Для просмотра картотеки пользуйтесь следующими командами из отображаемого на экране меню: "Ф - переход к следующей карточке; 11 А - возврат к предыдущей карточке; "Р - переход к первой карточке; ''Ц - переход к последней карточке. Распеttатайте содержимое картотеки При желании вы можете распечатать содержимое кар­ тотеки вашей домашней библиотеки. Пр и этом будет ис­ пользован формат печати, который вы зад али по оконча­ нии определения структуры карточки еще до ввода дан­ ных в картотеку. Вспомните, единственное отклонение от стандартного формата печати состояло в размещении пяти карточек на одной странице. Введите команду ПЕ (пе­ чать) и после появления на экране меню, предла гающего вам уточнить режим печати, нажмите клавишу ESC, а за­ тем введите команду' В (выполнить). В результате вы по­ лучите твердую копию содержимого картотеки вашей до­ машней библиотеки. Первая страница распечатки соот­ ветствует приведенной на стр. 212. В чем суть режима поиска? Пакет КАРТ1715 предоставляет вам возможность поис- 1<а данных в картотеке. Поиск производится по образцу 214
. (КJ1ючевому слову), вводимому пользователем. В основ­ ном режиме поиска с образцом сравниваются лишь ·шщексированные слова. В вашем случае при определении структуры карточки вы установили режим, в ·котором все вводимые в картотеку слова подвергались индексирова­ нию, т. е. все слова будут просматриваться при поиске. Поиск вы можете осуществлять как локальный в рам­ ках одного из полей карточек, так и глобальный по всем без исключения полям. Для последующего выбора ключевых слов поиска уясните те полезные эффекты, которые могут быть полу­ чены при использовании специальных символов ? и +. Символ ? соответствует любому символу в указанной по­ зиции ключевого слова. Символ +. стоящий в начале клю­ чевого слова, допускает любую последовательность сим­ волов, примыкающую к слову слева, а символ + в конце ключевого слова - произвольное его продолжение. Уясните еще одно важное понятие - уровень выборки. Исходная совокупность карточек является выборкой уров­ ня О . В результате выполнения первой операции поиска будет сформирована выборка уровня 1, в которую войдут карточки с данными, удовлетворяющими заданному кри­ терию поиска. Текущая выборка может быть вновь под­ вергнута операции поиска с получением выборки уровня 2 и т. д. KAPTI 715 позволяет достигать при поиске уров­ ня 99. Содержание текущей выборки по вашему желанию мо­ жет быть просмотрено на экране, выведено на печать или записано в новый файл данных. Озна:сомьтесь с основными командами поиска @j О 8 Для начала рекомендуем вам освоить три основ­ ные команды поиска: ф ВЫБОР - из текущей выборки формируется новая выборка, включающая карточки, в которых обнаружено совпадение с введенным ключевым словом; 215
+ КРОМЕ - из текущей выборки удаляются карточки, в которых обнаружено совпадение с ключевым словом; + ВКЛЮЧАЯ - к текущей выборке добавляются новые карточк и из исходной выборки, в которых обнаружено совпаде ние с ключевым словом. При выполнении этих трех команд согласно подсказ ­ кам КАРТ1715 вам вначале надо будет ввести двухбуквен ­ ное нz.именование поля, в котором будет производиться поиск, затем - символ-разделитель "/" и в конце - клю­ чевое слово. Если вы намереваетесь провести глобальный поиск (по всем полям карточек) , то наименование поля опустите. • ~ ф Те же данные вам следует ввести и при реализа­ ции еще одной полезной команды - СПИСОК, в резуль­ тате выполнения которой на экран выводится список слов , соответствующих заданному ключевому слову. 8 8 ф Полезными для вас могут также оказаться и та­ кие вспомогательные I<омандьи + ИСТОРИЯ - на экран выводятся список выполненных команд поиска, наименования использованных при этом полей карточки и ключевых слов, а также число карточек на каждом уровне выборки;• ф ВОЗВРАТ обеспечивает возврат к предыдущей вы­ борке; + СБРОС возвращает к исходной выборке уровня О. Все перечисленные выше команды вводятся первыми двумя буквами их наименований. КАРТ1715 распознает введенную команду и автоматически расширяет ее наиме­ нование вправо . Произведите поиск в картотеке Допустим, вы желаете получить список названий книг, автором которых является Александр Сергеевич Пушкин. Если пакет KAPTl 715 находится в состоянии «Поиск», то введите команду ВЫ. Далее введите двухбуквенное на­ именование поля ав, предназначенного для хранения све- 216
дений об авторстве издания, затем - символ ''/", после чего - ключевое слово Пушкин. ПосJ1е нажатия клавиши ЕТ на экран будет выведена первая карточка из получен­ ноi_ выборки, а в верхней служебной области экрана вы обнаружите сообщение: «Уров.1: запись 1 из 3». Цифра 3 указывает число карточек, вошедших в выборку, сформи­ рованную в результате первой операции поиска. Распечатайте карточки из полученной выборки, выпол ­ нив команду ПЕ, как это пояснялось выше. В результате вы будете иметь нижеследующий документ. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Название: СоSрание сочинений в 10 томах- ++++++++++++++++++++++++++++++++++++++++++++++++++++~++++ !Автор: Пушкин А.с.- !r"од изд. 1959-1962 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! Название: Стихотворен1151 и поэмы ! +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Автор: Пушкин А.С. !Год изд. 1976 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 Название: Сочинен1151 в 3 томах +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Автор: Пушкин А.С. !Год изд, 1985-1986 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Сравните его с исходной выборкой картотеки, приве­ денной на стр. 212. Продолжайте поиск, поставив перед собой цель вы­ явить из выборки те карточки, в которых год издания книг относится к i980-м годам. Для этого вновь введите коман­ ду ВЫ (ВЫБОР), а затем го/198?+.. В выборку уровня 2 войдет лишь одна карточка. 217
КАРТИН <ПОИСК> , ФAlllЛ = а: библи, Фил вывод УРОВ. 2:ЗАПИСЬ1ИЗ1 . +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Название: Сочi~нения в 3 томах · +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Автор: Пушкин А.С. !Год Изд. 1985-1986 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Теперь попробуйте расширить текущую выборку, вклю­ чив в нее карточки, содержащие наименования книг, по­ священных А . С . Пушкину. С этой целью введите коман­ ду ВК (ВКЛЮЧАЯ) и затем на/Пушкин+. Ниже приве­ дена полученная в результате такого трехступенчатого поиска выборка уровня 3. +++++++++++++++++++++++++++++++++++++++++++++++++++++~+++ ! Назва.ние: Жизнь Александра Пушкина +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Автор: Мейлах 5. 'Год изд. 1974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! Назван11е: Пушкин в Ми:<айловс:ком +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Автор: Новиков И.А . !Год изд. 1982 +++++++++++++++++·"+++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++.+++++++++++++++++++++++++++++++++++++++ ! Название: Соч11нения в 3 тома:~ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Автор: Пушкин А.С. !Год изд. 1985-1986 ++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++ Если вы захотите оставить в этой выборке только те карточки, в которых год издания предшествует 1980-му, то введите команду l(P (КРОМЕ) с продолжением ro/198?+. В результате будет сформирована выборка уровня 4, состоящая лишь из одной карточки. 218
КАРТИН (ПОИСК> , ФАЙЛ = а: библи. Фил УРОВ. 41ЗАПИСЬ1ИЗ1 .вывод ++++++++j+++++++++++++++++++++++++++++++++++~++~++t++++++ ( ! Название: Ж11знь Александра Пушю1на · '·! 1 1 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !Автор: Мейлах Б . !Год изд. 1974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Рекомендуем вам ввести команду ИС и проана лнзн­ ровать в.ыведеную на экран «историю» операций поиска. КАРТИН<ПОИСК>,ФАйЛ = а:библи.фил ВЫВОД НОВЫй УРОВ. 4. ФАйЛ СОДЕРЖИТ 5 ЗАПИСЕй. УРОВ. УРОВ. УРОВ. YPDB. выБОР 2 выБОР 3 вкЛЮ'-JАЯ 4 : крОМЕ ав/nушкин - 3 НАЙДЕНО ЗАПИСЕЙ га/198?+ - 1 НАйДЕНО ЗАПИСЕЙ на/nушкин+ - 3 НАйДЕНО ЗАПИСЕЙ го/198?+ - 1 НАЙДЕНО ЗАПИСЕЙ В завершение введите команду СБ и вернитесь к ис­ ходной выборке уровня О . Для освоенин команды СПИСОК введите сначала СП, а затем ав/ ??? +. В результате на экран будет выведен список фамилий авторов книг вашей домашней библио­ теки. КАРТИН< ПОИСЮ , ФАйЛ = а: библи. Фил ВЫВОД ========== ИНДЕКС: ========== мейлах новиков пушкин 5.6 . ОБЩАЯ СПРАВКА О КАРТ1715 Материалом этого парагр.афа вы будете пользоваться к.ак справочным. В табл. 5.1 сведены основные команды пакета прикладных программ КАРП 715, причем сгруппи­ рованы они в зависимости от выбранного меню. ·· 2t9
Таблиц а 5.1 Команды управления КАРТ1715 Клавиша Назначение I<оманды Основное меню главных и вторичных ;фуниций Г Смена главной функции . На экране отображаетсн смещением стрелки-указатели функции в очередную позицию меню главных функций В Смена вторичной функции. Отображаетсн смещением стрелки-указателя в очередную позицию меню втор!·l'I­ ных функций Ф Инициализация запроса ввода имени входного файла. Ввод имени за вершается нажатием к ла виши ЕТ Ы Инициализация запроса имени выхо дного файла при реа л изации функции копирования ф а й л а Д Смена дисковода перед посл е д у ю щей операцией чтенин или записи файла на гибкий магнитный диск ESC Переход в пр омежуточное меню: С - сменить функ- цию; В - выполнить; К - конец работы Промежуточное меню при в ыходе из основного м е ню С Возорат к основному меню для повторении или смены функций В Выполнение функций, определенных в основном меню К Конец работы в пакете КАРТ1715 с выходом в опера- э ционную систему Предварительное меню создания (коррекции) файла формата карточки Переход в меню создания формы карточки. Буква Э регистре 220 (коррекции) вводится в экранной верхнем
Клавиша п у ф д м Назначение l(Оманды Переход в меню создания (коррекции) структуры поля карточки. При создании нового полн КАРТ1715 сразу же запрашивает однобу~шенный идентификатор и двухбуквенное имя поля. При коррекции структуры поля запрашивается только его идентификатор Удаление поля в структуре карточки . Запрашива­ ется идентификатор удаляемого поля Переход в меню определения основного формата печати карточек Запись созданного (скорректированного) файла фор­ мата карт::JЧIШ на гибкий магнитный диск Возврат в основное меню без изменения файла формата Меню создания (коррекции) экранной формы карточки "Х, "С,"'- "Л, nд, _" "К, nE, t "Й, "Ь, 1 '1' "В Смещение курсора влево на один символ. При ис­ пользовании функциональной клавиши"'- возможна ав- тогенерацин ввода Смещение курсора впр.аво на один символ Смещение курсора вверх на одну строку Смещение курсора вниз на одну строку Ввод символа - разделителя полей 1<арточки по горизонтали. Последовательный ввод команды приво­ дит к понвлению на экране: *, <> . <!-!>, <· -- - - > и т. д. В последующем при распечатке карточек п ре до­ ставляется возможность выбора в качестве сим вола­ разделителя +. *, - или пробела "Ж Вставка дополнительной колонки в поле 11г Удаление одной колонки из поля "Н Вставка дополнительной строки в поле "Ы Удаление одной строки из поля 11п Печать экранной формы карточки 221
Клавиша Назна<1ение команды ESC ! В. озврат в предвари тельное меню создания (коррек- ции) файла формата карточки Меню создания (коррекции) структуры поля карточки 3 Инициализация запроса ввода текста заголовка, помещаемого в начало поля. В ответ на запрос вво­ дится заголовок, поясняющий назначение данного поля И Задание режима индексации слов поля . При нажатин клавиши И чередуются режимы: НЕТ - все слова поля не индексируются; ВЫБ - при вводе или редактировании текста поля предоставляется возможность выборочно индексщ:овать отдельные слова с помощью команды И (при нахождении курсора в выбранном слове); при переходе к очередному слову ин­ дексация автоматически сбрасывается; АВТО - при вводе (редактировании) поля пре­ доставляется возможность снимать индексацию слов с помощью команды И, которая первон а­ чально устана вливается автоматически; ВСЕ - все слова поля автоматически индексиру­ ются, возможности снятия индексации не пре до- . ставляется С Фиксация начала поля (ряда и колонки на экране) . Предварительно курсор устанавливается в левый верх­ ний угол поля К Фиксация конца поля. Предварительно курсор уста- навлива ется в правый нижний угол прямоугольника поля. После фиксации начала и конца поля оно авто­ матически заполняется ранее выбранным идентифика­ тором с помещением в начало поля введенного заго­ ловка Н Замена двухбуквенноrо имени поля ESC Возврат в предварительное меню создания (коррек- ции) файла формата карточки 222
Клавиша 1· Назначе1ше команды Меню определения основного формата печати карточек Р Задание числа строк на странице С Определение режима перехода к печа.ти следующей страницы В Задание числа пустых строк от верхнего края листа до текста Л Задание числа . отступов от лево.го края листа 3 Задание числа карточек, распечатываемых на одной странице П Задание чи.сла строк - пропусков между соседними карточками ESC Переход в предварительное меню создания (коррек- ции) файла формата карточки Объединенное менiо функций создания (коррекции) и поиска данных в картотеке "Р Переход к· первой карточке картотеки "Ц Переход к последней карточке картотеки 11А Возврат к предыдущей карточке "Ф "Ь "Х, ~- Переход к следующей карточке Удаление набранной команды Смещение курсора в набранной команде на одн11 символ лево ДО .. Добавить. Ввод текста в поля новой карточки, добавляемой к картотеке. При вводе и редактировании текста поля используется локальное меню, выоодимое в нижней части экрана. Переход к очередному полю обеспечивается нажатием клавиши ВТ. Ввод заверша ­ ется нажатием клавиши ESC с переходом в пром ежу­ точное меню : С - сохранить данную карточку в буфе­ ре оперативной памяти; М - сбросить ввод; Р - вер­ нуться к редактированию карточки 223
Клавиша УД ДУ 1{0 со вы КР В!{ во СБ ис СП вв пи Назначение иоманды . Удалить. Удаление из картотеки текущей карточки Дубль. Дублирование текущей 1<арточки с целью ее последующего редактирования Корректировать . Коррекция текста в текущей кар ­ точке Сохранить. Накопленные в буфере оперативной па­ мяти компьютера изменения к картотеке записываются на гибкий магнитный диск Выбор. Из текущей выборки карточе1< образуется новая вь1борка, включающая только те карточки, в ко ­ торых обнаружено совпадение с заданным ключевым словом при просмотре индексированных слов указан­ ного поля или всех полей карточек Кроме . Из текущей выборки карточек удаляются те из них, в которых обнаружено совпадение с ключевым словом Включая. В текущую выборку включаются карточки из исходной (уровня О) выборки, в которых обнару ­ жено совпадение с ключевым словом Возврат. Возврат к предыдущей выборке со сбросоы текущей Сброс . Возврат к исходной выборке (уровня О) с по­ терей всех выборок более высокого уровня История. Вывод на экран введенных команд поиска и числа найденных при этоы карточек Список. Вывод на экран списка индексированных слов, совпавших с заданныы ключевым словом Ввод. Ввод в картотеку данных из файла на гибком магнитном диске Писать. Запись текущей выборки в файл на диске 224
Клавиша Назначение 1<омаиды МА Маска. Поиск данных повышенной сложноdти, запу- Сl(аеыый вводоы подl(оыанд Выбор или Кроые. В отли­ чие от обычного режима поисl(а просматриваются все, в том числе и неиндексированные, слова полей карто­ чек ПЕ Печать . Распечатl(а или запись на диш карточек текущей выборки. С помощью локального меню мож1ю скорректировать режим печати (записи), задать иыя ВЫХОДНОГО файла ФО Форыат. Предоставляется возможность замены ос- новного формата печати посредствоы указании иыени другого заранее подготовленного файла формата МЕ Меню . Возврат к основному меню КЛРТ!715 5.7 . ПРОВЕРЯЕМ СЕБЯ. КАК УСВОЕН КАРТ1715? Упражнения 5.1. Как при коррекции формата карточки расширить ее поле на несколько позиций? 5.2. Каким образом можно вставить в текст какого­ либо поля карточки пропущенное при вводе слово? 5.3. Выведите на экран и печать последнюю карточку из вашей картотеки. 5.4. Как просмотреть содержание карточки из карто­ теки боJiьшого объема, если вам неизвестно, в какой части картотеки находится искомая карточка? 5.5. Можно ли при поиске данных в картотеке обеспе­ чить просмотр неиндексируемых слов? 5.6. Распечатайте содержимое картотеки по ою-юму избранному вами полю карточки. 5.7. Удалите вашу картотеку библи с магнитного диска. 225
Ответы к упражпенилм 5.1. В состоянии «КОРРЕКТ.ЭКРАНА» переместите курсор в выбранное вами поле и несколько раз подряд введите команду"Ж. . . . 5.2. В процессе редактирования содержi1мого карточки переместите курсор в позицию, начиная с которой вы на­ мереваетесь вставить пропущенное слово. Затем выпо л ни­ те раздвижку текста поля посредством нажатия клавиши "Ж . Далее введите в зарезервированное место вставляемое слово . Лишние пробелы при необходимости удалите с по­ мощью команды"Г. 5.3. В состоянии поиска данных введите команду "Ц. В результате на экране появится текст последней карточ­ ки вашей картотеки. Печать карточки обеспечьте вводом команды "П. Обратите внимание : в получаемую при это м распечатку войдет также служебная информация КАРТ 1715. 5.4 . Воспользуйтесь операцией поиска, задавая в I<ач.е­ стве образца текста ключевое слово, входящее толы< о в данную карточку. Учитывайте при этом, что в основном режиме поиска просматриваются только индексированные слова карточек. . 5.5. Вы можете обеспечить при поиске данных п'росмотр и неиндексированных слов, для чего воспоJ1ьзуйтесь ком ан· дай МА с последующим выполнением обычной операции поиска . Имейте в виду, что такой режим поиска данных потребует больше времени. 5.6. Предварительно создайте дополнительный файл формата карточки всего из одного поля. При работе с дан­ ными в картотеке введите команду ФО, а затем с помощью команды Ф задайте имя файла дополните.JJьного формат а . В дальнейшем вывод на экран и печать будет произво­ диться в новом формате, в котором предусматривается вывод лишь одного поля карточек. 5.7. Находясь в SCP, удалите с диска файлы библи.фмт и библи.фи.1: а>ера библи.* ЕТ-. 226
6 СИСТЕМА УПРАВЛЕНИЯ (-- - РЕЛЯЦИОНН_О~ БАЗОИ дл.нных\е~БУС . ) г-:-,---,--.,-,,..----,---,------~ 6.1. ДЛЯ ЧЕГО НУЖНА БАЗА ДАННЫХ? Попробуем разобраться в том, когда вам может по­ требоваться создание базы данных и чем система уп­ равления. базой данных от­ личается от других пакетов ~~~==Jl-':~~=;:===.==I программ вроде электрон­ ной таблицы или электрон- ной картотеки. База данных Когда говорят о базе данных, то под ней понима­ ют совокупность взаимосвя­ занных массивов дапных, хранящихся в памяти ЭВМ. Такое или подобное опре­ деление вы можете найти в работе [9] и других кни­ гах, посвященных . базам данных. Например, база данных, в которой хранится информации о какоl1-либо организации, может содер­ '-----'-'---"--'- ---- ---' жать перечень ее п одр аз де- 227
лений, штатное расписание, список сотрудников, данные'. о работах, проводимых в организации, и т. д. Вся эта раз< нообразная информация составляет единую базу данных : -:' Систе.ма управления базой данных Прежде чем вы сможете воспользоваться информаци­ ей, хранимой в базе данных, необходимо обеспечить ее ввод в память ЭВМ . Далее вам потребуется находить информацию в базе данных, обрабатывать ее тем или иным образом, выводить результаты обработки на дис­ плей, печатающее устройство или в базу данных, допол­ нять базу данных новой информацией . Всю эту работу выполняет система управления базой данных. У вас может возникнуть вопрос: чем система управле­ ния базой данных отличается от любой другой програм­ мы, обрабатывающей дисковые файлы? Принципиальное различие состоит в том, что система управления базами данных не зависит от то·й информации, которая хранится в базе данных. Если же вы написали программу, обраба­ тывающую какой-то определенный файл, например, на языке Паскаль, то вам не удастся воспользоваться этой программой для обработки другого файла. Еще одна возможность, предоставляемая системой управления базами данных, связана с тем, что базой дан­ ных можете пользоваться не только вы, но и ваши колле­ ги. Естественно, что у каждого пользователя могут суще­ ствовать собственные потребности в информации. Система управления базой данных позволит организовать для каж­ дого пользователя доступ к интересующим его данным и избавит его от необходимости знать, какая еще инфор­ мация хранится в базе данных. Воспользоваться · этими возможностями системы управ.­ пения базой данных можно с помощью ее команд, после­ довательности которых вы можете записать в командный файл на диск . Это позволит вам многократно автомати- 228
чески выполнять нужные действия по обработке базы дан­ ных. Освоение команд системы управления базой данных равно ценно освоению языка программирования. В работе [9] об этом сказано следующее: «Потребителей микро­ ЭВМ пытаются убедить, что это некоторым волшебным образом не языки программирования, и поэтому пакеты программ управления базами данных рассчитаны на на­ ивного и неопытного "неподготовленного" пользователя. На самом деле это такие же языки программирования, как и любые другие, и вы не решите с их помощью свои задачи, есJш не обладаете опытом и настойчивостью про­ грю.iмиста.» . Тем не менее это не должно вас пугать. Освоение любого пакета программ требует больших или меньших затрат времени. Все зависит от вашего упорства и оптимизма. Ч то лучше-РЕБУС, ВАРИТАБ или КАРТ1715 па Роботроне 171 5? Теперь попытаемся сравнить систему уп рав ления реля­ ци онной баз о й данных с электронной таблицей и электрон­ ной к а ртот еко й. Нач не м с электронной картотеки. Соглас­ но работе [22] «диагноз» мож ет быть следующим: ни на что, кроме картотеки, созданной по образу и подобию библиотечной, она не годится. Что касается электронной таблицы, то здесь дело обстоит несколько сложнее. Что в принципе невозможно сделать, используя этот пакет про гра мм? Во-первых, электронная таблица не позволяет осуществлять выборку информации из таблицы, а во-вто­ рых, невозможно произвести сортировку строк таблицы в соответствии со значениями некоторого столбца :(напри­ мер, упорядочить по алфавиту фамилии сотрудников в слу­ чае расчета ведомости начисления заработной платы). С помощью пак·ета программ электронной таблицы вы можете обработать совместно столько таблиц, сколько сможете разместить в рабочем поле. Однако такие мани­ пуляци и напоминают попытку проникнуть в дом через 229
дь1моход, коtда никт-о не мешает войти в открытую дверь - воспользоваться системой управления базой данных, , 1. К 1\.Ф<,омg. выводу мы с вами пришли? Все эти три пакета программ решают одну. и ту же задачу - в том или ином виде они формируют и обраба­ тывают таблицы. Однако делают они это с разным успе­ хом. В этом плане наибольшими возможностями обладает РЕБУС. Это значит, что, пользуясь им~ вы можете решить те задачи, которые позволяют решать и ВАРИТАБ, и КАРТ! 715, а также более сложные. Расплата за уни­ версальность РЕБУСа - большие затраты времени на его освоение. В конечном счете выбор пакета программ опре­ деляется тем, что именно вам требуется сделать. Очень хорошо, если для решения задачи вам будет достаточно ВАРИТАБа или КАРТ1715. Эти пакеты более удобны для пользователей, профессиональные интересы которых лежат в стороне от проблем программирования. Другое деJю РЕБУС. Освоение и решение задач с применением этого пакета программ стоит куда больших усилий. Поэтому РЕБУС - средство, скорее, для профессиональных про­ граммистов, чем для неподготовленных пользоватеJ1ей. 6.2. ЧТО ЭТО ТАКОЕ -- РЕБУС? Происхождение РЕБУСа · Если вас интересует возможность выбора системы управления базой данных, то на Роботроне 1715 ничего другого нет. Кроме РЕБУСа либо того, что может назы­ ваться по-другому, но подобно РЕБУСу является ничем иным, как системой управления базой данных dBASE II , вы не найдете ничего ни лучше, ни хуже . Тем самым наши организации - поставщики программного обеспечения оп- . ровергают старую истину- насильно мил не будешь. 230 .
Что касается метода получения РЕБУСа из .dBASE II, то он достаточно прост. В американском оригинале пере­ водятся с английского языка на русский имеющиеся сооб­ щения. В результате вы можете стать счастливым· обл.ада­ телем отечественного пакета программ вместе с докумен­ тацией к нему [ 17]. Состав системы управления базой данных РЕБУСа РЕБУС поставляется на двух гибких дисках Таллин­ ским научно-учебным центром. На первом диске записаны файлы, составляющие РЕБУС, на втором - файлы, пред­ назначенные для выполнения контрольных примеров. Для работы с системой управления базой данных необходимы два файла с первого диска: REBUS.COM (занимает 30 Кбайт дисковой памяти); REBUSOVR.COM (40 Кбайт). Все остальные файлы не являю·гся жизненно необходимы­ ми для работы системы управления базой данных. Файл REBUSMSG.TXT (44 Кбайт) позволит вам по­ лучить помощь в использовании команд и функций систе­ мы управления базой данных непосредственно во время работы с ней. Файлы МАКЕТ.СОМ (14 Кбайт), ZSCRN.OVL (20 Кбайт), DGEN .OVL (8 Кбайт) являются составными частями программы создания форм для организации вво­ да/вывода информации. Командный файл RSORT.CMD (4 Кбайт) предназна­ чен для сортировки записей в порядке русского алфавита. Командный файл SETS.CMD (2 Кбайт) служит для установки начальных значений параметров системы управ­ ления базой Даfшьiх. Перечисленные выше файлы занимают на диске 152 Кбайт. Это зна:чит, что вы сможете разместить их яtе на одном диске · вне зависимости от варианта испол­ нения· Роботрона 1715. 231
6.3. ПОСТАВИМ ЗАДАЧУ Определите нужную вам инфор.мацию Никакой компьютер не сможет помочь вам, если вы не знаете, какая помощь требуется и в чем она должна за­ ключаться . Представьте, что вам пришлось стать главой некой организации, занимающейся разработкой программ­ ного обеспечения, причем все сотрудники не знают ничего кроме Бейсика. Ситуация - достаточно традиционная . Как правило, она усугубляется тем, что «знатоки» Бейсика не хотят слышать ни о чем другом. Для начала вы решаете разобраться в том, что может дать вашей организации использование баз данных . Но заниматься таким делом без конкретной задачи бесполез­ но. Самое простое - попробовать самому создать базу данных, в которой бы хранилась информация о самой орга­ низации, необходимая вам лично в работе. Первое, что вы выя сняете, - какие подразделения есть в организации и кто ими руководит. Немаловажно так­ же, что делают эти подразделения, когда наступают сро­ ки окончания работ, кто является заказчиком, сколько можно выплатить денег исполнителям за год и кто руко­ водит работами. Что касается самих сотрудников, то надо знать фамилию, имя и отчество каждого из них, в каком из подразделений работает, какую должность занимает, какой оклад получает и в какой работе участвует. Таким образом вы определили состав хранимых дан­ ных, которые впоследствии при необходимости всегда можно будет дополнить. Как выглядит база данных на бумаге? Если вы попытаетесь представить всю требующуюся информацию в одной таблице, то ее размеры, вероятнее всего, станут для. вас не очень приятным сюрпризом. Кроме того, от вас потребуется огромное терпение, когда нужно будет заполнить эту таблицу. Ведь для каждого 232
ПОДРА ЗДЕЛЕНИ5I !<од 1 Наименооанне подра з- подразделе~шя делении 1 Отдел бес систем- ног о программи- рования 1 Код сотруд- ник а 3 Код 1 долж- 1-IОСТИ должности Наименованi1е должности Вед у щий инженер Старший инженер 2 Отдел АСУ попало чем 4 2 3 Инженер-программист t СО ТРУ дНИl<И -, !<од 1 сотр уд - Фамилии, имя, отчество 1 Код 1 Оклад 1 НИl< З 1 2 3 4 5 6 Код рабо­ ты 2 подра з - долж- м.еJiенияl ности Иванов Иван Иванович 2 Дубова Татьяна Петровна 2 Кобрин Сергей Тимо фееви ч 1 Петров Петр Петрович 2 Дурова Юлия Сергеевна 1 Сидоров Сидор Сидорович 2 Наи ме 1юо::шие работы Сро1< окончания Разработ((а па((ета прог- рамм «Шлеп-Хлоп» 31/12/88 r. Разработ((а задумчивого 30/06/89 r. интерфейса (( базе дан- ных 1 250 3 130 2 150 1 250 3 130 1 250 За1<азчик Завод им . 1 апреля по «Февраль» Фонд зара­ ботной платы 4800 5400 3 Разработ((а АСУ пр оизво дством 31/12/88 r. Трест 6000 Главщеп((а Кол работы 2 2 1 3 1 3 Код 1 сотру д• 11нка 3 4 Рис. 6.1 . Пример базы данных, представленной несколькими таблицами 233
сотруд~-rика организации надо указать полностью наиме­ нование отдела, в котором он работает, наименование pai боты, в которой этот сотрудник принимает участие, а та~; )Ке всю информацию, относящуюся к этой работе. · Вывод, к которому вы вскоре придете, заключается в том, что одна и та же информация будет многократно повторяться в таблице. Избежать этого вы можете, вос­ пользовавшись несколькими таблицами, выделяя повто­ ряющиеся элементы в отдельные таблицы. В результате вы получите нечто подобное тому, что представлено на рис. 6.1. Рассмотрим некоторые связи, существующие между таблицами в рассматриваемом примере. В таблице ПОД­ РАЗДЕЛЕНИЯ в столбце «Код сотрудника» находятся значения, определяющие, кто из сотрудников организации руководит соответствующим отделом . Предположим, нас интересует, кто руководит отделом с кодом отдела 2. Вы­ ясняется, что это некто, значащийся под кодом сотруд­ ника 4. Выяснить, кто это, можно, обратившись к та блице СОТРУДНИКИ. В ней надо найти строку, в которой в столбце «Код сотрудника» записано 4. Тут мы обнару­ живаем, что это Петров Петр Петрович. На рис . 6.1 все связи такого рода показаны стрелками . Что это нам дает? А то, что совершенно не обязательно одну и ту же информацию полностью дублировать везде, где она требуется. Достаточно поместить там тот элемент, который однозначно определяет всю совокупность данны х . В рассматривавшемся примере значение в столбце «Код сотрудника>> однозначно соответствует некоторому конк­ ретному человеку . Поэтому можно использовать код со­ трудника везде, где требуется указать, что речь идет о ка­ ком -то конкретном человеке. Аналогично тому, как это делалось в таблице ПОДРАЗДЕЛЕНИЯ, в таблице РАБОТЫ код сотрудника определяет руководителя работ. · Приведенный выше анализ сильно упрощен. Ничего не говорится о том, какая информация, хранящаяся в базе 234
данных, будет нужна для решения каждой конкретной за­ ДаЧи . И вообще ннЧего не говорится о задачах; которые будут использовать базу данных. Тем не менее Подобный анализ потребуется от вас до того, как будет запущена система управления базой данных и вы приступите · i< со­ зданию базы данных. В реальной ситуащщ на решение этих вопросов может быть затрачено несколько месяцев работы. 6.4 . НЕМНОГО ИЗ ТЕОРИИ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ Таблица . 6.4J. ЧТО НАЗЫВАЮТ РЕЛЯЦИОННОЙ БАЗОИ ДАННЫХ? Человечество начало использовать таблицу для пред­ ставления данных задолго до появления реляционных баз данных и сопутствующей им теории. Каждому из нас в своей жизни приходилось составлять не одву таблицу, и едва ли кто-то отважится выразить свое цеrюнимание по поводу того, что же такое таблица и как ею пользо­ ваться. Использование таблиц позволяет представлять любые данные в обозримом виде и понятной форме. Таб ­ лица обладает следующими свойствами [ J1J: + каждый элемент таблицы представляет собой один элемент данных, повторяющиеся группы отсутствуют; + все столбцы в таблице однородные; это означает, что элементы каждого столбца имеют одинаковую природу; ф столбцам однозначно присвоены имена; · ~ в таблице нет двух одинаковых строк; ф в операциях с таблицей ее строки и столбцы могут просматриваться в любом порядке и любой nоследова- 235
тельности безотносительно к их информационному содер· жанию и смыслу. Реляционная база данных При работе с реляционной базой данных вам наверня­ ка придется столкнуться с различной терминологией. Со­ ответствие различных терминов вы можете найти в табл. 6.1. В дальнейшем для облегчения понимания будем пользо­ ваться традиционной терминологией и той, которая при­ нята в РЕБУСе , Таблиц а 6.1 Соответствие терминов в теории и п р актике реляционных баз данных Традиционные понятия 1 Теория реляционных 1 Система управления базой баз данных данных РЕБУС Таблица Отношение Файл базы данных / Строка Кортеж Запись Столбец Атрибут Поле Множество допустимых Домен Тип и длина поля значений элементов столбца По своей сути реляционная база данных представляет собой несколько связанных друг с другом таблиц. Одна­ ко никто, конечно, не заставляет вас делать неск.олько таблиц там, где может быть достаточiю одной. Ваша за­ дача заключается в определении состава столбцов каж­ дой используемой таблицы и организации взаимосвязей таблиц, что обсуждалось уже в параграфе 6.3 при поста­ новке задачи. Работа с системой управления реляционной базой дан­ ных требует знания средств работы с таблицами. К этим средствам относятся восемь операций, которые должна 236
выполнять система управления реляционной базой данных для того, чтобы таковой называться по праву. Предла ­ гаем вам ознакомиться с тем, что они собой представляют , 6.4.2 . ОПЕРАЦИЯ ПРОЕКЦИИ Операция проекции позволит вам выделить из табли­ цы один или более столбцов и получить вторую таблицу, содержащую только нужные вам столбцы . Обратившись к рис. 6.2, вы увидите, что получится, если из таблицы СОТРУДНИКИ (см . рис. 6.1) с помощью операции про- СОТРУДНИIШ Код подразделения 1 должности 2 1 2 3 1 2 2 1 1 3 2 1 L_:__. РЕЗУЛЬТАТ ПРИМЕНЕНИЯ ОПЕРАUИИ ПРОЕIЩИИ I<од подразделения J дотю10сти 2 2 3 2 3 Рис. 6.2 . Выполнение операции проекции екции выделить столбцы «Код подразделения» и «Код должности». В исходной таблице СОТРУДНИКИ содер ­ жатся шесть строк, из них строки 2, 3, 5 уникальны, а строки 4, 6 повторяют содержание первой строки. Опе­ рация проекции в ходе создания новой таблицы включает в свой состав только уникальные строки (2, 3, 5) исходной таблицы и один экземпляр повторяющихся строк _( 1, 4, 6). 237
Смысл примера заключается в . том, что в результате буде.т , получена таблица, в которой будут перечислены коды подразделений и коды должностей, . которые еств в этих подразделениях. Переходя от частного к общему, можно сформулировать следующее правило выполнения операции: результир ую­ щая таблица отличается от исходной тем, что она содер­ жит только те столбцы, для которых выполняется опера­ ция проекции. Кроме того, в результирующей таблице должны отсутствовать повторяющиеся строки. 6.4 .3 . ОПЕРАЦИЯ ОГРАНИЧЕНИЯ Эта операция дает вам возможность выделить из таб­ лицы те строки, которые удовлетворяют некоторому по­ ставленному вами условию. При этом исходная таблица и таблица, являющаяся результатом, имеют одинаковый состав столбцов. Применим операцию ограничения к таблице СОТРУД­ НИКИ (см. рис. 6.1). Выделим из нее строку, примени­ тельно к которой значение в столбце «Оклад» равно 150 (табл. 6.2). Таким образом, в результате выполнения операции огра­ ничения вы получите новую таблицу, сод.ержащую те же столбцы, что н исходная. Из исходной таблицы в резуль- J(од 1 сотру д 1 1ю<а 3 Таблицаб.2 Результат выполнения операции ограничения Фамилия, имя, отчество 1по,l~~~де- / д~<;;:~. / О1<лад 1р~~оо~ы леuия ности Кобрин Сергей Тимофеевич 1 / . 2 / 150 / 1 238
тирующую переписываются только те строки, значения с:голбцов в которых удовлетворяют условиям, указанным ~ · операции ограничения. 6.4.4 . ОПЕРАUИЯ СОЕДИНЕНИЯ :''-;' Эта операция позволит вам соединить две таблицы и по­ лучить третью. Легче всего показать действие этой опера ­ лии на примере, приведенном в табл. 6.3 примените .пь но к таблицам ПОЗДРАВЛЕНИЯ и СОТРУДНИКИ ,(см. рис. 6.1) . 1 Код 1 подраз- дедении l Таблиц а 6.3 Пример выполнения опера~J.ии соединения Наименооааие 1 /{од 1 Фамилия, имя. 1 Код 1 1 J(од подразделения сотруд- отчество долж~ Оклад раб о ~·ы ннка ности Отдел бессис- Кобр ин темного програм- 3 Сергей 2 150 1 мирования Тимофеевич 2 1 ОтделАСУчем1 попало 4 1 Петров Петр Петрович 1 1 1 250 1 3 Таблицы, которые используются при выпоJ1нении опе­ рации соединения, содержат два общих столбца : «Код под­ разделения» и «Код сотрудника». Результирующая табJiица содержит те столбцы, которые есть хотя бы в одной из таблиц. В нее будут записаны строки, полученные при­ соединением строки из табJiицы ПОДРАЗДЕЛЕНИЯ i< строке из табJiицы СОТРУДНИКИ. Дополните.[lьное 239
свойство, которым должны обладать соединяемые в рас ­ сматриваемом примере строки, таково: значения, находя· щиеся в столбцах «Код подразделения» этих двух таблиц, должны быть равны . То же самое условие должно выпол­ няться в отношении столбцов «Код сотрудника» таблиц ПОДРАЗДЕЛЕНИЯ и СОТРУДНИКИ. С учетом этих условий могут быть соединены строка l таблицы ПОДРАЗДЕЛЕНИЯ со строкой 3 таблицы СО· ТРУДНИКИ и строка 2 таблицы ПОДРАЗДЕЛЕНИЯ со строкой 4 таблицы СОТРУДНИКИ . Таким образом получается, что операция соединения использует только те строки исходных таблиц, в общих столбцах которых содержатся равные значения . Если эту операцию применить к ~rаблицам , не имеющим общих столбцов, то она будет эквивалентна операции пр я · мого произведения , с которой вы ознакомитесь н е с колько позж е. 6.4.5. ПРОЧИЕ ОПЕРАЦИИ Отвлечемся теперь от нашего примера и р а ссмотрим остальные операции на абстрактных примерах. В них для обозначения столбцов будем использовать прописные ла· тинские буквы, а для обозначения значений в столбцах - строчные буквы с числовыми индексами. Примеры этих операций приведены на рис. 6.3 . Они не более чем иллюстрируют действия операции на некото­ ром конкретном примере. Если вас заинтересуют детали, то вам следует обратиться к литературным источникам [4, 12, 13], что позволит ознакомиться с математическим аппаратом, используемым в теории реляционных баз дан­ ных [13], с системой управления реляционной базой дан­ ных [4]. Если вам захочется получить достаточно полное 240
--+Деление----1 1 _t__+_ А 1 в в А 31 Ь1 31 Ь2 _а_1_ 31 Ьз а2 Ь1 32 Ь2 Таблица 1 А 1 в 31 Ь1 31 Ь2 32 Ь1- Пересечение Таблица 2 А в 1 в j--+-a _2__Ь_1_ ·---'---- 1---"--'---"- А 31 Ьз а2 Ь1 32 Ь2 -~-'2_ -+ Прямое t произведение-, t i А в --л--\--в- Объедин ение А в Разность (табл . 1- табл. 2) 31 Ь1 31 Ь2 А в 32 Ь1 al Ьз bl 32 Ь2 а, 32 Ьз 31 Ь2 .Рис. 6.3. Примеры выполнения операций делени я , прямого прон з ве­ дения, пересечения, объединения и р азно сти представление о состоянии теории реляционных баз дан­ ных, то вам не обойтись без работы [ 12]. В каждой нз этих книг вы сможете найти формальное описание опера­ ций, рассмотренных выше. 9 Заказ No 594 241
6.4 .6 . ЯВЛЯЕТСЯЛИ РЕБУС СИСТЕМО .!/i . УПРАВЛЕНИЯ РЕЛЯЦИОННОЙ БАЗОЙ ДАННЫХ? Сама по себе система управления реляционной базой данных РЕБУС напоминает, скорее, детский конструктор «Сделай сам». Если вы знаете, какой операцией хотите воспользоваться, то практическая ее реализация будет состоять в использовании некоторой последовательности команд РЕБУСа. Достаточно просто можно выпо Jшить операции ограничения, соединения и пр ямо го произведе­ ния. Что касается остальных команд, то вам придется со­ здавать командные файлы, которые выполняли бы эти операции . Так что знакомство с теорией, скорее, приведет вас в уныние при столкновении с РЕБУСом, чем поможет в решении задач. РЕБУС и ему подобные системы называют полуреля­ ционными, частично реляционными и т. ri. Если подходить с подобной точкой зрения, то автомобиль без рулевого управления можно назвать полуавтом обилем . Другое неудобство, связанное с использованием РЕ­ БУСа, состоит в большом числе команд (62) и функци й (14), не считая операций, что отнюдь не способствует ускорению освоения это го пакета прог рам м . Ситуация становится для пользователя сравни м а по удобствам с т ой, тшгда в упомянутом выше полуавтомоб иле установлены микропроцессорная система упра вления дви жением, систе­ ма речевого управления, система кондиц ионирования воз­ духа и т. д. Однако что толку от всего этого, если ездить на нем можно только прямо . В работе [22] сказано просто, что, называя dBASE II (а значит, и РЕБУС) системой управления реляционной базой данных, желаемое выдают за действительное. Дру- 242
гой интересный факт заключается в том, что фирмы - раз­ работчики программного обеспечения отказались от раз­ работки систем управления реляционной базой данных для 8-разрядных микроЭВМ, считая это технически невозмож• ным [22]. Тем не менее, какой бы несовершенной ни была эта система управления реляционной базой данных, опыт по­ казал ее пригодность для решения большого числа прак­ тических задач. 6.5. РАБОТА С СИСТЕМОЙ УПРАВЛЕНИЯ РЕЛЯЦИОf-ШОй БАЗОИ ДАIНJЫХ РЕБУСа 6.5 .1. что НАДО СДЕЛАТЬ ПЕРЕД ЗАПУСКОМ РЕБУСа? Типы дашtых, используе.+~ыг в РЕБУСе !\ этому моменту нам известно, какую информацию и каю1м образом требуется хранить в базе данных. Но этого недостаточно дл я того, чтобы начать работу с систе­ мой управления базой данных. В чем тут дело? Первое, о чем вам надо помнить, - это то, что систе­ ма управления базой данных обеспечивает возможность использования ограниченного числа типов данных: сим ­ вольного, числового и логического. Данные символьного типа (обозначение в РЕБУСе - С) позволяют формировать, сохранять и обрабатывать по­ следовательности сим1юJюв - букв, цифр, зна1сов препи­ нания, специальных символов. 243
Числовые данные (N) - это целые или вещественные значения, представленные в десятичной системе счисления . Они могут включать знак числа. Вещественные числа мо ­ гут содержать точку, отделяющую целую часть числа от дробной. Вы должны запомнить, что строка «123» и чис­ ло 123 - разные вещи. Данные логич еского типа (L) позволяют представлять только два вида значений - ИСТИНА и ЛОЖЬ (ДА/ НЕТ). Вернемся к табл. 6.1, к той ее части, которая касается РЕБУСа. Приведен ные в ней элементы - файл базы дан­ ных и поле - должны иметь имена. На вас Jiожится обя ­ за нность дать имена всем файлам базы данных и по лям, которые будут использоваться. Имя файла базы дат-1.ых Имя файла базы данных может содержать от одного до вос ьми символов. Допустимыми являются J1атин с1шс букв ы и цифры . Можно использовать и другие симвоJJы в имени базы данных. При этом действуют ограничения, налагаемые операционной системой на имя файла. Обратимся снова к п римеру и дадим имена фай лам базы данных, в которых будет храниться инфор мация, представленная ранее в таблицах. Сделаем это в виде T<JбJJ. 6.4. Имя поля Файл базы данных содержит одну или несколько запи­ сей или не содержит их вовсе . Каждая запись состоит из одного или более полей . Каждому полю должно быть при­ своено имя, вкJJючающее от одного до десяти символов:_ . 11 атинских букв, цифр, двоеточий. Имя поля начинается с буквы и не должно заканчиваться двоеточием. 244
Когда вами определены имена полей для записей каж­ дого файла базы данных, остается сделать последний под ­ готовительный шаг. Вы должны установить типы данных для представления информации в полях записи и макси­ малыюе количество символов (для символьных данных) Таблиц а 6.4 Соответствие имен таблиц и имен файлов базы данных Ими и~я таблицы фnйда базы данных ПОДРАЗДЕЛЕНИЯ DIV РАБОТЫ WRK СОТРУДНИКИ ЕМР должности Of!' или цифр (для число­ вых), которые могут быть использованы для этого. Доведем до конца под готовку к вводу описания структуры ба­ зы данных . Все, что нам будет нужно, пред­ став им в виде табл. 6.5. Теперь мы оконча­ тельно готовы к работе с РЕБУСом. Таблиц а 6.5 Описание структуры базы данных Ими файла Ими поли Тип Длина базы даю-1 ых DIV DIV : CODE с 2 DIV:NAME с 40 EMP:CODE с 3 \VRK WRK:CODE с 2 WRK :NA ME с 40 \VRK:END с 8 WRK:CUST с 20 \VRK:I'UND N 5 EMP:CODE с 3 ЕМР ЕМР: CODE с 3 EMP:NAME с 30 DIV:CODE с 2 OFF:CODE с 2 ЕМР:ТАХ N 3 WRK:CODE с 2 OFF OFF:CODE с 2 OI'F:NAME с 20 245
6.5.2. ЗАПУСК РЕБУСа Произвести запуск РЕБУСа вы сможете только в том случае, когда загружена операционная система. Дис1<: с РЕБУСом должен быть установлен в дисковод, который является текущим активным в данный момент времени. В противном случае вы должны сделать текущим актив- 1-iым ТОТ дисковод, в котором установлен ДИСК с РЕБУСом~ Если вы заменяли диски, то не забудьте произвести сброс дисковой системы. Для этого нужно одновреме нно нажать клавиши CTRL и С. Забывчивость в подобной си ­ туа ции может привести к потере результатов ваш ей работы. Теперь вы можете запустить РЕБУС, введя с клави ату­ ры REBUS и нажав затем клавишу ЕТ. Далее РЕБУС попросит вас ввести текущую дату. Это будет сделано в виде ВВЕДИТЕ ДАТУ ИЛИ <ЕТ> (ДД/ММ/ГГ): Ввести дату вы можете нескольки м и способами . На­ пример, ввод в качестве даты 1 апреля 1988 г. может быть выполнен следующими способами: 1/04/88 1488 01.04.88 01 :4:88 Ввод даты завершается нажатием клавиши ЕТ. Если вы просто нажмете клавишу ЕТ, не вводя дату, то будет автоматически установлена дата 00/00/00. После ввода даты будет выведено сообщение . ВВЕДИТЕ 'HELP', 'HELP REBUS' ИЛИ КОМАНДУ . Появление точки в начале строки означает, что систе­ ма управления базой данных готова к выполнению команд. 246
6.5 .3. ввод ОПИСАНИЯ СТРУКТУРЫ ФАйЛА БАЗЫ ДАННЫХ И ЕГО ЗАПОЛНЕНИЕ Ввод описания структуры файла базы данных Ввести описание структуры файла базы данных вы можете, воспользовавшись командой CREATE. Ниже при­ веден пример ввода описания структуры файла базы дан­ ных ЕМР, определенной нами в табл . 6.5. - CREATE ВВЕДИТЕ ВВЕДИТЕ ИМЯ ФАll!ЛА: ЕМР ФОРМАТ СОГЛАСНО ПРИМЕРУ: ПОЛЕ 001 002 003 004 005 006 ИМЯ,ТИП , дЛИНА,ДЛИНА ДРОБНО~ ЧАСТ~ EMP:CODE,C ,3 ЕМР: NAME,C , 30; DIV: CODE,C ,2 · OFF:CODE,C,3 EMP:TAX,N,3 . WRK:CODE,C ,2 СЮ7 ввод ДАННЫХ CEll!ЧAC? У ЗАПИСЬ 00001 1 EMP:CODE EMP:NAME · DIV:CODE OFF:CODE ЕМР:ТАХ WRK:CODE ИВАНОВ ив~н ИВАНОВИЧ 2 :1 250 12 ЗАПИСЬ 00<•02 EMP:CODE Если, введя команду CREATE, вы не указали имя фай­ ла базы данных, то РЕБУС запросит его ввод, как это 247
показано выше. Если файл базы данных с указанным вами в команде CREATE именем уже существует, систе­ ма управлен~я базой данных предоставит вам возмож­ ность выбора одного из двух: уничтожить существующий файл базы данных и создать новый с указанным именем либо ввести другое имя для создаваемого файла базы данных. Когда вами указано имя создаваемого файла базы данных, РЕБУС начнет ввод описания его структуры. Сначала будет выведен номер очередного п оля и курсор останется в той же строке. Теперь вы доJ1жны ввести описание поля в следующей последовательности: имя поля, его тип, максимальная длина поля. Д ля числового по ля может быть указана длина дробной части. Эти элеме нты описания должны быть разделены запятыми. Ввод описа­ ния очередного поля завершается нажатием клавиши ЕТ. Затем вы можете ввести описанИ е очередного поля или за в ершить ввод описания структуры файJiа базы данных. Для завершения ввода описания структуры нажмите 1<.па­ вишу ЕТ в отв ет на за прос ввода описания очередного поля. Это и было сделано в примере в ответ на запрос ввода описания седьмого поля . Заполttеtше файла базы данных Возможности команды CREATE не исчерпываются вво­ дом описания структуры файла базы дан ных . Завершив его, вы можете внести информацию в созда нный файл базы данных. Впрочем, никто не торопит ва,с с этим. Систе ма управления ба зо й данн ых задаст вопрос: желаете ли вы сейчас Dвести данные или нет? Если вы нажмете клави­ шу N, то это будет означать отказ от такой возможности. Нажати е клавиши У позволит вам ввести данные, что и продемонстрировано в прив еден ном при ме ре . Система управления базой данных выводит номер запи­ си файла базы данных, в которую будет производиться ввод (ЗАПИСЬ 00001). Затем будет выведено имя пер - 248
вого поля, за которым ставится двоеточие. Курсор оста­ нется в этой Же строке. Teriepь РЕБУС готов получить то, что вы · намереваетесь записать в это поле. Ввод данных в поле завершится по нажатию клавиши ЕТ . Затем РЕБУС выведет имя следующего поля и будет ожидать ввода данных в него. И так поле за полем, запись за записью вы будете заполнять файл базы данных. Как вы могли зам ети ть, порядок запроса ввода данных в поля совпадает с поряд­ ком их следования при вводе описания структуры файла базы данных. Завершить процесс заполнения файла базы данных вы можете только в момент, когда запрашивается ввод в первое поле очередной записи. Для этого вам до­ статочно нажать клавишу ЕТ, не вводя больше ниче1·0 с клавиатуры . flроверьте состоя1ше файла базы дшщых Всегда полезно убедиться в том, что вы по т ратили время не напрасно и не наделали ошибок. Простейший способ убедиться: в этом показан нижr , • LJSE Ei.'I P . DISPLAY STRUCTURE СТРУКТУРА ФАйЛА: А:ЕМР .DBF ЧИСЛО 3АПИСЕ111: 00001 ДАТА ПОСЛЕДНЕГО ОБНОВЛЕНИЯ: 29/07/88 ПЕРВИЧНАЯ БАЗА ДАННЫХ ПОЛЕ ИМЯ ТИП ДЛИНА ДРОБНАЯ ЧАСТ!::· 001 EMF' : CODE С 003 002 EMF' : NAME С 030 003 DIV:CDDE С 002 004 DFF: CODE С СЮ3 005 EMF':TAX N 003 006 WRK: CDDE С СЮ2 ** ВСЕГО ** 00044 . DISPLAY ALL 00001 ИВАНОЕ: ИЕ:АН ИБАНDЕ:ИЧ 2 24!) 25() 2
Системе управления базой д-в:нных неизвестно, с ка­ ким файлом базы данных вы намереваетесь работать. «Объяснить» ей это можно с помощью команды USE, за которой через пробел следует имя нужного вам файла базы данных. Ввод команды завершается нажатием кла­ виши ЕТ. Теперь ничто не мешает вам полюбоваться на дело своих рук: + по команде DISPLAY STRUCTURE на экран дисплея выводятся имя файла базы данных, с которым вы сейчас работаете, количество записей в нем, дата его последнего обновления и структура записи в нем; ф по команде DISPLAY ALL на экран дисплея будут выведены все з аписи, внесенные к этому времени в файл базы данных. Дополн,ение файла базы данных Сколько бы вы ни внесли записей в файл базы данных, рано или поздно понадоб ится добавить в него еще что-то. Когда у вас во з н ик ает такая пот ребность, воспользуйтесь командой APPEND. , APPEND ЗАПИСЬ ОС>ОО2 а1Р: CODE 1 2 ЕМР: NM1E ДУЕОВА ТАТЬЯНА ПЕТ Р ОВНА DIV:CODE 2 OFF:CODE : 3 ЕМР:ТАХ 1 130 WRK:CODE 2 ЭАПИСI:· 00003 EMP: .CODE Если вы сравните примеры использованин команд CREATE и APPEND, то обнаружите, что «поведение» 250
команды APPEND аналогично тому, как «ведет себя» команда CREATE, когда вы используете ее для заполнения файла базы данных. Поэтому не будем останавливаться на этом более подробно. l!еизбежность ошибо1' 6.5 .4 . ПОЧЕМУ ВЛМ ПРИДЕТСЯ БОРОТЬСЯ С ОШИБКАМИ? Истории о том, к чему приводят ошибки в программах, до статочно часто можно встретить в специальнои лите ­ ратуре по программированию. С появ л ением персональ­ ных ЭBNl положение усугубилось различными проявления- 1\!И компьютерного «хулиганства», от которого «достается» в основном базам данных . Конечно, трудно представить с е бе, что у нас кто -то сможет с помощью своей персо- 11 альной ЭВМ открыть счет в Госбанке на миллиард , дру­ гой. Отставание в уровне развития сред ств вычислитель­ ной техники спасает нас от неприятностей такого сорта. Однако не ошибается только тот, кто ничего не делает. При вводе данных в ЭВМ неизбежно будут во з никать ошибки. А раз так, следует позаботитьсл, чтобы они не приводили к катастрофическим пос ледствиям . Лучше всего обнаруживать и устранять ошибки сразу, в том месте, где они появились. Целостность базы даюiых Поп ро буем на примере выяснить, к чему может при­ вести ошибка при вводе информации в базу данных. Об ­ ратимся для этого к рис. 6.1. Представим себе, что в таб­ лице ПОДРАЗДЕЛЕНИЯ в первой строке записан код сотрудника не 3, а 7. Как вы можете заметить, сотрудни- 251
liь1fJecmu со!Jвржuмог Файлаоазы донных 1 (Конец_) {/(ОМО/(0116/й -- qJOl.IA !N.STALL.CMD _ rраш {Комо11д11D1й СЕТСОDЕ1. CMD - айл { Командный rJПroDE2.CMD Г /(оман'Qный __ cpGU// LGEТCODEJ.CMD 1 1 1 { Командный t- q;ойл J WPIТEEMPCMD Рис. 6.4 . Схема алгоритма внесения записи о со­ труднике 252
ка с таким кодом нет. В результате такой ошибки вы ни- ..,. когда не сможете узнать, используя базу данных, кто в ва- шей организации руководит отделом бессистемного про­ граммирования. И это в лучшем случае. В худшем - руко­ водителем этого отдела может «стать» любой сотрудник вашей организации. Все будет зависеть от того, каким образом обрабатывается информация из базы данных. Ситуация, о которой шла речь, означает, что связи между данными в базе нарушены. А коли так, то, следуя определению, такую совокупность данных нельзя назвать базой данных . К аналогичным последствиям могут при­ вести ошибки в любой другой таблице. Существует, правда, вторая ситуация, когда вместо кода сотрудника 3 будет записано 2. Такую ошибку мож- 110 распознать и устранить, если вам известно, кто руко­ водит отделом бессистемного программирования. Но вернемся к п ервому случаю и разберемся, как с ним можно бороться. Рассмотрим наши возможные дей­ ствия на примере таблицы СОТРУДНИКИ, которая имеет наибольшее число связей с другими таблицами. Для боль­ шей наглядности представим это в виде схемы алгоритма (рнс. 6.4). Что требуется сделать? Как вы можете заметить, приведенный выше алгоритм слишком сложен, чтобы его можно было реализовать одной командой РЕБУСа. Однако есть возможность орга­ низовать выполнение нужных действий, воспользовавшись командными файлами. Напомним, что РЕБУС поз воляет аптома тически выполнять последовате льности команд, предварительно за писанные в дисковый файл. Такой фай л называется командным, и вы можете создать его с п о­ м ощью любого текстового редактора . Кроме того, в РЕ­ БУСе имеются средства для создания и модификации командных файлов. Важное свойство РЕБУСа состонт в том, что один командый файл может инициировать rн,1- 253
полнение другого командного файла. После завершения выполнения второго rюмющного файла продолжится вы­ полнение первого. В этом механизме вы можете найти много общего в принципа ми использования подпрограмм в языках программирования. Теперь сформулируем требованиям к организации вво­ да записи о сотруднике: + присваиваемый новому сотруднику код должен быть уникален. Если введен код сотрудника, уже содержащайся в базе данных, то необходимо затребовать его 'повторный ввод; ф цри вводе кода подразделения, кода должности и кода работы следует обеспечить контроль за тем, что подраз­ деление, должность, работа с указанным кодом суще­ ствуют. Ввод какого - Jiибо кода, не содержащегося в базе данных, должен приводить к требова!!ию его повторного ввода . Все остальные приемы будут пояснены по мере рас­ смотрения командых файлов, решающих эту задачу. f(омапдпый ф{!йл APPEMP.CJ\'i.D Запустив командный файл АРРЕМР. CMD, вы смо­ жете внести столько записей о сотрудниках, сколько по­ требуется. В процессе работы будут выполняться все те проверки, которые мы обсуждали выше. Запустить командный файл можно двумя способами: ф если РЕБУС уже запущен, то вы должны ввести коман­ ду DO АРРЕМР; • если вы собираетесь это сделать сразу после запуска РЕБУСа , то можно совместить запуск системы управления базой данных с выпо Jrнением нужного вам командного файла; для этого запуск РЕБУСа надо произвести коман­ дой REBUS APPEN\P. Если вы собираетесь проводить эксперименты с базой данных, о !{оторой мы уже довольно долго говорим, вам 254
придется ввести описания стпуктур всех ее файлов в со­ ответствии с табл. 6.5 и заполнить файлы базы данных DJV, WRK и OFF той информацией, которая представле­ на на рис. 6.1. :Желание посмотреть в работе командные файлы по­ требует ввести их в том виде, в котором они приводятся в книге . Посмотрим, что делает этот командный файл. Каждая его строка содержит одну команду системы управления базой данных. Если вам не удастся разместить команду ",.:. --~~----..=..--:---------------- * ИOl'1AHJ:1.Hbli11 ФАРIЛ АРРЕМР. CMD ~ ·-·------------------------ DO INSТ?-\LL STORE N ТО CANCEL * -----·------------------, ---------------------' ------- ' * ЦИКЛ 8 800.А ДЛЯ ВНЕСЕНИЯ НОВЫХ ЗАПИСЕlll О СОТРУДНИКАХ * ЦИКЛ 31"18ЕРШАЕТСЯ ПО ВВОДУ ПYCTOll! СТРОКИ В ПОЛЕ * 11 t-~О Д COTPYSlHИKA 11 ~· --------- --- -~---------------- --- ------------------ - DO l~НI LE • NOT. CANCEL DO PUTFORM DO GETCODE1 IF .NOT. CANCEL * -------------------- ~+ 8800. НЕ БЫЛ ЗАВЕРШЕН * -------------------- DO GETNAME DO GETCODE2 DO GETCODE3 DO GETTAX DO GETCDDE4 DO WRI.ТЕЕМР ENDIF ENDDD ERASE USE Et1P DISPLAY ALL CLEAR RETURN 255
в одной строке, то ее можно продолжить на следующей строке. Итак, первая команда, с которой вам приходится столкнуться, - *. Она позволяет вносить комментарии в текст командного файла. Комментарии не оказывают никакого влияния на выполнение командного файла. Реальная работа начинает выполняться с запуска командного файла INSTALL.CMD (см . стр. 258), уста­ навливающего параметры системы управления базой данных. Логическая переменная памяти CANCEL требуется для организации цикла ввода записей о сотрудника х. Пока сохраняется ее знач е ние .N . (NO), производится ввод з аписей. Присвоение этой переменной значения . У. (YES) приведет к окончанию ввода. Ком анда STORE N ТО CANSEL устан авливает началь­ ное значение .N . п еременной п а мяти CANCEL. Это да ет возможность начать цикл ввода и выполнить его по край­ ней мере один раз. Для организации цикла используются две команды: DO \VHILE .NOT. CANCEL и ENDDO. Команды, нахо ­ д шциеся между ними, б удут выполняться, пока истинно выражен ие .NOT. CANCEL в команде DO WHILE. Это з1и::чит, что циЕJ1 выполняется, пока значение переменной памяти CANCEL равно .N . Выполнение команд, входящих в рассматриваемый на­ ми ци1<л , начинается с запуска командного файла PUTFORM.CMD (см. стр. 260). В результате его работы на экран дrrсплея будет выведена форма, которая подска­ жет вам, какую именно информацию требуется вводить. Наблюдаемая вами при этом картина будет похожа на ту, 1шторая была при использовании команды APPEND. Теперь все готово к вводу информации о сотруднике. Сначала вводится код сотрудника. Это делается с по­ мощью кома ндного файла GETCODEI.CMD (см . стр. 261). Если будет введен «пустой» код сотрудника, то перемен- 256
ная памяти CANCEL после выполнения этого командного файла будет содержать значение .У. Это, как вы помните, означает прекращение ввода информации о сотрудниках. Теперь надо проверить - пре1\ратить или продолжать ввод. Ответ на этот вопрос содержится в переменной па­ мяти CANCEL. Получить его можно, проверив значение CANCEL с помощью команды IF. Если выражение, ука­ занное в этой команде (.NOT. CANCEL), истинно, то бу­ дет выполнена последовательность команд, находящаяся между командами IF и ENDIF. В противном случае ока­ зывается, что в цикле больше нет команд, которые следо­ пало бы выполнит ь, и проверка условия в команде DO приведет к его завершению, так как в переменной памяти CANCEL содержится значение .У. и, следовательно, выра­ же ние в команде DO ложно. EcJiн не было ввода «пустого» кода сотрудника, то вы­ полняется посл едовательность команд, заключенных меж­ ду командами IF и ENDIF. Один за другим вьшолняются командн ы е файлы: ф GETNAME.CMD (см. стр. 264) - ввод фамилии, име11и и отч ества сотрудника; ф GETCODE2.CMD (см. стр. 265) -ввод кода подразде­ J1ения, в котором работает сотрудник; ф GETCODEЗ . CMD (см. стр . 266) -ввод кода должности сотрудника ; ф GETTAX.CMD (см. стр. 268) - ввод оклада сотруд­ ника; ф GETCODE4.CMD (см. стр. 267) - ввод кода работы, которую выполняет сотрудник; ф WRIТEEMP.CMD (см. стр . 269) дает возможность отказаться от внесения записи данных либо внести ее в файл базы данных. Вернемся к происходящему после окончания выполне­ ния цикла внесения записей. · Сначала очищается экран дисплея (команда ERASE). · Затем на экран дисплея вы­ водятся записи, содержащиеся в файле базьi данных ЕМР. 257
Это делает уже известная вам последовательность кома1щ USE ЕМР и DISPLA У AI-L. Далее уничтожаются все пе­ ременные памяти, которые появились к этому моменту (одна из таких переменных-САNСЕL), и закрываются все файлы базы данных, используемые в этот момент (команда CLEAR). Завершение выполнения командного файла происходит по команде RETURN. После этого РЕБУС перейдет в режим непосредственного ввода команд. Это значит, что далее пы будете вводить команды с кла­ виатуры, как это делалось, например, при вводе описания структуры файла базы данных ЕМР. Теперь перейдем к рассмотрению командных файлов, упомянутых выше. Ко1Уlандный файл INSTALL.CMD Как вы уже знаете, командный файл INSTALL. СЛ,1D производит установку параметров системы управления базой данных. Эту работу выполняет команда SET. * ---------------------------------------------------- * KOMAl-HJ.HЫVI ФАViЛ .INSTALL.CMD * УСТАНОВКА ПАРАМЕТРОВ СИСТЕМЫ УПРАВЛЕНИЯ БАЭО!li ДАННЫХ * ---------------------------------------------------- SET COL_ON OFF SET TALK OFF SET CONFIRM ON RETURN Что же делает этот командный файл и зачем это нужно? Команда SET COLON OFF подавляет вывод двоеточий , ограничивающих те области экрана дисплея, в которых будет осуществляться ввод данных. Если эти двоеточия выводятся, то вся польза от них заключается в возмож- 1-юсти оценить количество символов, которые вы еще мо­ жете ввести до заполнения поля. Большого смысла в этом 258
нет, поскольку система управления базой данных не по­ зволит вам ввести символов больше, чем это определяется длиной поля. Команда SET Т ALK OFF подавляет вывод на экран дисплея результатов выполнения команд. Естественно, это не означает, что команды ввода и отображения данных перестают работать. Просто на ЭI(ран прекращается вывод результатов типа 4 после выполнения команды STORE 2* 2 ТО NUM Команда SET CONFIRM ON отменяет автоматическое окончание ввода информации при заполнении поля. Для окончания ввода в поле вы должны нажать клавишу ЕТ. Пока она не будет нажата, имеется возможность изменить содержимое поля, находясь непосредственно в нем. Команда RETURN обеспечивает возврат к выполнению командного файла, запустившего рассматриваемый нами командный файл. l(омаидный файл PUTFORМ..CMD Командный файл PUTFORM.CMD выводит на экран дисплея форму, подсказывающую вам, какую информацию требуется вводить. Если сравнить эту подсказку с той, которую дает при вводе команда APPEND, то придется признать, что, например, текст КОД СОТРУДНИКА вно­ сит больше ясности, чем EMP:CODE. Что же делает этот командный файл? Для начала очи­ щается экран дисплея. Это делается командой ERASE. А дальше на экран дисплея выводятся шесть строк, пояс­ няющих смысл той информации, которую вам следует ввести. :Ж.елаемый результат достигается использованием последовательности команд fj). Как вы можете заметить, каждая из этих команд состоит из четырех частей: 259
ф первое чисJiо указывает номер строки на экране дис­ плея, в которой будет выведен нужный вам текст. Вы можете использовать 24 строки с номера~1и от О до 23. К строке с номером О лучше не прибегать, потому что РЕБУС может использовать ее для вывода сообщений в процессе ввода информации; * --·------------------------------------ * КОМАнnный ФА~Л PUTFORM . CMD * ВЫВОД ФОРМЫ АЛЯ BBOJJ.A НА ЭКРАН АИСПЛЕЯ * -------------------------------------- ERASE @4,оSAY' f(ОД СОТРУдни~:А: @ 6, О SAY 'ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО: @8,ОSAY' f<OI~ ПОДРАЗДЕЛЕНИЯ: @10,ОSAY KDA ДОЛЖНОСТИ: @12,ОSAY ОКЛАД: @14,ОSAY' КОД РА БОТЫ: RETURN + второе число, отделенное от первого запятой, опреде­ ляет номер позиции в строке, начиная с которой будет выводиться текст. Номер позиции в строке может изменяться от О до 79. В качест­ ве начала отсчета принят левый верхний угол Э!{рана диспле я. Его !{О Ордннаты - 0 ,0; ф SAY означает, что далее будет указан подлежащий вы­ воду текст; ф все, что находится между апострофами, будет выведе­ но на экран дисплея в указанной строк~ начиная с ука­ занной позиции в этой строке. Командный файл GETCOOE1.CMD Рассмотрим теперь процесс ввода кода сотрудника и способы решения тех проблем, которые при этом воз­ никают. 260
* -------------------. --- --- -- * КОМАНДНЫ111 ФА111Л GETCODE1.CMD * ------------------------- -- STOf(E У ТО EXIST * -----------------------------------~------- * LtИКЛ BEIO(.J.A KO;J.A СОТРУДНИКА . * ЦИКЛ ЗАВЕРШАЕТСЯ ПРИ ВВОДЕ КОДА СОТРУДНИКА, ., ., РАНЕЕ НЕ ИСПОЛ!::. ЗО8А8ШЕГОСЯ 8 БАЗЕ ДАННЫХ * ------------------------------~------ -- ---- Db L~HILE EXIST STORE ' ' ТО CODE: 1 @. 4 , 24 GET CODE:l PICTURE '999 ' READ IF CODE:1 <> UЗЕ ЕМР COUNT ALL FOR CODE:1 =- EMP:CODE ТО NUM JFNШ1=О * ---- ------------ ----------------- --------------· ;; ВВЕДЕН РАНЕЕ НЕ ИСПОЛl:.ЗО8АЕ:ШИ171СЯ КОД СОТРУАНИКА * --------------------7-------------------------- . STORE N ТО EXIST ELSE @23,ОSAY; 'ОШИБКА: YKAЗAHHЫlll КОД СОТРУДНИК А УЖЕ ИСПОЛl:.ЗУЕТСЯ' . ENDIF ELSE * ---------------------------------------------~ ---- * ВВЕДЕНА ПУСТАЯ СТРОКА - ПРИЗНАК ПРЕf(РАЩЕl-IИЯ 880ДА * ------------------------------------------------- STORE N ТО EXIST STORE У ТО CANCEL ENDIF . ENDDD 1!! 23, о SAY;. ' RETURN Напомним, что ввод кода сотрудника должен запраши­ ваться до тех пор, пока не будет введено значение, удо­ влетворяющее поставленному условию. Это значит, что процесс ввода носит циклический характер. Для организации цикла воспользуемся переменной па­ мяти логического типа EXIST. Если ее значение .У., то 261
это значит, что в файле базы данных существует запись, удовлетворяющая некоторому условию, а при .N. такой записи нет. Сейчас нас будет интересовать запись, содер ­ жащая код сотрудника, совпадающий с введе!}НЫМ. Это значит, что цикл ввода кода сотрудника должен выпол ­ няться, пока значение переменной памяти EXIST равно .У. Что делается в цикле? Для начала устанавливается пустое значение переменной памяти символьного типа CODE: 1, l\от орая будет использоваться для хранения вве­ денного кода сотрудника. Это делается командой STORE' 'ТО CODE:I. Теперь можно · ввести код сотрудника. Дл н этого служат команды fj) и PEAD. Команда fj; имеет вид, отличающий ся от того, который был в командном файле PUTFORM.CMD. В данном случае координ аты в команде w указывают, в каком месте экрана будет прои з водиться ввод. Остальные элементы команды имеют следующий смысл: + GET ука з ывает на то, что будет осуществляться в вод информации; · + CODE :1 определяет, что ввод будет производиться в пе­ ременную памяти с эт им имен ем; • PICTURE свидетельствует о том , что далее будет задан формат для ввода данных; + '999' - собственно формат ввода данных - это то, что заключено в апострофы. Оп определпет, что должно быть введено не более трех цифр. На это у1<азывают три снмЕола 9. Если будут попытки ввода какнх ­ либо с11мволов, отличающи хся от цифровых, то так ие символы будут игнорироваться . Команда READ выполняет вnод информации в соответ­ ствии с тем, как это было определено рассмотренной выше командой l(j). ПосЛе ввода информации в переменную памяти требу­ ется определить, было ли введено что -либо или нет, что - можно сдеJrать с помощью команды IF. Если выражение CODE: 1 < >' ' истинно, значит, был введен код сотруд- 262
ника. Теперь нужно определить, есть ли в файле базы данных ЕМР запись, пoJie EMP :CODE которой содержит . значение, равное введенному коду сотрудника. ВоспоJiьзу­ емся для . этой цеJiи командой COUNT, позволяющей под- . считать количество записей в базе данных, удовлетворяю, щих некоторому условию. Команда COUNT содержит сле­ дующие элементы: ф ALL задает область действия команды. В данном случае анаю1зируются все записи в файле базы данных; · ф FOR означает, что далее будет указано условие, опре­ деляющее интересующие нас з а писи; + CODE:l = EMP:CODE то усJiовие, о котором идет речь; оно свидетельствует о том, что требуется определить ко ­ личество записей, значение поля EMP:CODE которых со­ в падает с введенным ко д ом сотрудника; ф ТО означает, что да л ее будет указана переменная па­ мяти, в которую будет по-мещено определенное в резуль­ тате выполнения команды количество записей; ф NUM - это имя переменной памяти числового типа, в которую будет помещен результат выполнения команды COUNT. Если таких записей не найдено, о чем свидетельствует значение О переменной памяти NUM, значит, введен ранее не использовавшийся код сотрудника. Присвоение значе­ ния .N. переменной памяти EXIST в этом случае приведет к окончанию рассматриваемого нами цикла ввода . Зна­ чение переменной памяти NUM, отличное от О, говорит о том, что введен недопустимый код сотрудника . В такой ситуации будет выведено сообщение об ошибке и запро­ шен повторный ввод кода сотрудника . Имеет смысл обратить внимание на команду fj) выво­ дящую сообщение об ошибке. Эта команда размещается на двух строках. «Сказать» системе управления базой дан­ ных, что это одна команда, можно вводом точки с запя­ той в конце первой строки, в которой размещается команда. 263
А сейчас вернемся к тому, что требуется сделать, если введен «пустой» код сотрудника: + во-первых, надо завершить цикл ввода кода сотрудни­ ка, поэтому переменной памяти EXIST присваивается зна- чение .N .; · + во-вторых, необходимо завершить цикл ввода записей о сотрудниках. Этот цикл подробно рассматривался, когда ре1JЬ шла о команд­ ном файле APPEMP.CMD. Как вы помните, он заrзер ш ается, если переме нн ан памяти CANCEL содержит значение. У. Именно riоэтому переменной CANCEL здесь должно быть присв оено значение .У. По з.авершении цикла ввода кода сотрудника остается очистить ту область экрана дисплея, в которой могло находиться сообщение об ошибочном вводе кода сотруд­ ника. Колшндный файл GETNAME.CMD Теперь нужно ввестн фамилию, имя и отчество со­ трудниr·,а. * -------------------------- * f<Ш'iАНО, НЫ!11 ФА171Л GETNAME. CMD * -------------------------- STOF~E ' ТО NAME * ----------------------------------------- ". ВЕ:ЕСТИ фАt1ИЛИЮ, ИМЯ, OT' -IECTBO СОТРУ!LНИКА . --------- ---- --------------------------- Q 6, 2 ·4 GET Nl't •1E PICT!JF<E; ·хххххххххххххххххххххххххххххх· READ RETURN Вы, наверно, не находите ничего особенно нового в этом командном файле. Единственно, что может вызвать во­ прос,- это формат, использованный в команде t(j) Три- дцать символов Х свидетельствуют о тем, что в качестве фамилии, имени и отчества сотрудника вы можете ввести до 30 любых символов. 264
Командные файлы GETCODE2.CMD; GETCODE3.CMD1 GETCODE4.CMD Те п ерь необходимо решить задачу ввода кодов под­ разделения, должности и работы, относящихся к сотруд­ нику, информация о котором вносится в базу данных. * ·~----------------------- - -- * KOMAH~\HЫiil ФAliiЛ GETCODE2. CMD * - - ------------- ------------ STORE N ТО EXIST * ----------------------· --- ---- - - - * ЦИКЛ 880(.1,А f(O!\A ПОД.РАЗДЕЛЕНИЯ * ЦИКЛ ЗАВЕРШАЕТСЯ, ЕСЛИ ВВЕДЕН * ИСПОЛl::.ЭУЮЩИiilСЯ f(O!\ ПОДРАЗДЕЛЕНИЯ * ---------------------------- - --- DO WHILE .NOT. EXIST STORE ' ' ТОСОПЕ:2 @ В, 24 GET CODE : 2 F'ICTURE '99' READ L.iSE DIV COLINT ALL FOR CODE: 2 ~ DI V: CODE ТО NUM Ii" NU~i <> О . ------------------------------------- • ВВЕДЕН ИСПОЛЬЗУЕМЫiil КОД ПОД.РАЗДЕЛЕНИЯ * ------------------ ------------------- STORE У ТО EXIST ELSE @23,ОSAY; 'О ШИ Sl(А : Yf<AЗAHHЫVI l<Од ПОДРАЗДЕЛЕНИЯ НЕ ИСПОЛl::.ЗУЕТСЯ El'ШIF ENDDO @ 2:31 О SAY; f'>C:TURN Командный файл GETCODE2.CMD осуществляет ввод кода подразделения, где работает сотрудник, запись о ко­ тором 1:н1осится n настоящий момент времени. Впеденное значение сохраняется в переменной памяти CODE:2. 265
Здесь решается зад ача ввода такого кода подразде­ ления, который уже содержится в файле базы д;анных DIV. Именно поэтому признаком окончания цикла ввода является наличие в этом файле базы данных записи, поле DIV:CODE которой содержит значение, сов падающее с вве­ денным кодом подразделения . Кроме того, недопустим ввод «пустого» кода подразделения. В остальном работа командного фа йла GETCODE2.CMD аналогична работе GETCODEI.CMD. Командный файл GETCODEЗ.CMD обеспечивает ввод I{ода должности сотрудника. Этот код должен содержать­ ся в файле базы данных OFF. ; .* ---- ~ ------------- -- -------- * KOl"IA_HДHЬ\il\ ФА171Я GETCODE3. CMD * ------------·--------------- STORE N ТО EX!ST * ----------------------------- * ЦИКЛ ВВОДА КОДА ДОЛЖНОСТИ * ЦИКЛ ЗАВЕРШАЕТСЯ, ЕС Л И ВВЕДЕН * ИСПОЛЬЗУЮЩИ171СЯ КОД ДОЛЖН ОС ТИ * ----------------------------- DO WHIL.E .N O T. EXIST STORE ' ' ТО CODE:3 @ 10, 24 GET CODE:3 l;'ICTURE '999 '. READ USE OFF COLINT ALL FOR CODE: 3 = OFF: CODE ТО NUM IF \\IШ1 <> О * --- --------------------~--------- - !! · 83Е(\ЕН ИСПОЛЬЗУ ЕМЬ\171 КОД Д ОЛЖНОСТИ * - -- -------- - -------------------- - - STORE У ТО EXIST ELSE @23,ОSAY; • ОШИБ КА: УКАЗАННЫРI КОА должности НЕ испоJiьЗУЕТСЯ . E ND!F ENDDD @23,ОSAY; RETURN 266
Введенный код должности помещается в пере ме нную памяти СОDЕ:З. Командный файл GETCODE4.CMD обеспечивает ввод кода работы, в которой принимает участие сотрудник. И снова допустим только такой код работы, который со­ держится в файле базы данных WRK. Введенный код работы помещается в переменную па- мяти CODE:4. Как вы, наверно, обратили внимание, три рассмотрен ­ ных последними командных файла практически идентич - ·;(- --------------------------- .,. КШ1[.)Н ДК Ы 1 7 1 ФA illЛ GETCODE4· . CMD i~ --------------------------- STORE N ТО EXIST ii· ---------------------·-------- ", ЦИКЛ ВВОДА КОДА РАБОТЫ ·* ЦИ!<Л ЗАВЕРl~~АЕТСЯ, ЕСЛИ ВВЕАЕН '" ИСПОЛЬ3УЮЩИVIСЯ КОД РАБОТЫ * ----------------------------- DO WHILE . NOT . EXIST STORE ' ' ТОCODE:4 @ 14, 24 GET CODE:4 PICTURE '99 ' REA D USE WRK COUNT ALL FDR CODE:4 = WRK:CODE ТО NUM IFNUM<>О * ------------------------------ * ВВЕДЕН ИСПОЛl:0ЗУЕМЫl71 код РАБОТЫ * ------------------------------ STORE У ТО EXIST ELSE @23,ОSAY; 'ОШИБКА: УКАЭАННЫV1 КОД РАБОТЫ НЕ ИСПОЛЬЗУЕТСЯ ' ENDIF ENDDO @23,ОSAY; RETURN 267
ны. Все различия заключаются в том, с какими файлами базы данных и переменными памяти они работают. Не­ сколько различаются сообщения об ошибках , которые мо­ гут выводить на экран дисплея эти командные файлы. Командный файл GETTAX .CMD После стольких злоключений ввод оклада не предста­ вит для вас никаких трудностей. * ------------------------- * K D MAHIJ.HЫlll ФА\/IЛ GETTAX.CMD * ------- ----- ----- -------- STORE О ТО ТА~ * - - -------------------- * ввоn ОКЛАО.А СОТРУО.НИКА * --------------------·-- @ 12, 24 GET ТАХ PICTURE '999 ' READ RETURN Все, что в ы видите в командном файле GETTAX.CMD, не должно показаться незнакомым. Колtандный файл WRПEEMP.CMD Цель всей работы, о которой идет речь, состоит в том, чтобы в файл базы данных ЕМР была внесена коррект­ ная запись о сотруднике. К началу выполнения командного файла WRIТEEMP . CMD переменные памяти уже содержат всю информацию, необходимую для внесения записи о сотруднике. Тем не менее у вас может возникнуть желание отказаться от вне ­ сения этой записи в файл базы данных. Поэтому было бы не плохо задать вопрос: желаете вы вносить запись или нет? Для вывода на экран дисплея вопроса и получения ответа используется командаfо), содержащая SAY- и GЕТ­ части. Это значит, что сначала будет выведен текст вопро- 268
са и курсор остановится сразу за ним. Именно здесь находится область экрана дисплея, в которую будет осу­ ществляться ввод ответа . Введенный вами ответ помещает­ ся в переменную памяти REPL У. Если вами введен сим­ вол N (или русский Н), то это будет означать отказ от . --- ----------- --- ------------------------- * f<ОМАНДНЫ<~ ФА111Л WF; IТЕН1Р. CMD ". ВНЕСЕНИЕ ЗАПИСИ О СОТF'УДНИf(Е Е: БАЗУ ДАННЫХ * ----- - -------~---------------------------- STOF<E . ' ' ТО REF'L У @ 23, О SAY 'ВНЕСТИ ЗАПИС~. В БАЗУ ААННХ <Д/Н> 7 '1 GET REPLY F'!CTURE 'А' -- F<EAD Ii= REF 'LY <> 'Н' .AND. REF 'LY <> 'N' . -------- ~-------- ------ ---- • ВНЕСТИ ЗАПИСЬ В БАЗУ ДАННЫХ * --------- ------------ ----- - LJSE ЕМР AF'F'END :ВLАМ< rюто :ВОТТОМ REPL.ACE Е~1 Р i CODE \~ IТН CODE: 1 , ЕМР: NAt1E WIТН NAME; DJ.V:CODE W!TH CODE:2, OFF:CODE WIТH CODE:3; Et'IP: ТАХ WIТH ТАХ 1 WRK: CODE WIТH CODE: 4 ENDIF F<ETLiRN внесения записи в файл базы данных. В противном случае будут выполнены команды, обеспечивающие дополнение новой записи о сотруднике. Это делается в три шага: ф к файлу базы данных дополняется запись, все поля I\Оторой заполнены пробелами (APPEND BLANK); ф затем производится позиционирование на эту запись. Это нужно сделать длп того, чтобы имелась возможность работы с только что внесенной з аписью; + теперь надо заменить поля этой записи, заполненные пробеJiами, той информацией, которая хранится в перемен­ ных памяти. 269
Сделать это позволяет команда REPLACE. В ней вы указываете имя поля записи, а затем, после слова WITH, задаете имя перемен­ ной памяти, значение которой будет помещено в это поле записи. В нашем случае происходит изменение значений шести полей записи файла базы данных ЕМР. Обратите в1имtание! Команда REPLACE размещена в трех строках. И опять признаком вродолження команды служит точка с запя­ той. Заr,лю 1tение к примеру Наконец-то вы можете оценить, чего стоит обеспечение целостности базы данных, хотя в примере рассматривалось заполнение только одного из четырех файлов, составляю­ щих базу данных. Да и сам пример нельзя считать завер­ шенным. Было бы весьма полезным обеспечить вывод наименований подразделения, должности и работы, со­ отЕетствующих кодам . Еще большие удобства былн бы предоставлены, если бы имелась возможность изменять отдельные введенные данные. Единственно возможное решение этой проблемы, доступное в рамках данного примера , - отказаться от внесения записи в файл базы данных и осуществить полный повтор ввода данных. Приведенные здесь замечания могут помочь вам при решении своих задач с использованием системы управле­ ния реляционной базой данных РЕБУСа. 6.5 .5. ВЫБОРКА ИНФОРМАЦИИ ИЗ БАЗЫ ДАННЫХ Ч1·0 .мы буде,п искать в базе данных? Продолжим работу с нашим хорошим знакомым - файлом базы данных ЕМР - хранилищем записей о со- 270
трудниках. Задача будет состоять в том, чтобы вывести на экран дисплея информацию о сотруднике. Для выпол­ нения запроса должно быть указано одно из двух : ф код сотрудника; ф фамилия, имя и отчество или несколько первых, а мо­ жет, и одна буква. При выводе информации необходимо отобразить на экр ане дисплея не только коды, содержащиеся в записи о сотруднике, но и соответствующие им наименования . Теперь остается набраться терпения и посмотреть, как все это делается. l(о;нандный файл SHOWEMP. CMD Командный файл SHOWEMP.CMD начинает решение поставленной задачи. * ---------------------------- - * КОМАНАНЬ!\11 ФА\11Л SHOWEMP.CMD * ВЫВОД ИНФОРМАЦИИ О СОТРУДНИКЕ * - ---------------~~---- - ------ SET COLON OFF SET TALK OFF SET CONFIRM ON STORE N ТО CANCEL * ----------------------------------------------- * ЦИКЛ ВВОАА И ОБРАБОТКИ ЗАПРОСА К БАЗЕ 1\АННЫХ * НА ВЫВОД ИНФОРМАЦИИ О СОТРУДНИКЕ * ПРИЗНАi(ОМ ОКОНЧАНИЯ ОБРАБОТКИ ЗАПРОСОВ ЯВЛЯЕТСЯ * 88011. ПУСТЫХ СТРОК "КОД СОТРУДНИКА" И "ф.И.О." * ----------------------------------------------- . DO WHILE .NOT . CANCEL DO GETCDNM IF .NOT. CANCEL DO FINDEMP ENDIF ENDDO ERASE CLEAR RETURN 271
В нем производится установка параметров систе мы управления ба:юй данных, а также орrанизуется цн1<л ввода и выполнения запроса на поиск информации о со ­ труднике . Как уже говорилось выше, поиск может осуще­ ствляться либо п@ коду сотрудника, либо по фа ми.1111и, 11мени и отчеству. Цикл завершается, если в качестве обоих этих парамет ро в введены «пустые» значения. Более подf:'-!:1б ное рассмотрение этого командного ф ай л а не имеет смысла. Все приемы работы, использованн ые в нем, были описаны в предыдущем примере. . / КомашJный файл GETCDNM. CMD Командный фай л GETCDNM.CMD обеспечивает вывод формы для вnода запроса к базе данных и отобра жения ~:нформации . Здесь же происходит ввод запроса на поиск информации о сотрудн:ше. Для того чтобы мож но было про нз nод ить поиск иифор­ мэuии, необходи мо дат ь возмож ность пользователю в бо­ лее или менее удобной для него фор ме указать, что он хочет от ко м пьютера. Имен1ю от пол ьзова теля зависит вы­ бор режима поиска : по коду сотрудника или по фамилии, имени и отчеству. А задача разра ботчика состоит в то ~1 , чтобы компьютер мо г «понять», каким образом следует вести поиск . Здесь использовано, по - видимому, самое про­ стое решение. Ввод запроса начинается с предоставления возмож но ­ сти ввести код сотрудника. Если вы введете не «пустой» код сотрудника, то будет производиться поиск по это rv1у параметру. В противном случае вам б удет предоставл ена возможность ввести фамилию, имя и отчество сотрудника. Повторный «пустой» ввод приведет к окончанию работы. Переменная памяти логического типа FL:CODE ис­ пользуется дJ1я определения п араметра, по которому дол­ жен п роизводиться понск. Значение .Т. свидетельств ует о необ х одимости поиска п о коду сотрудника, а .F . - о по­ иске по фамилии, имени и отчеству. 272
* ~------------ ------------------------------ * КОМАНДНЫ111 ФА111Л GETCDNM. Ct1D 11· ВВОД КОДА СОТРУДНИКА ИЛИ ф.И.О., ПО КОТОРЫМ * БУДЕТ ПРОV.ЗВОДИП:·СЯ ПОИСf( В БАЗЕ ДАННЫХ * ------------------------------------- · -- -- - - . ERASE @ 1, 29 SAY 'СВЕАЕНИЯ О СОТРУАНИ:<Е' @3,ОSAY' КОД СОТРУДНИКА: • @5,ОSAY' ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО: ' @ 7, О SAY -·-------------------------- @9,ОSAY КО/!. ПОР,РАЗД!<ЛЕНИЯ: ' @ 10, О SAY 'HAИl'IEHDSAHИE ПОАРАЗ;J.ЕЛЕНИЯ: ' @12,ОSAY' КОД ДОЛЖНОСТИ: ' @ 13., О SAY ДОЛЖНОСТЬ: ' @15,ОSAY' ОКЛАД: ' @17,ОSAY' КОД РАБОТЫ: ' @18,ОSAY НАИМЕНОВАНИЕ РАБОТЫ: ' STQRE ТО CODE STORE ' ТО NAME STDRE У ТО FL:CODE @ 3, 28 GET C.ODE РICTURE '999 ' READ IFCODE=' it ------------------ ---------------------..." - * ПОИСК НЕ БУДЕТ ВЕСТИСЬ ПО КОДУ СОТРУДНИКА * -------------------- ----~ ---'--.:..:... _____ ,. .. _ _ _ STDRE N ТО FL:CODE @ 5, 28 GET NAME PICTURE; ·хххххххх хх хххх~ххххххххххххххх • READ IFNAME"'' * ---------------~ * ОКОН~АНИЕ РАБОТЫ * ---------------- STORE У ТО CANCE~ ENDIF ENDIF RETURN 10 Заказ No 5~1 273
Командный файл FINDEMP.CMD После того как введен запрос, можно приступить к по­ иску нужной .информации. Первая часть поиска выполняется в файле базы дан­ ных ЕМР. Переменная п.амяти FL:CODE указывает, какое . ------------------------------------------ * КОМАНДНЬ\171 ФА17\Л FINDEMP.CMD * поиск · в БАЗЕ· ДАННЫХ ЗАПИСИ о СОТРУДНИКЕ по * УКАЗАННО МУ КОДУ ИЛИ ф.И.О. * ------------------------------------------ USE ЕМР IF FL:CODE . ------- ------------ ----- * ПОИСК ПО КОДУ СОТРУДНИКА * ------------------~----- LOCATE FOR EMF':CODE = COD E ELSE: * --------------- ... ПОИСК ПО ф.И.О. * --------------- LOCATE FOR EMP:NAME ENDIF IF .NOT. EOF TR!t'l<NAHE) * --------------------------- * ЗАПИСI:· О СОТРУДНИКЕ HAlllДEHA * ---- - - --------------------- @ ;.<., 28 SAY ЕМР: CODE USING '999 ' @. 5 , 28 SAY EMP:NAME USING; 'ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ' @ 9, 28 SAY DIV:CODE USING '99' @ 12, 28 SAY OFF :CODE lJSING '999 ' @ 15, 28 SAY Е~1Р:ТАХ USING '999 ' @ 17, 28 SAY WRK:CODE USING '99' DO SHDWГ~EST @21,·О ELSE @ 21' о SAY 'СЕ:Е1~н1ия ОТСУТСТЕ:УЮТ. ENDIF WAIТ RETURN 274
поле файла базы данных ЕМР надо использовать при по­ иске. Для начала необходимо получить доступ к подхо­ дящей записи файла базы данных. Это делается посред· ством команды LOCATE. С ее помощью можно получить доступ к записи, удовлетворяющей условию, указанному в команде следом за словом FOR - EMP:CODE=CODE. Таким образом будет произведена попытка найти запись, в поле EMP :CODE которой содержится значение, совпа­ дающее с кодом сотрудника, введенным в качестве запро ­ са. Поиск сотрудника по фамилии, имени и отчеству обладает од ной о соб енностью, о которой уже говорилось: в запросе фами л ия, имя и отчество могут быть указаны не по л ностью . Что это значит? Например, можно ввести в качестве запроса ПЕ вместо полного ввода фамилии, имени и отчества. Тем не м е нее при по и сr(е должна быть найдена запись о ПЕТРОВе ПЕТРе ПЕТРОВИЧе . На этот случай РЕБУС имеет инт ересное средство­ функцию TRIM, которая оставляет от ПЕ и 28 пробелов за ним, введенных в качестве запроса, только ПЕ, отбра­ сьшая все «хвостовы е» пробелы. А в команде LOCATE сравнение строк прои з водится с учетом количества сим­ волов во второй строке. Такой режим сравнения строк в командах системы управления базой данных устанав­ ливается сразу после запуска РЕБУСа. Это значит, что равными будут признаны ПЕТ РОВ ПЕТР ПЕТРОВИЧ и ПЕ, ПЕТРОВ, ПЕТРОВ П Ита к, предпринята попытка найти нечто подходящее . Но нельзя быть уверенным, что это удалось сделать. По­ мочь нам может функция EOF. Если подходящая запись была найдена, то значение этой функции будет .F . В про­ тивном случае по команде l,OCATE были просмотрены все записи файла базы данных и не найдено ни одной под­ ходящей. Команда LOCATE завершит работу, когда, п о ­ пытавшись считать очередную запись, обнаружит, что е е . нет. Это .значит, что достигнут конец файла базы данных и функция EOF после этого возвратит значение .Т. Именно 275
такая: еитуация возникает в рассматриваемом примере при попьпке чтения записи 00007 файла базы данных ЕМР. Подводя итог, моR{но сказать, что, если значение функ­ ции EOF- . F" то подходящая запись о сотруднике най· дена. В противном случае запись не обнаружена. О по­ следней из перечисленных ситуаций сл едует вывест и со­ общение на экран дисплея . С чем вам еще не приходилось сталкиваться? Коман- да !OJ 21,0 выполняет только позиционирование курсора в указанное место экрана дисплея. Ко м анда WАП при­ остановит выполнение командного файла и выведет сооб­ щение ПАУЗА. Про должить выполнение командного фа й ­ л а можно, нажав любую клавишу. Камапди ый файл S HOWREST. CMD После того 1с ак была найдена подходящая запись о со· тр уднике, остается вывести наименова н ия подраздел е ния , должности и р а боты, соответствующие кодам, хранящим· ся в найденной записи о сотруднике. В процессе решения задачи возник ает проблема обр а · ботки двух файлов базы данных одновреме н но . Снача ла · должны быть совместно об р абота н ы фай лы б азы данных ЕМР и DIV для получения наименования подразделения, з атем ЕМР и OF'F - для получения наименования до.л ж· ности и , на~юнец, ЕМР и WRK- для получения наи м е· нования · работы. РЕБУС позволяет решить и эту задачу. До сих пор при работе с файлами базы данных исполь· зовалась так называемая первичная область. Ее было до­ статочно, поскольку ·не требовалось, чтобы в командах системы управления базой данных обр абатывались поля или записи двух файлов базы данных одновременно. Те- перь такая необходимость воз никл а. . ,. К началу работы командного файда SHOWREST.CMD н первичной области ис пользуется файл базы данных ЕМР, ·позиционированный на нужную · запись. Поэтому 216"
для работы . с файлами базы данных DIV, OFF и WRK ПР:I:I·,д.ется воспользоваться вторичной областью. Первичная и вторичная области не зависят друг от друга. Это значИт, что при выполнении, например, поиска в файле базы дан· ных во вторичной области не происходит никаких измене­ ний в позиционировании файла базы данных в первичной области . Указать системе управления базой данных, что далее надо работать во вторичной области, можно, воспользо­ вавшись командой SELECT SECONDARY. А дальше ничто не мешает обрабатывать во вторичной области файлы базы данных DIV, OFF и WRK. * - -------------------------------------------------- * КШ'\АНО.НЬ\111 ФА!llЛ SHO \>! REST. с~ш -1<· ВЬ180Д HAИl"iEH OBAHИlll ПОДРАЭО.ЕЛЕНИЯ, ДОЛЖНОСТИ, РАБОТЫ * - -------------- ------------------------------------ SELECT SECONDARY * -----------------------------· -- - -1 1· ВЫВОО. НАИМЕНОВАНИЯ ПОО.РАЗIJ.ЕЛЕНИЯ ..-------------------------------- USE D!V LOCATE FOFc P.DIV:CODE . "' S.D.IV:CODE @ 10, 28 SAY S.D!V:NAME USING; ·хх ххххххххххххххххххххххххххххххххххххх• * --------------- * BЫBOll 0.ОЛЖНОСТИ * --------------- USE DFF LOCATE FOR P.OFF:CODE n S.OFF:CODE· @ 13, 28 S~Y S.OFF:NAME USING 'ХХХХХХХХХХХХХХХХХХХХ' * ------------------------- * . ВЫВОД НАИМЕНОВАНИЯ РАБОТЫ * ------------------------- USE ~JRK LOCATE FOR P.WR f<:CODE "' S .WRK:CODE @ 18, 28 SAY S.WRK:NAME USING1 ·ххххххххххххххххххххххххххх~ххххххххххх• SELECT PRIMARY RETURN 277
Сначала Производится вывод наименования подразде­ ления, в котором работает сотрудник. Решить эту задачу можно с помощью команд l,OCATE и VJ. Особенность их использования связана с именами полей файлов базы дан­ ных в первичной и вторичной областях. Используя команду LOCATE, надо найти такую запись из файла базы данных DIV, в поле DIV:CODE которой хранится значение, совп а ­ дающее со значением DIV:CODE в записи, на которую позиционирован в первичной области файл базы данных ЕМР. Приставка S. Означает, что речь идет о поле записи файла базы данных во вторичной области, а Р. - в пер­ вичной области. Пользуясь этими нехитрыl\1и приемами, можно найт и и вы вести всю остальную нужную инфор ма цию . Завершив этот процесс, нечего больше делать во вторичной области и можно вернуться к перви чной, воспользовавшись коман­ дой SELECT PRIMARY. В чем польза корректных данNых? При обработке файлов базы данных DIV, OFF и \VRK не было затрачено ни одной команды на анализ ситуации, при которой в них не была бы найдена запись, содержа­ щая нужный код. Почему же? Да потому, что при вrюде записи о сотруднике была пролвлена забота о том , чтобы были введены только такие коды подразделения, должно­ сти и работы, которые уже хранятся в базе данных. По­ тратив время на обеспечение ввода корректных данных, удалось сэкономить время при решении задачи обработ ки базы данных. Так что целостность базы данных может представлять не только теоретический, но и практический интерес . Естеств енно, в процессе обработrси базы данных не должна нарушаться ее целостно сть. В этом плане любая мелочь может доставить вам массу неприятностей . Учесть по возможности большую их часть - одна из задач проек· тирования базы данных . 278
6.5.6. поиск ИНФОРМАЦИИ О СОТРУДНИКЕ С ИСПОЛЬЗОВАНИЕМ ТЕОРИИ В чел~ иедостаток приведенного nримера? Только что рассмотренный пример поиска информации о сотруднике имеет один недостаток с теоретической то<I· ки зрения. При поиске по фамилии, имени и отчеству мо· жет возникнуть ситуация, когда в файле ба:?ы данных есть несколько подходящих записей. Например, если вы попытаетесь найти сотрудников, фамилия которых начи· нается с ДУ, то обнаружена будет только запись о Дубо· вой Татьяне Петровне. Что касается Дуровой Юлии Сер­ геевны, то запись о ней найдена не будет. Проблема воз­ никает из-за того, <:то командны: файлы обеспечивают поиск толыш первои подходящеи записи о сотруднике, а затем происходит переход к вводу нового запроса. Воспользуе111ся знанием теории Решим задачу следующим образом. Сформируем ра­ бочий файл базы данных, содержащий всю необходимую для обработки запроса информацию: код сотрудника; фа· милию, имя, отчество; код подразделения; наименование подразделения; код должности; наименование должности;· окJiад; код работы; наименование работы. Что для этого требуется сделать? (i 8 СВ На первом ша1·е производится операция соедине· н ия таблицы СОТРУДНИКИ с результатом выполнения операции проекции, примененной к таблице ПОДРАЗдЕ· ЛЕНИЯ по столбцам «Код подразделения» и «Наимено· вание подразделения». В результате к таблице СОТРУД­ НИКИ добапится столбец «Наименование подразделения». 279
Таким образом, в результирующей таблице хранится lle только код подразделения, в котором работает сотрудник, но и наименование соответствующего подразделения. 1) 8 8 Вторым шагом- будет осуществление операции соединения таблицы, полученной в результате выполне­ ния первого шага, с таблицей ДОЛЖНОСТИ. 8 ~О На третьем шаге производится соединение табли­ цы, полученной на втором шаге, с результатом выполнения операции проекции применительно к таблице РАБОТЫ по столбцам «Код работы» и «Наименование работы». В результате- буд,ет получена таблица, содержащая всю нужную информацию. РеалиЗация в РЕБУСе Когда стало очевидным, что требу ется сделать, остает­ ся определить те средства системы управления базой дан­ ных, которые могут выполнить необходимые действия. * ----~---~-------------------------- * КОМАНАНЫl/1 Ф<':\111Л E~1PASK. CMD * ОБСЛУЖИВАНИЕ ЗАПРОСОВ О СОТРУАНИКАХ * ----------------------------------- ERASE SET TALK OFF SET COLON OFF SET CONFI RM ON @ 1 , О SAY 'ФОF't1ИРУЕТСЯ РГ-;50'-\И~l ФА111Л ЕАЗЫ ЦАННЫХ' @ 3, О SAY 'ПОАО~(/1.vПЕ ПОЖАЛ У111СТ А' DO CREMPEXT STORE N ТО CANCEL DO l~НILE • NOT. CANCEL . DO GETCDNl'i IF • NOT. CANCEL . DO F IEMPEXT ENDIF ENDDO ERl'1SE CLE AR DEL.EТE FILE ЕМРЕХТ RETURN 280
Командный файл EMPASK.CMD организует взаимо· действие. всех остцльных командных файлов, участвующих iз решении задачи. По сути тр'ебуется сделать следующее: + сф9рмировать рабочий файл базы данных ЕМРЕХТ, в котором затем будет производиться поиск; ~ обеспечить ввод и обработку запроса на поиск инфор· мации о сотруднике; ф завершить работу, удалив использовавшийся файл ба­ зы данных (команда DELETE FICE ЕМРЕХТ). Как вы помните, формирование рабочего файла для * -.-:-~-""'!-------------------------------------------- / . ~t" КD1'1АН/1НЫ111 . ФА!llЛ CREMPEXT, CMD .* ФОРМ.\'IРОЭАНИЕ ФА!llЛА БАЗЫ ДАННЫ>< О.ЛЯ ОБСЛУЖИВАНИЯ * ЗАПРОСОВ О СОТРУО.НИКАХ '* ---- ~~ -----------------------~----------------- l..)SE ЕМР, SELEC:Т SECONDARY uве: DIV SELECT PRIMARY joIN ТО ТМР1 FOR DIV:CODE = S.DIV1CODE FIEL~S EMP1CODE ,; ЕНР1 NAME ,DIV: CODE,S. DIV: NA~1E ,OFF: Cl;JDE, ЕМР: ТАХ, WRK: CODE USE ТМР1. . SELECT SECONDARY UpE OFF' S.ELECT PRIMARY JOIN ТО ТМР2 FOR OFF1CODE • S.OFF:CbDE FIELDS EMP:CODE,; Et'I?: NAl'IE, DIV: CODE, DIV:.NAME, OFF: CODE, S. OFF: NAME ,Е~1Р: ТАХ , ~ WR K:COD!i USE ПiР2 DELETE FILE ТМР1 SELECT 6ECONDARY USE WRt< SELECTPRIMARV JOIN ТО ЕМРЕХТ FOR WRK:CODE = S.~JRK1CODE FIELDS ЕМР:СОТ)S, ; EMP:NAME,DIV;CQDE,DIV;NAME,~FF:C~DE 1 0FF;NAME~EMP1TAX 1 ? . WRK:CODE,J· . ' S.WRK:NAME USE ЕМРЕХТ DELETE FI~E ТМР2 RETURN 281
обслуживания запросов о сотрудниках требует выполне~ ния операций соединения и проекции . В РЕБУСе для этих. целей существует сверхмощное средство - команда JOIN. В зависимости от того, как вы ею воспользуетесь, можно выполнить операции прямого произведения или соедине­ ния. Причем одновременно может быть выполнена и опе­ рация проекции. Команда JOIN использована в командном файле CREMPEXT.CMD для соединения файлов базы данных с попутным выполнением проекции. Эта команда обраба­ тывает файлы баз данных из первиЧной и вторичной об­ ластей и состоит из шести элементов: ф слова ТО, означающего, что далее будет указано имя файла базы данных, в который будет помещен результат; ф имени результирующего файла базы данных; + слова FOR, говорящего о том, что далее будет следо­ вать некоторое условие; ф условия, при выполнении которого запись помещается в результирующий файл базы данных; + слова FIEl.DS; * -----. ----------------------- * KOMAHДHЫlil li!AlilЛ FIEMPEXT.CMD * ПОИСК ЗАПИСИ .О СОТРУДНИКЕ ПО * . УКАЗАННОМУ КОДУ ИЛИ ф.И.О. * ------------------------~--~ 1F FL 1CODE LOCATE FOR EMP:CQDE = CODE ELSE LOCATE FOR EMP1NAME =TRIM(NAME) ENDIF . . IF •NOT, .EOF' DO SHEMPEXT ELSE @ 21, О SAY 'СВЕДЕНИЯ ОТСУТСТВУЮТ' WAIТ . ENDIF RETURN '· 282
+ списка полей файлов базы данных из первичной и вто­ рИчной области, образующих структуру результирующего файла базы данных. Используемые для хранения промежуточных резуль­ татов файлы базы данных TMPl и ТМР2 удаляются по мере того, 1<ак получаются новые результаты. В конце. кон­ цов будет получен файл базы данных ЕМРЕХТ, ради ко­ торого все это и делалось. Командный файл GETCDNM.CMD используется в. том. виде, в котьром он приведен в предыдущем примере. Действия, выполняемые командным файлом FIEMPEXT. CMD, едва ли могут вызвать у вас непонимание. Ничего особенно сложного · не делает и командный файл SHEMPEXT.CMD. Маленькая хитрость связана с командой CONТINUE. Эта команда позволяет повторить * ~----------------- - ~--------------------~--- . * KOMAHДHЫlll ФAlllЛ SHEMPEXT. CMD * ОТОБРАЖЕНИЕ ПОДХОДЯЩИХ 3АПИСЕ111 О СОТРУДНИКАХ. * -------~------------------------------------ DO WHILE .NOT .. EOF @ 3, 28 SAY EMP:CODE USING '999 ' @ 5,. 2В SAY EMF': NAME USING; 'хххххххх хххх ххххххххххххххххх· @ 9, 28 SAY DIV:CODE USING '99 ' @ 10, 28 SAY DIV:NAME USING; 'ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ' @ 12, 28 SAY OFF:CODE USING '999 ' @ 1з, 28 sдv oFF:NAME usING ·хххххххххххххххххххх~ @ 15, 28 sАУ--ЕМР:ТАХ USING '999 ' - @ 17, 28 SAY WRK:CODE USING ' 99 ' @ 18, 28 SAY WRK:NAME USING; 'ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ' @ .21, ·О WАП @23,(1SAY CONТINUE ENDDO RETURN 283
поисковую операцию, определенную последней встретив~ шейся перед CONTINUE командой LOCATE. Таким об" разом, команда LOCATE находит первую подходящую запись, а циклическое использование команды CONTINUE позволяет найти. все остальные подходящие записи, пока не будет достигнут конец файла. Сравним полученные реализации 0 О 8 Первая реализация требует больше времени не­ посредственно на попек информации. Это связано с необ­ ходимостью ведения поиска в четырех файлах базы дан­ ных во время обработки запроса. 0 8 ~В Во второй реализации выполняется · достаточно длительная подготовка к работе, обусловленная формиро­ ванием рабочего файла базы данных. Впоследствии это окупается за счет более быстрой по сравнению с первой реализацией обработки запроса. Она может быть полезна в том случае, когда требуется удовлетворить сразу боль­ шое количество запросов о сотрудниках. Другим преиму­ ществом второй реализации является строгое описание выполняемых преобразований, способствующее большей четкости . в понимании решаемой вами . задачи и определе­ нии способа получения желаемого результата. 6.6 . ОБЩАЯ СПРАВКА О РЕБУСе 6.6 .1 . ОСНОВНЫЕ понятия К этом·у моменту вы ознакомились с процессом созда· ния базы данных и возможностями, которые предоставляет система управлеющ базой данных (СУБД) для организа· ции автоматической обработки базы данных с помощью командных файлов. Тем не менее даже те свойства СУБД, • • J ' .•. .,. 284
которые были описаны, нельзя считать рассмотренными всесторонне и в полном объем·е. В связи с этим нижесле­ дующий материал можно расценивать как поПытку систе­ матического описания элементов системы управления ба­ зой данных СУБД РЕБУСа и пользоваться им в качестве справочного при работе с РЕБУСом; однако это не озна­ чает, что в будущем не возникнет необходимости в ис­ пользовании документации [ 17]. Терм ины и определения Переменная - это либо переменная базы данных, либо переменная памяти. Переменная базы данных - это лю- . бое поле записи базы данных. Переменная памяти - это величина , хранящаяся в оперативной памяти компьютера. Констан:га - это величина, имеющая неизменное зна­ чение независимо от базы данных и переменных памяти. Символьные константы (совокупность символов) · за­ ключаются в апострофы ('), кавычки (") или квадратные скобки ( [ ] ) . Если символьная константа содержит один из этих ограничителей, то она должна быть ограничена другим. Логические константы представляются как си м волы "Т" (или "У") для обозначения истинного {TRUE) и "F" (или "N") для обозначения ложного {FALSE). Имя переменной - это последовательность от 1 до 10 букв, цифр и двоеточий (:), начинающаяся с буквы и заканчивающанся буквой или цифрой. Тип данных - это один из следующих типов, допусти­ мых в РЕБУСе: символьный (С), числовой {N), логиче ­ ский (L). Длина поля данных - это число позиций для пред­ ставления данных, которое должно находиться в пределах от ·1 до 254 (для числовых данньiх учнтывается и пози­ ция, занимаемая точкой в десятичном числе) ; , _ Выражение - это допустимое в РЕБУСе описание вы­ числения iШачения, состоs~щее из пepeмeiIHJ,Ix, констант, обращений; к функциям и сiriераций. ·2ss
Текущий файл____:_ это тот файл базы данных, который был определен последней командой USE. Текущая запись - это та запись, на которую осуществ­ лено позиционирование в текущий момент времени. Запи­ си могут иметь номера от О до 65535. Условные обо.значения терлшнов РЕБУСа Перед тем как перейти к дальнейшему изучению эле­ ментов РЕБУСа, ознакомьтесь с некоторыми обобщенны­ ми обозначениями и соглашениями: <команда> - любая допустимая в РЕБУСе команда; <строка> - любая символьная строка; <выражение> - выражение; <спис.выр . > - список выражений, разделенных за­ пятыми; <поле> - имя поля записи; <список> - список им ен полей записей, разделенных запятыми; <файл> - имя файла; <форм.файл> - имя форматного фай л а; <инд.файл> - имя индексного файла; <ключ> - имя поля записи, по которому будет про­ нзводиться индексирование; <переменная> - имя перем е нной памяти или пол я записи; <перем.пам.> -- имя переменной памяти; <список перем.пам.> - список имен переменных па­ мяти, разделенных запятыми; <N> - константа; <диапа зон> - обл асть действия команды, опреде­ ляемая следующими значениями: ALL - все записи в базе данных. ПосJ1е поз1щионнрования на начало базы данных ({ОМанда обра­ батьшает все записи базы данных; NEXT N - следующие N записей базы данных; RECORD N - N -я запись базы данных; 286
Таблиц а 6.6 Типы файлов РЕ БУСа Тип файла 1 Название файла Назначение .DBF Файл базы дан- Хранение описания структуры и за- .МЕМ . CMD .FRM .тхт .NDX . FMT . SDF .ВАК ных писей базы данных Файл содержи­ мого памяти Командный файл Файл отчетов Текстовые фай­ лы Индексный файл Форматный файл Системный файл Предыдущая версия файла Сохранение для дальнейшего исполь­ зования на диске информации, содер­ жащейся в переменных памяти Хранение последовательности комаfjд СУGД в целях их автоматического вы­ по лнения Строится во время диалога при вы­ по л11енин команды REPORT и содержит описание формы отчета Хранение текстовой информации, ко­ торая возшшает или требуется при вы­ по Jше1111и команд СУБД Содержит у1<азатели на записи файла базы да1111ых fj) Хра11е1111е последовател~~тости 1<оманд · и * , кото рая используется при зада­ нии этого файла в команде SET FOR - МАТ ТО Содержит текстовые данные в фор­ ма те, при11ятом в операционной систе­ ме SCP Предыдущия версия файла может со­ храняться на диске при выполнении некоторых 1\ома11д СУБД 287
FOR <выражение> - любая запись базы данных, · если логическое выражение истинно; WHILE <выражение>. - все записи базы данных, пока логическое выражение истинно. Обозначения, не указанные в этом списке, будут пояс­ нены по мере их появления. Элементы, заключенные в квадратные скобки ( [ ] ) , указывать необязательно и они могут быть опущены. Файлы РЕБУСа Все файлы, создаваемые в процессе работы РЕБУСа, являются стандартными файлами операционной системы SCP с именем, содержащим до восьми символов, и с ти­ пом из трех символов. Описание используемых в РЕБУСе типов файлов приведено в табл. 6.6. Огранuttения Максимальное количество: полей в записи символов в записи записей базы данных символов в строке разрядов в числовом поле Чнсло: наибольшее . наи меньшее , , , Маi{СИ мащ,ное количество: переменных памяти символов в команде . . в,ыражений в команде S.LJM символов в ключе » заголовке отчета < , отложенных кома1iд 'ilJ с GET частью одновремен_но открытых файлов ' !t1акроподстанавки ... ". .; 32 1000 1 65535 254 10 1.0* 10-63 1.8*1063 64 254 5 99 254 64 16. Кажд.ый раз, когда в команде встречается символ . &·, за которым следует i{мя переменной памяти,. име1ощей сим..-
вольный тип, РЕБУС заменяет его значением этой пер.е­ менной.Если вслед за & и именем переменной памяти необходимо поставить алфавитно-цифровой символ, то после имени переменной должна следовать точка {.), ко­ торая будет удалена во время выполнения макроподста­ новки. Пр им ер. STORE "В" ТО DRIVE RESET & DRIVE USE & DR!VE.:EMP 6.6.2. ФУНКЦИИ Функции вы можете использовать в любом выражении . Тип функции опредеJJяется типом получаемого результата . В табJJ . 6.7 приведены функции РЕБУСа, классифициро­ ванные по типу результатов . Операции используют­ ся для. формирования вы­ ражений и делятся на арифметические, логиче­ ские, строковые, опера­ ции сравнения. В табл. 6.8-6.11 представлены операции в порядке убы­ ~ ания их пр~щритетов. .. Арифметические опера­ ции . (табл 6 .8) предна­ значены для выполнения традиционных арифмети-· ческих действий.• 6.6 .3. ОПЕРАЦИИ lfаблица 6.8 Арифметические операции Операция \ Оп11сание 1 При мер использо- оания +.- Знак чис11а *· / Умножение Деление А*В А/В +.- Сложение л+в Вычитание А-"- В 289
!-, :) се Q Таблица6.7 Функции СУБД РЕБУСа Функuия Описание Пример Использования 1Результат Числовые функции INT (<числовое выр. > )J Возвращает значение числового INT (3.14) 3 :j:j: VAL (<строка>) LEN (<строка>) !(]; (<строка 1>, <строка 2>) выражения и отбрасывает дробную часть Возвращает целое число, соответ­ ствующее номеру текущей записи базы данных :j:j: Возвращает целое число, сформи-IV AL (" 1988 год") рованное из символьной строки. Ес- ли строка начинается с цифровых символов и далее содержит нециф- ровые символы, то для формирова- ния используются только цифровые символы Возвращает целое число, равное! LEN ("1988 год") числу символов, содержащихся в строке Возвращает целое число, значение которого указывает позиция в <строке 2>, начиная с которой <строка 1> совпадает со <стро - кой 2> iV(1188 11 , "1988 год") 4 (теку­ щая- 4-я запис ь БД) 1988 8 3
м ~ - RANK (<строка>) STR (числовое выр.>, <длина>, [ <дес> ]) ..:Ц: (<строковое выр. >, <начало>, <дл ина>) 1 Возв ращает код пе рвого символа/ <строки> Символьные функции RA NK ("1988 год") Возвращает строку симво лов , со-1 STR (3.14, 5,1) держащую <длина> симво лов , по- лученную в результате преобразова- ния значения числового выражения; <дес> может задавать количество цифр после точки в десятичном числе Возвращает строку длиной <дли-\ Ц ("1988год", 5,5) на>, содержащую символы из стро- ки, полученной в результате вычис- ления симсольного выражения , на- чиная с позиции <начало> и дли- ной <длина> символон. Если <дли- на> больше длины результата вы- числения символьного выражения или начало <длина> вы х одит за его границу, то в качестве результата будут во звр ащаться только имею- щиеся сиыволы (. <си мвольное выра­ жение>) Возвращает строку, получ енную в результате вычисления символьно­ го выражения, в которой все строч­ - · вые буквы заменены прописными ("ГОД") CHR (<числовое вы· раженне >) Возвращает символ, код которого соответств ует полученном у значению,. ч11с.1ового вы р аж е н ия CHR (48) 49 3.1 год GOD 0
"" .::. <О. • "". .ФУНКI\l!Я О писание 1 Пример 1 и·сполъзования / Результат DATE() ТУРЕ (<выражение >) TRIM (<строка>) * EOF Возвращ"ает строку, содержащую текущую дату в фо р мате дд/мм/гг (дд - день, мм - месяц, rr - rод) DATE() Возвращает односимвольную стро-1 ТУРЕ (3.1 4« 3.14) ку, значение которой зависит от ти- па вы ражения: С - символьное, N - числовое. L - логическое . , Возвращает строку, полученную\ТRIМ ("1988 __") из < строка> удалением концевых пробелов · Лог ические функции Возвращает значение истины, если текущая запись была помечена на удаление, иначе - ложь Возвращает значение истины при дос т ижении конца тек ущего файла базы данных, иначе ложь EILE (<имя файла>) 1 Возвраща ет значение истины , если файл с ука з анным именем сущест­ вует, иначе - ложь. Имя фай ла за­ дается как символьная константа 05/ 01/88 ' N 1988
1 Логические операции {табл. 6.9) служат для выполне­ ;ния действий, определяемых в булевой алгебре. Эти опе­ рации используют значения, имеющие смысл истина/ложь '(.T ./ .F .) . Логические операции задаются в виде таблиц истинности. Эти таблицы ставят в соответствие всем воз­ можным значениям аргументов значение результата опе­ рации. Таблиц а 6.9 Логические операции Опер ация 1арг.1 Описание 1 / арг. 2 j Результат Пример . NOT. .Т. .F. .NOT. А (отрицание) .F. .т. . AND. .F .F. .F. (логическое И) .F. .т. .F. А .AND.B .Т. .F. .F. .Т. .т. .т. . OR. .F. .F. .F. (логическое ИЛИ) .F . .т. .т. A.OR.B .Т. •1~ • .т. .Т. .т. .т. В РЕБУСе определены две операции конкатенации '(сцепления) строк. В результате выполнения этих опера­ ций из двух строк формируется третья, представляющая собой строку, в которой за первой строкой следует вто­ рая. Строковые операции описаны в табл. 6.10. Операции сравнения Iтабл. 6.11) выполняют сравне­ . ние двух значений, в результате чего получается лоrиче­ .ское значение .Т" если указанное отношение имеет ·место, и .F . в противном случае. 293
При рассмотрении правил формирования выражений всегда следует обращать особое внимание на порядок выполнения операций, т. е. на их приоритет . В РЕБУСе принят следующий порядок: ф вычисление значения функций; Та блиц а 6.10 Строковые операции Операция 1 Описание 1 Пример 1 Использование 1 Результат + Конкатенация . 1988" +" ГОД" " ~ 1988 ~ год" - Конкатенация с у да- • 1988" +" год" • ~ 1988 год" лением пробелов ф> выполнение арифметиче­ ских или строковых операций в соответствии с их приорите­ тами; • выполнение операций срав­ нения в соответствии с их приоритетами; ф выпол нение логических опе­ раций в соответствии с их при· оритетами. Операции одного приорите­ та осуществляются слева на­ право. Для изменения поряд­ ка выполнения операций мож­ 1 Таблица 6.11 Операции сравнения 1 Опера- ции Описание 1 Пример 1 = Равно А=В <> Не равно А<>В < Меньше А<В > Больше А>В <= Не больше А<=В >= Не меньше А>=В но пользоваться круглыми скобками. Порядок выпал, пения операций в скобках соответствует приведенному выше и приоритетам операций. 294
Параметр MAROIN ТО Значение параметра N Описа1ше и далее база данных используется как неиндексированная 1 Позволяет установить отступ в N пробелов от левого края при выво­ де на nеqать. Знаqение N должно находиться в пределах от 1 до 254 1 Пр им е ч а ни е. Чертой внизу обозначены значения параыет-1 ров, устанавлнваеыые при запуске РЕБУСа. , 6.6.4. КОМАНДЫ РЕБУС содержит большое число команд. Попытасмсн упорядочить процесс их изучения. Будем рассматривать команды СУБД в соответствии с их фушщиональныы зна­ чением, разделив их на девять групп (табл. 6.12): ф команды создания файлов РЕБУСа; ф команды добавления данных; ф команды просмотра и редактирования данных;· ,ф команды позиционирования в базе данных; ф команды работы с файлами РЕБУСа; ф команды работы с переменными; ф команды организации командных файлов; ф прочие команды; + команда установки параметров СУБД (табл. 6.13). 6.6 .5. ПОЛНОЭКРАННЫИ РЕЖИМ РАБОТЫ Ряд команд СУБД РЕБУС использует так называемый полноэкранный .{FULL SCREEN) режим работы. В этим 295
NI <О ф Таблиааб . 12 Команды РЕБУСа Команда Опи,сание Команды создания файлов РЕБУСа CREATE [<файл>] СОРУ [STRUCTURE ТО] < файл > [<диапазон>] [FIELD <список>] [FОR<выражение> ][SDF] [DELIMIТED WIТH <ограничитель>] MODIFY STRUCTURE MOD!FY CO.МMAND [<файл>] REPORT [FROM <файл отчета>] [<диапазон>] [ТО РRINТ] Создание новой структуры базы данных, пре­ дусмотрена возможность да л ьнейшего ввода данных в соответствии с вводимой структурой Производит копирование базы данных в · <файл > STRUCTURE указывает на необходимость копирования только структуры данных FIELD <список> - копирование только ука­ занных полей SDE - копирование данных без структуры в файл в систеыном формате DELIMIТED- определяет , каким образом будут разделяться поля данных в базе данных Производит изменение структуры базы данных с уничтоже ниеы всех ее записей Внесение изменений · в командный или любой другой текстовой файл Генерация отчетов с использо ванием данных из базы данны х ТО PRINТ - вывод на печать параллельно с выводоы на дисплей ' ' ~::·."\
...,. со ч. (FOR <выражение>] [PLAIN] PLAIN - подавление вывода номеров страниц, и текущей даты вверху каждого листа Формирование формата отчета происходит в диалоге с пользователем. Отчет может содер· жать до 24 граф SAVE ТО <файл> 1 Сохранение всех или указанных · переменных [ ALL LIKE <образец> ] памяти ALL ЕХЕРТ <образец> LIKE задает сохранение всех переменных INDEX ON <выражение> ТО <инд. файл> REINDEX имена которых . соответствуют <образцу> ЕХЕРТ задает сохранение всех переменных за исключением тех, которые соответствуют <об­ разцу> <образец> - одно или несколько имен пере· менных Использование в образце символа * соответ­ ствует последовательности любых символов, а ?- любому символу Индексирование базы данных, где <выраже­ ние> вычисляет ключ, а <инд. файл> задает имя индексного файла Обновление индексных файлов, которые авто­ матически не обновлялись во время модифика­ ции
NI ~ Команда JOI N ТО <Файл> FOR <выражение> [FIELDS <список полей> j TOTAL ON <ключ> Т О <файл> [FIELDS <список>] [F OR <выр>] Описание О бъед иняет две базы дан н ых и формирует треть ю базу данных. Объединяются первичная и вторичная базы данных. Команде .JO/N должна предш ествова ть ко манда SELECT PRIMARY. Команда JOIN пози ци онируе т пе рви чную ба зу данных на пер вую зап ись и вычи сл яет <выра­ жение> для каждой записи вторичной базы дан· ных. Если <в ыражение> истинно, то в <файл> добавляетсн запись . По достижении конца вто­ ричного файла происходят переход ко второй записи первичной базы данных, позиционирова­ ние на начало вторичной базы данных и про­ цесс повторяется Выбор числовых полей базы дан ных , но сум­ . мир ова ние и запись в другуiо базу данных· 1 Текущая база данных должна быть индексиро­ вана по ключу Команды добавJiения данных APPEND APPEND BLAN[( APPENI) FROM <Файл> [FOR <выраженне> j Добавление данных в базу: у пол ьзователя запрашиваются данные n соответсп111и со стру ктурой записи базы данных · к тек ущему файлу добапляется запис1" заполненная пробе ла ми добаsлнемые за писи берутсн из <файла>;
~ <.:> ф [SDF] [DELIMIТED] WПН <ограничитель>] CREATE INSERT [BEFORE] [BLAHK] SDF задает, что файл в системном фор" мате; DELIM!ТE[) задает, что записи в файле ограничены так, как это принято в некоторых языках программирования; если SDF и DELIMITED отсутствуют, то <файл> считается файлом базы данных Команда была рассмотрена выше Вставляет запись в базу данных BEFORE - вставка перед текущей записью, в противном случае - после BLANK - вставка пустой записи Команды просмотра и редактирования данных CHANGE [<диапазон> J FIELD <список> [FOR <выражен_ие>] BROWSE [FIELD <список>] DELETE [<диапазон>] [FOR <выражение>] DELETE FILE ~файл С> EDIT [N] РАСК Позволяет ввести новые, модифицировать и просм атривать имеющиеся данные; <список> задает поля базы данных, которые будут обра­ батываться командой, и последовательность их обработки. По исчерпании списка полей проис­ ходит переход к следующей записи. Если <;ша­ пазон> не указан, то берется текущая запись Просмотр и редактирование данных в полно­ ,экранном режиме Поыетка на удаление всех записей из <диа­ пазона>, удовлетворяюuщ;( <выражению> Удаление <Файла> с днска Выборочное редактирование rюлей в занисях базы данных, N - номер записи базы данных Физическое удаление из базы даr;аых ncex записей, которые были nомеч~ны п::~ удале;·rv.е
c.:i g Команда RECALL [<диапазон>] [FOR [<выражение>] REPLACE [<диапазон;.>] <поле 1> WIТH <выражение 1> [, <поле 2> WIТH <выражение 2>."] [FOR <выражение> J UPDATE FROM <файл> ON ключ [ADD <список полей > J [REPLACE <список поле11>] t(i) <строка>, <позиuия> [SAY <выражение>] [USING <формат> [GET <переменная> . [PICTURE <формат>]] READ CLEAR (OET(S]] а} DISPLAY [<диапазон>] [FOR <выражение> J [OFF] [FIELD <спис. полей> J1 6) DISPLAУ STRUCTURE Описание Снимает пометки на удаление, сдел·анные командной DELETE . Замена содержимого полей записей базы дан­ ных. Если диапазон не указа н, то используется только текущая запись базы данных Просмотр базы данных и изменение ее содер­ жимого с использованием данных из файла. Данные либо суммируются (,ADD), либо заменя­ ются (REPLACE). Текущая база данных должна быть отсортирована или индексирована по ключу Форматированный ввод/вывод информации в полноэкранном режиме · Отображени~. просмотр, ввод и редактиро­ вание инфорыации в полноэкранном режиме [GET[S] - сброс отложенных фраз GET коман~ ,ды без fj) сброса экрана. Если не указано ОЕТ [S], то происходит переустановка СУБД, т. е. закрываются все базы данных, сбрасыва­ ются, переменные памяти Отображение информации о состоянии базы данных (а, б), переменных паыяти (в), диска (г), об используеыых базах данных, индексных файлах, дате и т. п. (д)
с.о Q -- ti) DISPLAY _Mf;:MORY г) DISPLAУ FILES [ON <диск>] [LIKE · <образец>] д) DISPLAY STATUS LIST <ключевые слова> REPORT SUM <числ. выражение 1>. [, чис:л. выражение 2> ... ] [ТО <спис, перем. парам.>)] [<диапазон>] [FOR <выражение>] ? <спис. выр.> ?? <спис. выр.> Аналогична команда DISPLA У за исключени­ ем того, что область ее действия - все записи базы данных и она не переходит в ожидание после вывода очередных 15 записей Команда была рассмотрена выше Суммирует значения, полученные в резу ль­ тате вычисления <числ. выражений> в преде­ лах <диапазона>. Если <диапазон> не указан, а также отсутствует часть FOR, то обрабатыва­ ются все записи базы данных. Может использо­ ваться одновременно не более пяти выражений. Если используется часть ТО, то можно сохра­ нять результаты суммирования в переменной памяти Отображает значение выражения или списка выражений. Она может использовать перемен­ ные памяти, константы, функции и поля записей базы данных. Команда? без параметров дает строку пробелов Команда ?? аналогична за исключением того, что она не переходит на новую строку перед выводом результата
·~ Q,,., Команда Описание Ком1шды CONТINUE позиционирования в базе данных FIND <ключ> оото (00) а) ООТО RECORD <N> б) ООТО ТОР в) ООТО ВОТТО,'\1 r) <N> д) GOTO <перем. пам.> LOCATE [<диапазон>] [FOR <выражение>) SКIP[ +]<выражение> APPEND СОРУ DELETE Номанды RENAME <старое имя файла> ТО <новое иш: файла> Используются с командой LOCA ТЕ. Эти ком а нды могут быть разделены другими коман­ дами Поиск в индексированной базе данных первой записи. удовлепоряющей <ключу> Переход к записи базы данных с номером<N> (а, r), к первой записи базы данных (а), к по­ следней записи базы данных (в), к записи, номер которой содержится в <перем . пам.> Поиск в базе данных записи, поля которой удовлетворяют <выражению> Переход вперед С+) или назад (-) на число записей, определяемое <выражением>; SKIP просто означает переход к следующей записи базы данных работы с файлами РЕБУСа Команда была рассмотрена выше То же Из~rенение имени файла, хранящегося на диске. По умолчанию - тип файла DBF
С.:> <:::> с:.> RESTORE FROM <файл> [ADDIТIVE] то SELECT [PRIMARY ] SECONDARY SORT ON <поле> <файл> [ASCENDING ] DESCENDJNG USE [<файл>) USE <файл> INDEX <инд. файл 1 > [.. " <инд. файл 7>] Команды АССЕРТ [<строка>] ТО <перем . пам.> COUNТ [<диапазон>] [FO R <выражение> l [ТО ~~ерем. паы. !>] D1SPLA У Восстановление переменных памяти из <Фай- · ла> на диске. Если не указано ADDIТIVE, то все переменные памяти, существовавшие до ввода команды RESTORE, будут уничтожены Позволяет выбрать для дальнейшей работы первичную или вторичную базу данных. Таким образом, имеется возможность работы с двумя базами данных Сортировка базы данных по указанному полю с сохранением результата в базе данных с име­ нем <файл> в возврастающем (ASCENDJNG) или убывающем (DESCENDJNG) порядке. Коман­ да едва ли может принести большую пользу, так как она неприменима для сортировки строк символов русского алфавита Указывает, какая уже существующая база данных будет использоваться Кроме того, можно указать от одного до семи имеющихся индексных файлов в целях их обнов­ ления при модификации базы данных работы с переменными Ввод строки символов в переменную память. Если указана <строка>, то она будет выве­ дена в качестве подсказки перед вводом данных Подсчет числа записей в базе данных Команда была рассмотрена выше
с.о ..с:> ·· ·"" Команда INPUT [<строка>] ТО <переы . пам .> RELEASE <список перем. пам . > RELEASE ALL [LIKE <образец>] [ЕХЕРТ <образец>] RESTORE SAVE STORE <выражение> ТО <перем. пам.> SUM WАIТ [ТО <переы . пам.>] Описание · 1 Ввод некоторых значений в переменные памя­ ти. Тип <перем. пам.> · определяется по типу введенных данных и может быть проанализиро­ ван с помощью функции ТУРЕ. Строка симво­ . лов при вводе должна заключаться в кавычки. Если указана <строка> , то она будет выведе­ на в качестве подсказки перед вводом данных Освобож~дает указанные в списке переменные памяти Без частей LIKE и ЕХЕРТ освобо)кдает все переменные памяти. Части LIKE и ЕХЕРТ используются аналогично команде SAVE (см . выше) Команда была рассмотрена выше То же Вычисление значения <выражение> и запись его в <перем. пам . i> Команда была рассмотрена выше · Приостановка работы СУБД и ожидание ввода с клавиатуры любого символа. Если им·еется ' часть ТО, то введенный символ будет записан в <перем. пам . i>. Если введен управляющий ~символ, то в <перем. пам .> будет записан I пробел
w " "' " "' ~ сп <С " ~ Q <:11 . Команды организации командных файлов CANCEL DO <файл> DO \VHILE <выражение> <команды> DO CASE CASE <выражен ие 1> <команды> CASE <выражение N> <ком и нды> [OTHER\VISE <команды>] ENDCASE IF <выражение> <команды> [ELSE <команды>] ENDIF LOOP i'v\ODIFY C01\'l;\'1AND Прекращение выполнения командного файла и переход к прямому выполнению команд На чинается выполнение коыанд, находящихся в <файле> Пока <выражение> истинно, обрабатываются <команды>. По достижении ложности <выра­ жения> .выполняется команда, следующая за командой ENDDO Выполняются < ко~Jанды>, следующие за· первым истинным <выражением>. Если таково­ го не обнаружено и указана часть O THERWISE, то выполняются <команды>, расположенные за ней. После выпо.~неннн команды DO СА SE будет выполняться команда, сл едующая за командой ENDCASE Если <выражение> истинно, то будут выпол­ няться <команды>, следующие за командой IF и <выраже1-шем>. Ес ли <выражение> ложно и имеется команда ELSE, то будут вы­ по лнены <команд ы>, сJ1 ед ующие за ней. Пос л е выполнения команды IF будет выполняться ко­ манда, следующая за ENDIF Используется в команде DO WHILE для про­ пуска команд, следующих в ней за · командой LOOP, и · приводит к выполнению команды DO WHILE Команда была расо;~отрена выше
с.о Q ф Команда RETURN ТЕХТ <любые символы> ENDTEXT WAIТ EJECT ERASE HELP [<ключевое слово>] Описание Используется в командном файле для возвра­ щения управления вызвавшему его командному файлу или для перехода к прямому выполнению команд Вывод текстовой информации на экран Команда была рассмотрена выше Прочие команды Производится прогон бумаги на печатающем устройстве до конца листа. При использовании команд t(j) EJECT устанавливает начало листа , (т. е. О-я строка и О-я позиция в строке) Очистка экрана и установка курсора в верх­ ний левый угол sкрана . При использовании команд 'fjJ по команде ERASE производится сброс всех отложенных GЕТ-частей Получение справочной информации о РЕБУСе во время работы с СУБД. Для возможности пользоваться этой командой требуется, чтобы на диске с РЕБУСом находился файл REBUSMSG. IXT . Информацию о возможных режимах работы команды можно получить, введя HELP (или HELP REBUS)
~ NOTE <любые символы> * <любые символы> QUIT [ТО <СПИСОК программ>] REMARK <л1обые сиыволы> RESET [<дисковод>} Предназначены для внесения комментар11ев в командные файлы Окончание работы с СУБД и передача управ· ления операционной системе SCP. Если указана часть ТО, то будут выполнены программы, пере­ численные в <списке програым> Вывод некоторого текста на устройство вывода Устанавливает дисковую систему в начальное состояние (сброс дисковой системы). Это необ­ ходимо делать всякий раз, когда производится смена диска, так как иначе невозможно произ·. Iвес7и запись информации на вновь установлен- !""'""'"
Таблиц а 6.13 Команда установки параметров системы SET Параметр ЕСНО STEP TALK PRINТ CONSOLE ALTERNATE SCREEN LINKAGE COLON BELL ON Команды, выполняющиеся в командном файле, отображаются на экране OFF Не отображаются ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON Остановка выполнения командного фай­ ла после каждой команды Остановк-н нет Результаты работы команды отобража- ются на экране Не отображаются Вывод на печатающее устройство Не производится Вывод па дисплей Не производится Вывод в файл на диске Не производится Разрешены полноэкранные операции Н е разрешены Позиционирование производится в пер­ вичной и вторичной базах данных Независимое позиционирование Поля базы данных ограничиваются двое­ точиями OFF Границы полей не выводятся ON Звуковой сигнал при вво де неверных данных или -нарушение границ полей (Ро­ ботрон 1715 не обеспечивает возможно­ сти подачи звукового сигнала) 308
Параметр ESCAPE ЕХАСТ INТENSIТY DEBUG CARRY CONFIRM EJECT RAW 1 Значе><Ие 1 параметра Описание OFF Не: подается ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON Нажатие клавиши ESC приводит к окон· чанию выполнения командного файла Действие клавиши ESC отменено Символьные строки должны сравнивать­ ся полностью Символьные строки сравниваются по длине второй строки (истинно "1234.S" = 11 123") Разрешено использование видеоатриб у · тов Не разрешено Вывод, установленный управляющи м 11 параметрами ЕС/-10 и STEP, посылае тся на печатающее устройство Вывода на печатающее устройство 11 е т Данные из предыдущей записи пер ес ы­ лаются в следующую запись (нащ, 11 м ~ р. в команде APPEND) Пересылка отсутствует Нет перехода к следующему полю при полноэкранном редактировании без нажа­ тия клавиши ЕТ Переход к следующему полю, если те­ кущее поле заполнено Команда REPORT пропускает стран н ц у перед вьiводом отчета ПроПуска страницы нет Одиночные пробелы не вставляютсн между полями записи, если кома11ды D!SPLA У и L!ST используются без спи1: к а полей 309
Параметр DELETE : HEADING ТО FORMAT · то DEFAULT ТО ALTERNATE то DATE ТО INDEX ТО 1 Значение парам етра OFF -- ON - OFF <строка> [SCREEN] [PRINТ] [<форм. файл>] <дисковод> дд/мм/гг <инд. файл]>], . .. <инд. файл7>] Описание Пробелы вставляются Записи, помещенные на удаление, не используются командами LIST, DISPLAY, COUNT Записи использу ются <строка> длиной до 60 символов заполняется и печатается в качест­ ве заголовка отчета Определяет, куда идет выход команд '(i) Определяет, что команды fiJ для команд READ считываются из <форм. файл>: Устанавливает для РЕБУСа, что все файлы, для которых не был яв­ но указан дисковод, находятся на указанном в команде <дисковод>. Дисковод может быть задан в двух форматах - с двоеточием (как это принято в операционной системе SCP) или без него По зволяет записывать протокол работы пользователя с РЕБ У Сом в файл за исключением работы с ко­ ыандами, использующими полно эк ­ ранный режим. Эта команда должна предшествов ать команде SET AL- TERNA TE ON Установка текущей даты У ста на вливает от одного до семи индексных файлов SET IN.DEX ТО без указ;шия индексного файла при­ водит к тому, что все открып1е ра­ нее индексные файлы закрываются 310
режиме вам предоставляются большие возможности по вводу и корректировке данных. Так, при вводе данных в· некоторую запись базы данных вы можете возвращать• ся к уже заполненным полям этой записи и корректиро­ вать введенную в них информацию, что нельзя сделать в обычном режиме. Для каждой из команд СУБД в этом режиме сущест­ вуют некоторые особенности использования команд полно­ экранного редактирования. Перечень команд полноэкран­ ного редактирования для команд РЕБУСа, работающих в этом режиме, приведены в табл. 6.14. 6.7 . ПРОВЕРЯЕМ СЕБЯ. КАК УСВОЕН РЕБУС? Упражнения 6. 1. Каков минимальный состав файлов, необходимых для работы РЕБУСа? 6.2. Какой файл РЕБУСа требуется для получения справочной информации во время работы с этим пакетом программ? 6.3. Какая команда используется для получения спра­ вочной информщии о РЕБУСе? 6.4 . Какой командой надо воспользоваться для ввода описания структуры файла базы данных? 6.5 . Каким образом к используемому файлу базы дан­ ных может быть добавлена «пустая» запись? 6.6 . Сколько файлов базы данных могут одновременно обрабатываться РЕБУСом? 6.7 . Сколько строк содержит таблица, полученная в ре­ зультате выполнения операции прямого произведения двух таблиц? 6.8. Напишите последовательность команд РЕБУСа, выполняющих: + соединение таблиц ПОДРАЗДЕЛЕНИЯ и СОТРУД­ НИКИ; + проекцию полученной таблицы по столбцам: код под- 311
~N Таблица 6.14 Использование полноэкранных операц и й командами РЕБУСа Полноэкранные операции Перемещение курсора вl поле: пр ед ыдущее сле дующее Перемещение курсора к символу: предыдущему следующему Заполнение по л я, в кото- ром находится курсор Переключение режи м ов вставка/зам е на У д алить символ: в позиции курсора слева от курсора Прекращение полноэк- ранноrо редактирования без сохранения сделанных из­ менений APPEND I<омонды РЕБУСо !NSERT 1 Е~!Т1 CREATE 1BROWSEIMOD!FY1 READ /\Е или /\А лХ или /\F /\s /\D /\у лv /\G <DEL> /\Q
со - Со:> Запи~ать текущу ю запись 1 и переити к записи: следующей предыдущей - Установить/снять па:мят ку удаления текущей запи. си Записать текущую запись и начать редактирование Записать данные на диск и закончить редактирова- ние Вставить пустую строку в позиции курсора Удалить строку, в к ото- рой находится курсор Переместить изображение на 1/4 экрана: вниз вверх Переместить изоб р аже- ние на одно поле: вправо в лево лс или/\~ - - - - - - - - - - /\С или /\R лс /\С или лR /\С - - - ЛR - ЛR-- - лu - f\U - - - /\w - - - - - - - /\W f\W - - - - - /\N - - - - - /\Т - - - - - f\C - - - - - /\R - - - - AZ - - - - - /\В - -
разделения; наименование подразделения; код сострудни.­ ка; фамилия, имя, отчество. Результат поместите в файл базы данных с именем CHIEFS. 6.9 . Какой командой РЕБУСа следует воспользоваться для выполнения командного файла EMPASK? Ответы к упражнениям 6.1. Для работы с РЕБУСом необходимы как минимум два файла: REBUS .COM и REBUCOVR.COM. 6.2. Получение справочной информации во время рабо­ ты с РЕБУСом возможно при наличии на диске файла REBUSMSG.TXT . 6.3 . Вывод справочной информации о РЕБУСе произ­ водится по команде HELP. .6 .4 . Ввод описания структуры файла базы данных осу­ ществляется по команде CREATE. 6.5 . Добавление «пустой» записи к используемому фай­ лу базы данных производится командой APPEND · BLANК. 6.6 . Одновременно РЕБУСом могут обрабатываться два файла базы данных в первичной и вторичной областях . 6.7 . Количество строк в таблице, полученной в резуль ­ тате выполнения операции прямого произведения, опреде­ J1 яется произведением количества строк в исходных таб­ лицах. 6.8 . Последопательность команд, решающих задачу, такова: SELECT SECONDARY USE ЕМР SELECT PRIMARY USE DIV JOIN ТО CHIEFS FOR EMP :CODE=S .EMP:CODE; FIELDS DIV:CODE, DIV:NAME, EMP:CODE; S.EMP:NAME 6.9 . Для выполнения командного файла EMPASK надо ввести команду DO ЕМРАSК. 314
7 ЗНАКОМИМСЯ С ЯЗЫКОМ ПРОГРАММИРОВАНИЯ БЕйСИК о <} 9 ~ F'OR, 1 • • 7.1 . ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКА Что такое Бейсик? Бейсик является языком программирования высокого уровня и служит средством записи программ, пр€дназна­ ченных для выполнения их с помощью компьютера. Он был создан в начале 60-х годов как язык обучения программированию. Лег­ кость понимания этого язы­ ка достигается благодаря весьма . простым правилам его построения и организа­ ции диалога между вами и компьютером в процессе создания программы. Бей­ сик, по сравнению с любым другим языком программи­ рования, имеет большое чис­ ло версий в зависимости от модели компьютера. Одна­ ко, зная одну из версий, вы легко перейдете на проrрам- 815
мирование в среду другой версии, так как основные конструкции являются неизменными. В настоящей главе вы ознакомитесь с неко·торыми- кон­ струкциями Бейсика для персонального компьютера Ро ­ ботрон 1715 на примере решения несложных задач. Данная версия Бейсика может использовать как интерпретатор, так и компилятор. Компилятором советуем вам пользо­ ваться только после приобретения навыка программиро­ вания на Бейсике. Осваивать язык, а также отлаживать программы целесообразно в режиме интерпретатора . , Как разрабатывается программа? ф ~ 8 Подготовка задачи к решению ее на компьютере н ач ина ется с определения целей р ешен ия и ко м плекта ис­ ходных да ннь1х. Далее выбирается м атематический метод · реш ен и я и по д готавливается ма т ематическое описание ре­ ша емой задачи. При этом устанавливается оптимальная при м енительно к данной задаче система обозначения всех переменных и параметров задачи. ~ ~ е Теперь можно выполнить переход к формальному о п и са ни ю информационного процесса, приводящего . пре­ о браз ова ни я исходных данных к искомому результату. Т а ­ к о е фо рм альное описание, выполненное по определенным и ве сьма несложным правилам, называется алгоритмом. Действия, предписанные алгоритмом, могут быть произ·­ вед е ны человеком или компьютером. Понятно, что компыо- - т ер выполнит эти де йствия несравненно быстрее человека . ~ ~ t,t Важным этапом работы при программировании является анализ данных, которые будут обрабатываться создава е мой программой. В разрабатьшаемой программе должны сообщаться некоторые сведения о свойствах ис­ пользуемых данных. Это позволит компьютеру правильно расположить данные в своей памяти, безошибочно извле­ кать их оттуда, выполнять только корректные операции с данными каждого типа. · 8 8 8 Наконец, можно приступить к кодированию про- 316
граммы, т. е. к записи разработанного алгоритма . на вы­ бранном языке программирования (в нашем случае - на Бейсике). Ваша работа по составлению программы, не­ сомненно, сопровождалась ошибками. Это совершенно естественно. Теперь важно устранить все ошибки в программе. Для этого понадобится осуществлять пробные решения состав­ ленной программы. Для поиска каждой отдельной ошнбки может потребоваться специальный комплект исходных данных, применительно к которому результат работы про­ граммы вам точно известен. Отклонение результатов пробного решения от точного результата будет свидетель­ ствовать о наличии в вашей программе одной или несколь­ ких ошибок. Для установления характера и места воз­ никновения ошибок вам потребуется проявить находчивость и определенную изобретательность. Совпадение результа­ тов пробного пуска с точным результатом позволит на- · деяться, что программа, по-видимому, работает правильно. Подобный процесс нахождения и устранения ошибок в программе, получивший название отладки программы, является весьма сложным, а зачастую и длительным. Успех здесь напрямую зависит от вашего опыта, аккуратности, внимательности, настойчивости и строгой дисциплины. В любом случае при возникновении трудностей с отлад­ кой программы не следует отчаиваться, ведь вам «проти­ востоит» исполнительный, аккуратный и о~rень быстrодей­ ствующий формалист - компьютер, «поведение» которого абсолютно предсказуемо. Алфавит Бейсика Любой язык проrрамирования базируется на некоторой конечной совокупности символов - алфавите. В алфавит Бейсика входят: ф 26 прописных латинских букв от А до Z; ф 31 прописная русская буква от А до Я, искдючая ЪиЕ; 317
+ десятичные цифры от О до 9; +девятьзнаковоперации+- * / \ => </\; +специальныесимволы. , :;!?"'()%'h !=#=. Любая конструкция Бейсика состоит только из пере­ численных символов. Использование какого-либо другого символа или невозможно, или приводит к так называемой синтаксической ошибке. Сиптаксис и семантш'а Бейсик, как и все языки программирования, характе­ ризуется синтаксисом и семантикой. ~ ~ ~ Синтаксис задает способы построения правильных конструкций языка. На основании этих способов компью­ тер получает возможность отличать правильные конструк­ ции от неправильных. При выполнении программы, имею­ щей нарушения синтаксических правил, компьютер фикси­ рует ошибку и, как правило, распознает ее. 8 •@ Семантика определяет характер и последователь­ ность действий, предпринимаемых компьютером при вы­ полнении каждого конкретного оператора программы. У неопытного программиста чаще всего встречаются синтаксические ошибки. Устраняются они сравнительно просто, так как компьютер помогает в этом. По мере на­ копления опыта число синтаксических ошибок уменьшает­ ся. Устранение семантических ошибок, как правило, зна­ чительно сложнее и зависит от более глубокого знания и понимания работы каждой конструкции Бейсика. Что такое программа на Бейсике? Действия по обработке данных, которые выполняет компьютер, задаются с помощью последовательности опе­ раторов и команд Бейсика. Это основные конструкцИи языка, правила написания и использования которых вы должны хорошо понимать и помнить. С помощью опера­ торов вы представляете алгоритм в форме, воспринимае­ мой компьютером. Команды позволяют вам управлять 818
работой компьютера в процессе создания, отладr<и и рабо­ ты программы. При записи операторов и команд используются специ­ альные ключевые слова - английские слова или их сокра­ щения, указывающие на выполняемые действия. Всего в Бейсике зарезервировано для этих целей 123 ключевых слова, например: FOR, IF, RUN, LIST и т. п. Программа на языке Бейсик представляет собой · по­ следовательность операторов, записанных построчно. В каждой строке текста программы могут быть один или несколько операторов. Операторы строки отделяются друг от друга с помощью символа двоеточие. Строка програм­ мы не должна иметь более 255 символов и может з_анимать несколько строк экрана д исплея. Каждая строка программы начинается с номера, кото­ рый выражен целым числом без знака в диапазоне от 1 до 65529. В основной пам яти компьютера строки про­ граммы располагаются по поряд ку , своих номеров. Этот порядок не зависит от последо вательности набора строк на экране дисплея при формировании текста программы. Удобно нумеровать строки программы с шагом 1О, так как при добавлении в п рограмму новых строк им присваивают­ ся промежуточные номера, чтобы компьютер расположил их между существующими строками, не нарушая после- довательности номеров. · Текст строки набирается при помощи клавиатуры с · одновременным отображением его на экране дисплея: Ввод строки в память осуществляется после нажатия кла­ виши ЕТ. При этом соответствующий этой клавише символ на экране не отображается. Катсие дат-~ые обрабатываются программой па Бейсике? Основная цель программы - обработка данных для определения значений исковых резуJiьтатов. В качеств_е данных испоJiьзуются константы, переменные и массивы. 319
Компьютер выполняет операции над значениями, которые в программе могут быть представлены константами, про­ стыми переменными (скалярами), переменными с индекса­ ми (элементы · массивов) или указателями функций (на­ пример, указатели элементарных функций синуса, . коси ­ нуса и т. п.). Каждое данное и, следовательно, соответствующие ему значения могут быть отнесены либо к числовому (число), либо к символьному типу. Среди чисел в Бейсике разли­ чают целые, вещественные числа и числа удвоенной точ­ ности (другими словами, «дJ~инные» числ а). К символь­ ному типу относятся данные, значения которых представ­ ляюr собой цепочки (последовательности) символов ал­ фавита Б ейсика конечной длины. Для обоз начения того или иного типа используются специалыrые символы. Так, для обозначения п еременной символьного типа посл е имени этой переменн ой за писы­ вается символμ, напр имер : Н YJ, Т5 Д, BI-124 \=(. Сим­ вольная константа записываетс я в кавычках (апострофах) например: "БЕйСИК'', 'BASIC', f/56.7 8" . Для обозначения числового типа переменных исполь- зу ются следующие символы : % - цеJ1ый тип, например: А%, N%, Р29%; # - тип удвоенной точности, напри мер : НР:фt: , l,S=tf. Если после имени переменной нет символа ·J:J ,#илп %, то такая переменная имеет тип nещественный. Ре:ж:и.мы работы компьютера с Бейсика;~-~ Бейсиком предусматри ва ются два режима работы ком­ пьютера - непрограммный и прогр аммный . , •• е в непроrраммпом режиме использ уются только определенные операторы Бейсика. При этом номер строки должен отсутствовать . Бейси к выполняет каждый такой оператор немедленно после нажатия клавиши ЕТ. В этом режиме. компьютер подо бен калькулятору. В программном режиме каждая строка программы име- 320
ет номер и после нажатия клавиши ЕТ производится толь­ ко ее запись в память. Выполнения операторов введенной строки не происходит. Выполнение программы возможно только после записи ее в память и использования специ­ альной коман~ы запуска программы на решение- RUN. 7.2. РЕШАЕМ ЗАДАЧУ ОБРАБОТКИ ЧИСЛОВЫХ ДАННЫХ 7.2.1 . СТАВИМ ЗАДАЧУ Независимо от сложности задачи программа для се решения с помощью компьютера состоит из трех част ей: ф сообщение о назначе!jИИ данной программы и основ­ ных ограничениях при использовании программы. Ввод исходных данных под управлением програ ммы. Контрол ь вводимых значений и, как правиJiо , вывод введенных зна­ чений исходных данных; ф выполнение собственно алгоритмической обработки пс· ходных данных дJiя поJiучения искомого результата; ~ оформление результатов обработки, исчерпывающее по содержанию и наиболее удобное по форме (текст, табли­ ца, график, гистограмма и т. п.). Для выработки правильной манеры программировани я настоятельно рекомендуем всегда придерживаться этой схемы. ' ' Пусть требуется решить следующую задачу: состав и ть программу для нахождения площади параллеJiограмма, если известны длины его смежных сторон а и Ь и угол а между ними. В этой задаче исходными даrшьщи являют ся, очевид· но, три переменные, которые именуют собой три вещест­ венных . значения: длина стороны а, длина стороны Ь и угол а между сторонами . Результатом решения являет- 321
ся ' вещест!:fенное значение s п.JiощадИ геометрической· фн.i' гурьr, определенной, например, по формуле s= аЬsinа. (7.1) Выберем теперь имена (идентификаторы) для исход­ ных данных и искомого результата, пользуясь алфавитом Бейсика. Пусть А - длина первой стороны, В - длина вто­ рой стороны, АLFА-угол между ними, S - искомая пло­ щадь. Обратите внимание! В алфавите Бейсика отсутствует гречешая бу ква альфа. В uелнх соблюдения математической традиции при обо­ значении углов и сохранения связи с математическим описанием за­ дачи · (7. 1) целесообразно исп ользовать сравнительно длинное имя ALFA. Анализ свойств данных поставл енной задачи позволяет сделать вывод о том, что все исходные данные и искомый результат относятся к вещественному типу ; Значение угла а может быть задано как в радианной, так и. в градусной мере. Бейсик имеет ряд так называе­ мых встроенных функций (синус, косинус, тангенс, лога ­ рифм и т. п.). При этом требуется, чтобы значение аргу­ мента тригонометрических функций за давал ось в радиан­ ной мере. По этой прич1;11н~ исходное значение для пер ем ен­ н ой ALFА нашей задачи должно задаваться в радианах, хотя, как будt>т показано далее, оно может быть задано и в угловой м еvе. 7.2.2 . СОСТАВЛЯЕМ ПРОСТЕИШИЕ ПРОГРАММЫ Первый варuаит - используем простейшие операторы Приступим теперь к записи операторов Бейсика, ко· торые будут определять действия компьютера. Сначала 822
f!Сходные данные должны быть введены в основную память компьютера. Это достигается применением оператор_а вво-. да INPUT, в котором указывается список вводимых пере- менных: 1.0' INPUT А, В, ALFA Вводимое с клавиатуры первое числовое значение при­ сваивается переменной А, второе значение - переменной В и третье значение - переменной ALFА. Вводимые значе­ ния вы можете видеть на экране дисплея, Применяя основной вычислительный оператор Бейси­ ка - оператор присваивания, вы можете предписать ком­ пьютеру выполнение необходимых вычислений в соответ­ ствии с выражением (7.1). Внешне этот оператор напо­ минает математическое выражение 2.0'S =А * B*SIN .(ALFA) Обратите внимание! Знак операции умноженип изображаетсп символом звездочка, а аргумент функции всегда заключается в скобки. Наконец, необходимо вывести вычисленное значение площади из памяти на экран дисплея. Это выполняется при помощи оператора вывода PRINT и списка выводимых перемен!1ых. В данном случае выводится только одно значение 3.0' PRINT S Запишите теперь все эти операторы в виде Бейсик­ программы. При этом следует использовать еще один опе­ ратор END, которым полагается заканчивать любую про­ грамму. Перед вами ваша первая программа. Попробуй­ те теперь выполнить ее на вашем компьютере. О 8 8 Убедитесь, что компьютер и печатающее устрой­ ство (принтер) включены. Правильно вставьте диск в ле­ вый дисковод и закройте замок. Этих действий достаточ­ но, чтобы хранящаяся на дискете операционная система была загружена (переписана с диска) в основную память компьютера. При благоприятном исходе операции за­ грузки вы увидите на экране первоначальное .сообщение 323
операционной системы, которое в последней своей строке имеет два символа: А> 8 8 8 Можно приступать к работе с Бейсиком. Сначала необходимо загрузить интерпретатор Бейсика. Для этого с помощью клавиатуры наберите строку BASIC и нажмите к:Лавишу ЕТ. Окончание загрузки интерпретатора Бейсика сопровождается выдачей на экран нескольких строк со­ общения. в последней строке этого сообщения вы увидите два символа: ок Таким образом Бейсик сообщает о своей готовности рабо­ тать с вами. 8 8 О Произведите набор четырех строк вашей програм­ мы, заканчивая набор каждой строки нажатием клавиши ЕТ. Для запуска программы воспользуйтесь командой RUN. 8 8 8 Программа запущена: В начале следующей строки экрана вы увидите вопросительный знак. Это оператор INPUT ожидает от вас ввода трех числовых значений. На­ берите, например, значения 2; 4 и 0.25 в одну строку че· рез запятую (не забывайте заканчивать набор строки на­ жатием клавиши ЕТ). 8 8 8 Вы увидите на экране число 1.97923, которое и яв­ ляется искомой площадью параллелограмма. Выводом сим­ волов ОК Бейсик сообщает вам о готовности продолжа1ъ работу. Посмотрите .на стр. 325, как будет выглядеть экран, отражающий все ваши действия с компьютером. Обратите внимлж~е/ Здесь и в дальнейших примерах вводимые вами команды и значения подчеркнуты . Вашу первую программу вполне можно использовать для вычисления площади параллелограмма. Однако на практике вы вскоре убедитесь, что пользоваться такой программой очень неудобно. Например, вы можете забыть, 324
Пример 7.1 . A>BASIC ~ASIC-80 REV. 5 .2 [СР/М VERSION:I COPYRIBHT 1977, 78, 79, 80 IC> ВУ MICROSOFT CREATED1 14-JUL -80 24390 :ВУТЕS FREE ок 10 INPUT A,:В,ALFA 20 S=A*B*SIN(ALFA) 30 PRINT S 40 END RUN ?2,4,0. 25 1.97923 ок в каком порядке следует набирать вводимые значения, искомый результат нуждается в выделении среди т е кста на экране дисплея . Второй вариант - используем поясняющий те1сст Попробуем улучшить вашу программу введением в нее символьных констант. Эти константы будут играть роль поясняющего текста, который выводится на экран во вре­ мя выполнения: программы. Символьные константы можно использовать как в операторе ввода, так и в опер а торе вывода . Теперь экран с вторым вариантом программы и ре­ зультатом ее работы будет выглядеть как на стр. 326. Согласитесь, с такой программой раб отать значитель­ но приятнее. Она сама помогает вам избежать ошибок при вводе значений, а результат вычИслений достаточно хоро­ шо выделен. Такая программа во время своей работы под· сказывает вам, ввод какого _значения она ожидает от вас, 325
Пример 7.2. ок 10 INPUT"88EДИTE .АЛИНУ ПEPE:Olll СТОРОНЫ" ,А 20 INPUT"B8EДИTE ДЛИНУ BTOPOlll СТОРОНЫ",В 30 INPUT"BBEAИTE . ЭНА'-IЕНИЕ УГЛА В РАДИАНАХ" ,ALFA 40 S=A*B*SIN<ALFA! 50 PRI NT "ПЛОЩАА!:· ПАF'АЛЛЕЛОГРАШ1А РАВНА" ; S 60 END RUN ВВЕДИТЕ ДЛИНУ ПЕР8Q111 СТОРОНЫ 2 ВВЕДИТЕ ДЛИНУ BTOPOlll СТОРОНЫ 4 ВВЕДИТЕ ЗНАЧЕНИЕ УГЛА В РАДИАНАХ .25 ПЛОЩАДI:. ПАРАЛЛЕЛОГРАММА РАВНА 1 • 97923 ок 7 .2.3 . ИСПОЛЬЗУЕМ В ПРОГРАММЕ ОПЕРАТОРЫ ПЕРЕХОДА l(акие недостатки имеет ваша программа? Любую программу можно совершенствовать практиче· ски до бесконечности. Ваша программа, признаемся, еще очень далека от идеала . Какие недостатки можно обна· ружить в программе? 0 е ф Во-первых, в начале программы весьма полезно иметь · информационный текст, сообщающий основное на­ значение данной программы . Без него желание знать , для чего предназначена программа, заставит вас внимательно просматривать весь текст программы и вникать в его смысл. Полезно также иметь информацию о всех или хотя бы основных ограничениях при решении данной задачи. ф ф О Во-вторых, ваша программа не защищена от вво­ да «глупых» (некорректных) значений исходных данных. В самом - деле, д.Лина · отрезка никогда не может быть от-· 326
рицательной. Значение угла а тоже должно быть неотри­ цательным числом, иначе даже при положительных зна­ чениях длин сторон а и Ь площадь s может получиться отрицательной. Первый из двух отмеченных недостатков может быть устранен при помощи оператора REM, который позволяет вносить в текст программы любые комментарии, поясне­ ния. Оператор может занимать любое место в программе и никак не сказывается на проводимых по программе вы­ числениях. Контроль вводимых значений можете выполнить при помощи условного оператора IF, который позволяет изме­ нять· направление вычислительного процесса в зависимости от факта выполнения или невыполнения условия, содер­ жащегося в этом операторе. Здесь же может понадобить­ ся и оператор GOTO безусловного перехода. Он нарушает естественную последовательность выполнения операторов программы в любом случае (безусловно) . Как записать условный оператор? Условный оператор записывается в виде (формате) IF условие ТНЕ N операторы [ELSE операторы] 1 Здесь и далее при описании синтаксической структуры конструкций Бейсика будут использоваться такие симво­ J!Ы, не входящие в его алфавит: [ ] - часть конструкции, заключенная в квадратные скобки, является необязательной и может быть отброшена; { } - из указанных в фигурных скобках фрагментов конструкции может использоваться юобой. Оператор IF должен размещаться в одной строке про­ граммы . Выполняется он следующим образом. Анали з и­ руется условие, которое может быть истинным или л ож­ ным. При соблюдении условия выполняются операторы, 327
сле~уЮiцИе за ключевым словом THEN, а · затем - опера· торь1 следующей строки. -При несоблюдении условия будут · выполнятъся операторь1, следующие за ключевым словом ELSE, и затем - операторы следующей строки. Часто используется сокращенная форма оператора IF, когда в нем отсутствует часть ELSE с соответствующей _ группой операторов. Бейсик допускает также использова­ ние вложенных условных операторов. l(ак записать оператор безусловного перехода? Оператор безусловного перехода записывается в виде 1 ООТО номер строки 1 Этот оператор явно определяет своего преемника: после оператора GOTO будет выполняться первый оператор стро­ ки, номер которой указан в операторе безусловного пе- . рехода. Составляем программу с операторами перехода Вернемся теперь к вашей программе. Попробуйте запи­ сать операторы Бейсика, которые вводят значение длины одной из сторон и проверяют его знак. Если введенное зна­ чение оказывается отрицательным, то на экране должны появиться сообщение "Вы ошиблись" и вновь запрос "Вве­ дите длину первой стороны" на ввод значения длины этой же стороны. Проверьте себя. Вот как должны выглядеть необходи­ мые операторы: 10 INPUT"BBEДИTE 0.ЛИНУ ПЕРВО111 СТОРОНЫ",А 20 IF А<О THEN PRINT"Bbl ОWИБЛИСЬ"18ОТО 10 328
· Еще раз проанализируйте работу этих операторов . Оператор ввода в строке 10 выводит на экран текст под­ сказки "Введите длину первой стороны" и ожидает от вас на-в-ора на клавиатуре определенного числового значения. После окончания набора вводимого значения и нажатия клавиши ЕТ оно поступает в память компьютера. Начи­ нает работу оператор IF в строке 20. Он извлекает из па­ мяти только что введенное значение переменной А и ана­ лизирует его знак (А <0) . Если окажется, что А дейст­ вительно меньше нуля, то будут выполнены операторы, записанные после ключевого слова THEN. Сначала на экране появится сообщение "Вы ошиблись", а затем уп­ равление с помощью оператора GOTO будет передано оператору ввода в строке 10. И вновь на экране появ ится сообщение "Введите длину первой стороны". Если при анализе условный оператор в строке 20 об- Пример 7.3. DK 1 О REt1 ВЫЧ ИСЛЕНИ Е П ЛОЩАДИ ПАF"АЛЛЕ ЛОГРА~1t1А 20 REM ПО ДВУМ СТОРОНА~1 И УГЛУ МЕJХДУ НИМИ 30 INPUT "B BEДИTE 0.ЛИНУ ПЕРВОИ СТОРОНЫ",А 40 I .F А<О THl::N PRINT"Bbl ОШИt;;ЛИСЬ"1GDТО 30, 50 INPUT"SBEO.ИTE ДЛИНУ BTOPOPI СТОРОНЫ!' ,В 60 IF В<о THEN PRINT"Вbl ОШИБЛИСЬ":ВОТО 50 70 INPUT"BBEAИTE ЗНАЧ ЕНИЕ УГЛА В РАДИАНАХ " ,АLFА 80 IF ALFA<o THEN F"RINT " Bbl ОШИБЛИСЬ"1ВОТО 70 90 S=A*B*SIN(ALFA> 100 РRINТ"ПЛОЩАДЬ ПАРАЛЛЕЛОГАММА PABHA"1S 110 END 1 RUN . ёВЕдИТЕ ДЛИНУ ПЕРВОРI СТОРОНЫ 2 ВВЕДИТЕ ДЛИНУ BTOPOPI СТОРОНЫ · ~ ВЫ ОШИБЛИСI::· ВВЕДИТЕ О.ЛИНУ ВТО?ОИ СТОРОНЫ 4 ВВЕДИТЕ ЗНАЧЕНИЕ УГЛА В РАО.ИАНАХ .25 ПЛШU?iдl:;. ПАРАЛЛЕЛОГРА1'1МА РАВНА 1. 9ffi3 :Ш< 329 J
наружит, что значение А не меньше нуля, то операторь1: PRINT и GOTO выполняться не будут . ~: Попробуйте получить на экране полный текст усовер~' шенствованной программы с комментариями и проверкой вводимых значений. Сравните свою работу с примером 7.3 . В примере намеренн_о сделаf1а попытка ввести недоп у стимое от­ рицательное значение минус 4 длн переменной В. Реакцин программы соответствует нашему замыслу. Как сделать, чтобы угол 7.2 .4 . ИСПОЛЬЗУЕМ СИМВОЛЬНЫЕ ПЕРЕМЕННЫЕ можпо было вводить в любой ,riepe? На следующем этапе хотелось бы сделать программу универсальной в том смысле, что она будет способна вы­ числять правильно площадь параллелограмма при любой - градусной или радианной - мере угла а. Если ранее вы ознакомились с применением так называемых подсказок, которые комп ь ютер выдает вам на экран iro время выпол­ нения программы, то сейчас вы узнаете как организуется диалог «компьютер - пользовател ь». При этом вы озна­ комитесь с одним из способов использованитт символьных переменных . Вспомните! Перевод значения а" в градусной мере в эквивалент ­ ное значение а:р, выраженное в радианах, выполняется по форм у ле 'lt 3,1415 ар=180аг= 180 аг. (7.2) Сделаем так, чтобы при работающей программе после ввода з начения для переменной ALF А компьютер спросил вас (выводом на экран текста) «Угол измерен в граду­ сах?». При этом требуется указание правильных вариан­ тов ответа пользователя «да/Нет». В ответ на такой за­ прос вы должны ввести с клавиатуры либо ДА, либо НЕТ. ' 330
В' первом случае, очевидно, нужно воспользоваться фор­ мулой (7.2) перевода, а во втором случае ничего пре·k принимать не следует. На любой · другой ответ пользова­ теля компьютер должен реагировать выводом сообщения «Я вас не понял» и повторением вопроса «Угол измерен в градусах?». Для осуществления наших планов u воспользуйтесь в программе вспомогательной переменнои символьного типа, например Н Ц. Эта переменная может принимать только символьные значения, к которым относятся ДА и НЕТ. Очередная версия вашей программы и результат ее р а ­ боты могут выглядеть так, как показано ниже. Пример 7.4. ок 10 REM ВЫЧИСЛЕНИЕ ПЛОЩА/].И ПАРАЛЛЕЛОГРАММА 20 RE~1 ПО ДВУМ CTOPOHl·\M И УГЛУ MEЖIJ.Y НИМИ 30 . INPUT"BBEIJ.ИTE ДЛИНУ ПЕР80111 СТОРОНЫ" ,А 40 I F А< О Tl-!EN PRI NT" ВЫ ОШИБЛИСЬ": GOTO 30 50 INPUT"BB EЦИTE Д ЛИ НУ BTOPOlll СТОРОНЫ" ,В 60 IF В<О THEN PRINT"BЬI ОШИБЛИСЬ":GОТО 50 70 I NP UT"BBE!J.ИTE ЗНАЧЕНИЕ УГЛА ", АLFА 80 IF ALFA<O THEN PRINT"BЬI ОШИБЛИСЬ":ООТО 70 90 INPUT"YГOЛ \!IЗt;iEPEH В ГРА!l.УСАХ? <ДА/НЕТ>" ,Н!:! 100 IF нn="j],A" THEN ALFA=ALFA*3.1415/180 c GOTO 120 110 IF нn<>"НЕТ" THEN PRINT"Я ВАС НЕ ПОНЯЛ":GОТО 90 120 S=A*B*SIN<ALFA> 130 PR I NT"ПЛOЩAj],b ПАРАЛЛЕЛОГР АММА PABHA" 1 S 140 END RUN ВВЕ!l.ИТЕ ДЛИНУ ПEPBOlll СТОРОНЫ -2 ВЫ ОШИБЛИСЬ ВВЕj],ИТЕ ДЛИНУ ПEPBOlit СТОРОНЫ 2 ВВЕДИТЕ ДЛИНУ BTOPOlll СТОРОНЫ 4 ВВЕДИТЕ ЗНАЧЕНИЕ УГЛА .25 УГОЛ ИЗМЕРЕН В ГPA!l.YCA~<!l.A/HET) NO Я ВАС НЕ ПОНЯЛ УГОЛ ИЗМЕРЕН В ГРАj],УСАХ? (j],A/HET> НЕТ ПЛОЩАДЬ ПАРАЛЛЕЛОГРАММА РАВНА 1.97923 ок SЗI
В эт_ой программе новыми являются с:гроки 90-110" Оператор ввода в строке 90 выводит на экран текст вопро:~ са «Угол измерен в градусах?» и правильн~е вариантй вашего ответа «(Да/Нет)» . Ответ пользователя, представ­ ляющий собой симвоЛьное значение, присваивается пере­ ме~шой Н 'd. , указанной в операторе INPUT строки 90. ~ ~ е Если пользователь на вопрос отвечает набором на клавиатуре значения ДА, то условие в операторе IF_ строки 100 становится истинным . Выполняются оператор присваивания, размещенный после ключевого слова THEN, и оператор GOTO. Последний передает управление опера­ тору присваивания строки J20. Обратите внимшше! Использование одной и той же переменной ALFA слева и сп рав а от символа= является совершенно правильным. Оператор присв а !!вания выражает временной ха рактер выполняемых sычислений: сначала значение переменной ALFA извлекается из па­ мяти, затем оно умножается на ко1:1 станту 3.14 15, полученный резуль­ тат делится на константу 1·30 _и полученное значение присваив ается переменной AJ_FA, стоящей слева от знака =. Таким образом, в ре ­ зультате выполнения опера то ра присваивания значение переменной AL.FА изменилось. ti) 8 ~ Если пользователь на вопрос «Угол измерен в гра­ дусах?» отвечает набором на клавиатуре значения НЕТ, то условие в операторе IF строки 100 становится ложным. Значение переменной ALF А в этом случае не изменяется, и начинает выполняться оператор IF строю~ 110. Обратите втинатще! Операuия делепин обоз на чается с помощью символа /, а З!!аI( < > означает «не равно». При записи вещест­ sенной константы 3.1415 - для отделения целой части от дробной используется символ точка, а не за п ятан . Переменная Н}:::(, по-прежнему имеет значение НЕТ. Следовательно, условие в операторе IF строки 110 явля­ ется ложным и остальная часть условного оператора не выполняется. Далее будет выполняться оператор присваи- · вания стrюки 120. ф f) 8 Если пользователь на вопрос «Угол измерен в гра­ дусах?» отвечает непредусмотренным значением, например NO, то условие в операторе IF строки 100 становится лож- 332
:н'ым и далее начинает выполняться оператор IF строки 110. В этом операторе условие приобретает · истинное значение, так как значение NO переменной Н >:J: не равно значению НЕТ. Следовательно, будет выполнен оператор вывода текста «Я вас не понял» и следующим будет выполняться оператор ввода строки 90 из -за действия ' оператора GOTO 90. Работаем. с приитером 7.2.5 . ОРГАНИЗ УЕМ ДОКУМЕНТИРОВАНИЕ РАБОТЫ ПРОГРАММЫ Для офо р мления результатов ·р а боты программы в ви­ де документа необходимо обеспечить вывод информ а ци и на принтер. Для этого используется оператор вывода LPRINT, аналогичный оператору PRINT. Направив результаты вычислений не на экран, а на п р интер, вы должны заметить, что возникло определе нн ое­ затруднение: значения исх одных данных, для кото р ых прои з водится расчет, отображаются на экране, а результа­ т ы вычислений- на б умажном листе. Информация о з на­ чениях исходных данных, имеющаяся на экране, в процес­ се вашей работы будет утер я на, так как содержимое эк р ана постоянно сдвигается вверх . Результаты ра боты п р ограммы на бумаге без соответствующих значений ис­ х одных данных не представляют практической ценност и . Возникает н еобходимость несколько изменить вывод да н ­ ны х в ваш е й программ е для получения исчерпывающей информации о работе программы . Важ но подчеркн уть, что все подсказки и диалого вый ввод данных реализуются по-прежнему с помощью экрана дисплея. Наоборот , в р езультате работы программы дол жен быть получен бумаж н ый документ (распечатка), содер­ жащий исчерпывающую информацию о проведенном рас­ чете, в том числе об исходных данных и результатах. ~зз
Для достижения поставленной цели к уже сущест_вую­ щему оператору вывода искомой площади добавьте опе. раторы вывода значений исходных данных, для которых. и получено решение. Полезно также несколько изменить форму вопроса в операторе ввода строки 90 и оба вари­ ~нт а ответа для обеспечения вывода наиr-iенования едини­ цы угла а. Разумеется несколько изменятся условия . в опе-, раторах IF строк 100 и 110. После модернизации ваша программа и результат ее работы могут быть такими . Пример 7.5. ок 10 REM ВЫЧИСЛЕ НИЕ ПЛОЩА/lИ ПАРАЛЛЕЛОГРАММА 20 REM ПО !\ВУМ СТОРОНАМ И УГЛУ МЕЖДУ НИМИ 30 INPUT"BBE!\ИTE llЛИНУ ПEPBOlll СТОРОНЫ",А 40 IF А<О THEN PRINT"BЬ! ОШИБЛИСЬ":GОТО 30 50 INPUT"BBE!\ИTE ДЛИНУ ВТОРШl СТОРОНЫ" ,:В 60 IF В<О THEN PRINT"BЬI ОШИБЛИСЬ":GОТО 50 70 INPUT"BBEO,ИTE ЗНАЧЕНИЕ УГЛА",АLFА 80 IF ALFA<O THEN PRIN T"BЫ ОШИБЛИСЬ"аGОТО 70 90 INPUT"B КАКИХ Е!\ИНИЦАХ ИЗМЕРЕН УГОЛ? (ГРАД/РАl!,)",Н~ 100 IF Н!:!="ГРА!\" THEN ALFA=ALFA*3.1415/180:GOTO 120 110 IF Н!:!<>"РАО." THEN PRINT"S! ВАС НЕ ПОНЯЛ":GОТО 90 .120 S=A*B*SIN<ALFA) \ 130 LPRINT 140 LPRINT"ПЛOЩAO,b ПАРАЛЛЕЛОГРАММА PABHA";S 150 LPRINT"ПPИ О,ЛИНАХ СТОРОН ";А;"И";В 160 LPRIN!"И УГЛУ МЕЖО,У НИМИ" ;АLFА;Н~ 170 END RUN ВВЕО,ИТЕ 0.ЛИНУ ПEPBOlll СТОРОНЫ ~ ВВЕО,ИТЕ !\ЛИНУ BTOPOlll СТОРОНЫ ~ ВВЕО,ИТЕ ЗНАЧЕНИЕ УГЛА .25 В КАКИХ Е!\ИНИЦАХ ИЗМЕРЕН УГОЛ? (ГРАО,/РАМ RAD Я ВАС НЕ ПОНЯЛ В КАКИХ ЕО.ИНИЦАХ ИЗМЕРЕН УГОЛ? !ГРАО./РАД) -~ ок ПЛОШАО.Ь ПАРАЛЛЕЛОГРАММА РАВНА 1.97923 ' ПРИ О.ЛИНАХ СТОРОН 2 И 4 И УГЛУ МЕЖ!\У НИМИ .25 РАО. 334
, : Для · лучшего отделения при выводе результата реше­ ния задачи полезно использовать оператор вывода без списка вывода (строка 130). В этом случае при выводе пропускается одна строка. Обратите внимание! Имеются два способа разделения элементов списка вывода в операторе вывода . При использовании запятой осу­ ществляется зонный вывод, когда каждое выводимое значение раз­ мещается в своей зоне . Под каждую зону отводятся 11 позиций, меж­ ду зонами оставляются три пробела . При использовании точки с за­ пятой или пробела происходит последовательный вывод, при ко.то ­ ром очередное выводимое значение отделяется от предыдущего одним пробелом . При превышении формата строки вывода (80 позиций) автоматнчески выполняется переход на новую строку и вывод про­ р.олжается. 72~. РАЗРАБАТЫВАЕМ ЦИКЛИЧЕСКУЮ ПРОГРАММ~ Заrtем нужна цrи,лическая программа? Ра3работанная вами программа выполняет однократ­ ный расчет площади геометрической фиrуры. Для повтор­ ного расчета вам придется вновь запускать программу командой RUN. При этом ее текст опять обрабатывается интерпретатором, что приводит к непроизводительной тра­ те времени. Следовательно, если имеется потребность вы­ Полнять серию вычислений площади параллелограмма, вы должны видоизменить свою программу, придав ей цик­ лический характер . Циклом называется фрагмент алгоритма или програм­ мы, повторяющийся более одного раза . Различают циклы с заранее известным числом повторений (детерминирован· ные) и циклы, число повторений которых заранее не из­ вестно (итерационные). Для организации циклическоrо 335
процесса необходимо обеспечить требуемое число его по­ вторений и выделение группы операторов, выполняющих­ ся многократно и называемых те лом цикла . Организуем цшсл с помощью операторов перехода Сформировать циклический вычислительный процесс можно пр~~ помощи уже известных вам операторов пере· х ода-· оператора IF и оператора GOTO. Табл!:!. ц а 7.1 Зо нный ф ормат для оформл~ния резу JIЬ т атов вычислений 11311 3 11 311 311 <-·-->-<- -->-<--->-«------ -<---> -- __j_ -- --- --- Дли- / дли- Угол, Пло- Номер наА наВ rад ЩJДЬ 1 Пусть требуется проводить неодно­ кратные вычисления площ ади паралле ло ­ г рамм а, причем за· ранее не известно количество та ких вычислений. Ст ало быть, речь идет об организации итера- ционного вычисли- тельного пр~щесса. Поскольку вычисле­ ния _ площади будут проводиться много­ кратно, то и резуль­ татов будет целая ~серия. Отсюда де­ лаем .закJJючение о необходимости офор- мления результатов вычислений в табличном виде, используя зонный формат (табл. 7.1). Заметим, что каждое выводимое в зону · з начение прижимается к ее левой границе. Для того чтобы разрабатываемая прогрю.iма не была бы слишком велика, не будем в этот раз выполнять про· 336
верку вводимых значений и Потребуем, чтобы значение угла а вводилось бы только в радианной мере. В дальнейшем, мы надеемся, вам не составит большого труда учесть в циклической программе опущенные подробности. Приступая к разработке циклической проrриммы, полезно спланировать после­ довательность програмирования отдель­ ных этапов всего вычислительного про­ цесса. Удобно сделать это в виде схемы алгоритма (рис. 7.1). Для подсчета ко­ личества вычисленных значений площа­ ди использ уйте, например, переменную N целого типа. До начала циклических вычислений ее значение должно быть равно нулю. Для хранения ответа поль­ зователя «дА» или «НЕТ» на вопрос компьютера о необходимости продол­ жения вычислений используйте, напри­ мер, перем енную Т. Посмотрите на стр . 338, как может выглядеть ваша циклическая программа с примером экранного диалога и ре­ зультатами решения, выводимыми на принтер в табличном виде. В программе используются знакомые вам операто12ы. Цикл повторяется три раза для трех комплектов исходных данных. Организуем цикл с помощью оператора WНILE В Бейсике имеется · специальная кон­ струкцйя для описания итерацион н ых 12 За11аз No 594 337 tJы8cJJ голобки таолщы Мод значений fhя переменнD/Х А, !3,ALFA -i 1 [•·71 1 !3ычис11ение п11ощ1;д11.S Вы8од б cm{}OК/J/ J r!OЧШIUU · N,A,д,A LFA, S т Остано-0 Рис. 7.1. Схема алгоритма итера1.\li· онного щшла
Пр им ер 7.6. ок 1.0 REM ЦИl<ЛИ'-JЕСf<АЯ ИТЕРАЦИОННАЯ ПРОГРАМl'iА 20 LPF< I NT" ---------· ------------------- -------------·---- ----' ' 30 l-PRINT"HOMEP", "tJ,Л ИНА А", "ДЛИНА В" , "УГОЛ, РА IJ.. ", "ПЛ ОЩ АI J. Ь" ~~ ~~~~·::::::-:::::---------------.-------------------------", 70 INPUT"88Ef.\ИTE /).ЛИНУ ПEPE.'Oli1 СТОРОНЫ" ,А 80 ! NPLIT "ВВЕДИТЕ ДЛИНУ ВТОРО\11 СТОРОНЫ" , В 1 · 90 INPIJТ"88EДИTE ЗНА '-IЕНИЕ УГЛА 8 F'AAll .AHAX " ,AL F A 100 N%,~N%+ 1 110 S•A*B*SINIALFAI 120 LPR!NT N/. , :~,В, ALFA, S 130 INPUT"БYl1Ei"1 Пl"ЩЩЛЖА1Ъ ВЫ '-iИСЛЕНИЯ? (ДА/НЕТ)", п~ 140 !F T~="dA" THEN GOTO 70 150 I F П\<) "НЕТ" THEN PR I NT" ВАШ ОТВЕТ НЕПОНЯТЕН 1 " : GOTO 130 160 l.PR INT" -----· --- ------------ -- · --- -- --- -- --- --- -- --- - -· - -- -" 170 END RUN• В'ВЕдИТЕ ДЛИНУ ПEF'E:Of~ СТОРОНЫ 2 ВВЕДИТЕ ДЛИНУ BTOPOVl СТОРОНЫ З; ВВЕДИТЕ ЗНА'-JЕНИЕ УГЛА В РАДИ?\НА)-( ~ БУДЕt-i ПРОДОЛЖАТЬ ВЫ'-iИСЛЕНИSJ? (ДА/НЕТI ДА ВВЕДИТЕ ДЛИНУ ПEPBOVl СТОРОНЫ 2.2 BBEд:tiTE /],ЛИНУ ВТОРОИ СТОРОНЫ 4. 2 ВВЕДИТЕ ЗНАЧЕНИЕ УГЛА В РА/J,ИАНА){ • 25 БУДЕМ ПРОIJ.ОЛЖАТЬ ВЫЧИСЛЕНИЯ? <ДА/НЕТ> ДА В8ЕЦИТЕ Д.fiИНУ ПЕРВО!~ СТОРОНЫ 2 . 6 ВВЕДИТЕ /lЛИНУ ВТОРО111 СТОРОНЫ 4.6 ВВЕt\ИТЕ ЗНАЧЕНVJЕ УГЛА В PAIJJ1AHAX • 3 6Yt1.EM ПРОДОЛЖАТЬ ВЫ'-:ИСЛЕНИЯ? <ДА/НЕТ> !:!§I ок ------- ---· - - --- --- --- ---- --- --- 4.--------------------------- НО~1ЕР АЛИНА А ДЛИНА В УГОЛ,РАД ПЛОЩАДЬ ---------- -- ------------------------~---------------------- 1 2 3 ~ 2.2 2.6 4 4·.2 4.6 .25 .25 .3 338 1.97923 2.28601 3.:53442 1
вычислительных процессов - оператор vVHILE. Он имеет · вид WH ILE условие {Операторы тела цикла WEND В этом операторе условие является отношением или числовым выражением. Работа оператора протекает сле­ дующим образом. Сначала проверяется значение · условия. Если оно истинно в случае отношения (или не равно нулю в случае числового выражения), то выполняются операто­ ры тела цищ1а. Среди последних должны быть операторы, изменнющие значения переменных условия. Вновь про­ веряется условие. Если оно оказывается ложным (или нулевым), то выполнение цикла заканчивается и управ­ ление передается оператору, следующему за ключевым словом .WEND. Таким образом, оператор WHILE обеспечивает повто­ рение тела цикла нуль или более раз . Ниже приводится текст программы с использованием оператора WHILE. Циклические вычисления площади продолжаются до тех пор, пока пользователь на запрос компьютера «Будем продолжать вычисления?» будет от­ вечать «дА». Любой другой ответ приводит к окончанию работы программы. Результаты решения, получаемые на принтере, оформJJены так же, как и в предыдущем примере. Присваивание переменной Т J:j значения ДА в строке 70 требуется для обеспечения начала работы оператора WHILE. Обратите внимание! В операторе присваивания строки 70 сим­ вол - выражает факт присваивания значения ДА переменной Т :с[·. а в условии оператора WHILE стрОiш 90 этот же симвоJ1 является знаком операции отношения «равно». 339
Пример 7.7 . ок 1 О REM ЦИКЛИ'-!ЕСt<АЯ ИТЕРАЦИОННАЯ ПРОГРАММА 20 REM С ОПЕРАТОРОМ ЦИКЛА WHILE 30 lPRINT"-----------------------------------------~--- ~--~ 40 LPR I NT "НОМЕР " , "ДЛИ НА А".,,'' ДЛИНА В" , "УГОЛ, РАД " , "ПЛОЩА Д!::." 50 LPR I NT 11 ----------------"":""~--~-·" -:----- ------------.--------:-- 11 60 N'Y.=O 70 Т!:!="ДА" 80 REM НАЧАЛО ЦИt.0:ЛА 90 WHILE Тj:1="ДА" 100 INPUT "8BE/J.И TE ДЛИНУ ПЕРВОЙ СТО"'ОНЫ"~А 11 О J NPUT "ВВЕДИТЕ j\ЛИНУ BTOPOli1 СТОРОНЫ" ,.В 120 INPUT"BBE~\ИTE ЗНАЧЕНИЕ УГЛА Е: РАДИАНА>(" ,ALFA 130 N'Y.=NY.+1 . 140 S=A'* B*SIN <ALFA> 150 LPRINT NY., А, : В , Al-FA, S 160 !NPUT"БYIJ.Ei1 ПРОАОЛЖАТI::. ВЫ'-JИСЛЕНИЯ? (ДА/НЕТ)", П:i 170 WEND 180 LPRl NT "------------------------ --~-~------------------~ 190 . ЕrЩ В.!:Ш Органuзуел-~ цикл с помощыо оператора FOR Вновь несколько видоизменим условие нашей зада чи. Пусть требуется вычислять площадь параллелограмма при условии, что длины обеих сторон не изменяются, а угол а изменяется от сх0 до ан с шагом Ла(ан>а:0). В этом слу­ чае программа остается циклической, но теперь заранее известно необходимое число повторений: N= -, а;,- аоГ+1 (7 .3) Лаl' где ] ...[ - операция отбрасывания дробной части числа. Для программирования подобных задач целесообра зно воспользоваться оператором FOR организации детермини­ рова!нiых циклов. Этот оператор имеет вид FOR пар. цикла= нач. зн. ТО кон. зн. [STEP шаг] {Операторы тела цикла NEXT [пар. цикла] 340
· Здесь пар.цикла - простая перемен­ ная, называемая параметром цикла и имеюшая целый или вещественный тип; нач.зн . , кон.зн., шаг - начальное, конечное значения и шаг изменения параметра цикла, каждое из которых задается числовым выражением цело­ го или вещественного типа . Если шаг изменения параметра цикла не задан, то он принимается равным единице. Оператор FOR обеспечивает сле ­ дующий порядок работы. Сначала вычисляются начальное, конечное зна­ чения и . шаг изменения параметра цикла. В дальнейшем в течение всего периода выполнения оператора цикла эти три значения не могут быть из­ м е нены . Следовательно, переход копе­ раторам тела цикла, минуя заголовок цикла FOR-TO-STEP, недопустим. Параметру цикла присваивается вычисленное начальное значение. Вы­ полншотся операторы тела цикла. Значение параметра цикла изменяет­ ся на величину, равную значению ша­ га изменения. Следующий проход цикла происходит в том случа~ если новое значение параметра цикла не превысит (при положительном шаге) или не станет меньше (при отрица­ тельном шаге) конечного значения. Таким образом, оператор FOR за­ ставляет выполняться операторы тела щшла минимум один раз. Целесообразно для данного _ слу; чая изменить способ оформления ре- 341 !lуск !Jыl}.n· з11а11ениt1 N,А/,,S : алгоритма детер­ минированного цик­ ла
Пример 7.8. ок 1 О REM ЦИКЛИ'-JЕСКАЯ ЛРОГРАММА 20 REM С ОПЕРАТОРО~1. ЦИКЛА FO R 30 · INPUT"BBEдитr:: алинУ ПEPBOlil СТОРОНЫ",А 40 INPUT"BBE!IИTE !IЛИНУ ВТОРШ1 СТО РОНЫ",:В 50 PRINT"BBEДИTE ДЛЯ УГЛА АЛЬФА В РАДИАНА>::" 60 INPUT" -НА'-JАШ:·НОЕ ЗНА'!ЕНИЕ" ,ALO 70 ! NPUT" - l<OHE' - IHOE ЗНАЧЕНИЕ" , ALK 80 INPUT" -ШАГ ИЗМЕНЕНИЯ", Dl•L 90 REM ПОДГОТОВКА "ГОЛОВКИ" ТАБ ЛИ!J.Ы 100 LPR I NT "ВЫ'-JИСЛЕНИ Е П ЛСЩАf.1.И ПАРАЛЛЕЛОГРА t1 МА" 110 LP RINT" П PИ ДЛИНАХ СТОРО Н";А;" И";В 120 LPRIN T "YГOЛ МЕНЯЕ Т СЯ OT"; Al_O; "ДО";Аl_К 130 LPRINT"C ШАГО~1"; DAL 140 LPRINT 11 -------- -------- - - ------------------- 11 150 LPRINT"HOMEP","YГOЛ,PA!!. " , "П ЛLJЩА ДЬ" 160 LPRINT"----- -------------------------------- " 170 Ni!=O 180 W=A *B 190 FOR Al_FA";ALO ТО ALK ВТЕР DAL 200 N'Y ." 'N'l.+1 210 LP RINT N'l .,ALFA,W•SINIALFAI 220 NEXT 230 LPRINT 11 - ------------------------------------ 1 • 240 END RlJN ВВЁдИТЕ ЦЛИНУ ПЕРЕЮИ СТОРОНЫ 2 ВВЕДИТЕ ДЛИН У ВТО РО~ СТОРОНЫ ~ GВЕ/].ИТЕ ДЛЯ УГЛА АЛl;фА Е: F'А!\ИАНА>:: ок ·- НА 1-{Р1Л!';\ НОЕ 3НА'1ЕНИЕ О -КОНЕ:_~НОЕ ЗНАЧЕНИЕ 1- -·ШАГ ИЗМЕНЕНИ Я • 25 - ВЫ'-JИСЛЕНИЕ ПЛОЩАДИ ПАРАЛЛ ЕЛОГР?1 riМА ПРИ j).JIИHAX СТО РОН 2 И 4 УГОЛ МЕНЯЕТСЯ ОТ О 1!.0 l С ШАГОМ .25 НОМЕР УГОЛ,РАД ПЛОЩ АДЬ о (1 2 ,.,~ .~...; 1. 97923 3 '.5 3~8354 4 .75 5" 4~):~!; 1 1 5 6.731 77 ---~-------------~--------------~---- \
зультатов вычислений, так как значения длин сторон ме­ i1ятьсЯ не будут. Nlожно, например, вынести длины сторон .в заголовок таблицы, здесь же поместить сведения о ди~· пазоне изменения угла а, а таблицу сформировать из трех граф: «Номер», «Угол, рад» и «Площадь». По л езно разработать сначала схему алгоритма (рис. 7.2), Для новых переменных задачи можно, например, принять такие имена: ао назвать AL!O, a}(-ALK и Лa- DAL. Ваша новая программа может иметь вид, показанный на стр. 342. Пр и водятся вариант экранного диалога и ре­ зультат работы программы, получаемый на принтере. Воспользуйтесь футщией 7.2 .7 КАК ИСПОЛЬЗУЮТСЯ ФУНКЦИИ И ПОДПРОГРАММЫ? Разрабатывая свою программу, вы можете не только использовать встроенные функции, имеющиеся в Бейсике, но и конструировать свои функции 13 целях получения эф­ фективной программы. Встроенные функции - это про­ граммы для вычисления значений математических функ­ ций, хранящиеся в библиотеке Бейсика, например: про­ . граммы вычисления экспоненты, синуса, косинуса. Список встроенных функций приведен в табл. 7.2. Ввести в программу свою функцию вы можете с по­ мощью оператора DEF описания функции, имеющег о вид DEF FN имп (список формальных параметров)= выражение Этот оператор должен всегда рас п олагаться в программе перед первым оператором, использующим соответствую- 343
с.о ""' ""' Т.зб,,ица7.2 Встроенные числовые функции Бейсика Имя 1 Назаачение 1 Математическая зап~iсь 1 Тип функ ции ABS Абсолютное значение у= lxl Це лый, вещест- венный ATN Арктангенс у = arctg (х), - т../2 ..;; у ..;; т../2 c o s Косинус аргумента в ради- у= cos (х) Вещественный анной мере ЕХР Эк спон е нциальная функция у= ех, х..;; 87,3365 . FIX Ц елая ч асть значения, полу- - ченная о тбрасыванием др об- ной части Целый INT Ц елая часть значения, по- - LOO Луче нн ая округлени е м Натуральн ы й логари ф м у=ln(х), х>О RND Псев дослучайное - число в - Ве щественн ый диапазоне от О до 1 ~ SON Знак аргумента {+1 при х>О у(х)= О • х=О Це лый -1 • Х<О SI N Синус аргумента в радиан- у= sin (х) ной мере 1 SQR Квадратн ы й корень У= -v:x. х >о Вещественн~•й TAN Тангенс аргумента в радиан- у= tg (x), - 7t/2<x <7t/2 ной мере П р и м е ч а и и е. Аргумент r<аждой функции может принимать значения любых венного, ц елого , удвоенной точности). числовых типов вещест-
. щий указатель функции~ Две буквы FN образуют постоян· ную часть имени функции, определяемой пользователем. Важно подчеркнуть, что оператор DEF показывает, как вычислить единственное значение определяемой пользо­ вателем функции. Реализация этих вычислений осуществ· ляется, как обычно, с помощью соответствующего указате· ля функции. Тип значения функции, определяемой опера­ тором DEF, задается обычным способом. Длина оператора DEF не должна превышать 255 символов. Пусть, например, требуется вычислить значение функции А Р=----в--- 1+~ Это мож1{0 сделать, используя оператор DEF: 10 .DEF FNF<X,Y)=Xl<1+Y> 20 INPUT А,В,С . 30 P=FNF(A,FNF<B,C)) 40 PRINT Р 50 END ПрИ исходных значениях А= 10, В= 16 и С=З Зна­ чение функции Р будет равно двум. Переменные Х и У в операторе DEF называются формальными параметрами, а переменные В, С, А и указюель функции FNF (В, С) в строке 30 - фактическими параметрами. Использование в программе переменных, являющихся формальными параметрами в операторе DEF, не приводит к ошибке. Воспользуйтесь подпрограммой Бейсик, как и любой другой язык программирования высокого уровня, имеет способ описания многократно ис- 345
пь льзуемой в разньтх местах riрограммъi совокупности действий - подпрогра ммы. Подпрограммы играют подчи­ ненную роль по отношению °!{ программе, в которой они используются. Процесс использования подпрограммы распадается на две части: оп и сание подпрограммы и вызов подпрограммы. Описание подпрограммы (или просто подпрограмма) пред· ставляет собой обыч~-i ый текст нз Бейсике, причем номера строк подпр ограммы соответствуют местоположению этой подпрограммы в тексте основной программы. На ча льная строка подпрограммы не имеет каких -либо особенностей, ОТJIИчающих ее от других строк ос новной программы. За­ канчива ется подпрограмма специа льн ым оператором RETURN. В одной подпрограмме может встречаться не­ сколько операторов RETURN. Таким образ ом, подпрограм· ма в отличие от оператора DEF не имеет механизма пере· дачи фактичес к их параметров и замены ими формальных параметров в описательной части конструкции. Вы з ов подпрограммы из основной программы осуществ­ ляется с помощью оператора GOSUB, имеющего вид 1GOSUB номер строки 1 После ключевого слова GOSUB указывается номер стро· ки, с которой должна стартовать подпрограмма. Сущест· венно, что каждая отдельная подпрограмма может иметь несколько стартовых строк (точек входа). Оператор RETURN в конце подпрограммы действует как оператор безусловного перехода, возвращая управле­ ние первому оператору строки, непосредственно следую­ щей за оператором GOSUB. Составьте программу, используя функцию и подпрограмму ' Попробуйте использовать функцию и подпрограмму в своей программе вычисления площади параллелограмма . 346
С помощью функции можно вычислить площадь фигуры, а подпрограмму используйте для проведения горизонталь ­ ных линий при выводе таблицы. Ваша новая программа может выглядеть так . Пример 7.9. 1О RE~1 ИСПОЛЬЗОВАНИЕ ФУНКЦИИ И ПОДПРОГF'АММЫ 20 DEF FNS <Х ) =>A,v,В *SIi'J< Х ) 30 I NPUT "ВВЕIЗ.ИТЕ: 1.1.ЛИНУ ПEP8DL11 СТОРОНЫ" , А· 40 INPUT"BBEAИTE ДЛИНУ ВТОРО111 CTOPOHbl" ,В 50 РR ! NТ"ВЕ:ЕДИТЕ ДЛ:i'1 УГ ЛА АЛ!::.фА 8 РАДИАНАХ;" ЬО INPUT" -НАЧАЛЬНОЕ ЭНАЧЕНИЕ",АLО , 70.H-!f'UT" -КОНЕЧНОЕ ЗНАЧЕНИЕ" , ALK 80 I NPUT" · -ШАГ ИЗМЕНЕНИЯ" , DAL 90 REM ПDАГDТОВКА "ГОЛОВКИ" ТАБЛИЦЫ 100 LРRINТ"ВЫЧИСЛЕНИЕ . ПЛОШАДИ ПАРАЛЛЕЛОГРАММА" 110 LPRINT"ПPИ ДЛИНАХ СТОF'ОН";А;"И";В . 120 LPR!NT"YГOЛ МЕНЯЕТСЯ OT";ALO;"ДO";ALK 130 LPRINT"C ШАГОМ"; DAL .. . 1-10 GOSUB 500 150 LРRINТ"НОМЕР","УГОЛ,РАд","ПЛОЩА/].Ь" ! 60 GOSUB 500 . 170 NY.=O 180 FOR ALFA=ALO ТО ALK STEP DA~ 190 NY. =N::t.+1 200 S=FNS<ALFA> 210 LPRINT N::t., A LFA ,9 220°NEXT 230 60SUB 500 240 END ~00 RH1 ПОДПРОГРАМ1'1А "ЧЕРТА" 51О LPR! Nl'f!·'------------------------,_· -.------------ n 520 RETURN В строке 20 определена функция, зависящая от фор­ малыюго параметра Х. В строке 200 указатель функции f 'NS (ALFА) включает в действие описанную в строке 20 функцию. Для облегчения поиска в тексте программы подпрограм­ мы "Черта" последняя начинается с номера строки 500. 347
· Приведенная в примере 7.9 программа обеспечивает такой же экранный диалог и вывод, как и программа в примере 7.8. Обращаем ваше внимание, что нецелесообразно испо ль ­ зовать постоянные значения переменных А и В внутри цикла, поскольку это приводит к непроизводительной тра­ те времени компьютера. Вычисление прО!fЗВедения А* В следует вынести за пределы цикла и использовать вспо ­ могательную переменную, н а пример W. Что такое массив? 7.2 .8 . МАССИВЫ В ЦИКЛИЧЕС КИХ ПРОГРАММАХ Массивом называется конечная упорядоченная сов о ­ купность значений, имеющих одинаковый тип. Каждому эле м енту массива присуще одинаковое имя . Местополо­ жение каждого элемента в массиве определяется с по­ мощью индексов, являющихся целыми числами без знака. В зависимости от структуры (числа измерений) массива · разли чают массивы одно-, дву-, трехмерные и т. д. Для идентиф икации элементов в этих массивах используются соответственно один, два, три индекса и т. д. Для опреде­ ления количества Элементов массива необходимо знать его размерность (количество индексов) и диапазон изменения каждого индекса. В Бейсике принято использование мас­ сивов с размерностью, не превосходящей 255, причем наи­ меньшее значение индекса равно нулю (иногда единице). ' Вся необходимая для правильной работы программы информация о размерности массива, его объеме и типе эле­ ментов сосредотачивается в так называемом описателе массива . .Например, описатель А(5) указывает, что эле­ менты этого одномерного массива имеют вещественнь1й тип 348
и индекс может меняться в диапазоне от О до 5. Таким образом, переменные А(О), A(l), А(2), А(З), А(4) И А(5) составляют данный массив. Описатель массива Р ( 10',5) показывает, что у элемен­ тов двумерного массива Р первый индекс (номер строки) может принимать значения в интервале от О до 10, а вто­ рой индекс (номер столбца) - от О до 5. Таким образом, в памяти компьютера можно будет разместить не более 66 значений вещественного типа. Для описания массивов в программе используется опе ­ ратор DIM, имеющий вид 1 DIM список описател е й массив а 1 Например, оператор DIM А(5), Р(10',5) обеспечивает возможность использования в программе двух массивов с указанными свойствами, а оператор DIM М.% (150), Н # (2,4,10') - массивов целых значений и значений удво· енной точности. Важно подчеркнуть, что независимо от логической структуры массивов в памяти компьютера они всегда пр едставляются в . виде линейного списка. Так, размеще­ ние двумерного массива с описателем A(l,2) А(О,О) А(О,1) А(О,2) A(l,O) A(l,l) A(l,2) будет организовано в памяти построчно: А (0,0), А (О, 1), А(О,2), A(l,O), A(l,1), A(l,2). Обратtlте внимание! Описатель массива по внешнему виду аб­ соJ1 ютно тождественен переменной с числовыми индексами, поэто м у смысJI тако й конструкции устанавливается по контексту . Используем .массивы в циклической программе Модифицируйте последнюю версию программы так, чтобы воспользоваться массивами и переменными с ин­ дексами. В структуре новой программы следует сделать 349
определенные изменения. Так, принято, работая с масси­ вами, сначала вычислить все элементы результирующих массивов и только п осле этого выводить их на печать . В эт ой программе вам понадобятся два массива - один для хра~ения знаμений угла а и второй для хранения со­ ответствующих значений площади. Для определения фак ­ тического количества элементов в каждом массиве вос ­ пользуйтесь формулой (7.3). Серия значений угла а полу ­ чается в соответствии с выражением o:i=o:o+(i - l)Лa, i-:-1, 2, ... , N. Ниже приведен текст программы, использующей мас­ сивы. Пример 7.!О. ~io REM ИСПОЛьЗtJВАНИЕ МАССИВА 20 DШ AL <1:':>) ,S <15) ЗО I NPUT "BBE~,1-IJТE SJ.ЛИНУ ПЕРВО~! СТОРОНЫ" , А 40 INPUT"SBE!ЩTE ДЛИНУ B.TOPOYI СТОРОНЫ " ,В 50 Pi1I:-IT"i38Eд>11"E ДЛЯ УГЛА АЛЬФ?': 8 F'A!J.Иl-',HAX:" 60 1 NPUT" -НАЧАЛЬНОЕ 31-!А '-!ЕНИЕ" , A!J> 70 I NPUT" -КОНЕЧНОЕ 3HA' - IEHVIE " , A L K 80 INPUT" -ШАГ ИЭМЕНЕr:IИЯ" ,DAL 90 N'l. = (ALl<-r '.LO> /DAL+1 100 W=A·!+B 110 FOR 1~1 ТО N'l. 120 AL <I) =ALO+ <I-1 H·DAL 130 S <l) " -IH SIN ({.\L <I)) 140 NEXT 150 REM ВЫSО:.\ РЕЗУЛЬТАТОВ 1.60 LРRINТ"ВЫЧИС,ПЕНИЕ ПЛ!JЩ!~~И ПАРАЛЛЕЛОГРАМ МА" 170 LPRINT"ПPИ iJ.Лi.1.HAX СТОРОН" ; А; "И";В ; " . УГОЛ" 1. 80 LPH ! NT" t'iEHSl:O TCЯ ОТ" f ALO; " /],О"; ALK; "С ШАГОМ" ; DAL 190 GOSUЯ 250 . 200 LPl~INT'1 HOMEP 11 ' 11 УГОЛ,РАt].. 11 ' 11 ПЛОЩАДЬ 11 21 О GОЗШJ 250 220 FOF< I"'l ТО N%:LPR!NT I,AL(I ) ,S(I):t-!EXT 230 GOSШ3 250 2"1·0 END 250 REi'I ПО11\1РОГРАМ11А '" -i EPTА" 260 LPRINT" - -- - ------- - --- ----- --------- -'-- - - -- - " \270 RETURN 350
В этой программе фактическое значение переменной N, обозначающей количество повторений цикла и количество элементов массивов AL и S, не должно превысить 15, так как именно такое максимальное значение индекса пре­ дусмотрено в описателях массива оператора DIM строки 20. Циклические вычисления обеспечиваются операторами в строках 110 - 140. Вывод полученных результатов про­ изводится оператором цикла FOR, целиком размещенным в строке 220. 7.3 . ИСПОЛЬЗУ Е М КОМАНДЫ БЕЙСИКА ДЛЯ Р АБОТ Ы С ПРОГРАММОЙ Испол ьзование непрограммного режима На стр. 323 описан первоначальный этап работы с компьютером - загрузка системы с Бейсиком. Получив на экране сообщение ОК, вы можете начать свою работу . Часто бывает очень удобно использовать н епрогра м м­ ный режим работы Бейсика. Например, вы хотите вычис­ лить значение выражения v32+42 +5.2 . ДJJя этого наберите на экране текст PRINT SQR(3/\2+4Л2) +5*2. После нажатия вами клавиши ЕТ Бейсик немедленно ин­ терпретирует этот оператор вывода , выпоJJнит его, выведет на экран вычисленное значение и сообщит о своей готов ­ ности к дальнейшей работе: 15 ок Автоматическая нумерация стро 1с - Упрощения ввода составленной вами программы мож­ но добиться применением команды AUTO, которая выпол­ няет автоматическую генерацию номеров строк. После ввода очередной строки программы (после нажатия KJJa- 351
виши ЕТ) в начале новой строки формируется очередной номер. Формат команды . AUTO [номер строки] [, шаг] \, где номер строки указывает начальный номер первой строки программы, а шаг - шаг изменения номера строк и . Если команда AUTO используется без параметров, то счи­ тается, что первый номер строки равен 10 и шаг равен 10. Для выхода из режима автоматической генерации но­ меров строк следует одновременно нажать клавиши CTRL и С. Исправление ошибок, редактирование программы Во время набора строк на экране дисплея вами могут быть допущены ошибки. Пусть это обстоятельство не ему~ щает вас.. ~ е ~ Проще всего исправить строку повторным ее на­ бором под тем же номером. Например, в вашей програм­ ме имеется строка 70 PRINT А%, В%, С% При вводе ее в память компьютера вы допустили ошибку и ваели эту строку в виде 70PRINT А%, В%, S% Повторите набор этой же строки (но- без ошибок, разуме­ ется) с прежним номером: 70 PRINT А%, В%, С% При этом старая строка с таким же номером будет унич­ тожена в памяти компьютера и заменена новой строкой с номером 70. 8 8 8 При необходимости целиком удалить некоторую строку вашей программы следует набрать с новой строки номер удаляемой строки и нажать клавишу ЕТ (без набо­ ра какого -либо текста). ~ 8 8 Более гибким средством редактирования является 352
ТабJIица7.3 Операции редактирования НазшJ чение оперн11ии редак­ тирования Формат ин стру1,ции Вылолштемые действия Перемещение Клавиша про- Перемещение курсора на одну по- курсора бела (или -<-) зrщию вправо (или влево) Вставка текста [ те кст Стирание текста Х текст [а] D Замена текста [а] С текст Поиск символа [а] S символ [а] К СИМВОЛ Окончание Клавиша ЕТ редактиро- вания Задаюшй текст вставляется в строку начиная с позиции курсора Заданный текст вставля е тся в ко­ нец строки. Если при этом превы­ шается длина строки, то ввод бло­ кируется Справа от по зиц ии курсора стира­ ются а символов. Если а отсутству­ ет. то стирается один символ Справа от позиции курсора а сим­ волов заменяются за.Даннi,1м текстом из а символов. Если а отсутствует, то заменяется один символ Курсор останавлива е тся п е ред за­ данным символом, встретившимся в строке а-й раз. Отсутствие а соот­ ветствует случаю а= 1. Если задан­ ный символ не найден, то курсор останавливается в конце строки Отыскивается а·е появление за­ да иного символа и стираются nce символы, стоящие перед ним Заканчивается редактирование (вы-, полнение команды ED IТ) и новая строка передается в программу . ' . 1 353
использование режима редактирования, устанавливаемого командой EDIТ, имеющей формат 1· EDIТ номер строки 1 Эта команда вызывает загрузку указанной строки в спе­ циальный буфер памяти. Если вместо номера строки в команде стоит точка, то в буфер загружается строка, введенная последней. После подачи команды EDIT вы можете воспользовать­ ся операциями редактирования (табл. 7.3). Каждая опе­ рация задается соответствующей инструкцией - последо­ вательностью нажатия определенных клавиш. При этом текст инструкции редактирования на экране не отобра­ жается. Например, в проекте вашей программы имеется сле­ дующая строка: 28е5 IF В>2 THEN B=SIN(X) 1)) Требуется исправить имя переменной с Х на У и одну из скобок аргумента указателя функции. Сначала восполь­ зуйтесь командой EDIТ 28е5. На экране в новой строке появится номер 280. Удер живая нажатой к:лавишу пробела получите на экране текст редактируемой строки. Для замены двух подряд идущих символов Х) на два символа У ( подведем курсор под первый исправляемый символ Х с помощью клавиши +-: 28е5 IF В>2 THEN B=SIN (Х) 1)) Затем последовательным нажатием четырех клавиш вве­ дите инструкцию 2 С У (. Завершаем ввод инструкции нажатием клавиши ESC, если необходимо продолжить · редактирование этой же строки, или клавиши ЕТ при пе­ реходе к редактированию другой строки. Перенумераци.я строк програМJ11.Ы В результате редактирования программы номера ее строк теряют регулярность. Вы можете заново перенуме- 354
р0вать строки программы. При этом автоматически ана­ лизируются и модифицируются все имеющиеся в програм­ ме ссылки на изменившиеся номера строк (например, в операторе GOTO). Перенумерация строк выполняется командой RENUM, имеющей формат 1~EN~M [нов~-й н~ме_р_с-~-р-01-~~1-~-.~-.-[с--т-~-~-~~-й-н_о_м_е_р_с_т_р_о_ю_1]-[ - .~-ю- в-ь-1й -ш-аr_ ]_\1· Строкам программы начиная со старого номера строк.и присваиваются номера, которые начинаются с нового но· мера строки и отличаются друг от друга на новый шаг. Команда RENUM без параметров перенумеровывает строки начиная с первой. Новые номера начинаются с 10 и далее следуют с шагом 10. Эту команду удобно исполь­ зовать для поиска неопределенных номеров строк. Уни•tтожение строк программы Стирание нескольких подряд идущих строк прогр;э.ммы можно выполнить с помощью команды DELETE, имеющей формат, подобный формату команды LIST. НапрИмер, команда DELETE 50-190 стирает все строки с 50 по '190 ВJ(ЛЮч1:rтельно, команда DELETE-15.0' - все строки про­ граммы с начальной и до 150 включительно И т. д. Вывод текста программы на экран Окончив набор строк программы, вам следует убедить­ ся в правильности ввода составленной программы. Это можно сделать с помощью команды LIST, имеюЩей формат LIST [[номер первой строки] [-[номер последней строки]] Команда без параметров обеспечивает вывод f!a $крап всего текста программы. При этом вывод строк может 355
быть прекращен с помощью клавиш CTRL и С . Нажатием клавиш CTRL и S вывод программы временно прерывает­ ся и может быть продолжен нажатием клавиш CTRL и Q с прерванного места. Примеры : LIST выводит все строки программы . LIST 120 выводит строку с номером 120. LIST 100- выводит все строки начинап с 100. LIST-25 .0' выводит все строю~ с начала до 250 включительно. LIST 60-27!25 выводит все строки с 60 по 270 включительно. Вывод текста программы иа принтер Команда LLIST обеспечивает вывод текста программы на принтер. Фо_рмат этой команды и способы использова­ ния аналогичны команде LIST. Запуск прогрШ!iМЫ на выпол!iение Для запуска программы воспользуйтесь командой RUN. Эта команда имеет две разновидности . В формате 1 RUN [номер строки] 1 !(Оманда вызывает запуск ранее загруженной пр ограммы с у1<азанного в !(Оманде номера строки. Если номер стро ­ ки в команде отсутствует, то программа запускается с первой имеющейся строки (со строки с наименьшим но­ мером ). Во втором формате RUN" нмя файл а" команда сначала загружает в п амять программу из фай­ ла с указанным именем и затем запускает ее. Запись программы 1la дuctc Усталость или недостаток времени могут помешать вам завершить работу с вашей программой. Поэтому перед 356
окончанием работы с компьютером вы должны обеспечить · сохранность вашей программы, переписав ее на диск в по­ мощь команды SAVE. Команда имеет формат SA VЕ"имя файла" [, {:}] Здесь имя файла - допустимое в операционной системе SCP имя файла. Это имя берется в кавычки, хотя оно может быть задано и в виде символьного выражения. Рас­ ширение имени файла .BAS добавляется системой авто­ матически. Если в дальнейшем сохраняемая программа будет , вкшочена в другую программу (с помощью команды NlERGE) или будет обрабатываться компилятором Бей· сика, то после слова SAVE задается параметр А. Сделать сохраняемую программу недоступной для других пользо­ вателей . можно при помощи параметра Р. При этом про­ грамма становится недоступ но й для внесения изменений и распечатки. Если команда SAVE используется без параметров, то текст программы переносится и запоминается на диске в промежуточном коде, который вновь может быть загру­ жен с помощью команды LOAD. Например, по команде SAVE "PROG11 программа, на­ ходящаяся в памяти компьютера, будет переписана на диск в файл под именем PROG.BAS. Чтение программы с дисrса в патять С помощью команды LOAD можно переписать програм­ му, хранящуюся на диске, в основную память компьютера и, если нужно,. запустить ее для выполнения. Формат команды: 1 LOAD "имя файла" (, R] 1 357
Здесь имя файла - допустимое имя файла с расширением .B AS (как в формате команды SAVE). Команда LOAD проверяет расширение имени файла и загру.жает в основ­ ную память компьютера только содержимое файлов типа .BAS. Если в команде LOAD испо:1ьзуется параметр R. то за­ груженная программа сразу же запускается. Например, по команде LOAD 11 PROG11 , R в основную память компью­ тера загружается программа из файла с именем PHOG. BAS и сразу же запускается для выполнения. Переи.м,еfiован.ае а уничтожение файлов Работая с дисковыми файлами, вам может потребо­ ваться переименовать файл, хранящийся на диске, или уничтожить файл на диске. С помощью команды NAME, имеющей форм ат \ NAME" старое имя" АS"новое ими" \, переименовывается дисковый файл. Допустим, что старое имя дискового файла PROG требуется заменить на новое имя SHET. Это можно сделать, воспользовавшись коман­ дой NAME 11 PROG 11 AS "SHET". Уничтожение файла осуществляется с помощью коман­ ды Kll,L, имеющей формат 1 KILL "имя файла" 1 Например, команда IOLL 11PROG" ликвидирует файл с именем PROG.BAS, хранящийся на диске. Вывод на э1,ран справочника диска Начиная работу с диском, вам может потребоваться информация о файлах, расположенных на этом диске. 358
С ломощь ю команды FI1-ES на экран может быть выве­ ден список фай :юв. Формат команды: - JFILES ["ими ф а йла";\ При использовании команды без параметров на экран выводятся все файлы, имеющиеся на данном диске. Если использовать команду в виде FILES "* .BAS11 , то на экран будут выведены все имеющиеся файлы типа .BAS. Завершен ие работы с Бейсш,ом С помощью команды SYSTEM вы заканчиваете -работу с интерпретатором Бейсика и выходите в операционную систему. 7.4 . ОБЩАЯ СПРАВКА ПО БЕЙСИКУ Обратившись к этому параграфу, вы можете системати· зировать свои знания языка программирования Бейсик, более полно представить себе его возможности. При не­ обходимости более углубленного изучения конструкций операторов и команд, не рассмотренных выше, рекоменду­ ем воспользоваться литературными источниками или тех­ нической документацией версии языка Бейсик для ком­ пьютера Роботрон 1715. J(оманды Бейсика AUTO [номер строки] [, шаr] - автоматическое гене­ рирование номеров строк программы CLEAR - обнуление всех числовых переменных, сим­ вольные переменные делаются пустыми, открытые файлы за­ крываются CONT - продолжение работы программы, прерванной нажатием клавиш CTRL и С, оператором STOP или END DELETE [номер первой строки] [-] [номер послед- 359
ней строки] - уничтожение подряд идущих строк про­ гр аммы EDIТ номер строки - редактирование строки про­ граммы с помощью шести групп инструкций FILES "имя файла"- вывод на эrфан сведений о фай­ лах, хран ящихся на диске KILL "имя файла" - уничтожение любых файлов, хра­ нящихся на диске . [L] UST [[номер первой строки] [-[номер последней строки]]J-вывод на экран (принтер) программы или любой ее части LOAD "имя файла'' [,R] - загрузка программы с диска в - осн ов ную память компьютера и, если нужно, запуск прогр(}ММЫ MERGE "имя файла" - добавление к тексту, располо­ женному в основной памяти, текста, находящегося на дИСJ(е NAME "старое имя" AS "новое имя" - переименование файла - RENUM [новый номер строки [, старый номер стро­ ки [, новый шаг]] ]- перенумерация строк программы, находящейся в основной памяти RESEТ- закрытие файлов, запись на диск сведений о закрыты'х файлах RUN Г{ номер строки }J- за пуск программы, возмож- 1 L"имя файла" [,R] но , после ее загрузки с диска в основную память SAV E "имя файла" [, (~}] - запись программы на диск из основной памяти SYSTEM - выход из среды Бейсика в операционную систему TRON (TROFF) - начать (закончить) работу програм­ мы трассировки TRACING Операторы описания Бе'йсика DATA список констант - организация набора данных · для считывания оператором READ 360
DEFDBL список диапазонов букв - определение типа удвоенной точности для соответствующих имен программы DEFINT список диапазонов букв - определение типа «целый» для соответствующих имен программы DEFSTR список диапазонов букв - определение типа «символьный» для соответствующих имен .программы DEFISNG список диапазонов букв - определение типа «символьный» для соответствующих имен программы DEFFN имя (список формальных параметров) =ВЫ· ражение - определение функции пользователя DIM список описателей массива - определение мас­ сивов ERASE список имен массива - очистка области памя­ ти, занятой уже ненужными массивами OPТION BASE !7J - определение нижней границы индексов массивов программы REM по следо вательность символов - комментарий в п рограмм е RESTORE [номер строки] - начать считывание кон­ стант из набора данных оператора DATA, указанного но ­ мером ст роки Операторы присваивания значений и оперr~торы ввода-вывода Бейсика INPUT [ ;] [символьная константа ;] список пере ме н­ ных - вывод на экран символьной константы и ввод зна ­ чений для указанных переменных [LET] переменная=выр?жение - оператор присваива- 1-1ия LINE INPUT [;] [символьная константа ;] символьная переменная - вывод на экран символьной константы и ввод символа, набранного на клавиатуре LPRINT (LPRINT USING) - реализуют вывод на прин- тер (см. операторы PRINT и PRINT USING) · PRINT [список выражений] - бесформатный вывод _ на экран 361
PRINТ USING указатель формата; список выражений - форматный вывод на экран READ список переменных - ввод данных из набора данных, организованного оператором DA ТА WIDTH [LPRINТ] длина - задание количества симво­ лов в строке вывода на экран (принтер) WRIТE [список выражений] - вывод на экран значе­ ний, разделяемых запятыми Управляющие операторы Бейсика END - завершение выполнения программы FOR пар.цикла=нач.зн. ТО кон.зн. [STEP шаг] - оператор организации детерминированного цикла GOTO номер стро 1ш - безусловный переход IF условие THEN операторы [ELSE операторы] -ус­ ловный оператор NEXT [пар а метр цикла] - конец тела цикла FOR- TO-STEP ON числовое выражен.не GOTO список номеров строк - выбор одного из нескольких направлений перехода STOP - прерывание выполнения программы WEND - конец тела цикла WHILE WHILE условие - оператор организаци