Книга, которую открыл читатель, является с одной стороны учебником по алгоритмизации и программированию на C++, а с другой — пособием по разработке визуальных приложений в среде Qt Creator. В книге описаны среда программирования Qt Creator и редактор Geany. При чтении книги не требуется предварительного знакомства с программированием.
В первой части книги (главы 1–9) на большом количестве примеров представлены методы построения программ на языке C++, особое внимание уделено построению циклических программ, программированию с использованием функций, массивов, матриц и указателей.
Вторая часть книги (глава 10) посвящена объектно-ориентированному программированию на C++.
В третьей части книги (главы 11–15) читатель научится создавать кроссплатформенные визуальные приложения с помощью Qt Creator и познакомится с библиотекой классов Qt.
В книге присутствуют задания для самостоятельного решения.
В приложениях описан текстовый редактор Geany, а также кроссплатформенная библиотека MathGL, предназначенная для построения различных двух- и трёхмерных графиков.
Главы 1–9 написаны Е. Р. Алексеевым и О. В. Чесноковой. Автором раздела по объектно-ориентированному программированию является Д. А. Костюк. Главы 11–15, посвящённые программированию с использованием инструментария Qt, написаны Г. Г. Злобиным и А. C. Чмыхало.
Авторы благодарят компанию ALT Linux (www.altlinux.ru) и лично Алексея Смирнова и Владимира Чёрного за возможность издать очередную книгу по свободному программному обеспечению.
В этой главе читатель напишет свои первые программы на языке С(С++), познакомится с основными этапами перевода программы с языка C++ в машинный код. Второй параграф главы посвящён знакомству со средой Qt Creator.
Знакомство с языком С++ начнём с написания программ, предназначенных для решения нескольких несложных задач.
Задача 1.1. Заданы две стороны прямоугольника a, b. Найти его площадь и периметр.
Как известно, периметр прямоугольника $$P = 2*(a +b)$$, а его площадь $$S = a*b$$. Ниже приведён текст программы.
1 #include <iostream>
2 using namespace std;
3 int main( )
4 {
5 float a, b, s, p;
6 cout<<"a=";
7 cin>>a;
8 cout<<"b=";
9 cin>>b;
10 p=2*(a+b );
11 s=a*b;
12 cout << "Периметр прямоугольника равен " << p <<endl;
13 cout << "Площадь прямоугольника равна " << s <<endl;
14 return 0;
15 }
Давайте построчно рассмотрим текст программы и познакомимся со структурой программы на С++ и с некоторыми операторами языка.
Строка 1. Указывает компилятору (а точнее, препроцессору), что надо использовать функции из стандартной библиотеки iostream. Библиотека iostream нужна для организации ввода с помощью инструкции cin и вывода — с помощью cout. В программе на языке C++ должны быть подключены все используемые библиотеки.
Строка 2. Эта строка обозначает, что при вводе и выводе с помощью cin и cout будут использоваться стандартные устройства (клавиатура и экран), если эту строку не указывать, то каждый раз при вводе вместо cin надо будет писать std::cin, а вместо cout – std::cout.
Строка 3. Заголовок главной функции (главная функция имеет имя main). В простых программах присутствует только функция main().
Строка 4. Любая функция начинается с символа {.
Строка 5. Описание вещественных (float) переменных a (длина одной стороны прямоугольника), b (длина второй стороны прямоугольника), s (площадь прямоугольника), p (периметр прямоугольника). С++ большие и малые буквы различимы. Например, имена PR_1, pr_1, Pr_1 и pR_1 — разные.
Строка 6. Вывод строки символов a= с помощью cout. Программа выведет подсказку пользователю, что необходимо вводить переменную a
Строка 7. Ввод вещественного числа a с помощью cin. В это момент программа останавливается и ждёт, пока пользователь введёт значение переменой a с клавиатуры.
Строка 8. Вывод строки символов b= с помощью cout.
Строка 9. Ввод вещественного числа b с помощью cin.
Строка 10. Оператор присваивания для вычисления периметра прямоугольника (переменная p) по формуле $$2*(a + b)$$. В операторе присваивания могут использоваться круглые скобки и знаки операций: + (сложение), - (вычитание), * (умножение), / (деление).
Строка 11. Оператор присваивания для вычисления площади прямоугольника.
Строка 12. Вывод строки "Периметр прямоугольника равен " и значения p на экран. Константа endl хранит строку "\n", которая предназначена для перевода курсора в новую строку
cout <<"Периметр прямоугольника равен "<< p <<endl;
выводит на экран текст p, и переводит курсор в новую строку.
Строка 13. Вывод строки "Площадь прямоугольника равна ", значения площади прямоугольника s, после чего курсор переводится в новую строку дисплея.
Строка 14. Оператор return, который возвращает значение в операционную систему. Об этом подробный разговор предстоит в п. 4.9.Сейчас следует запомнить: если программа начинается со строки int main(), return 0.
Строка 15. Любая функция (в том числе и main) заканчивается символом }.
Мы рассмотрели простейшую программу на языке С++, состоящую из операторов ввода данных, операторов присваивания (в которых происходит расчёт по формулам) и операторов вывода.
Программа на языке С++ представляет собой одну или несколько функций. В любой программе обязательно должна быть одна функция main(). С этой функции начинается выполнение программы. Правилом хорошего тона в программировании является разбиение задачи на подзадачи, и в главной функции чаще всего должны быть операторы вызова других функций. Общую структуру программы на языке C++ можно записать следующим образом.
Директивы препроцессора
Объявление глобальных переменных
Тип_результата f1 (Список_переменных)
{
Операторы
}
Тип_результата f2 (Список_переменных)
{
Операторы
}
...
Тип_результата fn (Список_переменных)
{
Операторы
}
Тип_ результата main (Список_переменных)
{
Операторы
}
На первом этапе знакомства с языком мы будем писать программы, состоящие только из функции main, без использования глобальных переменных. Структура самой простой программы на C(C++) имеет вид.
Директивы препроцессора
Тип_ результата main (Список_переменных)
{
Операторы
}
Введённая в компьютер программа на языке С++ должна быть переведена в двоичный машинный код (формируется исполняемый файл). Для этого существуют специальные программы, называемые трансляторами. Все трансляторы делятся на два класса:
Процесс перевода программы в машинный код называется трансляцией. Если в качестве транслятора выступает компилятор, то используют термин компиляция программы. При переводе программы с языка С++ в машинный код используются именно компиляторы, и поэтому применительно к языку С++ термины "компилятор" и "транслятор" эквивалентны.
Рассмотрим основные этапы обработки компилятором программы на языке С++ и формирования машинного кода.
После написания программы её необходимо ввести в компьютер. В этом курсе будет рассматриваться работа на языке
Среда программирования
(рис 1.1) Окно Qt Creator
При работе в Qt Creator вы находитесь в одном из режимов:
Qt Creator без указания ключей командной строки.Qt Creator.Рассмотрим простейшие приёмы работы в среде Qt Creator на примере создания консольного приложения для решения задачи 1.1. Для этого можно поступить одним из способов:
После этого откроется окно, подобное представленному на рис. 1.2. Для создания простейшего консольного приложения выбираем Non-Qt Project (Проект без использования Qt) — Plain C++ Project (Простой проект на языке С++).
Далее выбираем имя проекта и каталог для его размещения (см. рис. 1.3IDE Qt Creator будет подобно представленному на рис. 1.4. Заменим текст "Hello, Word" стандартного приложения, на текст программы решения задачи 1.1.
(рис 1.2) Окно выбора типа приложения в Qt Creator
Для сохранения текста программы можно воспользоваться командой Сохранить или Сохранить всё из меню Файл. Откомпилировать и запустить программу можно одним из следующих способов:
).Окно с результатами работы программы представлено на рис. 1.5.
(рис 1.3) Выбор имени и каталога нового проекта
(рис 1.4) Главное окно создания консольного приложения
Авторы сталкивались с тем, что в некоторых дистрибутивах Ubuntu Linux и Linux Mint после установки Qt Creator не запускались консольные приложения. Если читатель столкнулся с подобной проблемой, скорее всего надо корректно настроить терминал, который отвечает за запуск приложений в консоли. Для этого вызываем команду Tools — Options — Environment (см. рис. 1.6). Параметр Terminal (Терминал) должен быть таким же, как показано на рис. 1.6. Проверьте установлен ли в Вашей системе пакет xterm, и при необходимости доставьте его. После этого не должно быть проблем с запуском консольных приложений.
Аналогичным образом можно создавать и запускать любое консольное приложение.
(рис 1.5) Результаты работы программы решения задачи 1.1
(рис 1.6) Окно настроек среды Qt Creator
Дальнейшее знакомство со средой Qt Creator продолжим, решая следующую задачу.
Задача 1.2. Заданы длины трёх сторон треугольника $$ a, b$$ и $$c$$ (см. рис. 1.7). Вычислить площадь и периметр треугольника.
Для решения задачи можно воспользоваться формулой Герона $$S=\sqrt{\frac{p}{2}(\frac{p}{2}-a)(\frac{p}{2}-b)(\frac{p}{2}-c)}$$, где $$p = a + b + c$$ — периметр.
Решение задачи можно разбить на следующие этапы:
Ниже приведён текст программы. Сразу заметим, что в тексте могут встречаться строки, начинающие с двух наклонных (//). Это комментарии. Комментарии не являются обязательными элементами программы и ничего не сообщают компьютеру, они поясняют человеку, читающему текст программы, назначение отдельных элементов программы. В книге комментарии будут широко использоваться для пояснения отдельных участков программы.
(рис 1.7) Треугольник
#include <iostream>
#include <math.h>
using namespace std;
int main( )
{
float a, b, c, s, p;
cout<<"Введите длины сторон треугольника"<<endl;
//Ввод значений длин треугольника a, b, c .
cin>>a>>b>>c;
//Вычисление периметра треугольника .
p=a+b+c;
//Вычисление площади треугольника .
s=sqrt ( p /2*( p/2-a )*( p/2-b )*( p/2-c ) );
//Вывод на экран дисплея значений площади и периметра треугольника.
cout<<"Периметр треугольника равен "<<p<<", его площадь равна "<<s<<endl;
return 0;
}
Кроме используемой в предыдущей программе библиотеки iostream, в строке 2 подключим библиотеку math.h, которая служит для использования математических функций языка С(С++). В данной программе используется функция извлечения квадратного корня — $$sqrt(x)$$. Остальные операторы (ввода, вывода, вычисления значений переменных) аналогичны используемым в предыдущей программе.
Таким образом, выше были рассмотрены самые простые программы (линейной структуры), которые предназначены для ввода исходных данных, расчёта по формулам и вывода результатов.
Книга, которую открыл читатель, является с одной стороны учебником по алгоритмизации и программированию на C++, а с другой — пособием по разработке визуальных приложений в среде Qt Creator. В книге описаны среда программирования Qt Creator и редактор Geany. При чтении книги не требуется предварительного знакомства с программированием.
В первой части книги (главы 1–9) на большом количестве примеров представлены методы построения программ на языке C++, особое внимание уделено построению циклических программ, программированию с использованием функций, массивов, матриц и указателей.
Вторая часть книги (глава 10) посвящена объектно-ориентированному программированию на C++.
В третьей части книги (главы 11–15) читатель научится создавать кроссплатформенные визуальные приложения с помощью Qt Creator и познакомится с библиотекой классов Qt.
В книге присутствуют задания для самостоятельного решения.
В приложениях описан текстовый редактор Geany, а также кроссплатформенная библиотека MathGL, предназначенная для построения различных двух- и трёхмерных графиков.
Главы 1–9 написаны Е. Р. Алексеевым и О. В. Чесноковой. Автором раздела по объектно-ориентированному программированию является Д. А. Костюк. Главы 11–15, посвящённые программированию с использованием инструментария Qt, написаны Г. Г. Злобиным и А. C. Чмыхало.
Авторы благодарят компанию ALT Linux (www.altlinux.ru) и лично Алексея Смирнова и Владимира Чёрного за возможность издать очередную книгу по свободному программному обеспечению.
В этой главе читатель напишет свои первые программы на языке С(С++), познакомится с основными этапами перевода программы с языка C++ в машинный код. Второй параграф главы посвящён знакомству со средой Qt Creator.
Знакомство с языком С++ начнём с написания программ, предназначенных для решения нескольких несложных задач.
Задача 1.1. Заданы две стороны прямоугольника a, b. Найти его площадь и периметр.
Как известно, периметр прямоугольника $$P = 2*(a +b)$$, а его площадь $$S = a*b$$. Ниже приведён текст программы.
1 #include <iostream>
2 using namespace std;
3 int main( )
4 {
5 float a, b, s, p;
6 cout<<"a=";
7 cin>>a;
8 cout<<"b=";
9 cin>>b;
10 p=2*(a+b );
11 s=a*b;
12 cout << "Периметр прямоугольника равен " << p <<endl;
13 cout << "Площадь прямоугольника равна " << s <<endl;
14 return 0;
15 }
Давайте построчно рассмотрим текст программы и познакомимся со структурой программы на С++ и с некоторыми операторами языка.
Строка 1. Указывает компилятору (а точнее, препроцессору), что надо использовать функции из стандартной библиотеки iostream. Библиотека iostream нужна для организации ввода с помощью инструкции cin и вывода — с помощью cout. В программе на языке C++ должны быть подключены все используемые библиотеки.
Строка 2. Эта строка обозначает, что при вводе и выводе с помощью cin и cout будут использоваться стандартные устройства (клавиатура и экран), если эту строку не указывать, то каждый раз при вводе вместо cin надо будет писать std::cin, а вместо cout – std::cout.
Строка 3. Заголовок главной функции (главная функция имеет имя main). В простых программах присутствует только функция main().
Строка 4. Любая функция начинается с символа {.
Строка 5. Описание вещественных (float) переменных a (длина одной стороны прямоугольника), b (длина второй стороны прямоугольника), s (площадь прямоугольника), p (периметр прямоугольника). С++ большие и малые буквы различимы. Например, имена PR_1, pr_1, Pr_1 и pR_1 — разные.
Строка 6. Вывод строки символов a= с помощью cout. Программа выведет подсказку пользователю, что необходимо вводить переменную a
Строка 7. Ввод вещественного числа a с помощью cin. В это момент программа останавливается и ждёт, пока пользователь введёт значение переменой a с клавиатуры.
Строка 8. Вывод строки символов b= с помощью cout.
Строка 9. Ввод вещественного числа b с помощью cin.
Строка 10. Оператор присваивания для вычисления периметра прямоугольника (переменная p) по формуле $$2*(a + b)$$. В операторе присваивания могут использоваться круглые скобки и знаки операций: + (сложение), - (вычитание), * (умножение), / (деление).
Строка 11. Оператор присваивания для вычисления площади прямоугольника.
Строка 12. Вывод строки "Периметр прямоугольника равен " и значения p на экран. Константа endl хранит строку "\n", которая предназначена для перевода курсора в новую строку
cout <<"Периметр прямоугольника равен "<< p <<endl;
выводит на экран текст p, и переводит курсор в новую строку.
Строка 13. Вывод строки "Площадь прямоугольника равна ", значения площади прямоугольника s, после чего курсор переводится в новую строку дисплея.
Строка 14. Оператор return, который возвращает значение в операционную систему. Об этом подробный разговор предстоит в п. 4.9.Сейчас следует запомнить: если программа начинается со строки int main(), return 0.
Строка 15. Любая функция (в том числе и main) заканчивается символом }.
Мы рассмотрели простейшую программу на языке С++, состоящую из операторов ввода данных, операторов присваивания (в которых происходит расчёт по формулам) и операторов вывода.
Программа на языке С++ представляет собой одну или несколько функций. В любой программе обязательно должна быть одна функция main(). С этой функции начинается выполнение программы. Правилом хорошего тона в программировании является разбиение задачи на подзадачи, и в главной функции чаще всего должны быть операторы вызова других функций. Общую структуру программы на языке C++ можно записать следующим образом.
Директивы препроцессора
Объявление глобальных переменных
Тип_результата f1 (Список_переменных)
{
Операторы
}
Тип_результата f2 (Список_переменных)
{
Операторы
}
...
Тип_результата fn (Список_переменных)
{
Операторы
}
Тип_ результата main (Список_переменных)
{
Операторы
}
На первом этапе знакомства с языком мы будем писать программы, состоящие только из функции main, без использования глобальных переменных. Структура самой простой программы на C(C++) имеет вид.
Директивы препроцессора
Тип_ результата main (Список_переменных)
{
Операторы
}
Введённая в компьютер программа на языке С++ должна быть переведена в двоичный машинный код (формируется исполняемый файл). Для этого существуют специальные программы, называемые трансляторами. Все трансляторы делятся на два класса:
Процесс перевода программы в машинный код называется трансляцией. Если в качестве транслятора выступает компилятор, то используют термин компиляция программы. При переводе программы с языка С++ в машинный код используются именно компиляторы, и поэтому применительно к языку С++ термины "компилятор" и "транслятор" эквивалентны.
Рассмотрим основные этапы обработки компилятором программы на языке С++ и формирования машинного кода.
После написания программы её необходимо ввести в компьютер. В этом курсе будет рассматриваться работа на языке
Среда программирования
(рис 1.1) Окно Qt Creator
При работе в Qt Creator вы находитесь в одном из режимов:
Qt Creator без указания ключей командной строки.Qt Creator.Рассмотрим простейшие приёмы работы в среде Qt Creator на примере создания консольного приложения для решения задачи 1.1. Для этого можно поступить одним из способов:
После этого откроется окно, подобное представленному на рис. 1.2. Для создания простейшего консольного приложения выбираем Non-Qt Project (Проект без использования Qt) — Plain C++ Project (Простой проект на языке С++).
Далее выбираем имя проекта и каталог для его размещения (см. рис. 1.3IDE Qt Creator будет подобно представленному на рис. 1.4. Заменим текст "Hello, Word" стандартного приложения, на текст программы решения задачи 1.1.
(рис 1.2) Окно выбора типа приложения в Qt Creator
Для сохранения текста программы можно воспользоваться командой Сохранить или Сохранить всё из меню Файл. Откомпилировать и запустить программу можно одним из следующих способов:
).Окно с результатами работы программы представлено на рис. 1.5.
(рис 1.3) Выбор имени и каталога нового проекта
(рис 1.4) Главное окно создания консольного приложения
Авторы сталкивались с тем, что в некоторых дистрибутивах Ubuntu Linux и Linux Mint после установки Qt Creator не запускались консольные приложения. Если читатель столкнулся с подобной проблемой, скорее всего надо корректно настроить терминал, который отвечает за запуск приложений в консоли. Для этого вызываем команду Tools — Options — Environment (см. рис. 1.6). Параметр Terminal (Терминал) должен быть таким же, как показано на рис. 1.6. Проверьте установлен ли в Вашей системе пакет xterm, и при необходимости доставьте его. После этого не должно быть проблем с запуском консольных приложений.
Аналогичным образом можно создавать и запускать любое консольное приложение.
(рис 1.5) Результаты работы программы решения задачи 1.1
(рис 1.6) Окно настроек среды Qt Creator
Дальнейшее знакомство со средой Qt Creator продолжим, решая следующую задачу.
Задача 1.2. Заданы длины трёх сторон треугольника $$ a, b$$ и $$c$$ (см. рис. 1.7). Вычислить площадь и периметр треугольника.
Для решения задачи можно воспользоваться формулой Герона $$S=\sqrt{\frac{p}{2}(\frac{p}{2}-a)(\frac{p}{2}-b)(\frac{p}{2}-c)}$$, где $$p = a + b + c$$ — периметр.
Решение задачи можно разбить на следующие этапы:
Ниже приведён текст программы. Сразу заметим, что в тексте могут встречаться строки, начинающие с двух наклонных (//). Это комментарии. Комментарии не являются обязательными элементами программы и ничего не сообщают компьютеру, они поясняют человеку, читающему текст программы, назначение отдельных элементов программы. В книге комментарии будут широко использоваться для пояснения отдельных участков программы.
(рис 1.7) Треугольник
#include <iostream>
#include <math.h>
using namespace std;
int main( )
{
float a, b, c, s, p;
cout<<"Введите длины сторон треугольника"<<endl;
//Ввод значений длин треугольника a, b, c .
cin>>a>>b>>c;
//Вычисление периметра треугольника .
p=a+b+c;
//Вычисление площади треугольника .
s=sqrt ( p /2*( p/2-a )*( p/2-b )*( p/2-c ) );
//Вывод на экран дисплея значений площади и периметра треугольника.
cout<<"Периметр треугольника равен "<<p<<", его площадь равна "<<s<<endl;
return 0;
}
Кроме используемой в предыдущей программе библиотеки iostream, в строке 2 подключим библиотеку math.h, которая служит для использования математических функций языка С(С++). В данной программе используется функция извлечения квадратного корня — $$sqrt(x)$$. Остальные операторы (ввода, вывода, вычисления значений переменных) аналогичны используемым в предыдущей программе.
Таким образом, выше были рассмотрены самые простые программы (линейной структуры), которые предназначены для ввода исходных данных, расчёта по формулам и вывода результатов.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.