Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Int isalpharus(char c);





Int isspace1(char c);

Int isdigit1(char c);

 

void main(int ac, char*av[])

{

clrscr();

if(! ac)

puts(" Hет исходного файла");

PF=fopen(av[1], " r");

padres=fopen(" getrez.dan", " w");

 

if(! PF)

puts(" Файл не открывается");

else

get();

}

Void get()

{

while(nch! =EOF)

{

while(isspace1(nch))

{

if(nch=='\n')

nst++;

nch=getc(PF);

}

if(isdigit1(nch))

number();

else

if(isalpharus(nch))

word();

else

if(nch=='('||nch==')'||nch==', '||nch=='; '||nch=='='||nch=='+'||nch=='-'||nch=='*'||nch=='/'||nch=='%'|| nch=='{'||nch=='}')

{

lex=nch;

nch=getc(PF);

}

}

if(nch==EOF)

lex=EOF;

else

puts(" Hедопустимый символ");

return;

}

Void number()

{

for(lval=0; isdigit1(nch); nch=getc(PF))

lval=lval*10+nch-'0';

lex=NUMB;

return;

}

void word()

{

static int cdl[]={BEGINL, ENDL, IFL, THENL, WHILEL, DOL, RETRL, READL,

PRITL, INTL, CONSTL, IDEN, NUMB};

static char*serv []={" {", " }", " если", " тогда", " пока", " делать", " возврат", " читать", " печатать", " целый";, " const" };

int i;

char tx[40];

char*p, *add();

for(p=tx; isdigit1(nch)||isalpharus(nch); nch=getc(PF))

*(p++)=nch;

*p='\0';

for(i=0; i< 11; i++)

if(strcmp(tx, serv[i])==0)

{

lex=cdl[i];

return;

}

lex=IDEN;

lval=(int)add(tx);

printf(" Адрес для %s =%p\n", tx, lval);

fprintf(padres, " Адрес для %s =%p\n", tx, lval);

 

return;

}

char TNM[400];

char*ptn=TNM;

 

char*add(char*nm)

{

char*p, *strcpy();

for(p=TNM; p< ptn; p+=strlen(p)+1)

if(strcmp(p, nm)==0)

return p;

if((ptn+=strlen(nm)+1)> TNM+400)

{

puts(" Переполнение таблицы");

exit(0);

}

return(strcpy(p, nm));

}

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

Int isalpharus(char c)

{

Int v;

if(isalpha(c)||c=='а'||c=='б'||c=='в'||c=='г'||c=='д'||c=='е'

||c=='ж'||c=='з'||c=='д'||c=='е'||c=='ж'||c=='з'||c=='и'|| c=='й'||c=='к'||c=='л'||c=='м'||c=='н'||c=='о'||c=='п'|| c=='р'||c=='с'||c=='т'||c=='у'||c=='ф'||c=='х'||c=='ц'||c=='ч'||c=='ш'||c=='щ'||c=='ы'||c=='э'||c=='ю'||c=='я'||c== 'ь')

v=8;

Else

v=0;

Return v;

}

Int isspace1(char c)

{

Int v;

if(c=='\ '||c=='\n'||c=='\t'||c=='\f')

v=1;

Else

v=0;

Return v;

}

Int isdigit1(char c)

{

Int v;

if(c=='0'||c=='1'||c=='2'||c=='3'||c=='4'||c=='5'||c=='6'||c=='7'||c=='8'||c=='9')

v=2;

Else

v=0;

Return v;

}


Варианты заданий для курсовой работы

 

Вариант 1

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором все ключевые слова переведены на русский язык и вместо begin и end используются соответственно левая и правая фигурные скобки. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 2

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором все ключевые слова переведены на украинский язык и вместо begin и end используются соответственно левая и правая фигурные скобки. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 3

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором все ключевые слова переведены на русский язык и вместо begin и end используются слова start и finish. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

 


Вариант 4

Составить программу на СИ для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова переведены на украинский язык и вместо begin и end bиспользуются слова start и finish. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 5

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором все ключевые слова переведены на русский язык, а вместо Int используется Var. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 6

Составить программу на СИ для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова переведены на украинский язык и вместо слова NUMB используется DIGIT. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 7

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова BEGIN, END, READ, PRINT заменены соответствующими словами на русском языке, а вместо int используется var. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 8

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова WHILE, DO, END, IF, THEN переведены на русский язык, а точка с запятой заменена двоеточием. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 9

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором все ключевые слова переведены на русский и вместо точки с запятой используется символ @. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 10

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором все ключевые слова переведены на украинский язык, а вместо Int используется Var. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 11

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова BEGIN, END, READ, PRINT переведены на русский язык, а вместо точки с запятой используется символ @. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 12

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова RETURN, IF, THEN, WHILE, DO переведены на украинский язык, а вместо END используется символ @. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 13

Составить программу на СИ для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова WHILE, DO, END, IF, THEN переведены на украинский язык, а вместо int используется слово var. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 14

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором все ключевые слова переведены на украинский язык, а вместо точки с запятой используется символ ^. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

 

Вариант 15

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором BEGIN, END заменены на { и }, а все остальные ключевые слова переведены на украинский язык. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 16

Составить программу на СИ для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова переведены на русский язык, а вместо точки с запятой используется символ #. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 17

Составить программу на СИ для лексического и синтаксического анализов программы на модифицированном языке, в котором BEGIN и END заменены соответственно на {и }, а READ, PRINT, RETURN переведены на русский язык. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 18

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова read, print, return переведены на украинский язык, а вместо end служит символ @. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 19

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором BEGIN, END заменены соответственно на { и }, а все остальные ключевые слова переведены на русский язык. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 20

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова переведены на украинский язык, а вместо точки с запятой используется символ #. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 21

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором все ключевые слова переведены на русский язык, а вместо Int используется Var. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

 

Вариант 22

Составить программу на СИ для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова переведены на украинский язык и вместо слова NUMB используется DIGIT. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 23

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова BEGIN, END, READ, PRINT заменены соответствующими словами на русском языке, а вместо int используется var. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 24

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова WHILE, DO, END, IF, THEN переведены на русский язык, а точка с запятой заменена двоеточием. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 25

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором переведены на русский язык и вместо точки с запятой используется символ @. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 26

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором все ключевые слова переведены на украинский язык, а вместо Int используется Var. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 27

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова BEGIN, END, READ, PRINT переведены на русский язык, а вместо точки с запятой используется символ @. Вывести в файл и на экран таблицу идентификаторов и их адресов.

 

Вариант 28

Составить программу на Си для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова RETURN, IF, THEN, WHILE, DO переведены на украинский язык, а вместо END используется символ @.

 

Вариант 29

Составить программу на СИ для лексического и синтаксического анализов программы на модифицированном языке SPL, в котором ключевые слова WHILE, DO, END, IF, THEN переведены на украинский язык, а вместо int используется слово var.

 

 


Вариант 30

Составить программу на Си для лексического анализа программы на модифицированном языке SPL, в котором все ключевые слова переведены на украинский язык, а вместо точки с запятой используется символ ^.

 







Дата добавления: 2014-11-12; просмотров: 606. Нарушение авторских прав; Мы поможем в написании вашей работы!




Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


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


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

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

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Функциональные обязанности медсестры отделения реанимации · Медсестра отделения реанимации обязана осуществлять лечебно-профилактический и гигиенический уход за пациентами...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Studopedia.info - Студопедия - 2014-2026 год . (0.013 сек.) русская версия | украинская версия