Смекни!
smekni.com

Лекции по информатики 2 (стр. 15 из 43)

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

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

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

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

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

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

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

Простейшие виды машинных операций - операции присваивания. С помощью присваивании в алгоритмах описываются вычисления в программах для ЭВМ. Рассмотрим примеры операций присваива­ния и описания результатов их выполнения.

Присваивания: Результаты:

а := 0 а = 0

b := а + 1 b ' = а + 1 = 1

b := b + 1 b " = b' + 1 = 2

Запись присваиваний читается:

а := 0 - «переменной а присвоить значение 0»;

b := b + 1 - «переменной b присвоить значение b + 1».

Записи в колонке результатов читаются так:

а = 0 - «значение а равно 0»;

b' =b + 1 - «значениеb' равно b + 1».

Здесь а иb - программные переменные - область машинной па­мяти, в которой хранятся их значения а и b. В отличии от обычных математических переменных программные переменные могут полу­чать новые значения. В частности, присваивание b: = b + 1 запи­сывает в программную переменную b новое значение b', равное величине b + 1, где b - прежнее значение переменной b.

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

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

Сценарий «Домик»


Решение - следующие алгоритм и программа, результатом работы которых должен быть приведенный выше рисунок:

АлгоритмПрограмма

алг «Домик» ' Домик

нач screen 2,0

линия (130,40)-( 100,100), красная line (150,40)-(100,100),8

линия (130,40)-(200,100), красная line (150,40)-(200,100),8

рамка(100,100)-(200,200), белая line (100,100)-(200,200),15,b

рамка(130,120)-(170,160), синяя line (130,120)-(170,160),3,b

кон end

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

Экран ЭВМ


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

Примером прикладного алгоритма и программы может служить следующий алгоритм расчета прибыли:

Алгоритм Программа

алг «расчет прибыли» ' расчет прибыли

нач сls

запрос («доходы =», d) input «доходы =», d

запрос («расходы =», r) input «расходы =», r

р: = d - r р = d - r

вывод («прибыль =», р) print «прибыль =», р

кон end

Сценарий диалогаПротокол диалога

доходы =?<d> доходы =? 1000

расходы =? <г> расходы =? 700

прибыль = <р> прибыль = 300

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

Задача: расчет прибыли.

Треб.:р - прибыль.

Дано:r - расходы;

d - доходы.

Где:d = r + р.

При:d > 0.

Для оценки правильности полученных результатов нужно сверить расходы и прибыль с доходами. В нашем случае это должно быть 700 + 300 = 1000, что выражает правильный конечный результат при указанных данных.

Для оценки правильности алгоритма и программы необходимо рассмотреть конечные результаты их выполнения при произвольных значениях данных d и г. Вычисляемая величина р по алгоритму будет равна

ОперацияРезультат

р := d - r р = d – r

Подставляя в условие постановки задачи это значение, получаем:

d = r + p = r + (d - r) = d - верное тождество.

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

В о п р о с ы

1. Что такое алгоритм?

2. Каковы основные виды алгоритмов?

3. Что такое однозначность алгоритмов?

4. Что такое результативность алгоритмов?

5. Что такое правильность алгоритмов?

6. Что такое массовость алгоритмов?

7. Что такое алгоритмические ошибки?

З а д а ч и

1. Составьте сценарий, алгоритм и программу:

а) поздравления с Новым годом;

б) поздравления с Днем рождения;

в) регистрации даты рождения;

г) регистрации фамилии и имени.

2. Составьте сценарии диалога, алгоритм и программу:

а) расчета сдачи за товар;

б) расчета остатка от прибыли;

в) пересчета рубль/доллар;

г) расчета остатка времени до 18.00.

3. Составьте сценарий, алгоритм и программу вычислений:

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

б) длины пути по времени и скорости движения;

в) средней скорости по времени и длине пути.

4. Составьте картинки, алгоритмы и программу рисования:

а) российского флага; г) украинского флага;

б) шведского флага; д) французского флага;

в) японского флага; е) британского флага.

5. Составьте сценарий, алгоритмы и программу на Бейсике вывода изображений:

а) яхты; д) автомобиля;

б) трактора; е) усадьбы;

в) дерева; ж) цветка;

г) рыбы; з) птицы.

4.2. Базовые средства программирования

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

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

На персональных компьютерах IBM PC язык Бейсик имеет три версии, связанные с операционными системами для этих компьюте­ров, созданных и развиваемых фирмой Microsoft:

1) традиционный Бейсик (без ОС),

2) структурный Бейсик(МS DOS),

3) графический Бейсик (Windows).

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

Структурный Бейсик под именем Quick Basic был создан вместе с первыми моделями персональных компьютеров IBM PC как базовое средство программирования в операционной системе MS DOS. Интерпретатор этой версии Бейсика имеется на всех персональных компьютерах IBM PC в качестве стандартной компоненты операци­онной системы MS DOS.

Графический Бейсик под именем язык Visual Basic был создан фирмой Microsoft в качестве базового средства программирования для новейших моделей компьютеров IBM PC с операционной систе­мой Windows. Этот язык может использоваться только в среде Windows и только на старших моделях IBM PC.

Пример программы на традиционном языке Бейсик с коммента­риями, в которых записан реализованный в ней алгоритм.

Программа Алгоритм

10 ' поздравление ' алг «поздравление»

20 сls ' нач

30 nm$ = «Оля» ' пт$ = «Оля»

40 dn$ = «с днем рождения» 'dn$ = «с днем рождения»

50 print «Дорогая» + nm$ ' вывод «Дорогая» + пт$

60 print «Поздравляю тебя» ' вывод «Поздравляю тебя»

70 print dn$' вывод dn$

80 print «Желаю счастья» ' вывод «Желаю счастья»

90 print «Твой папа» ' вывод «Твой папа»

100 end' кон

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