Оо анализ, проект-ие и программ-е. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Оо анализ, проект-ие и программ-е.



Понятие инф-ии.

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

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

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

Посл-сти символов алфавита образ. в соот-вии с правилами грамматики осн. объекты языка — слова. Правила, согласно которым строятся предложения из слов данного языка, называются синтаксисом.

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

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

Система счисления это знак. система, в которой числа запис-ся по опр. правилам с помощью цифр — символов нек. алфавита.

Все с.с. делятся на позиц-е и непоз-е. В поз. с.с. зн-е цифры зависит от ее положения в записи числа, а в непоз-х — не зависит. Позиция цифры в числе называется разрядом. Разряд числа возрастает справа налево, от младших разрядов к старшим.

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

Наиболее распр-ми в наст. время поз. с.с. явл-ся десят. и двоич.:

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

Так, амер. инженер Р. Хартли процесс получ-я инф-ии рассм. как выбор одного сообщения из конечного наперёд заданного множества из N равновер. сообщений, а кол-во инф-ии I, содерж-ся в выбранном сообщении, опр-ет как двоичный логарифм N. Ф-ла Хартли: Допустим, нужно угадать одно число из набора чисел от единицы до ста. По ф-ле Хартли можно вычислить, какое кол-во инф-ии для этого требуется: I = log2100» 6,644. Т.е. сообщение о верно угад. числе содерж кол-во инф-ии,» 6,644 ед. инф.

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

Для таких задач амер учёный Шеннон предложил др. ф-лу опр-я кол-ва инф-и. Ф-ла Шеннона: I = p1 log2 (1/p1)+.. + pN log2 (1/pN), p i — вер-сть того, что именно i -е сообщение выделено в наборе из N сообщений. (Шеннон предположил, что прирост информации равен утраченной неопределённости).

Если вероятности p1,..., pN равны, то каждая из них равна 1/N, и формула Шеннона превращается в ф-лу Хартли.

В качестве ед-цы инф-ии условились принять один бит (англ. bit — binary, digit — двоичная цифра). Бит в теории инф-ии — кол-во инф-ии, необх для различения двух равновер. сообщений. А в вычисл.технике битом наз-ют наим. "порцию" памяти, необх. для хранения одного из двух знаков "0" и "1", исп-мых для внутримашинного предст-я данных и команд.

Бит — мельчайшая ед-ца изм-я. На практике чаще прим-ся более крупная единица — байт, = 8 битам. Восемь битов треб-ся для закодирования любой из 256 символов алфавита клавиатуры компьютера (256=28).

Широко исп-ся также более крупные производные ед-цы инф-ии: 1 Кбайт, Мбайт, …

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

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

В кач-ве носителя инф-ии в комп-ах исп-ся: магнитная лента, магнитные диски, оптические диски, магнито-оптические диски.

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

 

Алгоритм

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

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

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

Св-ва алгоритма:

- Детерминированность – выполнив очередное действие, исп-ль должен точно знать, что ему делать дальше.

- Дискретность – раздел. инф. процесса в алгоритме на отдел. команды.

- Массовость – по одному и тому же алгоритму реш-ся однотипные задачи и неоднократно.

- Понятность – алгоритм строится для конкретного ис-ля и должен быть ему понятен.

- Рез-сть – алгоритм всегда д. приводить к результату.

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

Процесс составл-я алгоритмов наз-ют алгоритмизацией.

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

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

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

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

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

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

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

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

 

Система программ-я.

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

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

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

Языки высокого уровня делятся на:

- алгоритмические (Basic, Pascal, C и др.), кот. предназначены для однозначного описания алгоритмов;

- логические (Prolog, Lisp и др.), кот. ориентированы не на разработку алгоритма реш-я задачи, а на системат-ое и формализованное описание задачи с тем, чтобы реш-е следовало из составленного описания.

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

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

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

Транслятор — это программа-переводчик. Она преобразует прогр-му, написанную на 1 из языков высокого уровня, в программу, состоящую из машинных команд. Трансляторы реализ-ся в виде компиляторов или интерпретаторов. Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законч. вариант программы на машин. языке, который затем и выполняется (Pascal). Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и вып-ет прогр-му строка за строкой (Basic).

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

 

Интерфейсные объекты

..Delphi доступны польз-лю на палитре компонент. Курсор - не компонент, просто пиктограмма для быстрой отмены выбора к.-либо объекта.

TMainMenu позв-ет вам поместить гл. меню в прогр-му. TLabel служит для отобр-я текста на экране. TEdit – станд. управляющий эл-т Windows для ввода. TMemo - иная форма TEdit. Подразумевает работу с большими текстами. TButton позв-ет вып-ть к.-либо действия при нажатии кнопки во время вып-я прогр-мы. TCheckBox отобр-ет строку текста с мал. окошком рядом. В окошке можно пост-ть отметку, кот.озн-ет, что что-то выбрано. TRadioButton позв-ет выбрать только 1 опцию из неск-х. TListBox нужен для показа прокручиваемого списка. TComboBox во многом напоминает ListBox, но он позв-ет вводить инф-ию в мал. поле ввода сверху ListBox. TScrollbar - полоса прокрутки, появля-ся авт-ски в объектах редакт-я, ListBox’ах при необх-сти прокрутки текста. TGroupBox исп-ся для визуальных целей и для указ-я Windows, каков порядок перемещения по компонентам на форме (при нажатии клавиши TAB). TRadioGroup аналогично TGroupBox, для групп-вки объектов. TImage - отобр-ет граф. изобр-е на форме. TShape - служит для отобр-я простейших граф. объектов на форме: окр-сть, квадрат и т.п. TTimer - таймер, событие OnTimer период-ски выз-ся ч/з промежуток времени, указ. в св-ве Interval.

На вкладке Dialogs предст-ны компоненты для вызова станд. диалогов Windows. Объекты, предст-ные на данной странице невидимы во время вып-я и вызов диалогов происходит программно. Диалоги Windows в порядке появл-я на странице Dialogs: - OpenDialog (выбрать файл), - SaveDialog (сохранить файл), - FontDialog (настроить шрифт), - ColorDialog (выбор цвета), - PrintDialog (печать), - PrinterSetupDialog (настройка принтера), - FindDialog (поиск строки), - ReplaceDialog (поиск с заменой).

Созд-е прогр-мы в Delphi сводится к “нанесению” компонент на форму (кот. явл-ся компонентом) и настройке взаимодействия между ними путем:

· изм-я зн-я св-в этих компонент,

· написания адекватных реакций на события.

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

Сущ-ет неск. типов св-в, в зав-сти от их “природы”, т.е. внутр. устр-ва:

· Простые св-ва - это те, зн-я которых - числа или строки.

· Перечислимые свойства - это те, которые могут принимать зн-я из предопределенного набора (списка). Пример: свойство типа Boolean (true или false).

· Вложенные свойства - это те, которые поддерживают вложенные зн-я (или объекты). Object Inspector изображает знак “+” слева от названия таких свойств. Объекты из библиотеки визуал. компонент (VCL) Delphi, имеют свой набор св-в и свое поведение - набор откликов на события, происходящие с ними.

Поведение объекта опр-ся тем, какие обработчики и для каких событий он имеет. Созд-е прил-я в Delphi сост. из настройки св-в используемых объектов и созд-я обработчиков событий.

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

Итог:

· Windows является системой ориент-ной на события;

· События в Windows принимают форму сообщений;

· В недрах VCL Delphi сообщения Windows обрабатываются и преобразуются в более простую для программиста форму;

· Обработка событий в Delphi сводится к написанию для каждого объекта своих обработчиков;

· События в программе на Delphi вызываются не только сообщениями Windows, но и внутренними процессами.

 

 

Данные.

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

Turbo Pascal. Простые типы данных, каждый из кот. опр-ет упоряд. мн-во зн-ий: целые типы, логич. тип, симв. тип, вещественные типы. Все эти типы, кроме вещ-ых явл-ся порядковыми. Кажд. зн-ию порядк. типа ф-ия Ord ставит в соотв-е нат. число - порядковый номер данного зн-ия в мн-ве допуст. зн-ий. К любым порядковым типам также м. применять ф-ии Pred - возвращает предыд. зн-ие и Succ – след. зн-ие. Тип отн-ся к упоряд-ым, если для переменных и выражений этого типа опред-ны операции отн-ия или сравнения: =, <>, <, >, <=, >=. Любой порядковый тип явл-ся упоряд-ым, но не наоборот. Так вещ. типы и тип string упоряд-ые, но не порядк.

Стандартные типы данных:
Целые типы В языке Турбо Паскаль опр-но 5 целых типов:

Shortint (1 байт), Integer (2 байта), Longint (4 байта), Byte (1 байт), Word (2 байта). Для Z чисел опр-ны такие операции: слож-е, выч-е, умн-е, получ-е частного (div) и остатка (mod) при целочисл. делении и др. Также с Z числами м. производить операции, рез-ты кот-х не Z числа. Это обыч. деление и операции отношения. Кроме того, имеется большое кол-во встроен. ф-ий для работы с Z числами: abs, sqr, sqrt, sin, cos, exp, ln и др.

Вещественные типы В Турбо Паскале 5 вещ. типов Real (6 байт), Single (4 байта), Double (8байт), Extended (10 байт),Comp (8 байт). Вещ. типы явл-ся упоряд-ми, но не порядк. Операции над вещ.числами: +,-,*,/,операции отношения. Имеется большое кол-во встроен. ф-ий для работы с числами: abs, sqr, sqrt, sin, cos и т.п.

Логический тип Переменные лог. типа Boolean м. принимать одно из двух зн-ий False - ложное или True - истинное. Этот тип явл-ся порядковым (Ord(False) = 0, Ord(True) = 1) и, сл-но, упорядоченным. Рез-т любых операций сравнения имеет лог.тип и м.б. присвоен лог. переменной. Для операндов типа boolean опр-ны след. лог. операции: NOT - отрицание (превращает false в true, а true в false), AND – лог. умн-е "и", OR – лог. сложение "или", XOR - исключающее или (true если операнды разные).

Символьный тип Char также наз-ют литерным. Он позв-ет работать с символами, кот. запис-ся 2 спос-ми: в одинар. кавычках или по их коду, например 'a', 'B' или #97,

Тип String (строка) в Турбо Паскале исп-ся для обработки текстов. Этот тип явл-ся станд-м и во многом похож на одномер.массив символов Array [0..N] of Char. Зн-ие N соотв-ет кол-ву символов в строке и м. меняться от 0 до 255. Символы, входящие в строку, занимают позиции с 1 до N. Начальный байт строки с индексом 0 сод-ит инф-ию о ее длине, т.е. это символ с кодом, равным длине строки.

Сущ-ет станд. ф-ии и процедуры для работы со строками: Ф-я Length(s) выдает длину строки s; Ф-я Concat (s1,s2,..,sn) возращает строку s1+s2+..+sn; Ф-я Copy (s,p,k) возвр-ет фрагмент строки s, который начин-ся в позиции p и имеет длину k; Ф-ия Pos (s1,s) ищет первое вхождение подстроки s1 в строку s и возвращает номер первого символа s1 в строке s или 0 если не нашли; Процедура Delete (s,p,k) удаляет из строки s фрагмент, кот. начин-ся в позиции p и имеет длину k; Процедура Insert (s,s1,p) вставляет в строку s подстроку s1, начиная с зад. позиции p.

Выражение - это ед-ца языка, кот. опр-ет способ вычисления нек. зн-ия. Выражения формир-ся из констант, переменных, функций, знаков операций и круглых скобок по опред. синтакс. правилам. Константами наз-ся параметры программы, зн-ия кот-х не меняются в процессе ее вып-ия. const pi=3.1415. Переменными наз-ся параметры прогр-мы, кот. м. менять зн-ие в процессе ее вып-ия. Все без искл-я перем-е д. б. описаны в разделе прогр-мы, начин. со слова VAR. Затем следуют конструкции вида: список имен переменных: тип; var r,s: real; В списке имена переменных перечисляются через запятую.

 

Turbo Pascal

Структурированные операторы сост. из др. операторов.

Составной оператор - это набор простых операторов, заключ. в командные скобки begin end;. Этот оператор вып-ся, как один оператор. Можно сказать, что тело программы на языке Pascal явл-ся сост. оператором.

Оператор if позв-ет проверять ист-сть усл-я и в зав-сти от этого вып-ть те или иные действия. Схема его использ. такова:

if <Условие> then <Выполняется, если условие истинно> else <Выполняется, если уловие ложно>;

Можно исп-ть так же неполную развилку:

if <условие> then <Выполняется, если условие истинно>;

С пом-ю оператора case м. вып-ть действя в зав-сти от зн-я параметра порядкового типа. Структура его такова:

case <Параметр> of <Значение1>: <Действие1>;… <ЗначениеN>: <ДействиеN>; else {необязательная часть} <Выполняется, если параметр <> значениям>; end;

Visual Basic

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

Оператор If…Then…Else Этот оператор сущ-ет в 2формах: однострочной и блочной. Прост. формой оператора If явл-ся однострочная: If усл-е Then оператор [ Else оператор]. Функционир-е оператора такой структуры отн-но просто. Если усл-е после If истинно, т.е. рез-т равен True, вып-ся оператор, указ. за Then. Если же рез-т равен False, то вып-ся оператор, следующий за ключ. словом Else, если такое им. Пример 1:

If Age<18 Then Print "Вы ещё не можете голосовать"

Блочная версия оператора If немного сложнее:

If BankBalance<0 Then

Print "Отрицательный баланс"

Else

Print "Всё в порядке"

End If

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

Пример 2:

If условие Then

[операторы 1]

[Else

If условие N Then

[операторы 2]

Else

[операторы 3]

End If]

End If

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

Оператор Select Case - оператор ветвления, который позв-ет вып-ть одну из неск. групп операторов в зав-сти от зн-ия усл-я. Синтаксис конструкции Select Case:

Select Case Проверочное выр-е

[ Case значение 1

[Операторы 1]]

[ Case значение 2

[Операторы 2]]

[ Case Else

[Операторы N]]

End Select

В операторе Case м. исп-ть строк. или числ. выр-е. В списке зн-ий допускается указать: явное зн-е; диапазон зн-ий, задаваемый с пом-ю ключ. слова To; усл. диапазон, задаваемый с пом-ю ключ. слова Is.

Пример 3:

Speed = S/t 'число от 0 до 50

Select Case Speed

Case 0, 1, 2

Print "Медленно"

Case 3 To 30

Print "В пределах нормы"

Case 30 To 40

Print "Небольшое превышение"

Case Is >= 50

Print "Наибольшее превышение"

Case Else

Print "Большое превышение"

End Select

Turbo Pascal

Оператор цикла repeat орг-ет вып-е цикла, сост. из любого числа операторов, с неизв. заранее числом повторений. Тело цикла вып-ся хотя бы один раз. Выход из цикла осущ-ся при истиности некот. лог.выр-я. Структура этого оператора следующая:

repeat <Инструкция1>; … <ИнструкцияN>; until <Условие>

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

Структура этого цикла имеет вид:

while <Условие> do <Инструкция>;

Оператор цикла for организ. вып-е 1 оператора (в т.ч. и составного) заранее известное число раз. Сущ-ет 2 варианта

1) for <Параметр>:=<Нач_значение> to <Кон_значение> do <Инструкция>;2) for <Параметр>:=<Нач_значение> downto <Кон_значение> do <Инструкция>;

Параметр – число целое.

Цикл действует след. образом. Перв-но вычисл-ся и запоминаются нач. и конеч. зн-е параметра цикла. Затем зн-е параметра сравнивается с кон. зн-ем. Далее, пока зн-е параметра < или = кон. зн-ю (в 1 варианте оператора) или > или = кон. зн-ию (во 2 варианте), вып-ся очер.итерация цикла, после чего знач-ие параметра увел-ся (в 1 варианте) или умен-ся (во 2) на единицу.

Visual Basic

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

Конструкция For…Next использ. счетчик цикла, её синтаксис выглядит след. образом: For Счётчик = Нач. зн-е To Кон. зн-е [Step шаг]

Операторы

Next [Счётчик]

В начале вып-я цикла зн-е Счётчик устан-ся в Нач. зн-е. При каждом проходе переменная Счётчик увел-ся на 1 или на величину шаг. Если она достигает или становиться > (< при отриц. шаге) конеч. зн-я, то цикл завершается и вып-ся след. операторы. Разность м/у нач. и кон. зн-ем, делённая на величину шага, сост-ет число проходов. Пример.

По умолчанию шаг приращения равен 1.

Конструкция Do…Loop позв-ет вып-ть блок кода, пока выполняеся нек. усл-е. В зав-сти от позиции усл-я разл-ют 2 варианта цикла Do…Loop.

Цикл, управляемый в начале

Do [{ While / Until} Условие] [Операторы] [ Exit Do ] [Операторы]

Loop

Цикл, управляемый в конце

Do [Операторы] [ Exit Do ]

[Операторы]

Loop [{ While / Until } Условие]

Если усл-е проверяется в начале цикла, то он никогда не вып-ся в случае невып-я усл-я. Если же проверка происходит в конце, цикл вып-ся как минимум один раз, независимо от того, вып-но усл-е или нет. Тело цикла вып-ся неопр. число раз, пока усл-е не вызовет выход из цикла:

Пример: Do X = X + 1 Print "Hello" Loop While X < 9

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

Оператор безусл. перехода GOTO применять не рекомендуется.

 

 

10. Процедуры в языках программ-я.

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

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

Procedure Имя (Список формальных параметров);

label

const (Описание локальных меток)

type (констант, типов и переменных)

var

procedure (Описание внутренних процедур)

function (и функций)

begin

Операторы

end;

Для вызова процедуры из осн. прогр-мы следует записать оператор, сост. из имени процедуры и списка параметров процедуры, указываемого в круглых скобках. Если, например, процедура MyProc была объявлена так:

procedure MyProc (i: Integer; s: String); <Тело_процедуры>;

то вызывать её следует так:

MyProc (5, 'SomeString');

Visual Basic

Синтаксически процедура опр-ся

[Private | Public] [Static] Sub имя процедуры (список аргум)

[Exit Sub] [операторы]

End Sub

где Private, Public, Static, Sub, Exit Sub, End Sub – ключ. слова. Sub опр-ет обяз. 1-ый оператор процедуры. End Sub – обяз. последний оператор процедуры;

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

Список аргументов имеет след. синтаксис:

[Optional] [ByVal | ByRef] [ParamArray] имя [As] тип, где Optional, ByVal, ByRef, ParamArray и As ключевые слова; имя — имя переменной, массива (в случае массива исп-ся имя () без указания границ знач. индексов, что позволяет исп-ть одну процедуру для разного числа элем. массива в каждом конкр. случае), эл-та управления или формы (в последних двух случаях тип принимает знач. Control и Form); тип м.б. Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (только переменной длины); As тип необх-мо применять для каждого аргумента.

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

Процедура не м.б. опред-на внутри к-либо процедуры, ф-ии.

Exit Sub вызывает прекращение вып-ия процедуры и выход из нее в вызывающую программу.

Static опред-ет, что лок. данные (переменные, массивы), определенные внутри процедуры, сохр-ся в промежутках между вызовами данной процедуры. Опред-е Static не распр-ся на данные, кот. объявлены вне данной процедуры, но исп-ся в ней (т.е. эти данные будут изменяться незав-мо от опред-я Static). Нельзя исп-ть при рекурсивном вызове процедуры.

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

Public опред-ет, что процедура м.б. вызвана из любого модуля приложения.

Optional опред-ет, что аргумент не явл-ся обязательным.

ByVal опр-ет, аргумент передается в процедуру по знач.

ByRef: аргумент передается в процедуру по ссылке.

ParamArray отн-ся к послед. аргументу в списке аргументов и опред-ет, что конечный (заключительный) аргумент явл-ся необяз. массивом. Не может исп-ся совместно с параметрами ByVal, ByRef, Optional.

Синтаксис оператора обращения к процедуре:

имя процедуры [список значений] или

Call имя процедуры [список значений], где Call — ключ. слово;

список зн-ий — список знач. аргументов (соотв-ет списку аргументов в операторе Sub no кол-ву, порядку след-я и типу, кроме случая, когда исп-ся параметр Optional).

Ф-ии в языках программ.

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

Структура ф-ии:

FunctionИмя(Список формальных параметров):тип рез-та;

label

const (Описание локальных меток,)

type (констант, типов и переменных)

var

procedure (Описание внутренних процедур)

function (и функций)

begin

Операторы, среди которых хотя бы один, который

присваивает имени функции значение результата

end;

Для вызова ф-ии из осн. программы следует записать выраж-е, состоящее из имени ф-ии и списка параметров ф-ии, указываемого в круглых скобках. function MyFun (i: Integer; s: String): integer; <Тело_функции>;

то вызывать её следует так:

S:=MyFun (5, 'SomeString');

Visual Basic

Синтаксически ф-ия опр-ся

[Public | Private] [Static] Function имя ф-ии (список аргументов) [As тип]

[операторы объявления]

[операторы]

[имя ф-ии = выражение]

[Exit Function] End Function, где Public, Static, Private, Function, Exit Function, End Function — ключ. слова. Function опред-ет обяз. первый оператор функции. End Function — обязат. последний оператор ф-ии:имя ф-ии образ-ся в соотв-ии с общ. правилами образ-ия имен. Имя ф-ии принимает знач-ие и хотя бы один оператор (имя ф-ии = выражение) должен присутствовать внутри ф-ии и вып-ся при выходе из нее. Если никакое знач-ие не присвоено имени ф-ии, то имя ф-ии принимает знач-ие по умолчанию: числ. ф-ия принимает зн-ие 0, ф-ия, объявленная как String, принимает знач-ие пустой строки нулевой длины (“”), ф-ия, объявленная как Variant принимает знач-ие Empty (знач-ие, которое принимает имя ф-ии, называют возвращаемым знач-ем ф-ии — возвращаемое знач-ие).

Список аргументов имеет след. синтаксис:

[Optional] [ByVal|ByRef][ParamArray] имя [()][As тип]

Имя — имя переменной, массива (в случае массива исп-ся имя () без указания границ знач-ия индексов, что позв-ет исп-ть одну ф-ию для разного числа эл-ов массива в каждом конкр. случае), эл-та упр-ия или формы (в послед. двух случаях тип принимает знач-ияControl и Form). Тип м.б. Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (только переменной длины). As тип необх-мо применять для каждого аргумента.

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

Exit Function вызывает прекращение вып-я ф-ии и выход из нее в вызывающую программу.

Ф-ия не м.б. опред-ена внутри какой-л. процедуры или ф-ии.

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

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

В Visual Basic передача по ссылке опред-на по умолчанию.



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 125; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.156.140 (0.21 с.)