• Исправление информации (также с контролем правильности ввода).

• Удаление устаревшей информации.

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

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

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

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

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

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

• Удобный и интуитивно понятный пользовате­лю интерфейс.

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

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

Термин имеет интересное историческое происхожде­ние. В IX веке великий узбекский математик Аль Хорезми разработал правила арифметических действий над десятичными числами. Совокупность этих правил в Ев­ропе стали называть "алгоризм". Впоследствии слово трансформировалось до известного нам сейчас вида и, кроме того, расширило свое значение: алгоритмом ста­ли называть любую последовательность действий (не только арифметических), которая приводит к решению той или иной задачи. Можно сказать, что понятие выш­ло за рамки математики и стало применяться в самых различных областях.

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

Дискретность

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

Понятность

Каждая команда алгоритма должна быть понятна тому, кто исполняет алгоритм; в противном случае эта команда и, следовательно, весь алгоритм в целом не могут быть выполнены. Данное требование можно сформулировать более просто и конкретно. Составим полный список команд, которые умеет делать испол­нитель алгоритма, и назовем его системой команд ис­полнителя (СКИ). Тогда понятными будут являться только те команды, которые попадают в этот список. Именно из такой формулировки становится ясно, по­чему компьютер такой "привередливый" при приеме введенных в него команд: даже если неверно написана всего одна буква, команда уже не может быть обнару­жена в СКИ.

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

Определенность (или детерминированность)

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

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

Результативность

Результат выполнения алгоритма должен быть обяза­тельно получен, т. е. правильный алгоритм не может об­рываться безрезультатно из-за какого-либо непреодоли­мого препятствия в ходе выполнения. Кроме того, лю­бой алгоритм должен завершиться за конечное число шагов. Большинство алгоритмов данным требованиям удовлетворяют, но при наличии ошибок возможны на­рушения результативности. В качестве первого примера возьмем случай, когда алгоритм по тем или иным при­чинам получит в качестве номера символа в строке от­рицательное число. При попытке найти такой символ выполнение алгоритма, естественно, завершится аварий­ным образом. Теперь пример другой ситуации. Рассмот­рим алгоритм деления некоторого числа п "столбиком" на 3. При п == 4,2 он благополучно получает результат, а вот для простейшего значения п = 1 процесс деления оказывается бесконечным. Впрочем, достаточно допол­нить алгоритм условием на количество требуемых в от­вете знаков после запятой, и результативность немед­ленно будет восстановлена.

Корректность

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

Массовость

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

Пример.

 Рассмотрим пример алгоритма для нахождения середины отрезка при помощи циркуля и линейки.
 
  Алгоритм деления отрезка АВ пополам:
 
  1) поставить ножку циркуля в точку А;
 
  2) установить раствор циркуля равным длине отрезка АВ;
 
  3) провести окружность;
 
  4) поставить ножку циркуля в точку В;
 
  5) провести окружность;
 
  6) через точки пересечения окружностей провести прямую;
 
  7) отметить точку пересечения этой прямой с отрезком.

14. «Линейная» алгоритмическая структура. Команда присваивания. Привести примеры.

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

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

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

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

 блок-схема линейная структура блок-схема линейная структура

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

В общем виде оператор присваивания можно запи­сать так:

<переменная> < знак команды присваивания > <выражение>

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

Свойства присваивания:

• пока переменной не присвоено значение, она остается неопределенной;

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

• новое значение, присвоенное переменной, заменяет ее предыдущее значение.

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

s = 1

….

s:= s + 1

15. Алгоритмическая структура «ветвления». Команда ветвления. Привести примеры

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

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

если логическое выражение

то серия команд 1

иначе серия команд 2

конец ветвления

если логическое выражение

то серия команд

конец ветвления

Первый вариант принято называть полным, а вто­рой — неполным.

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

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

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

Бейсик, Паскаль

if <AB> then < серия команд 1>

else < серия команд 2>

Примеры

 Во многих случаях требуется, чтобы при одних условиях выполнялась одна последовательность действий, а при других - другая.

блок-схема разветвляющий алгоритм   блок-схема разветвляющий алгоритм

program maximum_3x; {задача на нахождение максимального из трех чисел}

var a, b,с,m: real ;

begin

readin(a, b,c) ;

if a > b then m := a else m := b;

if с > m then m := c;

writeIn ('maximum’ ,m: 9: 4)

end.

Из книги Григория Остера "Вред­ные советы"; например, такой:

Если друг на день рожденья

Пригласил тебя к себе,

То оставь подарок дома —

Пригодится самому.

16. Алгоритмическая структура « цикл». Команда повторения. Привести примеры.

Достаточно часто при организации алгоритма реше­ния задачи необходимо одну и ту же определенную пос­ледовательность команд выполнить несколько раз под­ряд. Конечно, самый простой способ — записать эти команды несколько раз друг за другом, и необходимое повторение действий будет организовано. Но как быть в тех случаях; когда количество команд, которые исполня­ются несколько раз, слишком велико? Или само коли­чество повторений команд огромно? Или вообще неиз­вестно, а сколько же раз нужно повторить последова­тельность команд? Решить все эти проблемы можно, если использовать алгоритмическую структуру цикл.

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

Различают циклы с известным числом повторений (цикл с параметром) и итерационные (с пред - и постусловием).

Приведем обозначение каждого из видов циклов на блок-схемах алгоритмов.

Подпись: ПЦ:= НЗ, КЗ, ШЦикл с параметром Цикл с предусловием Цикл с постусловием

Подпись: серия

На схемах "Серия" обозначает один или несколько любых операторов (команд); ЛВ есть логическое вы­ражение (если его значение истина, переход проис­ходит по ветви, обозначенной да, иначе — по нет). На схеме цикла с параметром использованы обозна­чения: ПЦ — параметр цикла, НЗ — начальное зна­чение параметра цикла, КЗ — конечное значение па­раметра цикла, Ш — шаг изменения параметра цик­ла. Серию команд, которые выполняются в цикле, называют телом цикла.Опишем схематично, как выполняется каждый из циклов.

Цикл с предусловием:

а) вычисляется значение логического выражения;

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

в) выполняется тело цикла;

г) переход к п. а);

д) конец цикла.

Цикл с постусловием:

а) выполняется тело цикла;

6) вычисляется значение логического выражения;

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

г) конец цикла.

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

Цикл с параметром:

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

б) параметру цикла присваивается начальное значение;

в) параметр цикла сравнивается с конечным значением;

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

д) выполняется тело цикла;

е) параметр цикла автоматически изменяется на зна­чение шага;

ж) переход к п. в);

з) конец цикла.

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

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

блок-схема циклический алгоритм со счетчиком блок-схема циклический алгоритм со счетчиком

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

блок-схема блок-схема

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5