Скачиваний:
9
Добавлен:
20.05.2014
Размер:
172.03 Кб
Скачать

2) Постановка задачи .

  • Дано :

Fname1 - имя входного файла , содержащего текст программы на языке Паскаль ( текст программы разрабатывается в соответствии с вариантом и должен включать различные виды каждого допустимого оператора ).

  • Требуется :

Fname2 – имя выходного файла , содержащего конвертированный текст программы на языке Си ;

koper1 – число операторов в исходной программе ;

koper2 - число операторов в полученной программе ;

ker - число ошибочных операторов в полученной программе ;

  • Связь требуемого с исходными данными

Синтаксис оператора на языке Паскаль

Синтаксис оператора на языке Си

1

begin

{

2

end

}

3

var

.

4

Const

A:real=10,5;

B,cd:integer=7;

Const

Float a=10,5;

Int b,cd=7;

5

v1,v2,v3:real

float v1,v2,v3;

где v1,v2,v3-идентификаторы переменных

6

C1,c2,c3:integer

int v1,v2,v3;

где v1,v2,v3-идентификаторы переменных

7

Ab:array[1..100] of integer

Cd:array[1..10] of real

Int ab[100]

Float cd[10]

8

v:=ae

Оператор присваивания

v=ae

где ae-арифметическое выражение

v –идентификатор переменной

10

For i:=0 to 10 do

For i:=10 downto 0 do

For (i=0;i<10;i++)

For (i=10;i>0;i--)

11

Read (a,b,c)

Readln (d,e)

Scanf(“%f %f %f”,&a,&b,&c)

Scanf(“%f %f”,&d,&e);

Printf(“\n”);

12

Function fun(a,b:integer;cd:real):real

Int fun(int a,b;float cd)

13

(*qwerty*)

{qwer

ty}

комментарии:

/*qwerty*/

/*qwer

ty*/

3) Внешняя спецификация

3.1 Вход

Исходный текст программы готовится заранее с помощью текстового редактора и хранится в текстовом файле , имя которого вводится в ответ на запрос программы :

Enter File Name :<имя входного файла>

3.2 Выход

Выходной текст формируется конвертором и запоминается в текстовом файле , имя которого вводится в ответ на запрос программы :

Enter Target File Name :<имя выходного файла>

Основной результат работы программы хранится в выходном файле в виде текста программы , пригодном для компиляции , а также выводится таблица :

число операторов в исходной программе =<число>

число операторов в полученной программе =< число >

число ошибочных операторов =< число >

результат хранится в выходном файле <имя выходного файла>

3.3 Аномалии

При отсутствии входного файла выводится сообщение :

File <имя файла> was not found ! Press any key to continue

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

Возможные ошибки :

ошибки

ее причина

сообщение

0

без ошибок

2

в операторе for

in for

3

неизвестная причина

unknown

4

в константах

in const

5

в массиве

in array

6

в функции

in function

8

ошибка в арифметическом выражении

in assigment

4) Метод решения задачи .

Идентификация операторов исходного текста осуществляется путем анализа ключевого слова . Если допустимое ключевое слово отсутствует и строка не является комментарием , то предполагается , что соответствующий оператор является оператором присваивания .

Соседние файлы в папке kurs01