КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Основные свойства алгоритмов. 1. Укажите примеры двойного отрицания для утверждений:
А д а н и я
1. Укажите примеры двойного отрицания для утверждений: а) «сегодня был дождь»; в) «х = 2» и «х = 3»; б) «х = 0» или «у = 0»; г) «5 не делится на 2 и на 3». 2. Пусть утверждение А «прошел дождь», а утверждение В «на улице сыро». Истинны ли следующие суждения? а) А Þ В (прямое доказательство); б) В Þ А (обратное доказательство); в) не А Þ не В (противоположное доказательство); г) не ВÞ не А (противоположное обратному). 3. Предложите систему признаков и понятий для описаний а) класса «Млекопитающие»; в) класса «Рыбы»; б) класса «Птицы»; г) класса «Насекомые». В систему понятий введите следующие признаки: окрас, продолжительность жизни, умения ползать, летать, ходить и т. д. 4. Составьте базу знаний по всемирной географии. В базу знаний включите сведения о странах: название столицы, число жителей, тип государства, размеры страны, континент. 5. Составьте базу знаний по городам своей страны. В базу знаний включите сведения о размерах городов, числе жителей, расстоянии от столицы, названии самых крупных заводов, фабрик, музеев, стадионов и т. п. 6. Составьте базы данных а) по литературе; г) по истории; б) по зоологии; д) по ботанике; в) об автомобилях; е) по кулинарии.
Глава 4. ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ
Алгоритм относится к фундаментальным понятиям информатики. На понятии алгоритма построено все основные принципы программирования - составления программ для вычислительных машин. Алгоритм - это совокупность действий со строго определенными правилами выполнения. В информатике изучаются различного рода алгоритмы - диалоговые алгоритмы, алгоритмы обработки данных, вычислительные алгоритмы, алгоритмы управления роботами, станками и другими техническими устройствами. Пример диалогового алгоритма:
Алгоритм Блок-схема алг «приветствие» ¯ нач запрос («Ваше имя=», NN) запрос («Ваше имя=», NN) ¯ вывод («Добрый день», NN) вывод («Добрый день», NN) кон ¯ Для описания алгоритмов используются блок-схемы, изображенные справа, или структурированная запись, приведенная слева. Блок-схемы наглядны. Однако блок-схемы трудно рисовать, в них сложно вносить изменения и исправления из-за сложности перерисовки рамок и стрелок. Однако блок-схемы до сих пор требуются отечественными стандартами на документирование программ. Достоинство записи алгоритмов и программ в структурированной форме заключается в простоте их чтения и ввода с экрана ЭВМ, а также в простоте внесения изменений и исправлений с использованием даже самых простейших редакторов тестов. По этим причинам зарубежом блок-схемы уже давно не используются ни для документирования, ни для обучения, а все современные языки построены на принципах структурного программирования. Приведем примеры описания алгоритма и программы в структурированной записи:
АлгоритмПрограмма алг «приветствие» ' приветствие нач сls запрос («Ваше имя=», NN) input «Ваше имя=», NN$ вывод («Добрый день», NN) print «Добрый день», NN$ кон end
Алгоритм, приведенный слева, записан на псевдокоде. Псевдокод - это язык записи структурированных алгоритмов в качестве документации к программам для ЭВМ. Особенность псевдокода заключается в том, что описания на нем выполняются на родном языке — русском, английском, украинском, казахском, немецком и т. п. Программа, приведенная справа, записана на языке Бейсик - языке программирования персональных ЭВМ. Языками программирования называются формализованные языки, используемые для записи программ на ЭВМ. Одним из них является язык Бейсик. Достоинства псевдокода заключаются в том, что описания алгоритмов, записанные на родном языке, намного проще читать и понимать, чем запись программ на языке с иностранной лексикой. По этим причинам псевдокод используется как основное средство документирования программ во всех ведущих фирмах, занимающихся разработкой программ. С точки зрения информатики алгоритмы, записанные в такой обобщенной записи, позволяют выразить общую логику работы программ, независимо от используемых языков программирования и типов ЭВМ. При этом алгоритмы, записанные в такой обобщенной форме, могут быть реализованы с помощью различных языков программирования для самых различных типов ЭВМ. В качестве примера приведем реализацию этого же диалогового алгоритма на самой ранней версии языка Бейсик, использовавшегося на самых первых персональных компьютерах:
АлгоритмПрограмма алг «приветствие» 10 ' приветствие нач 20 сls запрос («Ваше имя=», NN) 30 input «Ваше имя=», NN$ вывод («Добрый день», NN) 40 print «Добрый день», NNS кон 50 end
Основные свойства алгоритмов и программ для вычислительных машин - однозначность, результативность, правильность и массовость. Этими свойствами алгоритмы отличаются от различного рода расплывчатых и неоднозначных предписаний, инструкций и кулинарных рецептов, которые могут толковаться и исполняться многими способами. Однозначность алгоритмов - это однозначность правил их выполнения. Следствием этого свойства алгоритмов является однозначность результатов их выполнения в одинаковых начальных условиях. Это не всегда верно для кулинарных рецептов, когда разные исполнители в одних и тех же условиях могут придавать различный вкус и пикантность одним и тем же блюдам. Результативность - это завершение выполнения алгоритмов определенными результатами. Результативность - наиболее важное свойство алгоритмов и программ, предназначенных для решения прикладных задач. Алгоритмы и программы, не дающие результатов или ведущие к сбоям и отказам, никому не нужны. Массовость - это возможность применения алгоритмов в различных конкретных исходных условиях. Массовые алгоритмы особенно важны для решения прикладных задач, когда алгоритмы и программы должны обеспечить решение целого класса задач, различающихся исходными данными. Правильность алгоритмов определяется правильностью результатов, получаемых с их помощью. По этой причине правильность алгоритмов и программ является относительным понятием. Оценка правильности может проводиться только при наличии требований к конечным результатам. Алгоритм считается правильным, если он дает правильные результаты для любых допустимых начальных условиях. Правильность алгоритмов гарантирует правильность результатов их выполнения. Алгоритм содержит ошибки, если его выполнение может привести к отказам, сбоям или неправильным результатам, либо вовсе не дает никаких результатов. Эти ошибки называются алгоритмическими. Алгоритмы и программы, содержащие такие ошибки, могут нанести вред или ущерб тем, кто захочет ими воспользоваться. Для оценки правильности алгоритмов и программ необходимо уметь оценивать результаты выполнения составляющих их действий и конечные результаты их выполнения в целом. Простейшие виды машинных операций - операции присваивания. С помощью присваивании в алгоритмах описываются вычисления в программах для ЭВМ. Рассмотрим примеры операций присваивания и описания результатов их выполнения.
Присваивания: Результаты: а:= 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 - верное тождество. Таким образом, при любых значениях исходных данных результаты выполнения приведенного алгоритма будут правильными.
Дата добавления: 2014-12-27; Просмотров: 425; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |