Реферат по предмету "Программирование и компьютеры"


Автокорректор

Содержание 1. Описание постановки задачи 1.1 Характеристика задачи 1.2 Выходная информация 1.3 Входная информация
2. Описание алгоритма 2.1 Функциональная структура задачи 2.2 Алгоритм решения 3. Описание программы 3.1 Общие сведения 3.2 Функциональное назначение 3.3 описание логической структуры 3.4 Используемые технические средства 3.5 Вызов и загрузка 3.6 Входные данные 3.7 Выходные данные 4. Текст программы 5. Описание результатов испытаний программы Приложение 1 Приложение 2 Приложение 3 Приложение 4 Приложение 5 Приложение 6 Приложение 7 1. Описание постановки задачи. 1.1 Характеристика задачи. Задача автокоррекции решается с целью проверки орфографии в текстах на русском языке. Исходными для решения задачи данными является словарь, содержащий русские слова. В начале решения задачи пользователем задаётся файл, содержащий текст на русском языке и нуждающийся в проверке. 1.2 Выходная информация. Выходной информацией при решении задачи является текстовый файл «ОТВЕТ», содержащий проверенный текст. 1.3 Входная информация. Исходная для решения задачи информация содержится в текстовых наборах данных на магнитном диске и в указываемом (вводимом в ЭВМ) в начале решения задачи запросе пользователя. Запрос пользователя представляет собой: «Введите имя обрабатываемого файла: » «Слова нет в словаре (ENTER-пропустить, «Пробел»-изменить)» «Введите правильное слово --» 2. Описание алгоритма. 2.1 Функциональная структура задачи. На рисунке (2.1) представлена схема иерархии процедур задачи «автокоррекции», полученная в результате её декомпозиции.
Основная программа Рис. 2.1 2.2 Алгоритм решения. В приложение 1 представлены схемы обобщённого алгоритма задачи «получения информации о студенте» и алгоритмов отдельных процедур её. 3. Описание программы. 3.1 общие сведения. Программа получения информации обеспечивает решения задачи «получения информации о студенте» (или «одноимённой задачи»). Программа исполняется в операционной системе программирования MS-DOS 6.22. Исходный текст программы на языке Turbo Pascal 7.0. 3.2 Функциональное назначение. Программа предназначена для решения задачи, постановка которой описана в разделе 1 настоящей пояснительной записки. 3.3 Описание логической структуры. Программа получения информации обеспечивает решения задачи автокоррекции по алгоритму, описанному в разделе 2 настоящей пояснительной записки. Структура исходного текста программы (состав и взаимосвязь модулей) приведена в приложение 1. Функциональная структура программы (состав и взаимосвязь программ) приведена на рисунке 2.1. Ниже указано содержание модулей программы и их взаимосвязь (модульная структура). Модуль ас содержит текст основной программы (и обеспечивает вызов последующих модулей). Модуль dic.txt – словарь. 3.4 Используемые технические средства. Для исполнения программы получения информации необходима ПЭВМ типа 486DX с монитором, клавиатурой. 3.5 Вызов и загрузка. Программа получения информации вызывается для исполнения стандартными средствами. Имя исполняемого модуля – ac. 3.6 Входные данные. До начала исполнения программы должны быть сформированы на магнитном диске наборы данных (файлы) с именем dic.txt. В начале исполнения программы предусматривается ввод пользователем запроса, конкретизирующего вариант (условия) решения задачи (см. раздел 1 настоящей пояснительной записки (подраздел)). 3.7 Выходные данные. Результат выполнения программы получения информации – текстовые данные. Возможен вывод на экран монитора следующих сообщений: «Ошибка при открытии файла:» 4. Текст программы. Исходный текст программы получения информации (её модулей) приведён в приложении 1. 5. Описание результатов испытаний программы. В ходе испытания (тестирования) программы автокоррекции использовался тестовый набор текстовых данных (текстовый файл) на магнитном диске с именем lena текст которого приведён в приложении 2. Результат испытания приведён в приложении 2. Сопоставление исходных данных с полученными по программе результатами свидетельствуют и правильности программы. Приложение 1. Исходный текст программы: program ac; uses crt; var input_file,output_file,dictionary:text; in_file_name,tmp_file_name,line:string; i:word; function is_rus_alpha(symbol:char):boolean; begin if ((symbol>='А') and (symbol ((symbol>='р') and (symbol else is_rus_alpha:=false; end; function to_upper(symbol:char):char; begin if ((symbol>='а') and (symbolto_upper:=chr(ord(symbol)-32) else if ((symbol>='р') and (symbol else if ((symbol>='a') and (symbol else to_upper:=symbol; end; function str_to_upper(s:string):string; var pos:byte; rs:string;
begin rs:=''; if s>'' then for pos:= 1 to ord(s[0]) do rs:=rs+to_upper(s[pos]);
str_to_upper:=rs; end; function str_equal(s1:string; s2:string):boolean; var equal:boolean; pos,len:byte; begin equal:=true; len:=length(s1); if lenlength(s2) then equal:=false else begin if len>0 then begin for pos:=1 to len do begin if s1[pos]s2[pos] then begin equal:=false; break; end; end; end; end; str_equal:=equal; end; function is_in_dictionary(w:string):boolean; var found:boolean; dw:string; begin found:=false; reset(dictionary); w:=str_to_upper(w); while (not eof (dictionary)) do begin readln (dictionary,dw); if dw>'' then begin dw:=str_to_upper(dw); if str_equal(w,dw) then begin found:=true; break; end; end end; close(dictionary); is_in_dictionary:=found; end; function correct_word(w:string):string; var answer:char; new_word:string; begin if not is_in_dictionary(w) then begin writeln; writeln ('Слова нет в словаре (ENTER-пропустить, "Пробел"-изменить)'); answer:=readkey; case ord(answer) of 13: correct_word:=w; ord(' '): begin write('Введите правильное слово -- '); readln(new_word); correct_word:=new_word; end; end; end else correct_word:=w; end; function correct_string(s:string):string; var pos,len:integer; in_word:boolean; result,w:string; begin len:=length(s); in_word:=false; w:=''; result:=''; for pos:=1 to len do begin if is_rus_alpha(s[pos]) then begin in_word:=true; w:=w+s[pos]; end else begin if in_word then begin w:=correct_word(w); write(w); result:=result+w; in_word:=false; w:=''; end; result:=result+s[pos]; write(s[pos]); end; end; correct_string:=result; end; {$I-} begin tmp_file_name:='ОТВЕТ'; write('Введите имя обрабатываемого файла: '); readln(in_file_name); assign(input_file,in_file_name); reset(input_file); if (ioresult0) or (in_file_name='') then begin writeln ('Ошибка при открытии файла: ',in_file_name); readln; halt; end; assign(output_file,tmp_file_name); rewrite(output_file); assign(dictionary,'dic.txt'); while (not EOF(input_file)) do begin readln(input_file,line); line:=correct_string(line); writeln(output_file,line); end; close(input_file); close(output_file); end. Приложение 2 Исходный текст: По мере роспросттранения кйомпютеров и ускорения их цнтральных процесров стал популярнмы дилаоговый режим работы. Уедельные затраты машиных рисурсов аказывались нескалько выше зато ползователю предаставлялась возможность снять очереднное затруденение. Текст после проверки: По мере распространения компьютеров и ускорения их центральных процессов стал популярным диалоговый режим работы. Удельные затраты машинных ресурсов оказывались несколько выше зато пользователю предоставлялась возможность снять очередное затруднение. Приложение 3. Текст словаря (dic.txt): по мере и их снять ускорения стал режим работы затраты зато выше возможность снять Приложение 4. Блок-схема исходного текста программы.
нет
да 0 or in_file_name=’’">
reset(input_file)
assign(input_file, in_file_name)
tmp_file_name= ’ответ’


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.