Составление программа удаляющий всех комментариев из текст программы написанные на С++

Автор: Пользователь скрыл имя, 16 Февраля 2012 в 17:19, курсовая работа

Описание работы

Эволюция языков программирования с момента появления первых электронных компьютеров, построенных для выполнения расчётов траектории движения артиллерийских снарядов во время второй мировой войны, была довольно драматической. Раньше программисты работали с самыми примитивными компьютерными командами, представлявшими собой часть машинного языка. Эти команды состояли из длинных строк единиц и нулей. Вскоре были изобретены ассемблеры, которые могли отображать машинные команды в мнемоническом представлении, более понятном для человека (например, команды ADD или MOV).

Содержание

ВВЕДЕНИЕ
ГЛАВА I. Комментарии
1.1. О комментариях………………………………………………
1.2. Типы комментариев на языке С++………………………….
1.3.Алгоритм удаление всех комментариев из текста программ написанный на языке С++……………………………………………….
ГЛАВА II. Компоненты Java Swing.
2.1. О Java Swing …………………………………………………..
2.2. Нужные компоненты Java Swing…………………………….
ЗАКЛЮЧЕНИЕ`……………………………………………………………
БИБЛИОГРАФИЧЕСКИЙ СПИСОК………

Работа содержит 1 файл

Введение.doc

— 891.50 Кб (Скачать)

/ / Мой  комментарий \

     I + +;

Таким образом, я + +; заявление закомментирована.

По умолчанию  для Microsoft C в том, что Microsoft расширений включена. Используйте / Za, чтобы отключить  эти расширения.

Синтаксис Комментарии

     Обратите  внимание, что некоторые языки (сборка, FORTRAN 90, и Perl) начинают комментарии только один символ, но и других языков (Ada, C + +) используют два символа, чтобы начать комментарий. С помощью двух символов начала комментария, такие как / / или / * помогает предотвратить случайное запуск комментарии, такие как точка с запятой один символ (;) на ассемблере и восклицательный знак (!) В FORTRAN 90. Еще одно наблюдение, мы должны использовать два символа, которые в противном случае не будет иметь смысла в языке. Двойной слэш / / делает очень хорошо в этом контексте, а / * не делать так же хорошо. Например, в C мы используем много указателей. Пусть у нас есть указатель   PTR, и вы хотите использовать * указатель, чтобы получить содержимое адрес на который указывает на. Тогда вы (! Не мне) может ввести следующую строку:

   = 1 / * Указатель + 4.3;

Видите ли вы здесь проблема? "/ * Указатель + 4.3" выглядит как начало комментария. Это одно из немногих мест в C, где  пространство   имеет большое  значение. Таким образом, мы должны изменить строку на:

   = 1 /   * Указатель + 4.3;   или 

   = 1 / (* указатель) + 4.3;

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

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

   x_ptr = х / * Указатель 

Так выше пытается сделать разделение или  было случайным пространства ставится после косой черты и до звездочка свой комментарий? Эта проблема, вероятно, будет пойман быть компилятор, или, по крайней мере, я не смог придумать пример, когда компилятор не будет ее найти.

Размещение  комментариев

Где можно  размещать комментарии? Можно пойти  комментарии до и после программы? В большинстве современных языков комментарии могут идти до или после программы. Но в C++ комментариях не допускается до первого заявления. В большинстве языков комментарии могут идти в любом месте пространства будет происходить только в текстовой строке или в другой комментарий.

В то время  как предыдущие правила общее  описание, где комментарии могут  идти, это не совсем правильно. Комментарии  не могут быть размещены где он прятался в начало или конец блока  комментариев. Например:

   / * Денни Ван кисточкой 

      написал хорошую программу 

  / /    с большим мастерством и мало  ума.   * /

Таким образом, вы были достаточно умны, чтобы  посмотреть, что случилось с выше комментарий? В последней строке, имеет и конец-строки комментария, который скрывает окончание блока комментариев. Я уверен, вы это видели.

Вложенные комментарии

Одной из серьезных проблем с нескольких строк комментариев   забывает о прекращении комментарий. В C + + можно часто имеют нечто вроде  этого:

   / * Переменные набора

      = 0;

   / * Установить максимальный размер * /

      MAXS = 100;

Что неправильного  в этом коде? Вернитесь назад и  взглянуть на него еще раз. Если вы пропустили это ошибка показывает, как легко, что ошибка не заметить. Первый комментарий был ошибочно не закрыта, так что заявление "= 0;" получает до eated   (Или поглотила ) В комментарии.

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

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

Есть  несколько путей решения этой проблемы вложенных комментариев. Одним из них является компилятор может предупреждать о всех вложенных комментариев, то есть комментарий, который имеет "/ *" в нем. Второе решение запретить вложенные комментарии, что делается в некоторых языках, в том числе C + +. Если комментарий начинается с / *, то не может быть другой / * в комментарии. Еще один способ избежать ошибки не прекращение комментарий для компилятора для проверки заявления терминаторов (точка с запятой) в комментариях и обеспечивать предупреждение.

В приведенном выше неправильный код, точка с запятой в конце строки "= 0;" будет генерировать предупреждения компилятором. В противном случае, мы можем позволить вложенные комментарии, но компилятор может указывать любые комментарии, которые не вкладываются должным образом, и предупреждают о вложенных комментариев. Разные языки используют разные подходы, и каждый подход, кажется, есть свои преимущества и недостатки.

Комментарии для сокрытия кода

В то время  как комментарии, необходимые для  документирования программ, комментарии также используются для сокрытия кода   что нужно для отладки и тестирования, но не для производства. Вот закомментированные заявление:

   / / cout << "Count =" << количество << endl;

Эта строка используется для отладки, но не является необходимым для производства. Часто лучше всего сделать, это оставить отладки и тестирования отчетности в программе, но комментировать их. Комментируя изменения код не только для отладки и тестирования. Половина реализована процедура в производственной версии можно оставить только в программе, комментируя его, не снимая, а затем снова добавить код позже.

Мега-комментариев

Нам нужен  четвертый тип комментария , Мега-комментариев , Которые могут быть использованы, чтобы закомментировать код, который  содержит правильные замечания. Несколько языков имеют эту категорию.

Мало  языки имеют все четыре категории. И сплошной линии и конца строки комментариев можно сделать таким  же образом, так как все они  нуждаются является отправной показатель, так как оба они заканчиваются в конце строки. Блок комментария есть возможность указать начало и конец (разделители) замечаний. Таким образом, эти замечания могут быть использованы для коротких комментариев в середине строки кода или несколько строк комментариев. Мега-комментарии в настоящее время редко встречаются в языках, но очень полезно для комментирования кода с комментариями в коде.

В языках, которые имеют однострочные комментарии  и многострочные комментарии, тщательно  программист может создать свой собственный мега-комментариев. Например, в C + + можно использовать только одного комментария соответствии с / /. Затем с помощью / *. . . * / Для комментирования строк кода. Это позволяет избежать проблемы вложенных комментариев.

Алгоритм  удаление всех комментариев из текста программ написанный на языке С++

     Дано  текст s. В него возможно несколько строки. Нам нужно удалит все комментариев из него.

Для первого и второго типа комментарии нам нужно две булевые переменные для того чтобы показывать оно актив или нет. Первый тип для комментария (/ **/), второе для строковая комментария. Им отмечаем соответственно с first_comment и line_comment.  В начало они будет false. Комментарии возможно встретится в строковой переменной. Например:

            string  comments = “// , /*, */";

     На  этом строке они не является комментарии. Тогда нам нужно еще один переменный показывающий текущий символ принадлежит на строковые переменные или нет. Этого переменного отмечаем как string; Если его значение true тогда текущий символ принадлежат на строк, в противном случае нет.

    Проверяем  все символы текста с начало до конца, если:

1) Текущий символ равно ‘/’ и следующий символ равно ‘*’ , тогда если всех переменные равно на false то first_comment равняем на true, пропустим следующий шаг и продолжим дальше.

2) Текущий символ равно ‘*’ и следующий символ равно ‘/’  и first_comment равно true , first-comment равняем на false, пропустим следующий шаг и продолжим дальше .

3) Текущий символ равно ‘ ” ’ и first_comment и line_comment равно false тогда если string равно true то ему равняем на false, иначе ему равняем на true. Добавим текущий символ на ответ и продолжим дальше.

4) Текущий символ равно ‘/’ и следующий символ тоже равно ‘/’ , тогда если всех переменные равно на false то line_comment равняем на true, пропустим следующий шаг и продолжим дальше.

5)Не выполнено ни одной из предыдущих этапов, тогда если текущий символ не принадлежат ни одного комментарии т.е first_comment и line_comment равны false то, текущего символу добавим на ответ и продолжим дальше.

. 
ГЛАВА II . Компоненты Java Swing  библиотека.

                     О Java Swing .

Технология Swing - это UI Java-платформы. Она выступает  как программное обеспечение, управляющее  всем взаимодействием пользователя и компьютера. По существу, она служит посредником между пользователем и внутренностями компьютера. Как Swing делает это? Он предоставляет механизмы для управления аспектами UI, описанными в предыдущем разделе:

  • Клавиатура: Swing предоставляет способ перехвата пользовательского ввода.
  • Цвета: Swing предоставляет способ менять цвета, которые вы видите на экране.
  • Текстовое поле для ввода: Swing предоставляет текстовые компоненты для обработки всех повседневных задач.
  • Громкость музыки: Ну что ж ... Swing не совершенен.

В любом случае Swing предоставляет вам все инструменты, необходимые для создания вашего собственного UI.

Swing идет даже  на шаг дальше и реализует  известный шаблон проектирования c основными принципами UI. Этот шаблон  проектирования называется Модель-Представление-Контроллер (Model-View-Controller - MVC) и стремится "разделить роли". MVC хранит код, ответственный за внешний вид чего-нибудь, отдельно от кода, обрабатывающего данные, и отдельно от кода, реагирующего на взаимодействие и выполняющего изменения.

Вы смущены? Будет  легче, если я вам приведу не технический пример этого шаблона проектирования из реального мира. Представьте показ мод. Считайте, что это ваш UI и вообразите одежду данными, компьютерной информацией, которую вы представляете вашему пользователю. Теперь представьте, что этот показ мод состоит только из одного человека. Этот человек спроектировал одежду, модифицировал ее и показал на подиуме. Это не выглядит хорошо продуманным или эффективным проектом.

Теперь представьте  себе этот же показ мод, использующий шаблон проектирования MVC. Вместо одного человека, делающего все, роли разделяются. Модели для показа (естественно, не путайте с моделью как акронимом MVC) представляют одежду. Они выступают как представление. Они знают, как правильно показать одежду (данные), но абсолютно не знают, как создавать или проектировать ее. C другой стороны, дизайнер одежды работает за кулисами, изменяя ее при необходимости. Дизайнер выступает в роли контроллера. Это человек не знает, как пройтись по подиуму, но может создавать и изменять одежду. Дизайнер и модели работают с одеждой независимо друг от друга и имеют свою область компетенции.

Эта концепция  лежит в основе шаблона проектирования MVC: пусть каждый аспект UI имеет дело с тем, что он хорошо знает. Если вы все еще смущены, примеры в оставшейся части руководства, будем надеяться, смягчат это; но помните об основном принципе: визуальные компоненты отображают данные, а другие классы управляют ими.

JComponent

Базовым строительным блоком всей библиотеки визуальных компонентов Swing является JComponent. Это суперкласс каждого компонента. Он является абстрактным классом, поэтому в действительности вы не можете создать JComponent, но он содержит буквально сотни функций, которые каждый компонент Swing может использовать как результат иерархии классов. Очевидно, что некоторые концепции более важны, чем другие, но для целей этого руководства важными являются:

Информация о работе Составление программа удаляющий всех комментариев из текст программы написанные на С++