Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
annaegorova
#1

пожалуйста как это сделать? - C++

20.05.2012, 13:50. Просмотров 316. Ответов 4
Метки нет (Все метки)

Здравствуйте!

Помогите пожалуйста.
P – цель грамматики.

Грамматика:

P ® program D; B

D ® var[/B] T {, T}

Т ® I {, I}: int | I {, I}: bool

B ® begin S {; S} end

S ® I := E | if E then S else S | while E do S | read (I) | write (E) | B

E – выражение, в которое в общем случае входят арифметические (+, *, –, div, mod) и логические (or, and, not) операции и операции отношения ( >, <, >=, <= ,=, <> ), а также имена переменных (нетерминал I), логические (true, false) и целочисленные константы без знака (N). Грамматика для лексического анализа:

I ® L | I L | I R

N ® R | NR

L ® a | b | ... | z | A | B | ... |Z

R ® 0 | 1 | 2 | ... | 9

Синтаксические правила для выражения (нетерминал Е) следует описать самостоятельно, задав с помощью них следующее старшинство операций:

Ø логическое отрицание not ;

Ø мультипликативные операции *, div, mod, and

Ø аддитивные операции +, –, or

Ø операции отношения.

Все мультипликативные и аддитивные операции левоассоциативны.

Пример программы на модельном языке:

Program var a, b : int;

begin read(a); read(b);

while a <> b do begin if a < b then b := b – a else a := a – b end;

write(a) end

Контекстные условия:

1) Любое имя, используемое в программе, должно быть описано и только один раз.

2) В операторе присваивания типы переменной и выражения должны совпадать.

3) В условном операторе и в операторе цикла в качестве условия возможно только логическое выражение.

4) Операнды операции отношения должны быть целочисленными.

5) Тип выражения и совместимость типов операндов в выражении определяются по обычным правилам языка Паскаль.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2012, 13:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос пожалуйста как это сделать? (C++):

разъясните,пожалуйста, как это сделать? - C++
Дано целое число N (&gt; 0). Найти значение выражения 1.1 – 1.2 + 1.3 – … (N слагаемых, знаки чередуются). Условный оператор не...

Вычисление интергала, но входные данные сначала считываются из файла, а выходные наоборот в него записываются. Подскажите пожалуйста как это сделать - C++
Заранее спасибо за помощь.) #include&lt;iostream&gt; #include&lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;cmath&gt; using namespace std; float...

нужно создать таблицу из 3 строк и 4 столбцов и заполнить её (любой информацией,это неважно) . Как это можно сделать ? - C++
Здравствуйте.У меня возникла проблема. Помогите пожалуйста!Модуль в понедельник , про таблицы ничего не рассказывали , а преподаватель...

Подскажите пожалуйста как правильно это объяснить, прочитать - C++
#include&lt;stdio.h&gt; int main() { double y,x; printf(&quot;Vvedite zna4enie y=&quot;); scanf(&quot;%lf&quot;,&amp;y); if(y&gt;2) ...

Как это сделать - C++
У меня такой код #include &lt;iostream&gt; using namespace std; #include &lt;conio.h&gt; int main(){ char input = 'a'; double...

Как это сделать? - C++
Дан файл F, содержащий сведения об игрушках: название, стоимость, возрастные границы детей, для которых игрушка предназначена. Найти...

4
nnkut
45 / 45 / 5
Регистрация: 06.04.2012
Сообщений: 186
20.05.2012, 14:17 #2
Это батенька называется синтаксический и семантический анализатор. И это не раз, два. Пробуйте заказать. Такое часто делают.
0
annaegorova
20.05.2012, 14:28 #3
))Мы просто с братом поспорили что труднее знать программирование или изучать гражданское право. Ну он подсунул мне эту задачку. Можете мне в двух словах описать почему это так трудно решить, что бы мне было что ему ответить)спасибо.
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.05.2012, 14:34 #4
annaegorova, это вовсе нетрудно решить, это всего лишь долгая и кропотливая робота, которая за неделю до сессии не делается.

Не по теме:

Цитата Сообщение от nnkut Посмотреть сообщение
Это батенька называется синтаксический и семантический анализатор
это по сути, а по факту это называется прогулять весь курс "разработки трансляторов"

0
nnkut
45 / 45 / 5
Регистрация: 06.04.2012
Сообщений: 186
20.05.2012, 14:34 #5
Это не то что очень сложно, но довольно большой объем работы. Хорошо прораммировать наверное также тяжело как и хорошо изучать гражданское право.
0
20.05.2012, 14:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2012, 14:34
Привет! Вот еще темы с ответами:

Как это сделать? - C++
Как написать прогу, которая бы указывала количество слов в предложении, вводимое пользователем?

Как это сделать ? [c++] - C++
Вот допустим у меня есть функция inline void fun(char* аргумент1, char *аргумент2) и есть 2 функция fun(&quot;аргумент1 &quot;,...

Как это сделать? - C++
Нужно заменить цифры в числе на ноль, если цифра равна &quot;a&quot;. А затем вывести получившееся число. число N - натуральное, а - является...

как это сделать - C++
помогите, погибаю!!! тема: заставка(screan sever)? сменяющая картинки из списка особенности: поддержка эффектов смены, формирование...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru