Подробнее о заявке
Предмет C/C++
Заявка номер Private
Стоимость 1500 руб.
Уникальность 70%
Объем 30 стр.
Дата заявки: 04.04.2014
Выполнено: 10.04.2014
Лабораторная работа по C/C++:

«Реализовать программу рекурсивного спуска»

Задание

Цель работы

Целью данной лабораторной работы является применение на практике алгоритма рекурсивного спуска на основе библиотеки обработки входной строки.

Инструменты

Для выполнения данной лабораторной работы Вам потребу-ется любой компилятор языка С, способный генерировать 32-раз-рядные программы для той ОС, с которой Вы работаете. Для ОС Windows рекомендуется использовать бесплатную среду разра-ботки Microsoft Visual C++ Express. Основная Ваша работа будет заключаться в формировании программы перевода выражения в постфиксную запись, которая была разобрана на лекции. Для первичной обработки строк пред-лагается использовать модуль match.

Процедура рекурсивного спуска prim() { int s; if (match("(")) { if (expr()==0) return 0; if (!match(")")) { cerror(E_RIGHT_BRACKET); return 0; } } else if (a=numb(&s)) { printf(”%d ”, s); } else { cerror(E_EXPRESS_SINTAX); return 0; } return 1; } mult() { if (prim()==0) return 0; while (1) { if (match("")) { if (prim()==0) return 0; printf(” ”); } else if (match("/")) { if (prim()==0) return 0; printf(”/ ”); } else break; } return 1; } add() { if (mult()==0) return 0; while (1) { if (match("+")) { if (mult()==0) return 0; printf(”+ ”); } else if (match("-")) { if (mult()==0) return 0; printf(”- ”); } else break; } return 1; }

Модуль match Данный модуль предназначен для первичной обработки строк и позволяет выделять из строки лексемы. Здесь описаны интерфейсные функции модуля match.

void match_init(char* line); Процедура инициализации. Разбор строки всегда начинается с вызова этой функции. В качестве параметра передается входная строка.

void match_done(void); Процедура деинициализации. После разбора строки необхо-димо вызвать данную функцию.

int match(char *lit); Поиск указанной подстроки в начале входной строки. Если есть, то найденная подстрока удаляется и функция возвращает 1.

int amatch(char *lit, int len); Аналогично предыдущему, но дополнительно указывается длина подстроки. Это используется для того, чтобы различать выражения типа ’for’ и ’formula’, где первое, это ключевое слова, а второе — идентификатор.

int symname(char *sname); Ищет идентификатор (метку) во входной строке. Метка на-чинается с подчеркивания или буквы, далее следуют буквы, под-черкивание или цифры.

int number(int val[]); Ищет целое знаковое число во входной строке

void skipblanks(void); Пропускает последовательность пробельных символов (пробел, табуляция) во входной строке.

skipchars(void); Пропускает лексемы и следующие пустые символы. Ис-пользуется для обработки ошибок.

Задание

  1. Реализовать программу рекурсивного спуска выражения и перевода в постфиксный вид.
  2. Реализовать главную программу, считывающую строки из входного потока и выдающую в конце сообщения «OK» в случае успешного разбора или «FAIL» в случае неуспешного разбора.
  3. Добавить в процедуру разбора задание по номеру вариан-та.
  4. (Дополнительное.) Изучить разработку make файлов и разработать make файл для сборки проекта из двух модулей.
  5. (Дополнительное.) Функция разбора вещественного числа в инженерной форме.

Вариант 3. Строки. Обеспечить поддержку строки. Строки записываются в кавычках. Дополнительно необходимо обеспечить ввод кавычки в виде последовательности из двух кавычек. На выходе строки выдавать в следующем формате:

string("")

где строка есть последовательность символов. Кавычка, если она была в исходной строке, должна быть заменена последовательностью символов \".

Например

"Hello World!" на выходе string("Hello World!") "Hello "

Читать больше
Срок выполнения:
  • Бесплатные корректировки
  • Шпаргалки в подарок!
  • Предоплата всего 25%
от 2 дней
Похожие заявки по c/c++

Тип: Лабораторная работа

Предмет: C/C++

Численное интегрирование

Стоимость: 1188 руб.

Тип: Лабораторная работа

Предмет: C/C++

Подпрограммы

Стоимость: 1488 руб.

Тип: Лабораторная работа

Предмет: C/C++

Программирование

Стоимость: 1260 руб.

Тип: Лабораторная работа

Предмет: C/C++

Лабораторные работы по алгоритмам и структурам данных

Стоимость: 1416 руб.

Тип: Лабораторная работа

Предмет: C/C++

Структуры и алгоритмы обработки данных в ЭВМ 040409

Стоимость: 1380 руб.

Тип: Лабораторная работа

Предмет: C/C++

Теория вычислительных процессов. ТУСУР. Романенко

Стоимость: 1416 руб.

Тип: Лабораторная работа

Предмет: C/C++

c++ Одна задача

Стоимость: 1476 руб.

Закажи Лабораторную работу с полным сопровождением до защиты!
Думаете, что скачать готовую работу — это хороший вариант? Лучше закажите уникальную и сдайте её с первого раза!

Отзывы студентов

Иван 14.05.2023
Работа выполнена в срок, а так же доработка была быстрой. Спасибо!!!
Ирина 03.11.2022
Спасибо большое за оперативную и качественную работу!!!
Алина 01.10.2022
Слишком круто. 1000000/10
Алексей 07.04.2022
Сделали качественно и быстро, большое спасибо. Отличный сервис
Артем 03.12.2020
Очень крутые ребята
Динара 03.07.2020
Работа выполнена отлично, спасибо!
Артем 26.04.2020
5
Евгений 03.04.2020
Работа была прислана в срок, всё устроило.
Влад 28.12.2019
Спасибо! Все супер!
Ольга 03.09.2019
5 баллов. Работа зачтена. Без коментариев. Спасибо.
Лайфхаки по написанию презентаций (PPT, PPS)
Оформление презентации к дипломной работе по ГОСТ: пример оформления, требования, образец 2024

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

Читать дальше
Структура, содержание и оформление лабораторной, практической работы по химии, физике: ГОСТ, общие правила

Оформление лабораторной или практической работы по ГОСТу по физике, химии или любому другому предмету предполагает соблюдение определенных требований и рекомендаций, о которых мы нередко упоминали на нашем . Чтобы сдать работу с первого раза, нужно четко знать не только сам предмет, но и как оформи…

Читать дальше