|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Практическая часть. 2.1. Цель работы и исходные данные2.1. Цель работы и исходные данные. В работе ставится задача проектирования программы ЛА для исходной программы на языке, являющемся подмножеством языка Паскаль. Исходными данными для работы являются: ¨ исходный текст программы согласно варианту (см п. 2.3); ¨ операционная среда программирования: персональный компьютер модели IBM PC, операционная система MS DOS или Windows 95, система программирования на языке Паскаль или Си; ¨ метод проектирования ЛА: нисходящее структурное и модульное программирование.
2.2. Общие технические требования. 1. Программа ЛА должна состоять из основной программы и набора процедур (функций), реализующих отдельные шаги лексической обработки. 2. Входной информацией для ЛА является исходный текст анализируемой программы согласно заданному варианту. Текст должен быть подготовлен в виде короткой отладочной программы и записан в файл с выбранным именем. 3. Выходной информацией ЛА являются: а) таблицы выделенных лексем в символьном представлении; б) таблица кодов лексем анализируемой программы. Все таблицы должны выводиться на стандартные устройства вывода (экран, принтер) и храниться в виде файлов. 4. Программа ЛА должна формировать и выдавать на стандартные устройства вывода диагностические сообщения при обнаружении во входном тексте ошибочных лексем.
2.3. Варианты заданий. Вариант 1 PROGRAM NOMER_l; VAR X,Y,Z: INTEGER; BEGIN 1: READ(X,Y); Z:=X*20+Y/X-100; IF Z>0 THEN WRITE(Z,X)
Вариант 2 PROGRAM NOMER_2; VAR I: INTEGER; S: REAL; BEGIN S:= 0; 1: FOR I:= 1 TO 50 DO S:= S+1/I; IF S*S <> 10 THEN ELSE GOTO 1 END. Вариант 3 PROGRAM NOMER_3; VAR K,J: INTEGER; S: REAL; BEGIN READ(S); IF S = 0.0 THEN GOTO 10; FOR J:= 1 TO 20 DO BEGIN S:=S+J;K:= J END; 10: WRITE(S) END. Вариант 5 PROGRAM NOMER_5; VAR I,K,SUM: INTEGER; BEGIN SUM:= 0; 10: FOR I:= 20 TO 100 DO BEGIN READ(K); SUM:= SUM+K END; IF S >= 200 THEN WRITE(SUM) ELSE GOTO 10 END. Вариант 7 PROGRAM NOMER_7; VAR X,I: INTEGER; M: REAL; BEGIN READ(X); 20: M:= 0.0; FOR I:= 1 TO X+20 DO M:= M+I*X; IF M+20.5 >= X-10 THEN GOTO 20 ELSE WRITE(M,X) END. WRITE(S) ELSE GOTO 1 END. Вариант 4 PROGRAM NOMER_4; VAR A, B, C, D: REAL; I: INTEGER; BEGIN FOR I:=1 TO 10 DO BEGIN 1: READ(A,B,C); D:= B*B-4*A*C; IF D = 0 THEN GOTO 1 ELSE GOTO2; END; WRITE(D); 2 : END. Вариант 6 PROGRAM NOMER_6; VAR A,B,C,D: REAL; I: INTEGER; BEGIN 1: READ(A,B,C); FOR I:= 0 TO 50 DO D:=(A*A-I/C)*B+20; IF D*D <> 10.5 THEN GOTO 1 ELSE WRITE(D,A,B); IF D <= 20 THEN GOTO 1 END. Вариант 8 PROGRAM NOMER_8; VAR N,I,J,M: INTEGER; BEGIN 1: READ(N); M:= 0; FOR I:= 2 TO N DO BEGIN J:= I*I; M:= M+J END; IF M+J >= J+100 THEN WRITE(M,J) ELSE GOTO 1 END. Вариант 9 PROGRAM NOMER_9; VAR I: INTEGER; Z,R: REAL; BEGIN READ(Z); FOR I:= 1 TO 100 DO BEGIN R:= Z*Z+I-10.0; IF R*R-Z <= Z*R THEN GOTO 1 END; 1: WRITE(R) END. Вариант 11 PROGRAM NOMER_11; VAR X,Y,XX: REAL; I: INTEGER; BEGIN 1: READ(X); XX:= 0.1+X; FOR I:= 1 TO 100 DO Y:=0.1*ХХ-2.12/I; IF Y-X*X <= 20.0 THEN WRITE(Y,X) ELSE GOTO 1 END. Вариант 13 PROGRAM NOMER_13; VAR S,X,Y: REAL; I: INTEGER; BEGIN READ(X,Y); S:= 0.0; IF X*X*Y-Y < 1.0/X THEN GOTO 1 ELSE GOTO2; 1: S:= 1.0; 2: FOR I:= 0 TO Y-2 DO S:= S+(Y*X)/I; WRITE(X,Y,S) END. Вариант 10 PROGRAM NOMER_10; VAR A,B,C,X,P: REAL; J: INTEGER; BEGIN A: =3.1415; 1: READ(B,X,C); FOR J:= 1 TO X*X-C DO BEGIN P:= (А+В-С)/(Х-20.14); WRITE(P,J) END; IF P <= 255.5 THEN GOTO 1 END. Вариант 12 PROGRAM NOMER_12; VAR I,J: INTEGER; A,R: REAL; BEGIN 20: READ(A); FOR I:= 2 TO 100 DO FOR J:= 0 TO I-1 DO R:=A*3.141+1.0/I; IF R+A*A <= R-A THEN GOTO 20 ELSE WRITE(R,A) END. Вариант 14 PROGRAM NOMER._14; VAR A,B,X,Y: REAL; I: I NTEGER; BEGIN 1: READ(A,B,X,Y); FOR I:= 1 TO X*X-100 DO BEGIN X:= (X+1.12)*A; Y:= (Y-2.15)/B END; IF X+Y <= 20.5 THEN WRITE(X,Y) ELSE GOTO 1 END. Вариант 15 PROGRAM NOMER_15; VAR A,I,N: INTEGER; BEGIN 10: READ(N); FOR I:= 1 TO N+2 DO BEGIN N:= N-I*I; A:= 4*N+50 END; IF N-A <= A/10 THEN A:= N*N ELSE GOTO 10; WRITE(A,N) END. Вариант 17 PROGRAM NOMER_17; VAR I,J,D: INTEGER; BEGIN 1: READ(I,D); IF D*D >= I THEN FOR I:= 3 TO D-I DO BEGIN J:= I-10*D; WRITE(J,I) END ELSE GOTO 1 END. Вариант 19 PROGRAM NOMER_19; VAR X,Y,Z: REAL; I: INTEGER; BEGIN READ(X,Y); Z:= 20*X*X-Y/X; 1: X:= 0.0; FOR I:= 1 TO 100 DO BEGIN X:= Z+I*I; Z:= Z+0.1 END; IF X+Y <= Z THEN GOTO 1 ELSE WRITE(X,Y) END. Вариант 16 PROGRAM NOMER_16; VAR I: INTEGER; X, Y: REAL; BEGIN X:= 3.81; Y:= 5.53; 20: IF X+20.0 <= X*1.5 THEN GOTO 10; FOR I:= 1 TO 50 DO Y:= Y*(X+1.0-I); READ(X,Y); GOTO 20; 10: WRITE(X,Y) END. Вариант 18 PROGRAM NOMER_18; VAR S,A: REAL; D,I: INTEGER; BEGIN 1: D:= 20; 2: READ(A); FOR I:= 0 TO D DO BEGIN S:= 3.141*I-A; WRITE(S) END; IF D >= S THEN GOTO 1 ELSE GOTO 2 END. Вариант 20 PROGRAM NOMER_20; VAR А,В, X: REAL; I,C,D: INTEGER; BEGIN READ(A,B,X); IF A-B>=B+X THEN GOTO 1 ELSE GOTO2; 1: C:= 0; D:= A*B+X/1.5; 2 : FOR I:= 1 TO 200-I DO BEGIN C:= 10; D:= A*A+X/2. 0 END; WRITE(C,D) END. 2.4. Порядок выполнения работы. Для заданного преподавателем варианта исходного текста выполнить следующие действия: 1. Определить основные типы лексем и способ кодирования лексем в выходной таблице ЛА. 2. Выполнить проектирование структуры программы ЛА, определив действия в основной программе, количество и операции, выполняемые в процедурах и функциях. Установить взаимные связи между процедурами и описать их входные и выходные параметры. 3. Составить детализированные блок-схемы алгоритмов для основной программы и каждой процедуры (функции). 4. Подготовить исходные тексты всех частей программы ЛА, выполнить их компиляцию и первичную отладку с помощью отладочной программы и фрагмента текста исходной программы. 5. Выполнить комплексную отладку всей программы ЛА с использованием исходного анализируемого текста. Проверить правильность формирования всех таблиц ЛА. 6. Произвести тестирование программы ЛА путем внесения различных изменений в исходный анализируемый текст и контроля правильности формирования таблиц ЛА, а также содержания диагностических сообщений программы. Изменениядолжны охватывать все случаи отклонений в структурах лексем заданного исходного текста.
2.5. Содержание отчета по лабораторной работе. В отчете необходимо представить: 1. Исходный текст анализируемой программы. 2. Блок-схемы и исходные тексты основной программы и всех процедур (функций). 3. Результаты отладки и тестирования программы ЛА в виде распечатанных текстов отладочных программ и тестовых примеров. [1] Выражение в фигурных скобках может либо отсутствовать, либо итеративно повторяться n ≥1 раз Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.023 сек.) |