Алгоритм и его свойства.ppt
- Количество слайдов: 28
Решение простой лингвистической задачи с помощью компьютера Этапы решения задачи 1. 2. 3. 4. Постановка задачи Разработка модели Проведение компьютерного эксперимента Анализ результатов работы компьютерной модели
Постановка задачи Говоря о постановке задачи, выделяют следующие действия: ü описание решаемой задачи ü формулирование цели процесса моделирования ü анализ оригинала модели При анализе оригинала модели (некоторого объекта, процесса или явления) в нем прежде всего выделяются формальные свойства оригинала, которые мог бы легко опознать компьютер 2
С точки зрения современной психологии задача в самом общем понимании - это некоторая цель, поставленная в конкретных условиях и требующая исполнения, решения. Примерами интеллектуальных задач являются следующие: – – – 3 решить полное квадратное уравнение ах2 + bх + с - 0; составить реферат научного текста; перевести текст с английского языка на русский и т. д.
Чтобы решить задачу, необходимо знать ее начальные условия, а также метод или способ ее решения. Так, чтобы решить полное квадратное уравнение необходимо знать конкретные значения коэффициентов а, b, и с (начальные условия). В качестве метода решения этого уравнения надо использовать правило вычисления значений x 1 и х2: - b ± b 2 - 4 ac x 1, 2 = 2 a Чтобы перевести текст на русский язык, необходимо иметь, как минимум, англо-русский словарь и знать английскую и русскую грамматики, лексикологию и еще многое другое. Все это начальные условия. В качестве метода решения этой задачи выступают те правила перевода текстов, которым обучают в вузе. 4
5 Для решения лингвистической задачи введем некоторые понятия. Цепочка буквенных символов, находящаяся в тексте между двумя знаками пробела, называется словоупотреблением. Словоупотребление, находящееся вне предложения или текста, будем называть словоформой. Несколько словоформ, имеющих одно и то же лексическое значение, образуют слово или лексему. Предложением, с компьютерной точки зрения, называется цепочка словоупотреблений между двумя знаками конца предложения
Например, в тексте: СКОРО_ПРИДЕТ_ВЕСНА_. _ВЕСНОЙ_ЛЕГЧЕ_ДЫШИТСЯ_. _ПРИХОДИ _ВЕСНА_! 8 словоупотреблений. Если бы из единиц этого текста составлялся алфавитно-частотный словарь, то в нем оказалось бы 7 словоформ. Словоформы 1. ВЕСНА 2. ВЕСНОЙ 3. ДЫШИТСЯ 4. ЛЕГЧЕ 5. ПРИДЕТ 6. ПРИХОДИ 7. СКОРО 6 2 1 1 1 Слова 1. ВЕСНА 3 2. ДЫШАТЬСЯ 1 3. ЛЕГКО 1 4. ПРИХОДИТЬ 2 5. СКОРО 1
1. Постановка задачи Для описание решения задачи: необходимо найти в группе из 10 русских глаголов глаголы в инфинитиве и напечатать их. Цель процесса моделирования: создать модель опознавания инфинитивной формы русского глагола. Решению каждой лингвистической задачи должен предшествовать анализ соответствующего лингвистического материала: конкретных слов. Просмотрев русские глаголы можно сделать вывод, что глаголы в инфинитивной форме заканчиваются буквосочетаниями –ть, -чь, -ти (отбросив возвратные глаголы). Это и есть те формальные признаки, на которые будет опираться модель. Выход в меню 7
Разработка модели На этапе непосредственной разработки модели создается алгоритм решения задачи. Слово алгоритм происходит от слова algorithmi - латинской формы написания имени великого математика IX века аль. Хорезми. Он впервые четко сформулировал правила выполнения арифметических действий. Сейчас это понятие используется для обозначения последовательности любых действий: арифметических, логических, взятия логарифмов, вычисления синуса и т. п. ). 8
Общие понятия об алгоритме Алгоритм - точное предписание о выполнении в определенном порядке некоторой последовательности действий (физических или умственных), приводящее к решению некоторой типовой задачи. Например, при необходимости сварить кофе последовательность физических действий будет такой: вскипятить нужное количество воды, засыпать кофе в горячую воду (одну-две чайные ложки на стакан воды), нагреть воду до кипения (но не кипятить) и т. д. 9
l l 10 Свойства алгоритма Дискретность - алгоритм разбивается на конечное число действий-шагов, которые могут быть пронумерованы. Причем только после выполнения одного предписания можно перейти к выполнению другого. Результативность - при всех начальных условиях число шагов алгоритма конечно, и он приводит к решению задачи.
Свойства алгоритма l l l 11 Массовость - по данному алгоритму может быть решен целый ряд типовых задач (они отличаются лишь различными начальными условиями). Детерминированность - при многократном решении одной и той же задачи с одинаковыми начальными условиями всегда получается один и тот же результат. Формализованностъ - тот, кто его выполняет (человек, машина), может не вникать в смысл того, что он делает согласно предписаниям алгоритма, и все равно придет к верному результату.
Способы записи алгоритмов l l • 12 Словесный способ сводится к тому, что составляющие алгоритм шаги (предписания) записываются в виде слов и предложений естественного языка. При графическом представлении алгоритма его шаги изображаются разными геометрическими фигурами (блоками), образующими блок-схему алгоритма. Связи между блоками обозначены стрелками, соединяющими соответствующие фигуры. Для лингвистических задач используется словесно Далее -графический способ записи алгоритма.
Способы записи алгоритмов Графическое представление алгоритма Параллелограмм Прямоугольник используется для записи вычислительных и некоторых других действий Ромб используется для проверки различных условий Овал используется для обозначения начала и конца алгоритма Круг 13 используется для обозначения действий ввода информации в компьютер и вывода информации из него служит для указания тех блоков алгоритма, на которые передается управление от блоков первых трех типов Назад
Способы записи алгоритмов • При табличном задании алгоритма его шаги записываются в графах специальных таблиц. Чаще всего такой способ записи алгоритма используется для выполнения различных вычислений по формулам. • Псевдокод – краткая система обозначений, предназначенная для неформального представления идей в процессе разработки алгоритма. Такой подход обычно используется, когда целевой язык программирования известен заранее. Выход в меню 14
2. Разработка модели Для решения нашей лингвистической задачи, очевидно, необходимо выполнить следующую цепочку "умственных" действий: 1. Взять очередной анализируемый глагол 2. Выделить у этого глагола две последние буквы 3. Посмотреть, совпадают ли эти буквы с буквами ть, чь, ти. Если да, то перейти к действию 4; если нет, то выполнить действие 6 4. Сделать вывод: "Данный глагол употреблен в инфинитиве" 5. Перейти к действию 7 6. Сделать вывод: "Данный глагол употреблен в личной форме" 7. Подсчитать число проанализированных глаголов 8. Проверить, все ли 10 глаголов проанализированы. Если нет, то перейти к выполнению действия 1; если да, то перейти к действию 9 9. Закончить работу Назад 15
1 2 Начало Вводим очередной русский глагол Алгоритм решения задачи Подсчитать число введенных глаголов 3 Введен 11 глагол? да Конец нет 4 Отделяем у глагола 2 последние буквы 5 Это “ть”, “чь” или ” ти”? да нет 6 7 Глагол употреблен в инфинитиве Глагол употреблен в личной форме Назад 1 1
3. Проведение компьютерного эксперимента На данном этапе на конкретном алгоритмическом языке должна быть написана программа на некотором языке программирования. Язык программирования – искусственный язык, состоящий из фиксированного словаря и совокупности правил, называемых синтаксисом, которые используются для составления команд, выполняемых впоследствии компьютером Алфавит языка Язык BASIC был создан в 1965 году в США. Основные составляющие языка QBASIC 1. Алфавит языка QBASIC. 2. Типы исходных данных. 3. Операторы обработки исходных данных. ü Все прописные и строчные буквы латинского и русского алфавита ü Десятичные цифры от 0 до 9 ü Знаки арифметических действий ü Знаки логических действий ü Знаки-разделители: ". " , ", ", "; " , " ' " , "(" , ")" , "_" ü Специальные знаки: "#", "$", "&" , "!" , "%" 17
Типы исходных данных ü Данные, представленные буквами (буквосочетаниями) называются символьными или строковыми. ü Данные, представленные числами называются вещественными. Каждый тип информации может быть представлен в виде констант (постоянных величин) и переменных. Строковые константы - это обычные буквы, слова, предложения любого естественного языка, заключаемые в кавычки. Например: "ВЕСНА", “ 2002 г. ", "ПЕТРОВ И. В. " и т. п. 18 Каждая строковая переменная имеет имя – эта некоторая область оперативной па-мяти, где будет размещаться соответствующее данное (суффикс, слово, текст и …). Имя может состоять из латинских букв и цифр, на конце имени должен находиться знак $. Например: Х$, К 2$, S 9$, BUK$. Вещественные константы-это привычные для человека дробные и целые числа. Вещественная переменная, как и строковая, должна иметь свое имя. Оно записывается точно так же, как и имя строковой переменной, только в конце имени не ставится знак. Например: X, К 2, S 9, BUK, STROKA и т. п.
Операторы обработки исходных данных Оператор - это условная запись действия, выполняемого компьютером над некоторой информацией (данными). 19 В самом общем виде оператор языка QBASIC записывается так: НС Имя оператора Содержание оператора НС - номер строки программы или номер оператора в программе обработки данных, может принимать значение от 0 до 65535, не является обязательным; имя оператора - это одно из слов или частей слов английского языка, обозначающее то действие, которое этот оператор выполняет; содержание оператора - это какая-то константа или переменная, какое-то арифметическое или логическое выражение, или же номер какого-либо другого оператора той же программы.
Основные группы операторов 1. 1. 2. 2. 3. 3. 4. 4. арифметических действий логических действий управления программой ввода и вывода информации 5. информации специальных 5. специальных Простейшим из операторов является оператор присваивания, который в общем виде записывается так: НС L=К где НС - номер строки программы, L - имя любой переменной, которой присваивается значение К (вместо К может быть число, слово, предложение, какая-то другая переменная или арифметическое выражение). 20 Операторы арифметических действий выполняют различные арифметические операции над переменными (+, , *, /, ^). Например. Y = X 2 -5 X + 3 В операторах логических действий выполняются следующие логические операции (=, <, >, <=, >=, <>, OR, AND).
Основные группы операторов Операторы управления программой. 21 Чаще всего используются следующие операторы управления программой: 1. Оператор безусловного перехода GO TO ("перейти к"): НС GO TO HC 1 2. Оператор условного перехода IF THEN ("если то"): НС IF условие GOTO HC 1 НС IF условие THEN оператор В более развернутом виде может иметь следующую форму : НС IF условие THEN [операторы] ELSE [операторы] END IF
Основные группы операторов Операторы ввода и вывода информации Для ввода информации используется оператор ввода INPUT : ? _ ХОДИТЬ НС INPUT P 1, P 2, . . . где НС - номер оператора, a PI, P 2, . . . - имена переменных, которым с клавиатуры передаются исходные данные. Например, в компьютер необходимо ввести для последующего анализа глагол ХОДИТЬ. Это действие можно записать следующим образом: INPUT W$ 22 Как только компьютер встретит данный оператор, он высветит на экране знак вопроса (? ). Человек должен набрать на клавиатуре слово ХОДИТЬ и нажать на клавиатуре клавишу ENTER. Слово ХОДИТЬ попадет в область оперативной памяти с именем W$.
Основные группы операторов Для вывода информации на принтер используется оператор PRINT, который записывается так: НС PRINT DI, D 2. . . Dl, D 2, . . - выводимые на печать данные. Вместо Dl, D 2. . . могут ХОДИТЬ-ГЛАГОЛ стоять либо имена переменных, либо фраза. УПОТРЕБЛЕН В ЛИЧНОЙ ФОРМЕ Например, PRINT W$; " - ГЛАГОЛ УПОТРЕБЛЕН В НЕОПРЕДЕЛЕННОЙ ФОРМЕ" 23
Специальные операторы языка QBASIC Оператор LEN служит для определения числа знаков (букв и т. д. ) в строковых данных. НС L =LEN (К) где L - имя переменной, в которую будет передано число знаков (букв, цифр и т. п. ), находящихся в обрабатываемом данном К. Например, L=LEN ("ХОДИТЬ"), где L= 6 или L=LEN(W$) Итог будет тот же: L=6. Оператор RIGHT$, общий вид которого выглядит следующим образом: НС B$=RIGHT$ (W$, n) позволяет выделить в строке символов, содержащейся в переменной с именем W$, определенное число (n) правых символов и направить их в переменную именем В$. Например, B$=RIGHT$ (W$, 2), при этом в переменную В$ помещается ТЬ (В$=“ТЬ"). 24
3. Проведение компьютерного эксперимента Для написания программы для нашей задачи необходимо выполнить следующих действий: Выделяют основные переменные памяти компьютера. В данном случае ими будут: ü место в памяти компьютера для размещения каждого анализируемого глагола; ü место в памяти компьютера для размещения двух последних букв глагола ; ü место в памяти компьютера (счетчик) для размещения числа проанализированных глаголов. Этим переменным присваивают определенные имена : gl$ - строковая переменная для размещения анализируемого глагола; sf$ - строковая переменная для размещения двух последних букв глагола; I – числовая переменная (счетчик) для размещения числа проанализированных глаголов. Написание компьютерной программы сводится к замене блоков операторами языка QBASIC. Отладка программы, т. е. устранение различных ошибок 25
Текст программы Вы уже знаете, что написание компьютерной 1 программы сводится к замене блоков операторами INPUT “Введите глагол”, gl$ 2 языка QBASIC I=I+1 3 IF I > 10 THEN END 4 sf$=RIGHT$(GL$, 2) 5 IF sf$=“ть” or sf$=“ти” or sf$=“чь” THEN 6 PRINT gl$; “- употреблен в инфинитиве” ELSE 7 PRINT gl$; “- употреблен в личной форме” 8 END IF 9 GOTO 1 26 Выход в меню
4. Анализ результатов работы компьютерной программы Для проверки на вход программы подают разное количество различных русских глаголов. Во всех случаях программа должна давать правильный результат. В противном случае вводятся изменения и исправляются ошибки 27
Спасибо за внимание 28