Панель инструментов Debug

Чтобы панель Debug вывести на экран, надо выбрать пункты меню View, Toolbars, Debug. Кнопки панели Debug имеют всплывающие подсказки, поясняющие их назначение.

 

Отладка

Рассмотрим некоторые способы запуска приложения в режиме отладки.

1. Пункт Debug (Отладка), Start Debugging (Начать отладку) или < F5 > (также доступен через кнопку на панели инструментов Debug) просто исполняет программу до первой точки прерывания (если она есть), где выполнение останавлива­ется. После просмотра всего, что нужно, в этой точке прерыва­ния, выбор того же пункта меню или щелчок на кнопке панели инструментов вызывает продолжение исполнения программы до следующей точки прерывания. Подобным образом можно перемещаться по программе от одной точки прерывания к дру­гой, в каждой просматривать значения критичных переменных и изменять их значения при необходимости. Если точек преры­вания нет, то запуск отладчика таким способом просто исполняет всю программу без остановок. То, что отладчик запущен подобным способом, вовсе не означает, что нужно продолжать его использовать; при каждом останове исполнения программы можно выбрать любой другой способ перемещения по коду.

2. Пункт Debug (Отладка), Step Into (Войти) (или < F11 >), также доступный в виде кнопки на панели инструментов Debug, выполняет программу по одному оператору за раз, заходя в каждый вложенный блок кода, включая каждую вызываемую функцию. Это может оказаться весьма утомительным, если использовать такой режим отладки на протяжении всего процесса, потому что, например, при этом будет выполняться весь код библиотечных функций, что вряд ли интересно, если только не заниматься их разработкой. Некоторые библиотечные функции написаны на языке ассемблера, включая несколько функций, поддерживающих потоковый ввод-вывод. Функции на языке ассемблера выполняются по одной машинной инструкции за раз, что, как и можно ожидать, займёт значительное время.

3. Пункт Debug (Отладка), Step Over (Перешагнуть) (или < F10 >), также доступный в виде кнопки на панели инструмен ­ тов Debug, исполняет операторы по одному, выполняя весь код, используемый функциями, которые могут быть вызваны внутри оператора, как сплошной поток операций, без остановок.

4. Можно щёлкнуть правой кнопкой мыши на любой строке кода и выбрать из контекстного меню пункт Run to Cursor (Выполнить до курсора). Программа будет запущена до строки, в которой находится курсор, и затем её выполнение будет прервано, что позволит просмотреть или изменить переменные программы. Эта опция для запуска в режиме отладки отсутствует в меню Debug.

При старте отладчика ниже окна редактора появляются дополнительные окна с вкладками (наряду с окном Output). Можно определить, что должно отображаться в любой момент времени в каждом из этих окон, выбрав требуемую вкладку. Можно настроить, какие именно окна должны появляться при запуске отладчика. Полный список всех окон отображается в выпадающем меню Debug, Windows (Отладка, Окна).

Окно Autos (Автоматические) слева показывает текущие значения автоматических переменных в контексте функции, выполняемой в данный момент.

Окно Call Stack (Стек вызовов) идентифицирует вызовы функций, находящиеся в процессе выполнения, но сейчас важнее вкладка Output (Вывод) в том же окне.

При отладке жёлтая стрелка в окне редактора указывает на то, что это – текущая точка выполнения программы. Пока не выполнено объявление переменной, невозможно ни просмотреть её значение, ни изменить его.

Во избежание пошагового исполнения всего кода в потоке функций, занимающихся вводом-выводом, используйте средство Step Over (или < F10 >), чтобы продолжить выполнение до следу­ющей точки прерывания. Это позволит выполнить операторы функции main() по одному, и выполнит весь код, используемый потоковыми операциями (или любыми другими функциями, которые могут быть вызваны внутри оператора) без остановок.

 

Просмотр значений переменных

Определение переменной, значение которой необходимо просматривать, называется установкой наблюдения (setting a watch) над переменной. Установить наблюдение можно над переменными, уже объявленными в программе.

Окно Autos содержит пять вкладок, включая вкладку Autos, отображаемую в данный момент.

- Вкладка Autos (Автоматические) показывает перемен­ные класса памяти auto, используемые в текущем операторе и его непосредственном предшественнике (в операторе, указанном жёлтой стрелочкой в окне редактора и предшествующем ему).

- Вкладка Locals (Локальные) показывает значения переменных, локальных по отношению к текущей функции. В общем случае новые переменные входят в область видимости по мере продвижения по программе и покидают её при выходе из блока, в котором они объявлены.

- Вкладка Threads (Потоки) позволяет просматривать и управлять потоками в многопоточных приложениях.

- Вкладка Modules (Модули) содержит детали модулей кода, выполняемых в данный момент. Если приложение терпит крах, можно определить, в каком модуле это произошло, сравнив адрес, по которому произошел крах, с диапазонами адресов в колонке Address (Адрес) этой вкладки.

- На вкладке Watch1 (Наблюдение1) можно добавлять переменные, за которыми необходимо наблюдать. Щёлкните на строке в окне (под Name) и введите имя переменной. Также можно наблюдать за значением выражения С++, которое вводится точно так же, как и имя переменной. Можно добавлять до трёх дополнительных окон Watch (Наблюдение) через пункт меню Debug, Windows, Watch.

Около каждой переменной, для которой может быть отображена дополнительная информация (для таких, как массив, указатель или объект класса), размещён знак плюса. Можно щёлкнуть по значку "плюс" для раскрытия представления переменной. Например, если переменная – массив, то после щелчка по плюсу на экране появятся все элементы массива со своими значениями.

Окно Autos автоматически предоставляет всю необходимую информацию, отображая как значение адреса памяти, так и значе­ние данных, находящихся по этому адресу. Целые значения могут отображаться либо в десятичном, либо в шестнадцатерич­ном виде. Для переключения между ними щёлкните правой кнопкой мыши на вкладке Autos и выберите нужный пункт в контекстном меню.

 

Просмотр переменных в окне редактора

Если нужно узнать значение одной переменной, и эта переменная в данный момент видна в панели редактора, то простейший способ сделать это – на секунду установить курсор над именем этой переменной. Появится всплывающая подсказка с текущим значением переменной. Так же можно увидеть более сложные выражения, выделив их и установив курсор над выде­ленной областью. Опять-таки, всплывёт краткая подсказка, ото­бражающая значение. Наведение курсора на выделенную область покажет текущее значение выражения. Обратите внимание, что это не работает, если выражение не является завершённым.

 

Изменение значения переменной

Окно Watch1 позволяет изменять значения переменных, за которыми ведётся наблюдение. Можно использовать это в ситуациях, когда ясно, что отображаемое значение переменной неверно (возможно, из-за наличия ошибок в программе либо из-за незавершённости кода). Если установить корректное значение переменной, то программа не рухнет немедленно, и можно будет обнаружить ещё несколько дополнительных ошибок. Если код включает цикл с большим количеством итераций (скажем, 30000), то можно установить счётчик цикла равным 29995, чтобы пройти несколько последних итераций вручную и убедиться, что цикл завершается корректно. Другое полезное применение этой возможности – установка во время выполнения программы значения переменной, вызывающего ошибку. Это позволит проверить работу кода, обрабатывающего ошибки, что иногда вообще не удаётся сделать никаким другим способом.

Чтобы изменить значение переменной в окне Watch1, выполните двойной щелчок на отображаемом значении пе­ременной и введите новое значение. Если изменяемая переменная является элементом массива, то необходимо развернуть массив, щёлкнув на символе + рядом с его именем, и затем изменить значение нужного элемента. Значение целочисленной перемен­ной можно вводить в десятичной, шестнадцатеричной и восьме­ричной системах счисления. Шестнадцатеричное число должно иметь префикс 0x (например, 0xA5 или 0x148). Восьмеричное число должно иметь префикс ноль (например, 0234).

 

Завершение отладки

Для окончания отладки надо выбрать пункты меню Debug, Stop Debugging или нажать < Shift+F5 >.

 

Рассмотрим отладку на примере программы.

 

// Листинг 1.3

#include <iostream>

usingnamespace std;

 

int main() {

// a - целая переменная со значением 3

int a = 3;

// mas - массив целых элементов: 2,5,4,10,55

int mas[5] = {2, 5, 4, 10, 55};

a = a + 12;

a = a - 4;

a = 6 * a;

a = a / 7; // Целочисленное деление

cout << "Result = " << a << endl;

return 0;

}

 

1. Установите точку прерывания на строчке, в которой находится оператор a = a + 12; (щёлкните кнопкой мыши на серой вертикальной колонке слева от строки, в которой находится оператор). Появляется глиф:

 

 

2. Запустите приложение в режиме отладки. Воспользуйтесь, например, первым способом. Нажмите кнопку < F5 > (Start Debugging). Программа выполнится до строки с глифом. Жёлтая стрелка указывает на строку, которая будет выполняться следующей:

 

 

В окне Autos – список переменных, созданных к данному моменту, и их значения.

 

3. В окне Autos щёлкните по плюсу около переменной mas. В окне появляются элементы массива со своими значениями:

 

 

4. Выполните два оператора программы:

 

a = a + 12;

a = a - 4;

 

Для этого два раза щёлкните по кнопке < F10 >.

 

 

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

 

5. Допустим, необходимо вычислить значение выражения 2*a+10 и изменить значение переменной a на 20. В окне Autos щёлкните по вкладке Watch 1. В окне Watch 1 в поле Name введите 2*a+10 и нажмите < Enter>. В следующую строку в поле Name введите a, в поле Value введите 20 и нажмите < Enter>.

 

 

6. Пошагово выполните до конца программу, четыре раза нажав на кнопку < F10 > (Step Over).

 

 

7. Завершите процесс отладки: нажмите <Shift+F5 > (Stop Debugging). Удалите точку останова, для этого щёлкните левой кнопкой мыши по глифу (красному кружку) в окне редактора.

 

 

Рассмотрим ещё один пример программы, в которой на экран выводятся объёмы памяти, занимаемые объектами базовых типов данных, и вычисляется объём куба, сторона которого равна a.

 

/ Листинг 1.4

#include <iostream>

using namespace std;

 

int main() {

// Объёмы памяти, занимаемые объектами

// базовых типов данных

cout << "sizeof(char) = "

<< sizeof(char) << endl;

cout << "sizeof(short) = "

<< sizeof(short) << endl;

cout << "sizeof(int) = "

<< sizeof(int) << endl;

cout << "sizeof(long) = "

<< sizeof(long) << endl;

cout << "sizeof(long long) = "

<< sizeof(long long) << endl;

cout << "sizeof(float) = "

<< sizeof(float) << endl;

cout << "sizeof(double) = "

<< sizeof(double) << endl;

cout << "sizeof(bool) = "

<< sizeof(bool) << endl;

//Вычисление объёма куба (a - сторона,v – объём)

double a, v;

cout << "\n a = ";

cin >> a; // Ввод с клавиатуры значения a

v = a*a*a;

cout << "v = " << v << endl; // Вывод результата

return 0;

}

 

Результат выполнения программы:

sizeof(char) = 1

sizeof(short) = 2

sizeof(int) = 4;

sizeof(long) = 4

sizeof(long long) = 8

sizeof(float) = 4

sizeof(double) = 8

sizeof(bool) = 1

 

a = 5

v = 125

 

Задание.

1. Разобрать теоретический материал занятия и выполнить все рассмотренные примеры в среде Microsoft Visual Studio.

2. Создать программу на языке С++, решающую задачу согласно своему варианту. Необходимые данные вводить с клавиатуры. Результаты выводить на экран. Использо­вать комментарии.

Варианты:

1. Диагональ грани куба равна c. Найдите его объём.

2. Диагональ куба равна b. Найдите площадь его поверхности.

3. Площадь поверхности куба равна s. Найдите его диагональ.

4. Диагональ грани куба равна a. Найдите площадь его поверхности.

5. Площадь поверхности куба равна s. Найдите диагональ грани куба.

6. Объём прямоугольного параллелепипеда равен v. Одно из его рёбер равно a. Найдите площадь грани параллелепипеда, перпендикулярной этому ребру.

7. Объём прямоугольного параллелепипеда равен v. Площадь одной его грани равна a. Найдите ребро параллелепипеда, перпендикулярное этой грани.

8. Два ребра прямоугольного параллелепипеда, выходящие из одной вершины, равны a и b. Диагональ параллелепипеда равна с. Найдите объём параллелепипеда.

9. Ребра прямоугольного параллелепипеда, выходящие из одной вершины, равны a, b и c. Найдите площадь его поверхности.

10. Два ребра прямоугольного параллелепипеда, выходящие из одной вершины, равны a и b. Площадь поверхности параллелепипеда равна s. Найдите третье ребро, выходящее из той же вершины.

11. Два ребра прямоугольного параллелепипеда, выходящие из одной вершины, равны a и b. Диагональ параллелепипеда равна d. Найдите площадь поверхности параллелепипеда.

12. Два ребра прямоугольного параллелепипеда, выходящие из одной вершины, равны a и b. Площадь поверхности параллелепипеда равна s. Найдите его диагональ.

13. Найдите объём правильной треугольной призмы, все рёбра которой равны a.

14. Основанием прямой треугольной призмы служит прямоу­гольный треугольник с катетами a и b. Объём призмы равен v. Найдите её боковое ребро.

15. Основанием прямой треугольной призмы служит прямоу­гольный треугольник с катетами a и b, высота призмы равна h. Найдите площадь её поверхности.

Практическое занятие 2. Работа с компилятором GCC(g++) и редактром Emacs

 

В 1984 году американский ученый Ричард Столлман (Richard Stallman) основал Фонд Свободного Программного Обеспечения (Free Software Foundation). Целью этого фонда было устранение всех запретов и ограничений по распространению, копированию, модификации и изучению программного обеспечения.

В рамках Фонда Свободного ПО была начата разработка проекта GNU— проекта создания свободного программного обеспечения. Аббревиатура GNU открывается рекурсивно - GNU's Not Unix, т.е. то, что принадлежит проекту GNU, не является частью Unix (потому что к тому времени даже само слово UNIX уже было зарегистрированной товарной маркой, т.е. перестало быть свободным). В "Манифесте GNU", который был написан в 1985 г., Р.Столлман в качестве главной движущей силы, которая привела к возникновению проекта GNU, ставит свое неприятие прав собственности отдельных людей на программное обеспечение.

То, что разрабатываемое в рамках проекта GNU ПО свободно, не означает, что оно распространяется без лицензии и никак не защищено в юридическом смысле. Программы, разрабатываемые в рамках движения Open Source, распространяются на условиях лицензии General Public License(GPL). Суть этой лицензии состоит в следующем. Программное обеспечение, распространяемое под этой лицензией, можно как угодно дорабатывать, модифицировать, передавать или продавать другим лицам при условии, что результат такой переработки тоже будет распространяться под лицензией copyleft. Последнее условие - самое важное и определяющее в этой лицензии. Оно гарантирует, что результаты усилий разработчиков свободного ПО останутся открытыми и не станут частью какого-либо лицензированного обычным способом продукта. Оно также отличает свободное ПО от ПО, распространяемого бесплатно.

В рамках движения Open Source, и в частности проекта GNU, было разработано значительное количество программ, наиболее известными из которых являются редактор Emacs и компилятор GCC(GNU C Compiler) - один из лучших компиляторов языка C.

Сейчас GNU Compiler Collection (обычно используется сокращение GCC) - набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. GCC является свободным программным обеспечением и распространяется фондом свободного программного обеспечения (FSF) на условиях GNU GPL и GNU LGPL и является ключевым компонентом GNU toolchain. Он используется как стандартный компилятор для свободных UNIX-подобных операционных систем.

Изначально названный GNU C Compiler, он поддерживал только язык Си. Позднее, GCC был расширен для компиляции исходных кодов на таких языках программирования как С++, Objective-C, Java, Фортран и Ada.

 

Компиляция программ на языке С++

Для сборки программ на C++ в наборе GNU имеется компилятор g++. Он отличается от GCC тем, что по умолчанию подключает не стандартную библиотеку C, а стандартную библиотеку C++. Все флаги и опции у g++ такие же точно, как и у GCC. Воспользуемся компилятором g++.

Рассмотрим процесс компиляции отдельного исходного файла в готовую к запуску программу.

1. В текстовом редакторе создаем файл primer1.cpp с текстом программы на языке С++:

//Листинг 2.1

#include<iostream>

using namespace std;

int main()

{

cout<<”Мы изучаем С++!\n”;

return 0;

}

 

 

2. Вызываем командную оболочку и в командной строке вводим команду: $ g++ primer1.cpp.

Компилятор g++ распознает файл по суффиксу его имени как исходный файл на языке С++. В соответствии с действующим предопределением он должен скомпилировать указанный исходный файл в объектный, далее скомпоновать объектный файл в готовую к запуску машинную программу, и затем удалить объектный файл. В связи с тем, что в командной строке не определено имя для выходного файла, по умолчанию будет создан файл с именем a.out.

 

3. Запускаем на выполнение готовую программу. В командной строке вводим: ./a.out.

Результат выполнения программы:

Мы изучаем С++!

 

4. Пользователь может сам задать имя для выполнимого системой файла, в который должен быть скомпилирован исходный файл с текстом программы. Для этого используется опция –o. Пусть у выполнимого файла имя будет primer1. В командной строке введем команду: g++ primer1.cpp -o primer1 Ввод этого имени в командной строке приведет к выполнению программы: ./primer1.

Программа g++ является особым вариантом утилиты gcc, она устанавливает С++ в качестве основного языка компиляции, что приводит к автоматическому использованию стандартных библиотек языка С++ вместо применяемых по умолчанию библиотек языка С. При использовании соглашений об именах библиотек и указания соответствующей библиотеки в командной строке возможна компиляция и компоновка программы на С++ и командой gcc. Например,

gcc primer1.cpp -lstdc++ -o primer1

Опция –l (“эль”) заменяет следующее за ней имя, подставляя к нему префикс lib и суффикс .a, что превращает имя указанной библиотеки в libstdc++.a. Затем поиск библиотеки с таким именем проводится в каталогах для стандартных библиотек. Дальнейший процесс компиляции и выходной файл точно соответствует действию команды g++.

 

Emacs – среда разработки приложений на языке С++

Emacs - один из наиболее мощных и широко распространенных редакторов, используемых в Unix-системах. Большая часть редактора, с которым пользователи Emacs работают в наши дни, написана на языке Lisp.

Первая версия редактора Emacs была написана в 70-х годах 20-го столетия Ричардом Столманом как набор макросов для редактора TECO. В дальнейшем, уже будучи основателем Фонда Свободного программного обеспечения Столманом разработал GNU Emacs и до сих пор сопровождает эту программу.

Существует две основных разновидности Emacs — GNU Emacs и XEmacs. GNU Emacs — это развитие оригинальной версии Emacs, написанного Столлманом, а XEmacs — это версия с некоторыми добавлениями к интерфейсу и языку Emacs Lisp. Кроме двух основных версий, существует и множество других редакторов, считающихся вариантами Emacs. Мы будем работать с GNU Emacs.

 

Буферы и файлы

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

Нужно иметь в виду, что при работе с файлами буфер означает «копию файла, которая находится в памяти в данный момент». Однако необходимо отметить, что буфер не всегда соответствует какому-либо файлу на диске. Очень часто Emacs создает буферы в результате выполнения ваших команд. Такие буфера могут содержать вывод команды, список для выбора вариантов и другую информацию.

 

Окна

Окно в Emacs — это область экрана, в которой отображается буфер. Когда Emacs запускается, на экране отображается одно окно. При обращении к некоторым функциям Emacs (таким, как оперативная справка и интерактивная документация) часто (временно) открываются дополнительные окна на экране Emacs.

Одно окно графической среды X Window может быть разбито на несколько окон в смысле Emacs, в каждом из которых отображается отдельный буфер.

 

Фреймы

В Emacs фрейм — это отдельное окно графической системы X Window, в котором отображаются один или несколько буферов Emacs. При этом несколько фреймов, открытых одновременно, являются частью одного сеанса Emacs.

 

Вид основного окна GNU Emacs:

 

Этот фрейм состоит из следующих частей:

· полосы меню, предоставляющей быстрый доступ к основным командам Emacs, а также к справочной информации;

· основного окна, в котором производится редактирование текста. Это окно можно разделить на несколько окон. Помимо редактирования текста, основное окно используется для отображения данных теми пакетами, которые не связаны с редактированием;

· строки состояния, которая используется для отображения такой информации, как состояние буфера (изменен/не изменен), название буфера, текущее время, используемые режимы, а также позиция точки в буфере;

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

После запуска Emacs без каких-либо параметров в основном окне отображается буфер *scratch*, который используется для оценки выражений Emacs Lisp, а также для заметок, которые вы не хотите сохранять.

Для выполнения команд в Emacs широко используются клавиатурные сокращения. Особенно часто используются сочетания различных клавиш с клавишами Control (обозначается как C -), Meta (обозначается как M -, на клавиатурах персональных компьютеров ее роль часто играет клавиша Alt), и Shift (обозначается как S -). Например, запись M-x означает, что надо нажать на клавишу x, при этом удерживая клавишу Meta (или Alt на клавиатурах персональных компьютеров).

 

Режимы Emacs

Режимы Emacs - это пакеты расширения, которые изменяют поведение буферов Emacs при редактировании и просмотре текста. Режимы делятся на основные и вспомогательные.

Основные режимы определяют общее поведение редактора. Как правило, основные режимы предоставляют команды и функции для редактирования определенных типов текста. Например, существуют режимы для редактирования исходного текста программ на языках С или Perl. Обычно для конкретного буфера может одновременно использоваться только один основной режим.

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

Многие основные режимы автоматически загружаются (включаются) при открытии файла с соответствующим расширением. Можно также включить или отключить нужный режим вручную с помощью команды M-x name-mode, где name - имя режима.

 

Работа с исходными текстами программ. CC Mode

Этот основной режим используется при редактировании исходных текстов программ на языках C, C++, Java и Objective C. Режим предоставляет несколько стилей оформления текстов программ, каждый из которых определяет отступы, расположение открывающих и закрывающих скобок, а также многие другие параметры. Кроме того, данный режим обеспечивает правильную работу с выражениями соответствующего языка, а также подсветку ключевых слов и других элементов текста программы.

Режим также обеспечивает возможность компиляции программ прямо из Emacs, а также интерфейс к отладчику.

Данный режим поставляется вместе с GNU Emacs. Как правило, он подключен (сделан доступным для Emacs) по умолчанию, так что можно открывать исходный текст на соответствующем языке — режим будет загружен автоматически.

 

Командный процессор

Можно выполнять команды командного процессора прямо из GNU Emacs. Команда M-x shell запускает командный процессор.

Кроме возможности запуска внешнего командного процессора, для Emacs существует пакет eshell (он поставляется вместе с GNU Emacs), который полностью написан на Emacs Lisp. При этом не запускается никаких внешних процессов, кроме тех, которые совсем уж необходимы для работы. Для его запуска нужно набрать команду M-x eshell.

Рассмотрим пример программы на языке С++, в которой с клавиатуры вводится число и вычисляется квадратный корень от этого числа.

//Листинг 2.2

#include<iostream>

#include<cmath>

using namespace std;

int main()

{

double x,rez;

cout<<”Введите число:”;

cin>>x;

rez=sqrt(x);

cout<<”Квадратный корень = ”<<rez<<”\n”;

return 0;

}

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

1. Запускаем редактор Emacs. При первом запуске редактора на экране появится окно с приветствием.

 

Для того чтобы перейти к основному окну GNU Emacs, щелкнем левой кнопкой мыши в строке состояния по *GNU Emacs*.

 

2. На экране появится основное окно Emacs

 

 

3. Перейдем к основному режиму редактирования СС Mode. Для этого вызовем пункт меню File – Save as. Пусть файл с текстом программы будет называться primer2.cpp и находится в директории Документы Домашней папки. В появившемся окне Write File в поле Имя введем primer2.cpp, а в поле Сохранить в папке выбираем папку Документы и нажимаем кнопку OK..

 

4. Emacs установил режим редактирования текстов программ на языке С++. Вводим в окно редактирования текст программы.

 

 

5. Сохраняем введенный текст программы с помощью меню FileSave или с помощью клавиш Ctrl – x Ctrl - s.

 

6. Скомпилируем программу. В меню вызываем Tools – Compile.

 

В мини-буфере внизу фрейма появится:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: