Граматика арифметичних виразів

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Дискретна математика

Частина тексту файла (без зображень, графіків і формул):

Умова задачі: Побудувати грамматику арифметичних виразів, що можуть мати лише ідентифікатори А В С та знаки операції додавання. Документація: Граматика – це сукупність правил, що формують слова та вирази мови Граматика має настуну структуру G = < ∑, N, P, S> Де ∑ - алфавіт, N – множина нетермінальних символів, P – правила виводу, S – аксіома. Наприклад: При запуску наша програма виводить нам на екран / Ввівши текст, вона виводить результат / Нехай ми продовжимо роботу і введем новий текст, після чого вона виводить нам результат / Наша програма завершена. Код програми: Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Lab_5 { class Program { private static string temp; private static string temp1; static void Main(string[] args) { do { Grammar grammar = new Grammar(); int count; bool main_pr = true; Console.WriteLine("Vvedid text:"); string str; str = Console.ReadLine(); count = str.Count(); if (grammar.First_Last_Character(str, 0)) { } else main_pr = false; for (int i = 0; i < count - 1; i++) { if (grammar.Main_Character(str, i, i + 1)) { } else main_pr = false; } if (grammar.First_Last_Character(str, count - 1)) { } else main_pr = false; if (main_pr) Console.WriteLine("Vidpovidaje hramatyci aryfmetythnych vyraziv"); else Console.WriteLine("Ne vidpovidahe hramatyci aryfmetythnych vyraziv"); Console.WriteLine("Povtorennja vvedennja ? (vvedit tak dlja povtorennja)"); temp = Console.ReadLine(); temp1 = "tak"; } while (String.Compare(temp, temp1) == 0); } } } Gramar.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Lab_5 { class Grammar { public bool First_Last_Character(string obj, int j) { if (obj[j] != 'A' && obj[j] != 'B' && obj[j] != 'C') { return false; } else return true; } public bool Main_Character(string obj, int rob, int next) { if (obj[rob] == 'A' || obj[rob] == 'B' || obj[rob] == 'C') if (obj[next] != '+') return false; else { }; if (obj[rob] == '+' && obj[next] != 'A' && obj[next] != 'B' && obj[next] != 'C') return false; else { }; return true; } } }
Антиботан аватар за замовчуванням

22.09.2013 12:09-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!