1.ВТурбо-Паскале7.0существуеттип данныхSTRING(строка), специальнопредназначенныйдля обработкистрок (цепочексимволов). Онне относитсяк простым типамданных и занимаетпромежуточноеместо междупростыми иструктурированнымитипами данных.
ПеременнаятипаSTRINGсостоит изцепочки символов,т.е. элементовтипаCHAR.Строки могутвыводитьсяна экран мониторапосредствомстандартныхпроцедурWriteиWriteLnи вводится спомощью стандартнойпроцедурыReadLnилиRead.В большинствеслучаев переменныетипаSTRINGиспользуютсядля храненияслов и сообщений,состоящих изнесколькихсимволов.
ПеременныетипаSTRINGмогут бытьобъявленыследующимобразом:
VAR
Character_string_l:STRING;
Character_string_2:STRING[20];
Character_string_3:STRING[255];
ПеременнаятипаSTRINGобъявляется,как правило,путем указанияимени переменной,зарезервированногословаSTRINGи указания (вквадратныхскобках) максимальногоразмера (длины)строки, котораяможет хранитьсяв этой переменной.Если максимальныйразмер строкине указан, тоон автоматическипринимаетсяравным255 —максимальновозможная длинастроки.
ВТУРБО-ПАСКАЛ существуютдва пути обработкипеременныхтипа STRING.Первый путьпредполагаетобработку всейстроки какединого целого,т.е. единогообъекта. Второйпуть рассматриваетстроку каксоставнойобъект, состоящийиз отдельныхсимволов, т.е.элементов типаCHAR,которые приобработкедоступны каждыйв отдельности.Так, первыйпуть предоставляетвозможностьприсвоениястрочной переменнойза одну операциюзначения целойстроки символов:
Character_string_l:='Это—строка!';
Присваиваемоезначение строки,так же как иотдельныйсимвол типаCHAR,заключаетсяв апострофы.Если апострофыопущены, токомпиляторрассматриваетприведенныйфрагмент текстакак числовуювеличину иликак идентификатор.
ТурбоПаскаль позволяетвыполнятьоперации объединения(сцепления)несколькихстрок в процессеих присваиваниякакой-либопеременной:
Character_string_l:='Это'+'—'+'строка '+'!';
Врезультатетакой операциив переменнойCharacter_string_lбудетто же самоесодержимое,что и в предыдущемпримере.
Второйподход обеспечиваетдоступ к отдельнымсимволам строкипо номеру ихпозиции:
Character_string_l[1]:='А';
{Занестив качествепервого символастроки 'А'}Character_string_l[5]:=#49;
{Занестив качествепятого символастроки 'Г'
(ASCII-код'Г'соответствуетчислу49)
Длядоступа к отдельномусимволу в строкенеобходимоуказать имястроки и в квадратныхскобках номерпозиции элемента(символа) в строке.При этом поотношению котдельномусимволу строкивозможны всете же операции,что и к переменнойтипа CHAR.В частности,возможны взаимныеоперации присвоениязначений.
ТУРБО-ПАСКАЛ предоставляетв распоряжениепользователяцелый ряд функцийи процедур,предназначенныхдля обработкистрок.
ПроцедураSTR(x[:w[:d]],st)- преобразуетчисло x(типа realилиinteger)в строку символовst;при этом wзадает общуюширину поля,выделеннуюпод соответствующеесимвольноепредставлениечисла x,а d-количествосимволов дробнойчасти.
ПроцедураVal(str,x,rez)-преобразуетстроку символовstво внутреннеепредставлениецелого иливещественногочисла; параметрrezсодержитнуль, еслипреобразованиепрошло успешно,в противномслучае он содержитномер позициив строке st,где обнаруженошибочныйсимвол.
Примеры:
x:=12.125;
str(x:4:1,s);
writeln(s);
{наэкран будетвыведено 12.1}
val(s,x,rez);
writeln(x:5:2);
{наэкран будетвыведено 12.10}
...
s:=’34w5’;
val(s,x,rez);
writeln(rez);
{наэкран будетвыведен номерсимвола в строке,который неявляется цифрой,т.е. 3}.
2.При созданиипрограммы,которая будетиспользоватьсяболее одногораза, необходимообеспечитьзащиту отнекорректноговвода данных,например, проверкуналичия символовалфавита встроке с числовымиданными илиналичие буквлатинскогоалфавита, когдапо условиюзадачи необходимообеспечитьввод символоврусского алфавита.
Общаясхема «безопасноговвода» следующая:вводитьсязначение переменной,осуществляетсяего проверкапо различнымкритериям,затем, если ононе удовлетворяеткакому-либокритерию, выдаетсясообщение обошибке и повторяетсяввод. Итакпродолжаетсядо тех пор, покане будет введеноправильноезначение.
Пример:
{даннаяпроцедурапроверяетналичие символовлатинскогоалфавита}
functionchek (st:string);
vari:integer;
begin
chek:=true;
fori:=1 to length (st) do
ifst[i]=’A’..’Z’ then chek:=false;
end;
...
{даннаячасть программыпоказывает«безопасныйввод» слов нарусском языке}
repeat
write(‘Введитеслово на русскомязыке ’);
readln(st);
untilchek(st);
Мурманскийкооперативныйтехникум ОПС
РЕФЕРАТ
поинформатике
натему: «Оболочкаоперационнойсистемы NC».
Выполнила:студенткагруппы ЗТП-3
ЕлисеевойЯны Леонидовны
г. Мурманск,2000 г.
NORTONCOMMANDER являетсятипичным примером«программы-оболочки»,т.е. надстройкинадDOS.Программы-оболочкипозволяютпросто и наглядновыполнятьбольшинствочасто необходимыхдействий:просматриватьфайлы и каталоги,копироватьи переименовыватьфайлы и т.д. Крометого послезапуска программы-оболочкипользовательпо-прежнемуможет вводитьлюбые командыи выполнятьпрограммы, т.е.он сохраняетвсе возможности,предоставляемыеDOS.
NORTONCOMMANDERпозволяет:
наглядноотображатьсодержаниекаталогов надисках;
изображатьдерево каталоговна диске, переходитьв нужный каталог,создавать,переименовыватьи удалять каталоги;
удобнокопировать,переименовывать,пересылатьи удалять файлы;
просматриватьтекстовыефайлы, сделанныес помощью различныхредакторовтекстов(MS WORD, MS WORKS, WINDOWS WRITE, XYWRITEи WORDPERTECT),таблицы табличныхпроцессоров(LOTUS1-2-3иSYMPHONY)и графическиефайлы в форматеPAINTBRUSH(.PCX);
редактироватьтекстовыефайлы;
выполнятьлюбые командыDOS;
изменятьатрибуты файлов;
с помощьюодного нажатияклавиши выполнятьстандартныедействия длякаждого типафайлов;
и многоедругое.
Дляработы программыNORTON COMMANDER требуется190Кбайт на дискеи210Кбайт свободнойоперативнойпамяти.
ЗаписьNORTON COMMANDERосуществляетсянабором в команднойстроке:
NC
ПослезапускаNORTON COMMANDERв верхней частиэкрана появляютсядва прямоугольныхокна, ограниченныедвойной рамкой(далее эти окнабудут называтьсяпанелями).Нижеэтих панелейрасполагаетсяобычное приглашениеDOS.Еще ниже располагаетсястрока, напоминающаязначенияфункциональныхклавишNORTON COMMANDER.
Длявыхода изNORTON COMMANDERнадо нажатьклавишу«F10».В центре экранапоявится запросна подтверждениетого, что выхотите выйтиизNORTON COMMANDER.
Чтобывыйти, нажмитеENTERилиY.Чтобы отменитьвыход, нажмитеESCилиN.
Дляполученияпомощи по работесNORTON COMMANDERследует нажатьклавишу«F1».Если вы находитесьв режиме просмотраили редактированияфайлов, то наэкран будетвыведена справкао назначенииклавиш. В другихслучаях наэкран выводитсяподсказка отекущем режимеработы, выделенномпункте меню,клавишах управленияиспользуемойпрограммойпросмотрафайлов и т. д.Например, еслиВы нажметеклавишу«F5»(копированиефайлов), а затем«F1»,то на экранбудет выведенасправка о копированиифайлов.
Еслисправка непомещаетсяна одном экране,то ее можно«перелистывать»с помощью клавишуправлениякурсором. HOME,END, PgUp, PgDn.Для выхода изрежима помощиследует нажатьклавишуESC.
В нижнейчасти экранапомощи располагаютсянадписи [NEXT],[PREVIOUS], [INDEX]и[CANCEL].По ним можноперемещатьсяс помощью клавишуправлениякурсором влево,вправо. Выделивнужную надпись,следует нажатьENTER.Надписи имеютследующиезначения:
NEXT-перейти к следующемуэкрану помощи;
PREVIOUS-перейти к предыдущемуэкрану помощи;
INDEX-вывести оглавлениесправочнойинформацииNORTONCOMMANDER;
CANCEL-выйти из режимапомощи (то же,что при нажатииклавишиESC)
Можнотакже выбратьнужное действие,нажав клавишус его первойбуквой(N,P,I,или С).
Привыборе надписи[INDEX]на экран будетвыведено оглавлениесправочнойинформацииNORTON COMMANDER.
Спомощью клавишуправлениякурсором вверхи вниз можновыделить нужныйпункт оглавленияи нажавENTER, получитьпо нему справку.
Еслитребуетсяпросмотретьвыведенныена экран результатывыполнениякоманды (онимогут бытьзакрыты панелямиNORTON COMMANDER),нажмитеCTRL+0. ПовторноенажатиеCTRL+0восстановитьпанели на экране.
NORTONCOMMANDERхранит информациюо последних10-15введенныхкомандах. Чтобывывести в команднуюстроку предыдущуювыполненнуюкоманду, нажмитеCTRL-E,в команднуюстроку будетвыводитьсякоманда, котораянаходится вкоманднойстроке. Принажатии CTRL-Xв команднуюстроку выводитсякоманда, котораянаходится вкоманднойстроке. Послетого как в команднуюстроку былавведена подходящаякоманда, ееможно отредактироватьи затем нажатьклавишуENTERдля выполнения.
Можновывести однуиз ранее выполненныхкоманд в команднуюи таким способом:набрать несколькопервых буквэтой командыи нажатьCTRL ENTER.
Еслитребуетсявыполнить однуиз предыдущихвведенныхкоманд безвсяких изменений,можно нажатьALT F8, выделитьс помощью клавишперемещениякурсора вверхи вниз нужнуюкоманду и затемнажать клавишуENTERдля ее выполнения.
ДляуправленияпанелямиNORTON COMMANDER можноиспользоватьследующиекомбинацииклавиш:
CTRLО -убрать обепанели с экранаили вывестиианели на экран;
CTRLP -убрать однуиз панелей (нетекущую) с экранаили вывестипанель на экран;
CTRLU -поменять панелиместами;
CTRLF1-убрать левуюпанель с экранаили вывестилевую панельна экран;
CTRLF2-убрать правуюпанель с экранаили вывестиправую панельна экран;
ALTF1 -вывести в левойпанели оглавлениедругого диска.
ALTF2-вывести в правойпанели оглавлениедругого диска.
NORTONCOMMANDERможет выводитьинформациюоб оглавлениикаталога в двухформах: полнойи краткой. Приполной выдачиинформациисправа от каждогоимени файлавыводится егоразмер в байтах,дата и времясоздания илипоследнеймодификациифайла. Справаот имени каждогоподкаталогаизображается
Переходот краткойформы информациио файлах к полнойи наоборот. Длятого чтобыперейти откраткой формывывода информациик полной илинаоборот, надонажать следующиеклавиши:
F9LВ-краткая формаоглавленияна левой панели;
F9RВ-краткая формаоглавленияна правой панели;
F9L F-полная формаоглавленияна левой панели;
F9R F-полная формаоглавленияна правой панели.
В нижнейчасти панели,содержащейоглавлениекаталога, находитсястрока министатуса.Она содержитинформациюо выделенномфайле или овыбраннойгруппе файлов.Эта информацияособенно полезнапри краткойформе выдачиинформациио каталоге.
NORTONCOMMANDERможет выводитьинформациюо файлах иподкаталогахв панели в различномпорядке. Имеютсяследующиевозможности:
алфавитныйпорядок имен.Имена файлови подкаталоговвыводятся валфавитномпорядке, причемсначала выводитсяинформацияо подкаталогах,а затем о файлах;
алфавитныйпорядок расширений.Имена файловподкаталоговвыводятся так,что расширениеимен файлови подкаталоговоказываютсяв алфавитномпорядке, причемсначала выводитсяинформацияо подкаталогах,а затем о файлах;
в порядкеубывания датыи времени созданияили последнеймодификациифайла или созданиякаталога. Сначалавыводитсяинформацияо подкаталогах,а затем о файлах,причем болееновые файлыи подкаталогивыводятсяпервыми;
сначалавыводитсяинформацияо подкаталогахв алфавитномпорядке, а затеминформациио файлах в порядкеубывания ихразмера;
файлыи подкаталогивыводятся втом порядке,в котором онизаписаны вкаталоге.
Длятого чтобыизменить порядоквывода информациио файлах и каталогахв панелиNORTON COMMANDER, необходимо:
нажатьклавишу«F9»;
нажатьLдля измененияпорядка выводаинформациио файлах и каталогахна левой панелиилиR -на правой панели;
нажатьодну из следующихклавиш:
N-(NAME) -сортировкапо имени;
Е-(EXTENSION) -сортировкапо расширению;
Т-(TIME) -сортировкапо времени;
S-(SIZE) -сортировкапо размеру;
U-(UNSORTED)-несортированноеоглавлениекаталога-В панелиNORTON COMMANDERможно вывестисвободнуюинформациюо диске и каталогена другой панели.Наверху такойинформационнойпанели выводитсястрока «INFO».В панели изображаютсяследующиесведения:
емкостьоперативнойпамяти компьютерав байтах (...BYTESMEMORY);
количествосвободнойоперативнойпамяти в байтах(... BYTESFREE);
емкостьтекущего дискав байтах(...BYTES ON DRIVE)
количествосвободное местатекущем диске(...BYTES FREE ON DRIVE...);
количествофайлов в каталоге,выведенномна другой панелиNORTON COMMANDER,и их общий размерв байтах(...FILES USE...BYTESIN).
Еслина другой панеливыводитсядерево каталоговна диске илиинформационнаяпанель, то этисведения неприводятся.
Длятого, чтобывывести наэкран информационнуюпанель, надонажать комбинациюклавишейCTRL L.При этом тапанель, котораяне являетсятекущей, станетинформационной-Чтобы в этойпанели сталоснова изображатьсяоглавлениекаталога, надоопять нажатьCTRL L.
Внижней строкеэкранаNORTON COMMANDER выводитсянапоминаниео значениифункциональныхклавиш.
Приведемкраткое описаниеих назначения.
F1-HELP -краткая информацияо назначенииклавиш приработе сNORTON COMMANDER;
F2-MENU-запуск команд,указанных всписке, заданномпользователем(пользовательскомменю, см. ниже);
F3-VIEW -просмотр файла.
Можнопросматриватьтекстовыефайлы, документы,сделанные спомощью текстовыхредакторовтексты, базыданных и таблицытабличныхпроцессоров,например, файлыMICROSOFTWORD, DBASEиLOTUS1-2-3;
F4-EDIT-редактированиефайла. Дляредактированияможет бытьиспользованвстроенныйредакторNORTON COMMANDERили любой другойредактор, указанныйпользователем;
F5-COPY -копированиефайла. В серединеэкрана появляетсязапросотом,куда копироватьфайл. По умолчаниюфайл копируетсяв каталог,изображенныйна другой панели.Можно набратьи другое имякаталога. Затемдля копированиянадо нажатьENTER,для отменыкоманды-ESC;
F6-RENMOV-переименованиефайла (каталога)или имя каталога,в который надопереслатьданный файл.Для началапереименованияили пересылкинадо нажатьENTER, дляотмены команды- ESC;
F7-MKDIR-создание подкаталога;
F8-DELETE -уничтожениефайла илиподкаталога;
F9-PULLDN-выводится меню,содержащеережимы работыNORTON COMMANDER
F10-QUIT-вывод изNORTON COMMANDER.
Еслинажать клавишуALT,то последняястрока экранаизменится. Вней будет выводитьсяподсказка означении комбинацийклавишALT F1-ALT F10.
Нижекратко описаноназначениекомбинацийклавиш ALTF1 -ALTF10:
ALTF1 -выбор диска,изображаемогона левой панели;
ALTF2-выбор диска,изображаемогона правой панели;
ALTF3-VIEW -просмотр текстовогофайла. Этотрежим вызываетсябыстрее, нопозволяетпросматриватьтолько текстовыефайлы и не имеетнекоторыхвозможностей,доступных припросмотре спомощью нажатияклавишиF3;
ALTF4-EDIT -редактированиефайла с помощьюальтернативногоредактора
ALTF7-FIND -поиск файлана диске
ALTF8-HISTORY -просмотр иповторноевыполнениеранее введенныхкоманд;
ALTF9 -EGA LN-переключениес25на43(для монитораEGA)или50(для монитораVGA)строк на экранеи наоборот;
ALTF10 -быстрый переходв другой каталог.
Копированиефайлов.
Длякопированияфайлов с помощьюNORTON COMMANDERнадо выделитьнужный файлили выбратьгруппу файлови нажать клавишуF5.
Перезаписьфайла прикопировании.Если имя файла,который надосоздать прикопировании,уже имеетсяв том каталоге,в которыйпроизводитсякопирование,то на экранбудет выданосообщение.
Вответ на этосообщение Выможете с помощьюклавиш влево,вправо выбратьодин из ответови нажатьENTER. Ответымогут бытьтакими:
OVERWRITE-разрешитькопирование.Существовавшийфайл с тем жеименем будетуничтожен. Есликопируетсяболее одногофайла, то операциябудет продолженаи при повторенииситуации наэкран опятьбудет выданотакое же сообщение;
SKIP-не разрешитькопированиеэтого файла.Если копируетсяболее одногофайла, то операциякопированиябудет продолженаи при повторенииситуации наэкран опятьбудет выданотакое же сообщение;
ALL-разрешитькопированиеэтого и всехпоследующихфайлов бездальнейшихзапросов.
Можнотакже нажатьклавишуESCдля прекращенияпроцесса копирования.
Переименованиеи пересылкафайлов.
Дляпереименованияили пересылкив другой каталогфайлов с помощьюNORTON COMMANDERнадо выделитьпереименовываемыйили пересылаемыйфайл или выбратьгруппу файлови нажать клавишуF6.При этомNORTON COMMANDERбудет переименовыватьили пересылатьв другой каталогследующиефайлы:
еслина панели выбраныкакие-либофайлы (ониизображаютсяжелтым цветомна цветномдисплее и повышеннойяркостью намонохромномдисплее)-то переименовываетсяили пересылаетсяв другой каталогвыбраннаягруппа файлов;
впротивномслучае-переименовываетсяили пересылаетсяв другой каталогтекущий (выделенныйкурсором) файл.
Пересылкафайлов осуществляетсяследующимобразом:
еслифайл пересылаетсяв другой каталогтого же диска,то содержимоефайла остаетсяна том же местедиска, а в другойкаталог включаетсятолько ссылкана этот файл(т.е. элементкаталога), а изисходногокаталога этассылка исключается.Такой способпересылкиработает оченьбыстро;
еслифайл пересылаетсяна другой диск,то он простокопируетсятуда, и послеуспешногоокончаниякопированияисходный файлуничтожается.
Дляудаления файловс помощьюNORTON COMMANDERнадо выделитьнужный (Ьайлили выбратьгруппу файлови затем нажатьклавишуF8.
NORTONCOMMANDERпозволяетвывести напанель деревокаталогов надиске. При этомможно с помощьюклавиш управлениякурсором перемещатьсяпо дереву каталогов,просматриваяв другой панелисодержимоевыделенногокаталога. Спомощью клавиш+и-(плюс и минусна правой частиклавиатуры)можно перемещатьсяк следующемуи предыдущемукаталогу тойже степенивложенности.
Длятого чтобывывести напанельNORTON COMMANDERдерево каталоговна диске, следует:
нажатьклавишуF9;
нажатьLдля левой панелиилиRдля правойпанели;
нажатьклавишу Т. '
Длявозврата врежим выводаинформациио файлах в панелиследует:
нажатьклавишуF9;
нажатьLдля левой панелиилиR -для правойпанели;
нажатьFдля выводаполной информациио файлах илиВ для выводакраткой информациио файлах.
Быстрыйпоиск каталога.Для того чтобыбыстро выделитькаталог в панелис деревом каталоговна диске, следуетнажать клавишуALTи, не отпускаяее, набратьпервые буквыимени каталога.NORTON COMMANDERвыделит каталог,как только Вывведете достаточноеколичествобукв его имени.Чтобы выделитьследующийкаталог, имякоторого начинаетсяс тех же букв,нажмитеCTRL ENTER.Если хотитевыйти из режимабыстрого поискакаталога, нажмитеESC.
Длятого чтобы впанелиNORTON COMMANDER вывестиоглавлениедругого диска,следует нажатьALT F1-длялевой панели,ALT F2-для правойпанели. На экранбудет выведенсписок доступныхдисков.
NORTONCOMMANDERпозволяетбыстро сравнитьоглавлениякаталогов,изображенныхна его панелях.Для этого следуетнажатьF9С С, т.е. выбратьпункты меню«COMMANDS»,«COMPARE DIRECTORIES».
ПослеэтогоNORTON COMMANDERотмечает вкаждой из панелейследующие файлы(они будутизображатьсяжелтым цветомна цветномдисплее и повышеннойяркостью намонохромномдисплее):
файлы,которые отсутствуютв каталоге,изображенномна другой панели;
файлы,которые имеютболее позднююдату их созданияили последнеймодификации,чем у такогоже файла в каталоге,изображенномна другой панели.
Чтобысделать каталогиодинаковыми,можно сравнитьих с помощьюNORTON COMMANDER,а затем нажатьF5 иENTERна каждой изпанелей.
Работас меню.Для входа вменю следуетнажать клавишуF9.В верхней строкеэкрана появитсястрока, содержащаяпункты меню.
«LEFT»
BRIEF-в панели изображаетсякраткая информацияо файлах;
FULL-в панели изображаетсяполная информацияо файлах (выводитсяимя, размер,дата созданияили последнеймодификации);
INFO-в панели изображаетсясвободнаяинформацияо каталоге идиске на другойпанели;
TREE-в панели изображаетсядерево каталоговна диске;
QUICKVIEW -в панели изображаетсясодержимоефайла, указанногокурсором надругой панели;
LINK-устанавливаетсяили отменяетсярежим связимежду компьютерами;
ON/OFF-данная панельвыводится илине выводитсяна экран;
NAME-файлы выводятсяв алфавитномпорядке;
EXTENSION-файлы выводятсятак, что расширенияимен файловоказываютсяв алфавитномпорядке;
TIME-файлы выводятсяв порядке убываниядаты последнеймодификации:более новыефайлы выводятсяпервыми;
SIZE-файлы выводятсяв порядке убыванияих размера;
UNSORTED-файлы и каталогивыводятся втом порядке,в котором онизаписаны вкаталоге;
RE-READ-повторноечтение оглавлениякаталога;
FILTER-режим изображенияв панели невсех файловкаталога, атолько части;
DRIVE-переход надругой дисковод.
«FILES»
HELP-получениесправки («помощи»);
USERMENU -вывод менюкоманд пользователя;
VIEW-просмотр файла;
EDIT-редактированиефайла;
COPY-копированиефайла или группыфайлов;
RENMOV-переименованиефайла (файлов)или каталога,пересылка файла(файлов) в другойкаталог;
MKDIR-создание подкаталога;
DELETE-уничтожениефайла, группыфайлов иликаталога;
FILEATTRIBUTES -установкаатрибутовфайлов;
SENDFILES -пересылка файлаили группыфайлов с помощьюэлектроннойпосты;
SELECTGROUP-выделениегруппы файловпо маске (тоже, что клавиша+на правой частиклавиатуры);
UNSELECTGROUP -отмена выделениягруппы файловпо маске (тоже, что клавиша-на правой частиклавиатуры);
QUIT-выход изNORTON COMMANDER;
«COMMANDS»NCD TREE-вывод на экрандерева каталоговна диске длябыстрого переходав другой каталог(то же, что камандаALT F10);
FINDFILE-поиск файлана диске-ALT F7;
HISTORY-просмотр команд,введенных вкоманднойстрокеDOS.Клавишамиперемещениякурсора вверх,вниз можновыделить однуиз этих команд.Нажав клавишуENTER,можно затемвыполнитьзаданную команду.Такой просмотрможно сделатьтакже, нажавALT F8;
EGALINES-переключениев режим вывода43строк на экрани обратно, врежим-вывода25строк на экран.-ALT F8;
SWAPPANELS-панелиNORTON COMMANDER «меняютсяместами»-то, что былоизображенона одной панели,изображаетсяна другой.-CTRL U;
PANELSON/OFF-удаление панелейNORTON COMMANDERс экрана иливосстановлениеих на экране-CTRL О;
COMPAREDIRECTORIES -сравнениекаталогов,изображенныхна панеляхNORTON COMMANDER.В каждом каталогевыделяютсяфайлы, отсутствующиев другом каталогеили имеющиев другом каталогеиной размерили более раннююдату последнегообновления;
SEND/RECEIVEMAIL - позволяетпереслать поэлектроннойпочте сообщения,указанные ввыходном каталогепочты и принятьсообщение вовходной каталогпочты;
COMMANDERMAIL - позволяетсоздать новыесообщения дляотправки поэлектроннойпочте и просмотретьсообщения,полученныес помощью электроннойпочты;
MENUFILE EDIT-редактированиесписка команд,выводимогопри нажатиипользователемклавишиF2;
EXTENSIONFILE EDIT-редактированиефайлаNC.EXT, задающегодействиеNORTON COMMANDERпри нажатиипользователемклавишиENTERв зависимостиот расширенияимени выделенногофайла.
«OPTIONS»
CONFIGURATION-установкаконфигурацииNORTON COMMANDER;
EDITOR-указание редактора,вызываемогопри нажатииклавишиF4;
AUTOMENU -после выполненияодной из командпользовательскогоменю на экранопять выводитсяпользовательскоеменю;
PATHPROMPT -когда этотрежим включен,то приглашениевнизу экранавключает информациюо текущем дискеи текущем каталоге,а если он выключен,то только отекущем диске;
KEYBAR -когда этотрежим включен,в последнейстроке экранавыводитсянапоминаниео значенияхфункциональныхклавиш.-CTRLВ;
FULLSCREEN -выводить панелиNORTON COMMANDERразмером вполный экранили в половинуэкрана;
MINISTATUS -когда этотрежим включен,в нижней частикаждой панеливыводитсястрока с информациейо текущем файле;
CLOCK-выводить вправом верхнемуглу экранатекущее
время;
SAVESETUP -сохранитьустановленныережимы работыNORTONCOMMANDER.При следующемзапускеNORTON COMMANDERвсе его режимыбудуттакимиже, как в моментвыполнениякоманды«SAVE SETUP».-SHIFT F9.
ДляустановкипараметровконфигурацииNORTON COMMANDERследует выбратьпункты меню«OPTIONS», «CONFIGURATION»,т. е. нажать клавишиF9,О, С. NORTONCOMMANDERвыведется наэкран панельзапроса параметраконфигурации.
Списоклитературы
Т. Б.Волобуева.Курс пользователяперсональногокомпьютера.М., 1995.
В.Фигурнов. IBMPCдля пользователя.М., 1997.
Мурманскийкооперативныйтехникум ОПС
РЕФЕРАТ
по информатике
на тему:«Операционнаясистема Windows95».
Выполнила:студенткагруппы ЗТП-3
ТурковаН.
г. Мурманск,2000 г.
План
Объектно-ориентированныйподход.3
От процедурногоподхода кобъектно-ориентированному.4
Использованиестандарта Plug& Play.6
32-разряднаяОС защищенногорежима.7
Работас памятью.8
ОтличительныеособенностиWindows95.9
1. Объектно-ориентированныйподход.
При созданииWindows95 фирмаMicrosoft вполной меререализовалаобъектно-ориентированныйподход. Посколькуименно он легв основу новойоперационнойсистемы, вначаленужно сказатьнесколько слово том, что такоеориентацияна объекты.
Понятие«объектно-ориентированный»возникло впрограммированиисравнительнонедавно. Когдавычислительнаямощность машинбыла невысока,о созданииобъектно-ориентированныхсистем не моглобыть и речи.Основой всегобыл программныйкод.Программистызаписывалипоследовательностикоманд длявыполнениятех или иныхдействий надданными, которыеоформлялисьв модули и процедуры.Для работы скаждым объектомсоздаваласьсвоя процедура.
Постепеннос увеличениемпроизводительностивычислительныхсистем процедурныйподход началзаменятьсяобъектным. Напервое местовыдвинулсяобъект, а некод, которыйего обрабатывает.На уровнепользователяобъектныйподход выражаетсяв том, что интерфейспредставляетсобой подобиереального мира,а работа с машинойсводится кдействиям спривычнымиобъектами. Так,папки можнооткрыть, убратьв портфель,документы— просмотреть,исправить,переложитьс одного местана другое, выброситьв корзину, факсили письмо— отправитьадресату и т.д. Понятие объектаоказалосьнастолькошироким, чтодо сих пор неполучило строгогоопределения.
Объект,как и в реальноммире, обладаетразличнымисвойствами.Программистили пользовательможет изменятьне все свойстваобъектов, атолько некоторыеиз них. Можноизменить имяобъекта, нонельзя изменитьобъем свободногоместа на диске,который такжеявляется егосвойством.Свойства первоготипа в языкахпрограммированияносят названиеread/write (длячтения и записи),а свойствавторого—read only (толькодля чтения).
Метод— этоспособ воздействияна объект. Методыпозволяютсоздавать иудалять объекты,а также изменятьих свойства.Например, длятого чтобынарисоватьна экране точку,линию или плоскуюфигуру, составляютсяразные последовательностикодов или программы.Пользователь,однако, применяетдля отображенияэтих объектоводин методDraw(), которыйсодержит кодыдля отображениявсех объектов,с которыми онработает. Затакое удобствоприходитсяплатить тем,что объектно-ориентированныесистемы могутработать толькона достаточномощных вычислительныхустановках.
Отпроцедурногоподхода кобъектно-ориентированному.
В начале90-х гг. процедурныйподход все ещепреобладает,однако намечаютсяи некоторыепризнакиобъектно-ориентированного.Например, ужевWindows 3+ можнопоставить всоответствиеконкретномудокументуприложениедля его обработки.Тогда же появилсяметод объектногосвязыванияи встраивания(OLE), позволяющийщелчком наизображенииобъекта неявнозапуститьприложение,которое егообрабатывает,а после окончанияобработкивернуться впредыдущееприложение.
СOLE тесносвязан такназываемыйметод редактированиядокументов«на месте»(in-place). Еслив документвстроен объект,который долженобрабатыватьсяконкретнымприложением,то при щелчкена этом объектенужное приложениенеявным образомзапускается,причем в рабочемполе не изменяетсяничего, кромепанелей инструментов.Например, еслив тексте, которыйобрабатываетсяв редактореMicrosoft Word, естьтаблица, созданнаяс помощьюMicrosoft Excel, топри щелчке наней произойдетзамена панелейинструментовWord напанели инструментовExcel. Пользовательможет обрабатыватьдокумент совсемдругим приложением,даже не подозреваяоб этом.
Еще одинмеханизм, которыйупростил работуи приблизилэру объектно-ориентированногоподхода, называется«Drag & Drop»,что в буквальномпереводе означает«перетащить-и-оставить».Работая этимметодом, выщелкаете кнопкоймыши (как правило,левой) на изображенииобъекта, перемещаетеего по экранупри нажатойкнопке и отпускаетекнопку, когдауказательокажется внужном местеэкрана. Такимобразом, процедурыкопирования,перемещенияи удалениястали объектно-ориентированными.
Что делалпользователь,когда ему нужнобыло удалитьфайлы в операционнойсистемеMS-DOS? Онзапускал процедуруудаления файлов,передавая ихимена в качествепараметров:
del FILE1.TXT FILE2.TXT
Это действиеничем не напоминаетреальный мир,в котором выпросто выбрасываетененужные бумагив мусорнуюкорзину. Напервом местедля вас стоитобъект (бумага),над которымвыполняетсяпроцедура(переноса вмусорную корзину).В операционныхоболочках,которые работаютпод управлениемWindows 3+, такоедействие ужереализованокак объектно-ориентированное— спомощью механизма«Drag & Drop».Например, воболочкеNorton Desktop можносхватить мышьюфайл и перенестиего на изображениемусорной корзины.Этого достаточнодля удаленияфайла. Так работана персональномкомпьютеревсе большенапоминаетманипуляциис объектамив реальноммире.
ИспользованиестандартаPlug & Play.
Подходк аппаратномуобеспечениютакже кардинальнымобразом изменился.Теперь системаиспользуетстандартPlug & Play(переводитсякак «включил-и-работай»,произноситсячаще всего как«плаг-н-плэй»),что облегчаети максимальноавтоматизируетпроцесс добавленияновых периферийныхустройств.СтандартPlug & Play —это совместнаяразработкафирмIntel иMicrosoft. Основнаяего идея заключаетсяв том, что каждоеустройство,соответствующееэтому стандарту,сообщает о себеопределеннуюинформацию,благодарякоторой операционнаясистема выполняетавтоматическуюконфигурациюпериферийныхустройств иразрешаетаппаратныеконфликты.СтандартуPlug & Playдолжен в первуюочередь удовлетворятьBIOS материнскойплаты и, разумеется,периферийныеустройствам.
32-разряднаяОС защищенногорежима.
MS-DOSбыла чисто16-разряднойоперационнойсистемой иработала вреальном режимепроцессора.В версияхWindows3.1 частькода была16-разрядной,а часть—32-разрядной.Windows3.0 поддерживалареальный режимработы процессора,при разработкеверсии3.1 былорешено отказатьсяот его поддержки.Windows95 является32-разряднойоперационнойсистемой, котораяработает тольков защищенномрежиме процессора.Ядро, включающееуправлениепамятью идиспетчеризациюпроцессов,содержит только32-разрядныйкод. Это уменьшаетиздержки иускоряет работу.Только некоторыемодули имеют16-разрядныйкод для совместимостис режимомMS-DOS.
32-разрядныеустанавливаемыефайловые системы.Эта частьоперационнойсистемы сталагораздо болеепроизводительной,чем аналогичныекомпонентыWindows 3+. Дляжестких дисковиспользуютсявиртуальныетаблицы распределенияфайлов (VFAT),а для компакт-дисков— новаяфайловая системаCDFS (CD-ROM File System).При этом именафайлов могутсодержать до255 знаков,включая пробелыи специальныесимволы (совместимостьсо старой файловойсистемой сохранена,хотя и несколькоискусственнымпутем.). Теперьв большинствеслучаев нетребуетсямодульMSCDEX.ЕХЕ, выполнявшийпреобразованиефайловой системыстандартаISO-9660(компакт-диска)к файловойсистемеMS-DOS.
Устанавливаемаяфайловая система,которая отображаетфайловую структуруудаленноймашины на сетевойдиск рабочейстанции, называетсясетевым редиректором.Сетевые редиректорыдля протоколовIPX/SPX иNetBEU такжеиспользуют32-разрядныйкод. ПротоколNetBEU применяетсяпри работеWindows3.1,a IPX/ SPX—длясвязи с машинами,на которыхустановленаWindows NT.
Работас памятью.
Windows95 автоматическиосвобождаетвсю память,отведеннуюприложению,после того, каконо заканчиваетработу. ВWindows 3+некорректнонаписанныеприложениянередко освобождалине всю запрошеннуюими память.Время от временипамяти оказывалосьнастолько мало,что единственнымвыходом оставалсяперезапусксистемы (а иногдаи перезагрузкамашины). Такаянеприятностьносит название«утечка памяти»(«memory leak»)и случаетсяс программнымипроизведениямидаже известнейшихфирм. При завершенииприложениявWindows95 всяпамять, занимаемаяим, освобождаетсяавтоматически,и таких проблемне возникает.
Разумеется,на свете небывает ничегобесплатного(кроме сыра вмышеловках).За удобстваобъектно-ориентированногоподхода ибыстродействиеприходитсяплатить огромнымразмером кодаоперационнойсистемы (оназанимает десяткимегабайт) ивременем, затраченнымпрограммистамина созданиеее компонентов.Кроме этого,для большинстваиспользуемыхприложенийдолжны бытьсозданы 32-разрядныеверсии. Толькотогда они вполной мересмогут использоватьпреимуществаWindows95.
Новаясистема оказаласьтакже весьмачувствительнойк аппаратуре,на которой онаработает. Хочетсяверить, что этовременныетрудности,которые в дальнейшемудастся преодолеть.Проблемы выборааппаратныхсредств подробнорассмотреныв последнейглаве, а сейчасмы поговоримо совместимостиприложенийDOS и Windows3+ с новойоперационнойсистемой.
6. ОтличительныеособенностиWindows95.
Объектно-ориентированныйподход реализуетсячерез модельрабочего стола.Windows95 обходитсябез привычноговWindows3+ диспетчерапрограмм(program manager).Пользовательработает сзадачами иприложениямитак же, как сдокументамина своем письменномстоле.
Это удобнодля людей, которыепервый разувидели компьютер,но создаетнекоторыетрудности«переходногопериода» длятех, кто привыксчитать программуосновой всегосущего в машине.
Итак, одноиз главныхотличийWindows95 отWindows 3+ (иот подавляющегобольшинствадругих операционныхсистем) состоитв том, что основнойупор в ней делаетсяна документ,а программа,задача, приложениеили программныйкод вообщерассматриваютсятолько какинструментдля работы сдокументом.
ДругаяпринципиальнаяособенностьWindows95 состоитв том, что она,в отличие отWindows 3+, является«настоящей»операционнойсистемой (а неоперационнойоболочкой,выполняемойпод управлениемMS-DOS). Подсловом «настоящая»мы подразумеваемто, что при включениимашины сразувыполняетсязагрузкаWindows95. Дляпользователяэто оборачиваетсянекоторыминеудобствами.Он должен привыкнутьк тому, что преждечем выключитьмашину, нужнокорректнозавершитьработу сWindows95, посколькуновая операционнаясистема создаетбуфера в оперативнойпамяти, и ихсодержимоедолжно бытьсброшено надиск.
Списоклитературы
А.В. Потапкин.Операционнаясистема Windows95. М., 1996.
Г.В. Саенко.Курс пользователяПК. Донецк, 1997.
В.Фигурнов. IBMPC дляпользователя.М., 1998.
Задание 1.
(вариант Б)
1.Значениелогическоготипа обозначаютсявстроеннымиидентификаторамиконстант TRUE(истина) иFALSE (ложь).При внутреннемпредставленииони занимают1 байт памяти.Справедливоусловие: True>FALSE.
Логическиевыражения имеютзначения типаboolean,т.е. TRUEили FALSE.
Для операндовтипа booleanопределеныследующиелогическиеоперации:
NOT—логическоеНЕ;
AND—логическоеИ;
OR—логическоеИЛИ;
XOR—логическоеисключающееИЛИ.
Для операндовпростых типовданных и строкприменимыоперации отношения:=,,>=,,in.
Примеры логическихвыражений:
1 3 2
if (i>0)and (j0) then i:=2;
В данном примерепроверяетсядва условиялибо одновременноi положительнои jотрицательно,либо наоборот—i отрицательнои jположительно,при истинностиодного из этихусловий переменнойiприсваиваетсязначение 2.
1 2
If not athen b:=false;
Вданном примереесли переменнаяaимеет значениеfalseпеременнойbприсваиваетсязначение false.
1 2 3
Ifnot a or b then a:=b;
В данном примерепеременнойа присваиваетсязначение,содержащеесяв переменнойb,при условии,что а имеетзначение falseили btrue.
2. В языке Паскальввод-выводинформацииосуществляетсячерез файловыепеременные.
Перед тем, какосуществитьввод-вывод,файловая переменнаядолжна бытьсвязана с конкретнымвнешним файломс помощью процедуры ASSIGN.Этим файломможет быть файлна магнитномдиске, а такжеустройствовычислительногокомплекса.Затем файлдолжен бытьоткрыт длячтения и/илизаписи. Послеэтого можноосуществлятьорганизациюввода-вывода.
После работыс файлом он,как правило,должен бытьзакрыт с помощьюпроцедурыCLOSE.Это требованиеобязательнодолжно соблюдатьсядля файла, вкоторый производиласьзапись.
ПроцедураASSIGN(Var_file, Road): с помощьюэтой процедурывы связываетефайловую переменнуюVar_fileс некоторымименем файла,которое хранитсяв переменнойRoad.
Var
Var_file: file of integer;
Road: string[14];
...
Road:=’Data.dat’;
Assign (Var_file, Road);
Вы не можетесвязыватьнекоторуюфайловую переменнуюс файлом посредствомэтой процедурыв том случае,если данныйфайл уже открыт.
ПроцедураReset:данная процедураоткрываетсуществующийфайл данных,имя которогоперед этим былосвязано припомощи процедурыAssignс некоторойфайловой переменной,указанной впроцедуре Resetкак параметр.
Assign(var_file, ‘Data.dat’);
Reset(Var_file);
Данная процедурасодержитнеобязательныйпараметр Sizeцелого типа,который используетсятолько с файламибез типа и задаетразмер пересылаемогоэлемента информациив байтах. Поумолчанию этотпараметр равен128. Файлтекстовоготипа может бытьоткрыт либодля чтенияпроцедуройReset,либо для записипроцедуройRewrite илиAppend.
ПроцедураRewrite:создает новыйфайл и открываетего для записиили чтения.Если файл стаким именемуже существует,его содержимоестирается, асам файл открываетсязаново.
Rewrite(Var_file);
открываетсуществующийфайл, связанныйс файловойпеременнойVar_file.
ПроцедураClose:закрывает ранееоткрытый файл,связанный суказаннойпеременнойв качествепараметрафайловой переменной.
Close(Var_file);
При попыткезакрыть файл,который не былдо этого открытили которыйуже закрыт,возникаетошибочнаяситуация.
ПроцедураRename:позволяетпереименоватьсуществующийфайл, связанныйс указаннойв качествепараметрафайловой переменной.Данная процедураприменяетсятолько к закрытымфайлам.
Assign(Var_file, ‘Data.dat’);
Rename(Var_file, ‘Text.dat’);
ПроцедураErase:стирает существующийфайл с диска.При этом файловаяпеременнаядолжна бытьпредварительносвязана с реальносуществующимфайлом.
Assign(Var_file, ‘Data.dat’);
Erase(Var_file);
Функция EOF:используяданную логическуюфункцию, в процессесчитыванияинформацииВы можете проверить,достигнут ликонец файла,т.е. находитсяли указательфайла за последнимэлементом илинет.
While not EOF(Var_file) do
read (Var_file, m[i]);
данный фрагментпрограммыиллюстрируетпроцесс чтенияэлементовмассива изфайла, связанногос переменнойVar_file,до тех пор, покане будет достигнутконец файла.
Функция IOResult:предназначенадля поискаошибок, возникающихпри работе сфайлами. Этафункция возвращаетрезультатпоследнейоперацииввода-вывода,если автоматическийконтроль заошибками,возникающимив процессеоперацийввода-вывода,отключен спомощью директивыкомпилятора{$I-}.При безошибочномвыполненииопераций ввода-выводаданная функциявозвращаетноль, если жеошибка имеламесто, то даннаяфункция возвращаеткод ошибки.
{$I-}
Reset (‘C:\data.dat’);
if IOResult0 then writeln (‘ Ошибкапри открытиифайла’);
{$I+}
Тип файл представляетсобой последовательностькомпонентодного типа,расположенныхна внешнемустройстве.Компонентымогут бытьлюбого типа,за исключениемтипа файл (илисодержащегокомпонентытипа файл) итипа объекта.Число компонентв файле необъявляется.
Для заданиятипа файл следуетиспользоватьзарезервированныеслова fileи of,после чегоуказать типкомпонентфайла.
Type
number= file of integer;
symb= file of ‘A’..’Z’;
Стандартныйтип Textопределяеттип файла, содержащийсимволы, объединенныев строки. Следуетиметь ввиду,что тип Textв Турбо-Паскалене эквивалентентину fileof char.
Введя файловыйтип, можно определятьпеременныефайлового типа:
Var
F1:number;
F2:Text;
В Турбо-Паскалеможно использоватьфайл без типа,при определениикоторого неуказываетсятип компонент.В этом случаеработа с файломосуществляетсяна физическомуровне в соответствиис внутреннимформатом егоданных. Приэтом реальныекомпонентыфайла могутиметь и различныйтип.
Типфайл можноопределятьи непосредственнопри введениифайловых переменных.
Файловые переменныеимеют специфическоеприменение.Над ними нельзявыполнятьникаких операций(присваиваниезначений, сравниваниеи т.д.). Кроме того,через файловуюпеременнуюможно получитьинформациюо конкретномфайле (тип,параметры, имяи т.д.).
Задание 2.
(вариант 7)
uses crt;
var x,z:real;
begin
clrscr;
write ('Введите x:');
readln (x);
z:=sqrt(abs(x*cos(x))+sin(x/2)*sqr(sin(x/2)));
clrscr;
writeln ('x=',x:5:2,' z=',z:5:2);
end.
Задание 3а.
(вариант 6)
uses crt;
var x:array[1..10] of integer;
y:array[1..10] of boolean;
z:real;
i:integer;
begin
clrscr;
for i:=1 to 10 do
begin
y[i]:=false;
x[i]:=random(100);
end;
for i:=1 to 10 do
if frac(x[i]/2)=0 then y[i]:=true;
for i:=1 to 10 do write (x[i]:4,';');
writeln;
for i:=1 to 10 do
if y[i]=true then write (i:4);
end.
Задание 4.
(вариант 7)
uses crt;
type traz=record
city:string[50];
dat:string[8];
tor:string[5];
dr:integer;
price:real;
end;
var f1:file of traz;
f2:text;
raz:traz;
n:char;
flag:boolean;
function chek(s:string):boolean;
var i:integer;
begin
chek:=true;
for i:=1 to 5 do
if not((s[i] in ['0'..'9']) or (s[i]=':')) then chek:=false;
end;
begin
clrscr;
assign (f1,'1.dat');
assign (f2,'1.txt');
rewrite (f1);
append (f2);
repeat
clrscr;
write ('Введите город:');
readln(raz.city);
write (' Введите датуразговора:');
readln(raz.dat);
write (' Введите времяразговора');
repeat
readln (raz.tor);
flag:=chek(raz.tor);
if flag=false then writeln ('Ошибка!!!Повторитеввод:');
until flag;
write(' Введитедлительностьразговора:');
readln (raz.dr);
write ('Введитестоимость:');
readln (raz.price);
write ('Продолжить?«*»-закончитьввод!');
readln (n);
write (f1,raz);
until n='*';
reset (f1);
while not eof(f1) do
begin
read (f1,raz);
ifraz.city='Санкт-Петербург'then write (f2,raz.dat:9,raz.tor:6,raz.dr:5,raz.price:6:2);
end;
close (f1);
close (f2);
end.
Список литературы
А.М.Епанешников.Программированиев среде TurboPascal 7.0. М., 1997.
Турбопаскаль 7.0. Киев,1996.
В.В.Качала. Основыпрограммированияна языке Турбо-паскаль.Мурманск, 1994.
Задание1.
ВариантП.
1. Операторыцикла позволяютмногократновыполнятьотдельныйоператор илипоследовательностьоператоров,причет при этомнет необходимостизаписыватьв тексте программыодинаковыеоператорынесколько раз.
Оператор циклаREPEATорганизуетвыполнениецикла, состоящегоиз любого числаоператоров,с неизвестнымзаранее числомповторений.Тело циклавыполняетсяхотя бы одинраз. Выход изцикла осуществляетсяпри истинностинекоторогологическоговыражения.Структура этогооператора:
repeat
operator1;
operator2;
operator3;
. . .
operatorN
untilS;
В этой структуре:
operator1..N -выполняемыеоператоры,составляющиетело цикла;
S- логическоевыражение,истинностькоторого проверяетсяв конце каждойитерации.
Так как слова repeatи untilявляютсясвоеобразнымиоператорнымискобками, точкус запятой передсловом until ставитьнеобязательно.
Оператор циклаWHILEорганизуетвыполнениеодного операторанеизвестноезаранее числораз. Выход изцикла осуществляется,если некотороелогическоевыражениеокажется ложным.Так как истинностьлогическоговыражениепроверяетсяв начале каждойитерации, телоцикла можетне выполнятьсяни разу. Структураданного операторацикла имеетвид:
while S do
operator;
В данной структуре:
S-логическоевыражение,истинностькоторого проверяетсяв начале каждойитерации;
operator- выполняемыоператор цикла.
Между конструкциямиREPEAT ...UNTIL иWHILE ... DO имеютсятри существенныхотличия.
В конструкцииWHILE ... DOпроверкаусловия выходавыполняетсяв начале, а нев конце цикла,поэтому, еслиусловие неудовлетворяетсядо начала выполненияцикла, то телоцикла игнорируетсяи выполняетсяоператор, стоящийсразу же послеокончания телацикла.
В конструкцииWHILE ... DOусловие выходаиз цикла удовлетворяется,если выражение,определяющееусловие выхода,ложно, а в конструкцииREPEAT ...UNTIL — если этовыражениеистинно.
Между зарезервированнымисловами REPEAT и UNTILможет размещатьсянесколькоинструкций,в то время какконструкцияWHILE ... DOможет содержатьмаксимум однуинструкцию.
Примеры использованияоператоровцикла:
WHILE... DO | REPEAT... UNTIL |
1) нахождениесуммы чиселот 1 до 50 ... sum:=0; i:=0; while i begin i:=i+1; sum: = sum + i; end; .... | 1) нахождениесуммы чиселот 1 до 50 ... sum:=0; i:=0; repeat i:=i+1; sum: = sum + i; until i=50; ... |
... while not eof(f) do begin read (f,i); writeln (i); end; ... |
... repeat read (f,i); writeln (i); until eof(f); ... |
... i:=0; while c’*’do begin i:= i+1; read (c[i]); end; ... |
... i:=0; repeat i:=i+1; read(c[i]); until c=’*’; ... |
2. В языке Паскальввод-выводинформацииосуществляетсячерез файловыепеременные.
Перед тем, какосуществитьввод-вывод,файловая переменнаядолжна бытьсвязана с конкретнымвнешним файломс помощью процедуры ASSIGN.Этим файломможет быть файлна магнитномдиске, а такжеустройствовычислительногокомплекса.Затем файлдолжен бытьоткрыт длячтения и/илизаписи. Послеэтого можноосуществлятьорганизациюввода-вывода.
После работыс файлом он,как правило,должен бытьзакрыт с помощьюпроцедурыCLOSE.Это требованиеобязательнодолжно соблюдатьсядля файла, вкоторый производиласьзапись.
ПроцедураASSIGN(Var_file, Road): с помощьюэтой процедурывы связываетефайловую переменнуюVar_fileс некоторымименем файла,которое хранитсяв переменнойRoad.
Var
Var_file: file of integer;
Road: string[14];
...
Road:=’Data.dat’;
Assign (Var_file, Road);
Вы не можетесвязыватьнекоторуюфайловую переменнуюс файлом посредствомэтой процедурыв том случае,если данныйфайл уже открыт.
ПроцедураReset:данная процедураоткрываетсуществующийфайл данных,имя которогоперед этим былосвязано припомощи процедурыAssignс некоторойфайловой переменной,указанной впроцедуре Resetкак параметр.
Assign(var_file, ‘Data.dat’);
Reset(Var_file);
Данная процедурасодержитнеобязательныйпараметр Sizeцелого типа,который используетсятолько с файламибез типа и задаетразмер пересылаемогоэлемента информациив байтах. Поумолчанию этотпараметр равен128. Файлтекстовоготипа может бытьоткрыт либодля чтенияпроцедуройReset,либо для записипроцедуройRewrite илиAppend.
ПроцедураRewrite:создает новыйфайл и открываетего для записиили чтения.Если файл стаким именемуже существует,его содержимоестирается, асам файл открываетсязаново.
Rewrite(Var_file);
открываетсуществующийфайл, связанныйс файловойпеременнойVar_file.
ПроцедураClose:закрывает ранееоткрытый файл,связанный суказаннойпеременнойв качествепараметрафайловой переменной.
Close(Var_file);
При попыткезакрыть файл,который не былдо этого открытили которыйуже закрыт,возникаетошибочнаяситуация.
ПроцедураRename:позволяетпереименоватьсуществующийфайл, связанныйс указаннойв качествепараметрафайловой переменной.Данная процедураприменяетсятолько к закрытымфайлам.
Assign(Var_file, ‘Data.dat’);
Rename(Var_file, ‘Text.dat’);
ПроцедураErase:стирает существующийфайл с диска.При этом файловаяпеременнаядолжна бытьпредварительносвязана с реальносуществующимфайлом.
Assign(Var_file, ‘Data.dat’);
Erase(Var_file);
Функция EOF:используяданную логическуюфункцию, в процессесчитыванияинформацииВы можете проверить,достигнут ликонец файла,т.е. находитсяли указательфайла за последнимэлементом илинет.
While not EOF(Var_file) do
read (Var_file, m[i]);
данный фрагментпрограммыиллюстрируетпроцесс чтенияэлементовмассива изфайла, связанногос переменнойVar_file,до тех пор, покане будет достигнутконец файла.
Функция IOResult:предназначенадля поискаошибок, возникающихпри работе сфайлами. Этафункция возвращаетрезультатпоследнейоперацииввода-вывода,если автоматическийконтроль заошибками,возникающимив процессеоперацийввода-вывода,отключен спомощью директивыкомпилятора{$I-}.При безошибочномвыполненииопераций ввода-выводаданная функциявозвращаетноль, если жеошибка имеламесто, то даннаяфункция возвращаеткод ошибки.
{$I-}
Reset (‘C:\data.dat’);
if IOResult0 then writeln (‘ Ошибкапри открытиифайла’);
{$I+}
Задание 2.
3.
Var
a,b,x,y:real;
Begin
write(‘Введитезначение a’);
readln(a);
write(‘Введитезначениеb’);
readln(b);
write(‘Введитезначение x’);
readln(x);
y:=(a+b)/(sqr(x)*sqr(x)*x+round(sqr(x)*x));
writeln(‘y=’,y:7:2);
End.
Задание 3а.
2.
Var
a:array[1..20]of integer;
i,n,b:integer;
m:real;
Begin
fori:=1 to 20 do
begin
readln (a[i]);
m:=m+a[i];
end;
m:=m/20;
b:=a[1];
fori:=1 to 20 do
ifa[i] begin n:=i; break; end; for i:=1 to 20 dowrite (a[i]); writeln(‘Среднееарифмитическоеравно’,m); writeln(‘Номерэлемента-’,n); End. Задание 4. 3. Usescrt; Type tch=record num:string[5]; name:string[50]; adress:string[80]; am:byte; end; Var ch:tch; f1:fileof tch; f2:text; m:char; Begin clrscr; assign(f1,’1.dat’); assign(f2,’2.dat’); rewrite(f1); rewrite(f2); repeat clrscr; write(‘Введитеномер читательскогобилета:’); readln(ch.num); write(‘Введитефамилию:’); readln(ch.name); write(‘Введитеадрес:’); readln(ch.adress); write(‘Введитеколичествокниг на руках:’); readln(ch.am); write(f1,ch); write(‘Дляпрекращенияввода нажмите*’); readln(m); untilm=’*’; close(f1); reset(f1); whilenot eof(f1) do begin read(f1,ch); ifch.am>5 then write (f2,ch.num,ch.name,ch.adress,ch.am); end; close (f1); close (f2); End. Задание1. ВариантП. 1. Операторыцикла позволяютмногократновыполнятьотдельныйоператор илипоследовательностьоператоров,причет при этомнет необходимостизаписыватьв тексте программыодинаковыеоператорынесколько раз. Оператор циклаREPEATорганизуетвыполнениецикла, состоящегоиз любого числаоператоров,с неизвестнымзаранее числомповторений.Тело циклавыполняетсяхотя бы одинраз. Выход изцикла осуществляетсяпри истинностинекоторогологическоговыражения.Структура этогооператора: repeat operator1; operator2; operator3; . . . operatorN untilS; В этой структуре: operator1..N -выполняемыеоператоры,составляющиетело цикла; S- логическоевыражение,истинностькоторого проверяетсяв конце каждойитерации. Так как слова repeatи untilявляютсясвоеобразнымиоператорнымискобками, точкус запятой передсловом until ставитьнеобязательно. Оператор циклаWHILEорганизуетвыполнениеодного операторанеизвестноезаранее числораз. Выход изцикла осуществляется,если некотороелогическоевыражениеокажется ложным.Так как истинностьлогическоговыражениепроверяетсяв начале каждойитерации, телоцикла можетне выполнятьсяни разу. Структураданного операторацикла имеетвид: while S do operator; В данной структуре: S-логическоевыражение,истинностькоторого проверяетсяв начале каждойитерации; operator- выполняемыоператор цикла. Между конструкциямиREPEAT ...UNTIL иWHILE ... DO имеютсятри существенныхотличия. В конструкцииWHILE ... DOпроверкаусловия выходавыполняетсяв начале, а нев конце цикла,поэтому, еслиусловие неудовлетворяетсядо начала выполненияцикла, то телоцикла игнорируетсяи выполняетсяоператор, стоящийсразу же послеокончания телацикла. В конструкцииWHILE ... DOусловие выходаиз цикла удовлетворяется,если выражение,определяющееусловие выхода,ложно, а в конструкцииREPEAT ...UNTIL — если этовыражениеистинно. Между зарезервированнымисловами REPEAT и UNTILможет размещатьсянесколькоинструкций,в то время какконструкцияWHILE ... DOможет содержатьмаксимум однуинструкцию. Примеры использованияоператоровцикла: WHILE... DO REPEAT... UNTIL 1) нахождениесуммы чиселот 1 до 50 ... sum:=0; i:=0; while i begin i:=i+1; sum: = sum + i; end; .... 1) нахождениесуммы чиселот 1 до 50 ... sum:=0; i:=0; repeat i:=i+1; sum: = sum + i; until i=50; ... вывод на экранинформациииз файла ... while not eof(f) do begin read (f,i); writeln (i); end; ... вывод на экранинформациииз файла ... repeat read (f,i); writeln (i); until eof(f); ... ввод массива ... i:=0; while c’*’do begin i:= i+1; read (c[i]); end; ... ввод массива ... i:=0; repeat i:=i+1; read(c[i]); until c=’*’; ... 2. В языке Паскальввод-выводинформацииосуществляетсячерез файловыепеременные. Перед тем, какосуществитьввод-вывод,файловая переменнаядолжна бытьсвязана с конкретнымвнешним файломс помощью процедуры ASSIGN.Этим файломможет быть файлна магнитномдиске, а такжеустройствовычислительногокомплекса.Затем файлдолжен бытьоткрыт длячтения и/илизаписи. Послеэтого можноосуществлятьорганизациюввода-вывода. После работыс файлом он,как правило,должен бытьзакрыт с помощьюпроцедурыCLOSE.Это требованиеобязательнодолжно соблюдатьсядля файла, вкоторый производиласьзапись. ПроцедураASSIGN(Var_file, Road): с помощьюэтой процедурывы связываетефайловую переменнуюVar_fileс некоторымименем файла,которое хранитсяв переменнойRoad. Var Var_file: file of integer; Road: string[14]; ... Road:=’Data.dat’; Assign (Var_file, Road); Вы не можетесвязыватьнекоторуюфайловую переменнуюс файлом посредствомэтой процедурыв том случае,если данныйфайл уже открыт. ПроцедураReset:данная процедураоткрываетсуществующийфайл данных,имя которогоперед этим былосвязано припомощи процедурыAssignс некоторойфайловой переменной,указанной впроцедуре Resetкак параметр. Assign(var_file, ‘Data.dat’); Reset(Var_file); Данная процедурасодержитнеобязательныйпараметр Sizeцелого типа,который используетсятолько с файламибез типа и задаетразмер пересылаемогоэлемента информациив байтах. Поумолчанию этотпараметр равен128. Файлтекстовоготипа может бытьоткрыт либодля чтенияпроцедуройReset,либо для записипроцедуройRewrite илиAppend. ПроцедураRewrite:создает новыйфайл и открываетего для записиили чтения.Если файл стаким именемуже существует,его содержимоестирается, асам файл открываетсязаново. Rewrite(Var_file); открываетсуществующийфайл, связанныйс файловойпеременнойVar_file. ПроцедураClose:закрывает ранееоткрытый файл,связанный суказаннойпеременнойв качествепараметрафайловой переменной. Close(Var_file); При попыткезакрыть файл,который не былдо этого открытили которыйуже закрыт,возникаетошибочнаяситуация. ПроцедураRename:позволяетпереименоватьсуществующийфайл, связанныйс указаннойв качествепараметрафайловой переменной.Данная процедураприменяетсятолько к закрытымфайлам. Assign(Var_file, ‘Data.dat’); Rename(Var_file, ‘Text.dat’); ПроцедураErase:стирает существующийфайл с диска.При этом файловаяпеременнаядолжна бытьпредварительносвязана с реальносуществующимфайлом. Assign(Var_file, ‘Data.dat’); Erase(Var_file); Функция EOF:используяданную логическуюфункцию, в процессесчитыванияинформацииВы можете проверить,достигнут ликонец файла,т.е. находитсяли указательфайла за последнимэлементом илинет. While not EOF(Var_file) do read (Var_file, m[i]); данный фрагментпрограммыиллюстрируетпроцесс чтенияэлементовмассива изфайла, связанногос переменнойVar_file,до тех пор, покане будет достигнутконец файла. Функция IOResult:предназначенадля поискаошибок, возникающихпри работе сфайлами. Этафункция возвращаетрезультатпоследнейоперацииввода-вывода,если автоматическийконтроль заошибками,возникающимив процессеоперацийввода-вывода,отключен спомощью директивыкомпилятора{$I-}.При безошибочномвыполненииопераций ввода-выводаданная функциявозвращаетноль, если жеошибка имеламесто, то даннаяфункция возвращаеткод ошибки. {$I-} Reset (‘C:\data.dat’); if IOResult0 then writeln (‘ Ошибкапри открытиифайла’); {$I+} Задание 2. 6. uses crt; var z,m,n:real; x,i:integer; Begin clrscr; write ('Введитеx:'); readln (x); m:=1; for i:=1 to x do m:=m*3; m:=1/m; n:=sqrt(sqrt(abs(x))); n:=x+n; n:=sqrt(n); z:=m*n; writeln ('z=',z:8:4); end. Задание 3-а. 0. usescrt; var ar:array[1..100] of integer; i,am,num:integer; Begin num:=0; clrscr; write('Введите размерностьмассива:'); readln (am); writeln ('Введитемассив:'); fori:=1 to am do readln (ar[i]); clrscr; i:=0; fori:=1 to am do if ar[i] fori:=1 to am do write(ar[i]:3,';'); writeln; ifnum0 then writeln ('Первыйотрицательныйэлемент:',num); end. Задание 4. 6. usescrt; typetpat=record name:string[50]; diag:string; num,temp:integer; sost:string; end; var pat:tpat; f:fileof tpat; t:text; i:integer; ch:char; Begin clrscr; assign (f,'1.dat'); assign (t,'1.txt'); rewrite (f); rewrite (t); whilech'*' do begin write ('Введитефамилию пациента:'); readln (pat.name); write ('Введитеномер палаты:'); readln (pat.num); write ('Введитетемпературубольного:'); readln (pat.temp); write ('Введитедиагноз:'); readln (pat.diag); write ('Введитесостояниебольного:'); readln (pat.sost); write (f,pat); clrscr; write ('Продолжитьввод? *-нет'); readln (ch); end; whilenot eof(f) do begin read (f,pat); if pat.num=10 then writeln(t,pat.name,pat.diag,pat.sost,pat.temp); end; end. Задание1. №1. z= -(1 / 2) ^ -2 b= 13.2 * 10 ^ -3 g= 25000 y= ((m * c - 1) / 11) ^ (1 / 5) f= (SIN(x)) / (x + EXP(x)) t= (SIN(x) - a * COS(x)) / (COS(x) + b) №2. Постановказадачи Найти радиусоснованияцилиндра, имеющегопри данномобъеме наименьшуюповерхность, R=
Константы:V,
Выходныеданные: R
Математическаямодель задачи
R=
1.Начало
2.ВычислениеR
3. Вывод R
4.Конец
4.Текст программы.
CLS
v= 750
pi= 3.14
r= (v / 2 * pi) ^ (1 / 3)
PRINTr
Задание№2.
Постановказадачи
x3+3x,если x>0
Вычислитьзначение функцииy= 0, еслиx=0
x3-3x,если x
дляпроизвольныхзначений аргумента
Входныеданные: x
Выходные:y
Математическаямодель задачи
y=x3+3x,если x>0
y=0,если x=0
y=x3-3x,если x
Схемаалгоритма
1. Начало
2. Ввод x
3. x=0 4. y=0
y=x3-3x 5.x
9.Конец
Текст программы
10CLS
20INPUT x
30IF x = 0 THEN y = 0
40IF x
50 PRINT y
Отладкапрограммы
Контрольныйвариант: приx=0 y=0
приx=-1 y=2
приx=2 y=14
№2.
Постановказадачи
q1=
,если l>1Вычислитьзначение функцииq1=
,если lq1=
,если l=1Входныеданные: l
Выходныеданные: q1
Математическаямодель задачи
q1=
,если l>1q1=
,если lq1=
,если l=11.Начало
2.Вводl
4.q1=
3.l=15.l
7.q1=
8.Вывод q1
9.Конец
Текстпрограммы
10CLS
20INPUT l
30IF l = 1 THEN q1 = (l ^ 2 + 1) ^ (1 / 3)
40IF l
50PRINT q1
Отладкапрограммы
Контрольныйвариант:приl=2 y=-0.5
приl=1 y=1.414214
приl=-2 y=2.236068
Задание№3.
№1.
Постановказадачи
Какизменяетсяцентростремительноеускорениепоезда, движущегосяпо закруглениюдороги со скоростьюV,в зависимостиот радиуса r?
a=
,где r=60км/ч; 200Математическаямодель задачи
a=
,где r={200..1000}Схемаалгоритма
1.Начало
2.a1=
3.a=200,1000,100
4.Выводa
5.Выводизмененияускорения
6.Конец
Текстпрограммы
10CLS
20v = 60
30a1 = v ^ 2 / 200
40FOR r = 200 TO 1000 STEP 100
50a = v ^ 2 / r
60PRINT a
70NEXT r
80ax = v ^ 2 / 1000
90ax = ax - a1
100PRINT ax
5.Отладка программы
Прирадиусе равном:200 ускорениеравно: 18
10003.6
изменениеравно:14.4
№2.
Постановказадачи
Определитьстатическийи динамическийпрогибы балкипо формулам
fcт=
,fд=fcт+E=2*106кг/см2;J=2500 см4;Q=4т;
6
1
Математическаямодель задачи
fcт=
,fд=fcт+l={6..12};
h={1..5}.
Схемаалгоритма
1.Начало
2.l=6,12,37.fcт=
3.fcт=
9. Конец
4.h=1,5,1
fд=fcт+
Текстпрограммы
10CLS
20e = 2 * 10 ^ 6
30j = 2500
40q = 4000
50FOR l = 6 TO 12 STEP 3
60fs = q * l ^ 3 / 48 * e * j
70FOR h = 1 TO 5
80fd = fs + SQR(fd ^ 2 + 2 * fd * h)
90PRINT fd
100NEXT h
110NEXT l
120fs = q * l ^ 3 / 48 * e * j
130PRINT fs
Отечественноепрограммированиезародилосьв 50-х годах 20 века в крупных научныхцентрах, осваивавшихпервые советскиевычислительныемашины БЭСМи «Стрела».
Приповерхностномвзгляде выборязыковой гаммыпродиктованследующимиступенямистановленияпрограммиста:
Бэйсик — первая ступень,школьная информатика;
Паскаль — вторая ступень,информатикав специализированныхшколах и большинствеВУЗов;
Си,Си++ — третьяступень, стандартноепрофессиональноеобразование;
VisualBasic — четвертаяступень, программированиев среде Windows.
Однакопри более глубокоманализе можнозаметить оченьтесное взаимопроникновениесовременныхверсий алгоритмическихязыков и сближениеих функциональныхвозможностей.В развитыхсовременныхсистемахпрограммированияпредлагаютсяпримерноэквивалентныевозможности.Там, где труднообойтисьстандартнымисредствамиалгоритмическогоязыка высокогоуровня, используютвставки изассемблерныхстрок (т. е. командмашинногоязыка). Иногдатот или инойязык вырываетсявперёд. Например,появление иразвитие элементовобъектно-ориентированногопрограммированияв Си++ моментальновызвало к жизнианалогичныеизменения вдругих языках.Революционнаяидея общедоступного«визуального»программирования,предложеннаяв системеVisual BASIC, сразуже была подхваченав средеVisual Сивтой или иноймере нашла своёотражение вновых версияхBorland C++.
Поэтому,в каком-то смысле,все достаточноуниверсальныеалгоритмическиеязыки одинаковы.Хорошее знаниеодного из нихпозволяетсравнительнопросто разобратьсяс изобразительнымисредствамидругого. Этонапоминаетситуацию сполиглотами,знающими один-двадесятка иностранныхязыков, длякоторых овладениеочереднымязыком требуетне более одного-двухмесяцев. Вподтверждениеэтого тезисав книге даётсяпараллельноеизложениесоответствующихкомпонентовтрёх алгоритмическихязыков -Бейсика, Си иПаскаля, приэтом лишь изредкаобращаетсявнимание нанебольшие илипринципиальныеразличия междуними.
Программированиев средеVisual BASIC вынесенов отдельныйраздел, т. к. нарядус элементамиклассическогопрограммированияздесь учитываетсяспецификаструктурыпрограммы,работающейпод управлениемWindows, ииспользуютсямногочисленныестандартныезаготовкидля организациидиалоговоговзаимодействияс пользователем.
СвоимназваниемBASIC обязансокращениюфразыBeginner's All-purpose Symbolic Instruction Code,которая дословнопереводитсякак многоцелевойкод (язык) символическихинструкцийдля начинающих.Авторство ипервая реализацияязыка Бейсикпринадлежатгруппе преподавателейи студентовДартмутскогоколледжа воглаве с профессорамиДж. Кемени и Т.Куртцем, которые1 мая1964 вдохнулижизнь в первыйБейсик-интерпретатор.
Бейсикоткрыл эрудиалоговогопрограммирования.До него культивировалсяпакетный
режим,при которомбумажные илимагнитны носителис программамисдавалисьдежурномуоператору иупорядочивалисьв соответствиис приоритетамиих владельцев.Составленныйтаким образомпакет программпоступал в ЭВМна последовательнуюобработку. Приэтом достигаласьмаксимальнаязагрузкаоборудования,но каждая программавыполняласьлибо до первойавтоматическиобнаруженнойошиб. ки, либодо истечениялимита заказанноговремени. Информацияо результатахпрохожденияпрограмм выдаваласьихавторам2-3 разав сутки. Поэтомукалендарныесроки созданияпрограмм затягивалисьна многие месяцы.
Системыколлективногодоступа, работавшиев диалоговомрежиме, обеспечивалиодновременноеобслуживаниенесколькихпользователей,запускавшихсвои программыс электромеханическихили электронныхтерминалов.Оперативнополучив сообщениеоб очереднойошибке, пользовательимел возможностьтут же исправитьтекст исходнойпрограммы иснова выполнитьеё. Диалоговыйрежим, естественно,был связан сдополнительныминакладнымирасходами намноготерминальноеобслуживание.Загрузка ЭВМпри этом снижалась,но оперативностьв отладке программприводила ксущественномусокращениюкалендарныхсроков ихразработки.
Бейсикбыл одним изпервых алгоритмическихязыков, в составекоторого изначальноприсутствовалиоператорыобщения пользователяс пошагововыполняющейсяпрограммой.Одновременнос текстом сообщенияоб ошибкеБейсик-системасообщала номерстроки программы,нарушившейсинтаксис языкаили приведшейк аварийнойситуации. ПервыеБейсик-системы,совмещавшиев себе возможностиввода, редактирования,исполненияи отладки программ,послужилипрототипамисовременныхинтегрированныхсред.
Втораяособенность,привлекающаямассовогопотребителяк Бейсику, кроетсяв простотеначальногоосвоения икраткости егоизобразительныхсредств. Попробуйтенайти хотя быеще один язык,на которомпрограмма,отвечающаяна вопрос, чемуравно 2-2,состоит всегоиз четырёхсимволов1:
?2*2
Аналогичнаяпрограмма наПаскале содержит,минимум, тристроки, а еёдлина превышает20 символов:
begin
(writein 2*2);
end.
Примерновдвое большесимволов требуетсядля аналогана Си:
#include
{printf("%d",2*2);
}
ВтороепоколениеБейсик-системведёт свойотсчёт от появленияпервых ПК набазе 8-разрядныхмикропроцессоровIntel-8080 иZ-80, длякоторых в середине70-х гг. был разработанкомпактныйинтерпретаторBASIC-80. Именнос него началаськарьера самогомолодого амер.миллиардераБ. Гейтса, основавшегокорпорациюMicrosoft.
Появление16-разрядныхIBM-совместимыхПК ознаменовалоськонкурентнойборьбой междукомпаниямиBorland Internationalи Microsoft Corporation.Первая из нихвыпустила нарынок удобнуюинтегрированнуюсреду с компиляторомTurbo BASIC, котораябыстро привлеклана свою сторонумногочисленныхлюбителейБейсика. Однаковторая, болеемощная компания,не могла смиритьсяс таким положением.На смену тихоходномуинтерпретаторуGW-BASIC пришлацелая серияскоростныхсистемQuick 'BASIC, всоставе которыхнаряду с интегрированнойсредой поставлялисьавтономныекомпиляторыи достаточномощные библиотекипрограмм.СоревнованиеБейсик-системтретьего поколениязакончилосьпоражениемфирмы Borland,прекратившейсвои разработкии передавшейправа наTurbo BASIC одномуиз авторов,вышедшему изсостава компании.О дальнейшихпопыткахреанимироватьTurbo BASIC подназваниемPower BASIC (МощныйБейсик) кромерекламныхсообщенийничего не известно.
А фирмаMicrosoft продолжиласовершенствованиесвоего любимогодетища, выпустивв конце 80-х гг.мощные системыдля профессиональныхразработок(Professional Development System) BASIC PDS-6и PDS-7.
Наконец,четвёртоепоколениеБейсика связанос появлениемв 1991 системыпрограммированияVisual BASIC иеё последующимсовершенствованиемсотрудникамиMicrosoft. Кначалу 1995 поступилисообщения обопытной эксплуатацииверсии 4.0.
Алгоритмическийязык Паскальбыл придуманв 1968 профессоромИнститутаинформатикипри Швейцарскойвысшей техническойшколе Н. Виртом.В 1970 под его руководствомоыл разработанпервый компилятор,а в следующемгоду появиласьи первая публикация.Своё названиеязык получилв честь известногоФранц. математикаБ. Паскаля, которыйв 19-летнем возрастеизобрёл первуюсуммирую-щуюмашину.
1
Новыйязык, являясьпродолжателемтрадицийалгоритмическогоязыка АЛГОЛ-60,был ориентирован,главным образом,на обучениекурсу систематическогопрограммирования.В Паскале былипредставленынаиболеераспространённыетипы данныхи средства длясозданияпользовательскихструктур. Кчислу элементов,способствующихсозданию надёжныхпрограмм,относилисьблочные конструкциии требованиеобязательногоописания (объявления)всех объектов- типов данных,констант,переменных,меток, функцийи процедур.
Заметнуюроль в разработкестандарта языкаПаскаль исовершенствованииего средствввода/выводасыграла рабочаягруппа Британскогоинститутастандартовво главе с А.Эддиманом.Британскийстандарт былпринят в 1982, анесколькопозднее егоутвердиламеждународнаяорганизацияISO. Однакок этому времениН. Вирт, недовольныйпредложениямирабочей группы,отказался отсотрудничествапо совершенствованиюПаскаля ипереключилсяна новый проектМодула.
ЯзыкПаскаль довольнодолго оставалсясредством дляизученияпрограммированияв университетах,т. к. ни однасерьёзнаякомпьютернаяфирма его неподдерживала.Перелом вотношении кэтому языкунаметился в1984, когда молодойфранцуз Ф. Канпривёз в СШАнеобычайноскоростнойкомпиляторTurbo-Pascalдля IBM-совместимыхПК и начал торговатьим по цене 49долларов 95 центов.Удачная рекламаи «бросовая»цена позволилиему продатьза первый месяцболее 3000 копийсистемы и заложитьосновы фирмыBorland International.Последующие8 лет Turbo Pascalоставалсянаиболее опекаемымпродуктомфирмы, котораясумела выпуститьболее 9 различныхверсий. Самаясвежая из них(7.0; 1992) включаетдве системы- Turbo Pascal,функционирующуюпод управлениемMS-DOS, ирасширеннуюверсиюBorland Pascal,работающуюв средеWindows. Возможно,что после уходав 1995 Кана с постапрезидентафирма Borlandизменитсвою политикув отношенииязыка Паскаль.
ЯзыкСи был придуманв 1972 сотрудникомBell Laboratories(отделениеизвестнойтелефоннойкомпании AT&T) Д.Ритчи, однимиз первыхпользователейоперационнойсистемы Unix,и задумывалсяне как универсальныйалгоритмическийязык, а, скорее,как инструментдля развитияоперационнойсистемы и созданияновых обслуживающихпрограмм (утилит).Такой подходхарактерендля большинствасистемныхпрограммистов,разрабатывающихсложные проектыи придумывающихдля облегчениясвоего трударазличныесервисныепроцедуры,макрокомандыи т. п. По завер-я
i
tшению разработкиэти инструментальныенаборы, какправило, предаютсязабвению или,в | лучшем случае,остаются вличных архивах| авторов. ЯзыкСи, однако, этаучасть миновала.§ Вполне возможно,что его становлениюспособ-| ствовало-последующеевсемирноепризнание •^операционнойсистемыUnix.
Какалгоритмическийязык сравнительнонизкого уровня,т. е. достаточноблизкий кассемблеру,Си имел предшественниковв лице . аналогичныхинструментальныхсредств - язы-;ков CPL, BCPL(сокр. отBasic Combined Pro-|gramming Language -базовый комбинирован-iный язык программирования)и В. Два первыхязыка разрабатывалисьв конце 60-х гг.в Кембриджскомуниверситетев качествемашинно-независимыхязыков длясозданиятрансляторов1.Последний былпридуман К.Томпсоном -сотрудникомBell Laboratories иавтором операционнойсистемыUnix. В отличиеот своих предшественников,Ритчи нарядус машинно-ориентированнымитипами данных(байт, слово)ввёл в составСи объекты иоператоры,присущиеуниверсальнымязыкам (числовыеи символьныепеременные,структурныеблоки), сохранивпри этом элементы,характерныедля макроассемблераMACRO-11 (логическиеоперации надбитами, сдвиги,работа с адресамии регистрами).
Первымпрограммнымпродуктом,написаннымпочти полностьюна Си, был компиляторс языка Си вкод машинныхкомандPDP-11/20 (прототипСМ-4). В 1973 Ритчи иТомпсон переписалина Си большуючасть операционнойсистемыUnix. Из13000 машинных команддля PDP-7,на которойпоявиласьпервая версияUnix,только 800 пришлосьвручную перевестив ассемблерPDP-11. В процессепереводаUnix изоднопользовательскойоперационнойсистемы,ориентированнойна работу вконкретнойЭВМ, превратиласьв мобильнуюоперационнуюсистему коллективногопользования.Успех этойоперации взначительноймере предопределилпопулярностьновой операционнойсистемы и еёбазового инструмента- языка Си. Б 1976Ритчи и ТомпсонперенеслиUnix с ЭВМфирмы DECна компьютерыдругой архитектуры(Interdata 8/32),практическиничего не изменивв ядре операционнойсистемы, написанномна Си. Точнотаким же образомUnix распространялсяна десяткахмашин различныхтипов.
В1978 появиласьпервая книга,посвящённаяописанию Сии техникепрограммированияне
этомязыке, котораяс большим запозданябыла переведенана русский язык(Ken»81*ганБ., Ритчи Д., ФьюэрА. Язык программ^рования Си.Задачи на языкеСи. М.: Фиван истатистика,1985). От фамилийдвух перв^* авторовпроизошлосокращённоеобозначенм*первого, никемне утверждавшегося,но пpивяeтоговсеми программистамистандарта языкСи - K&R. а
Дальнейшаяработа посовершенствованиюязыка Си и принятиюв 1987 первогонастояше гостандартаANSI С былавыполнена наобщественныхначалах рабочейгруппой приАмериканскомнациональноминститутестандартовВозглавлялэту работусотрудникBell Labs Л.Рослер. Наиболеесерьёзный вкладв развитиеязыка Си запоследние годывнёс ещё одинпредставительтой же лабораторииБ. Страуст-руп,который ввёлв обращениеновые объекты- классы, объединяющиеданные и обрабатывающиеих функции.. С1983 за расширеннойверсией языкаСи с классамизакрепилосьназвание C++.
Первыеверсии Сиподвергалисьсерьёзнойкритике заотсутствиедостаточнойстрогости,что приводилок многочисленнымошибкам из-заработы снеинициализированнымипеременными,отсутствияконтроля завыходом индексову элементовмассивов заустановленныепределы, несоответствиятипов формальныхи фактическихпараметровфункций и т. п.Перед системнымипрограммистамиBell Labs этипроблемы остроне стояли, т.к. они пользовалисьспециальнойпрограммойLint, котораяпроводилатщательныйанализ программ,написанныхна Си, перед ихтрансляциейи выполнением.Для рядовыхпользователейситуация измениласьс появлениеминтегрированныхсред, средикоторых наибольшуюпопулярностьприобрелиТурбо-системыфирмыBorland. ПерваяверсияTurbo С,работавшаяв среде MS-DOS,была выпущенав 1987. К середине1995 фирмаBorland вышлана рынок с версией4.5, предназначеннойдля работы подуправлениемWindows. Известныи другие реализацииязыка Си наIBM-совместимыхПК - MicrosoftС, LatticeС, ZortechС, SymantecС. Но в нашейстране продукцияфирмы Borlandполучиланаибольшеераспространение.
Задание1.
ВариантВ.
1.
Константа—идентификатор,обозначающийнекоторуюнеизвестнуювеличину (значениеданных) определенноготипа. Константы,так же как ипеременные,объявлятьсяв декларационнойчасти программы(или процедуры)до моментасвоего использованияв процессевычисления.
Объявление констант начинаетсязарезервированнымсловом CONST.Затем следуетимя константы,символ равенстваи значение этойконстанты.Например:
CONSTName=’Alex’;
CONSTAge=18;
Послеобъявленияконстанты ееможно вызыватьпо объявленномуимени из произвольногоместа программы.
Типизированныеконстантыпредставляютсобой инициализированныепеременные,значение которыхиспользуетсяв программахнаравне с обычнымипеременными.В отличии отнетипизированныхконстант, описанныхвыше, в описаниитипизированнойконстантыуказываетсякак тип, так изначение константы,т.е. она позволяетобъявлятьпеременныеи тут же присваиватьим начальноезначение.
Типизированныеконстантыобладают всемипреимуществамипеременных,в частности,они могутиспользоватьсяв левой частиоператораприсваивания.К их преимуществамможно отнестии то, что ониинициализируютсятолько одинраз— в началевыполненияпрограммы.Таким образом,типизированныеконстанты,объявленныев какой-либопроцедуре илифункции, прикаждом новомее выполнениине инициализируютсязаново.
CONST
Year:INTEGER=2000;
Mon:String=’December’;
2.
Тип файл представляетсобой последовательностькомпонентодного типа,расположенныхна внешнемустройстве.Компонентымогут бытьлюбого типа,за исключениемтипа файл (илисодержащегокомпонентытипа файл) итипа объекта.Число компонентв файле необъявляется.
Для заданиятипа файл следуетиспользоватьзарезервированныеслова fileи of,после чегоуказать типкомпонентфайла.
Type
number= file of integer;
symb = fileof ‘A’..’Z’;
Стандартныйтип Textопределяеттип файла, содержащийсимволы, объединенныев строки. Следуетиметь ввиду,что тип Textв Турбо-Паскалене эквивалентентину fileof char.
Введя файловыйтип, можно определятьпеременныефайлового типа:
Var
F1:number;
F2:Text;
В Турбо-Паскалеможно использоватьфайл без типа,при определениикоторого неуказываетсятип компонент.В этом случаеработа с файломосуществляетсяна физическомуровне в соответствиис внутреннимформатом егоданных. Приэтом реальныекомпонентыфайла могутиметь и различныйтип.
Типфайл можноопределятьи непосредственнопри введениифайловых переменных.
Файловые переменныеимеют специфическоеприменение.Над ними нельзявыполнятьникаких операций(присваиваниезначений, сравниваниеи т.д.). Кроме того,через файловуюпеременнуюможно получитьинформациюо конкретномфайле (тип,параметры, имяи т.д.).
Задание 2(8).
Var
x,a,b,c,y:real;
Begin
write(‘Введите2 числа’);
readln( y,b);
c:=y+b;
a:=sqr(sin(c*c*c)/cos(c*c*c));
b:=sqrt(y+b)/(y*pi);
x:=a+b;
writeln(‘x=’,x:7:2);
End.
Задание 3-а(5).
Usescrt;
Var
a,b:array[1..10]of integer;
i,m:byte;
Begin
clrscr;
m:=1;
for i:=1 to 10 do
begin
write(‘Введите’,i,‘-ый элементмассива:’);
readln(a[i]);
if a[i]
b[m]:=a[i];
inc(m);
end;
end;
clrscr;
writeln(‘Исходныймассив:’);
for i:=1 to10 do write (a[i]);
writeln;
writeln(‘Массив,состоящий изотрицательныхчисел:’);
fori:=1 to m do write (b[i]);
End.
Задание 4(8).
Usescrt;
Type
tcm=record
name:string[50];
amountw:integer;
amountwo:integer;
date:string[8];
Var
cm=tcm;
F1:file oftcm;
F2:text;
m:char;
Begin
clrscr;
assign(F1,’1.dat’);
assign(F2,’1.txt’);
rewrite(F1);
rewrite(F2);
repeat
clrscr;
write(‘Введитефамилию и инициалы’);
readln(cm.name);
write(‘Введитеколичествоголосующихакций’);
readln(cm.amountw);
write(‘Введитеколичествонеголосующихакций’);
readln(cm.amountwo);
write(‘Введитедату регистрации’);
readln(cm.date);
write(F1,cm);
writeln(‘Чтобы закончитьввод, введите*’);
readln(m);
until m=’*’;
while not eof(F1) do
begin
read (F1,cm);
ifcm.amountw>100 then write (F2, cm.name, cm.amountw, cm.amountwo,cm.date);
end;
close (F1);
close (F2);
End.
6. Языкипрограммированияи их классификация.
Отечественноепрограммированиезародилосьв 50-х годах 20 века в крупных научныхцентрах, осваивавшихпервые советскиевычислительныемашины БЭСМи «Стрела».
При поверхностномвзгляде выборязыковой гаммыпродиктованследующимиступенямистановленияпрограммиста:
Бэйсик —первая ступень,школьная информатика;
Паскаль —вторая ступень,информатикав специализированныхшколах и большинствеВУЗов;
Си, Си++ — третьяступень, стандартноепрофессиональноеобразование;
Visual Basic — четвертаяступень, программированиев среде Windows.
Однако приболее глубокоманализе можнозаметить оченьтесное взаимопроникновениесовременныхверсий алгоритмическихязыков и сближениеих функциональныхвозможностей.В развитыхсовременныхсистемахпрограммированияпредлагаютсяпримерноэквивалентныевозможности.Там, где труднообойтисьстандартнымисредствамиалгоритмическогоязыка высокогоуровня, используютвставки изассемблерныхстрок (т. е. командмашинногоязыка). Иногдатот или инойязык вырываетсявперёд. Например,появление иразвитие элементовобъектно-ориентированногопрограммированияв Си++ моментальновызвало к жизнианалогичныеизменения вдругих языках.Революционнаяидея общедоступного«визуального»программирования,предложеннаяв системеVisual BASIC, сразуже была подхваченав средеVisual С и в тойили иной меренашла своёотражение вновых версияхBorland C++.
Своим названиемBASIC обязансокращениюфразыBeginner's All-purpose Symbolic Instruction Code,которая дословнопереводитсякак многоцелевойкод (язык) символическихинструкцийдля начинающих.Авторство ипервая реализацияязыка Бейсикпринадлежатгруппе преподавателейи студентовДартмутскогоколледжа воглаве с профессорамиДж. Кемени и Т.Куртцем, которые1 мая1964 вдохнулижизнь в первыйБейсик-интерпретатор.
Бейсик былодним из первыхалгоритмическихязыков, в составекоторого изначальноприсутствовалиоператорыобщения пользователяс пошагововыполняющейсяпрограммой.Одновременнос текстом сообщенияоб ошибкеБейсик-системасообщала номерстроки программы,нарушившейсинтаксис языкаили приведшейк аварийнойситуации. ПервыеБейсик-системы,совмещавшиев себе возможностиввода, редактирования,исполненияи отладки программ,послужилипрототипамисовременныхинтегрированныхсред.
Заметнуюроль в разработкестандарта языкаПаскаль исовершенствованииего средствввода/выводасыграла рабочаягруппа Британскогоинститутастандартовво главе с А.Эддиманом.Британскийстандарт былпринят в 1982, анесколькопозднее егоутвердиламеждународнаяорганизацияISO. Однакок этому времениН. Вирт, недовольныйпредложениямирабочей группы,отказался отсотрудничествапо совершенствованиюПаскаля ипереключилсяна новый проектМодула.
Язык Паскальдовольно долгооставалсясредством дляизученияпрограммированияв университетах,т. к. ни однасерьёзнаякомпьютернаяфирма его неподдерживала.Перелом вотношении кэтому языкунаметился в1984, когда молодойфранцуз Ф. Канпривёз в СШАнеобычайноскоростнойкомпиляторTurbo-Pascalдля IBM-совместимыхПК.
Язык Си былпридуман в 1972сотрудникомBell Laboratories(отделениеизвестнойтелефоннойкомпании AT&T) Д.Ритчи, однимиз первыхпользователейоперационнойсистемы Unix,и задумывалсяне как универсальныйалгоритмическийязык, а, скорее,как инструментдля развитияоперационнойсистемы и созданияновых обслуживающихпрограмм (утилит).
Первым программнымпродуктом,написаннымпочти полностьюна Си, был компиляторс языка Си вкод машинныхкомандPDP-11/20 (прототипСМ-4). В 1973 Ритчи иТомпсон переписалина Си большуючасть операционнойсистемыUnix. Из 13000 машинныхкоманд дляPDP-7,на которойпоявиласьпервая версияUnix,только 800 пришлосьвручную перевестив ассемблерPDP-11. В процессепереводаUnix из однопользовательскойоперационнойсистемы,ориентированнойна работу вконкретнойЭВМ, превратиласьв мобильнуюоперационнуюсистему коллективногопользования.Успех этойоперации взначительноймере предопределилпопулярностьновой операционнойсистемы и еёбазового инструмента- языка Си. Б 1976Ритчи и ТомпсонперенеслиUnix с ЭВМ фирмыDEC на компьютерыдругой архитектуры(Interdata 8/32), практическиничего не изменивв ядре операционнойсистемы, написанномна Си. Точнотаким же образомUnix распространялсяна десяткахмашин различныхтипов.
Дальнейшаяработа посовершенствованиюязыка Си и принятиюв 1987 первогонастоящегостандартаANSI С былавыполнена наобщественныхначалах рабочейгруппой приАмериканскомнациональноминститутестандартовВозглавлялэту работусотрудникBell Labs Л. Рослер.Наиболее серьёзныйвклад в развитиеязыка Си запоследние годывнёс ещё одинпредставительтой же лабораторииБ. Страуструп,который ввёлв обращениеновые объекты- классы, объединяющиеданные и обрабатывающиеих функции.. С1983 за расширеннойверсией языкаСи с классамизакрепилосьназвание C++.
Вообще, даетсябольшое количествоклассификацийязыков программированияпо различнымпризнакам, нонаиболеераспространеннымиявляются:
языки программированиябывают — высокого(Паскаль, Бэйсик)и низкого уровня(Ассемблер);строго типизированными(Паскаль) и нестроготипизированными(Бэйсик); с поддержкойобъектно-ориентированногопрограммирования(Си++) и без и т.д.
Задание№1.
ВариантР.
Какие строковыефункции используютсяв Турбо-Паскале?Задайте какие-либостроковыепеременныеи применитек ним строковыефункции.
В Турбо-Паскалесуществуеттип данныхString(строка),специальнопредназначенныйдля обработкистрок (цепочексимволов). Онне относитсяк простым типамданных и занимаетпромежуточноеместо междупростыми иструктурированнымитипами данных.
Переменнаятипа Stringсостоит изцепочки символов,т.е. элементовтипа Char.Строки могутвыводитьсяна экран мониторапосредствомстандартныхпроцедур Writeи WriteLnи вводитьсяс помощью стандартнойпроцедурыReadLnили Read.В большинствеслучаев переменныетипа Stringиспользуютсядля храненияслов и сообщений,состоящих изнесколькихсимволов.
Турбо-Паскальпредставляетв распоряжениепользователейцелый ряд процедури функций,предназначенныхдля обработкистрок.
Length— позволяетопределитьфактическуюдлину текстовойстроки, хранящейсяв указаннойпеременной.
Var
Words: String;
Begin
Write(‘ Введитеслово:’);
ReadLn (Words);
WriteLn;
WriteLn(‘Это словосостоит из ‘,Length (Words),’букв’);
End.
UpCase— позволяетпреобразоватьлюбой символиз строчногов прописной.Эта функциярассчитанана обработкуотдельногосимвола. Русскиелитеры не могутобрабатыватьсяэтой функцией.
Var
S: String;
I: Integer;
Begin
S:=’alex’;
For I=1 to 4 doS[I]:=UpCase (S[I]);
WriteLn (S);
End.
На экран будетвыведена надпись:ALEX.
Copy— позволяеткопироватьфрагмент некоторойстроки из однойпеременнойв другую. Вызываяданную функциюнеобходимоуказать следующиепараметры:
имя строки, изкоторой долженизвлекатьсякопируемыйфрагмент;
позицию в строке,начиная с которойбудет копироватьсяфрагмент;
число копируемыхсимволов.
Var
s:string[8];
s1:string[3];
Begin
s:=’домашний’;
s1:=Copy (s,1,3);
writeln(s1); {на экранвыводится: дом}
End.
Pos— с помощьюэтой функцииможно осуществитьв некоторойстроке поископределенногофрагмента. Еслизаданный фрагментв строке присутствует,то функциявозвращаетномер позициив строке, с которойэтот фрагментначинается.Если фрагментне найден встроке, то функциявозвращаетнуль.
...
s:=’машина’;
i:=pos(‘шина’,s);
ifi=0 then writeln (‘ данныйфрагмент несодержитсяв строке’)else
writeln(‘ данныйфрагмент содержитьсяв строке начинаяс‘,i:3,’ позиции.’);
...
Как формируетсяимя переменнойфайлового типав тексте программы?По каким правиламформируетсяимя файла воперационнойсистеме MS-DOS?Какая процедураиспользуетсядля связыванияконкретнойфайловой переменнойпрограммы сконкретнымфайлом на внешнемустройстве?Приведитепримеры именфайловой переменнойи имен файлана внешнемустройстве.
Правила формированияфайловой переменойв языке Турбо-Паскальсовпадают справиламиформированияобычной переменной:
переменнаядолжна состоятьиз латинскихстрочных и/илипрописныхбукв, а такжеарабских цифрот 0 до 9 (цифрыможно использоватьнаряду с букваминачиная совторой позиции)и символаподчеркивания(ASCII-код95);
имя переменнойдолжно начинатьсяс латинскойбуквы или символаподчеркивания;
пробел в Турбо-Паскалеявляетсяразделителеми не может бытьиспользованв имени переменной;
применениедругих символовв именах переменныхне допускается;
зарезервированныеслова такжене могут бытьиспользованыв качествеимен переменных.
Имена файловв системе MS-DOS.
Каждый файлна диске имеетобозначение,которое состоитиз двух частей:имени и расширения( часто имя ирасширениевместе такженазывают именем,как правило,это не приводитк путанице). Вимени файламожет быть от1 до 8 символов.Расширениеначинаетсяс точки, за которойследует от 1 до3 символов. Например:
command.com
autoexec.bat
config.sys
paper.doc
Имя и расширениемогут состоятьиз прописныхи строчныхлатинских букв,цифр и символов:- _ $ # &@ ! % () {} ’ ~ ^
Расширениеимени файлаявляетсянеобязательным.Оно, как правило,описываетсодержимоефайла, поэтомуиспользованиерасширенияфайла весьмаудобно.
В имени и расширенииимени файлапрописные истрочные латинскиебуквы являютсяэквивалентами,так как DOS переводитвсе строчныебуквы в соответствующиепрописныебуквы.
Процедурой,которая связываетимя файловойпеременнойс конкретнымфайлом на диске,является процедураAssign(имяфайловойпеременной>,имяфайла на диске>).
Var
filename: file ofinteger;
path:string;
Begin
write(‘Введите имяфайла на диске:’);
readln (path);
assign(filename,path);
...
Задание №2.
9.Вычислитьзначение переменнойпо расчетнойформуле и исходнымданным. На экранвывести значениеисходных данныхи результатырасчетов.
Q=
usescrt;
var
q,b,s,x:real;
begin
clrscr;
write('Введите значениеx:');
readln (x);
write('Введите значениеb:');
readln (b);
write('Введите значениеs:');
readln (s);
clrscr;
q:=(b*sqrt(x)-s)/(exp(s*x)-1);
writeln ('Исходныеданные');
writeln ('x=',x:5:2,',b=',b:5:2,',s=',s:5:2);
writeln ('Результат');
writeln ('Q=',q:8:2);
readln;
end.
Задание №3а.
Ввести одномерныймассив Xвещественныхчисел. Размерностьмассива 7. Переписатьэлементы этогомассива в обратномпорядке в массивY.Вывести наэкран массивыX иY.
usescrt;
var
x,y:array [1..7] of real;
i:integer;
begin
clrscr;
writeln ('Ввод элементовмассива');
fori:=1 to 7 do
begin
gotoxy (29,2);
writeln (' ');
gotoxy (1,2);
write ('Введите',i,'-й элементмассива:');
readln (x[i]);
end;
fori:=7 downto 1 do y[i]:=x[8-i];
clrscr;
writeln ('МассивX:');
fori:=1 to 7 do
begin
write (x[i]:3:2,';');
end;
writeln;
writeln ('МассивY:');
fori:=1 to 7 do
begin
write (y[i]:3:2,';');
end;
end.
Задание№3б.
Написатьпрограммуанализа динамикипоквартальногороста доходаразличныхсоциальныхслоев населенияв течении года.Для этого ввестиколичествокатегорийслоев населения,название категорийнаселения ивеличину доходакаждой категориипо кварталам.Определитьсредний доходпо всем категориямза каждый квартали во сколькораз увеличилсядоход в четвертомквартале посравнению спервым. Исходныеданные и результатырасчетов представитьв виде таблицы.
usescrt;
type
tkat_inf=record
name:string[30];
income:array [1..4] of real;
end;
var
num,int:integer;
kat_inf:array [1..100] of tkat_inf;
first,second,third,forth:real;
procedureinput_data(var n:tkat_inf);
vari:integer;
begin
clrscr;
write('Введите названиекатегории:');
readln(n.name);
fori:=1 to 4 do
begin
gotoxy (44,2);
writeln (' ');
gotoxy (1,2);
write ('Введитедоход даннойгруппы за ',i,'-йквартал:');
readln (n.income[i]);
end;
end;
procedureoutput_data (b:tkat_inf);
vari:integer;
begin
writeln
(b.name:30,'|',b.income[1]:7:2,'|',b.income[2]:7:2,'|',b.income[3]:7:2,'|',b.income[4]:8:2,'|',b.income[4]/b.income[1]:15:2);
writeln('------------------------------+-------+-------+-------+--------+---------------');
end;
Begin
clrscr;
num:=101;
whilenum>100 do
begin
write ('Введитеколичествокатегорийнаселения(
readln (num);
end;
forint:=1 to num do input_data (kat_inf[int]);
clrscr;
writeln('-----------------------------------------------------------------------------------------');
writeln('Название категории | Средний доход | Увеличение ');
writeln(' |----------------------------------| дохода ');
writeln(' | I | II | III | IV | за год ');
writeln('----------------------------------+-------+-------+-------+-------+------------------');
forint:=1 to num do
begin
output_data (kat_inf[int]);
first:=first+kat_inf[int].income[1];
second:=second+kat_inf[int].income[2];
third:=third+kat_inf[int].income[3];
forth:=forth+kat_inf[int].income[4];
end;
writeln('средний доходза квартал |',first/num:7:2,'|',second/num:7:2,'|',third/num:7:2,'|',forth/num:8:2,'| -');
writeln('-------------------------------------------------------------------------------');
End.