Постройте таблицу значений функции при с шагом 0,5. Определите наименьшее значение функции и значение , при котором оно достигается. |
Основы программирования на языке С++
Занятие 1. Базовые знания о языке программирования С++
Программа – это реализация алгоритма для выполнения задачи компьютером (ЭВМ).
С помощью программы мы формулируем алгоритм на языке, понятном компьютеру. Таким языком служит язык программирования.
На сегодняшний день распространенными языками программирования являются: С, С++, Pascal, Basic, Fortran и т.д.
Язык программирования С++ является одним из самых востребованных на сегодняшний день.
На языке С++ можно составлять программы для инженерных расчетов, также можно строить оконные проекты, имеющие пользовательский графический интерфейс.
Существует несколько приложений для написания программ на языке С++. Мы будем рассматривать Microsoft Visual Studio и Borland C++.
В языке программирования С++ определены некоторые стандартные типы данных, которые представлены в табл. 3.1.
Тип данных | Значение |
---|---|
int | целый тип, размер типа int не определяется стандартом, а зависит от компьютера и компилятора, для 16-разрядного процессора под величины этого типа отводится 2 байта, для 32-разрядного — 4 байта.Примеры значений типа int: 5, 0, -1, 100. |
double | вещественный тип с двойной точностью. Типы данных с плавающей точкой хранятся в памяти компьютера иначе, чем целочисленные. Внутреннее представление вещественного числа состоит из двух частей — мантиссы и порядка. Мантисса — это число, большее 1.0, но меньшее 10. Для величин типа double, занимающих 8 байт, под порядок и мантиссу отводится 11 и 52 разряда соответственно. Длина мантиссы определяет точность числа, а длина порядка — его диапазон.Примеры значений типа double: 5.0, -0.00001, 2.9987. |
float | вещественный тип. В компьютерах величины типа float занимают 4 байта, из которых один двоичный разряд отводится под знак мантиссы, 8 разрядов под порядок и 23 под мантиссу. Тип float имеет меньшую точность, чем double. В большинстве случаев лучше использовать double. |
char | символьный тип, под величину символьного типа отводится количество байт, достаточное для размещения любого символа из набора символов для данного компьютера, что и обусловило название типа. Как правило, это 1 байт. Каждый символ имеет свой собственный целочисленный код, согласно таблице ASCII (англ. American Standard Code for Information Interchange).Примеры значений типа char: "A" (код 65), "7" (код 55), "-" (код 189), "/" (код 191). |
fstream, ifstream, ofstream | файловый поток. Используется для вывода данных в файл и считывания данных из файла. |
Программа на языке С++ имеет определенную структуру.
Существует определенная последовательность заранее определенных строк кода, которая приведена в табл. 3.2.
#include "stdafx.h" | подключение заголовочного файла для сборки проекта. Обязательный пункт в Visual Studio, в среде Borland C++ не используется. |
#include <название_библиотеки> | подключение библиотек. Необязательный пункт. Подробно о библиотеках смотреть ниже. |
using namespace std; | использование пространства имен. Обязательный пункт в Visual Studio, в среде Borland C++ не используется. |
int main(){ или void main(){ | главная функция программы. Именно она начинает выполняться, когда запускается программа. Обязательный пункт. |
Тело_функции_main | в теле функции main записываются действия и операции, предусмотренные алгоритмом. Обязательный пункт. |
return 0;} или } | конец программы. Самый последний оператор. Обязательный пункт. |
Библиотека – это файл, в котором описаны функции и операторы. Для каждой смысловой группы функций своя библиотека. Библиотек в языке C++ предусмотрено много, мы будем рассматривать только самые необходимые. Нам понадобятся функции для работы с экраном, математические функции.
Основные библиотеки и их основные функции и операторы:
-
<iostream> для Visual Studio, <iostream.h> для Borland C++. Библиотека для работы с консолью (экраном).
cout – оператор вывода данных на экран.
Пример использования:
cout<<"fraza"; //выведет на экран слово fraza. Может вывести любой текст.
cout<<x; //выведет на экран число, хранящееся в переменной х.
cin – оператор считывания с экрана.
Когда у пользователя запрашивают число, программа ждет, пока пользователь не напечатает число и нажмет ENTER. Тогда оператор cin записывает это значение в переменную х.
Пример использования:
cin>>x; //присваивает переменной х значение, введенное с клавиатуры.
cin>>x>>y; //присваивает переменной х первое введенное с клавиатуры значение, переменной у – второе.
endl – оператор перевода каретки на экране на следующую строку.
Самостоятельно не используется.
Пример использования:
cout<<endl; //курсор перейдет на новую строку.
cout<<x<<endl;//сначала на экране появится число, хранящееся в переменной , потом перейдет на новую строку. Выводимые далее данные будут печататься с новой строки.
cout<<endl<<"fraza"; // курсор перейдет на новую строку, и на новой строке появится надпись fraza.
precision(n) – функция для отображения на экране дробных чисел с n цифрами после запятой.
Пример использования:
cout.precision(3)<<7.897426; //число 7.897426 выведется на экран в виде 7.897.
-
<math.h> одинаково для Visual Studio, Borland C++. Библиотека математических функций. Основные математические функции представлены в табл. 3.3.
Таблица 3.3. Основные математические функции С++ Математическая функция Программная запись Описание fabs(x) Модуль числа. sin(x) Синус числа, аргумент в радианах. cos(x) Косинус числа, аргумент в радианах. tan(x) Тангенс числа, аргумент в радианах. exp(x) Экспонента числа. log(x) Натуральный логарифм числа. log10(x) Десятичный логарифм числа. pow(x, y) х в степени y. pow10(x) Степень десяти. sqrt(x) Квадратный корень из числа. asin(x) Арксинус числа, в радианах. acos(x) Арккосинус числа, в радианах. atan(x) Арктангенс числа, в радианах. M_PI Число =3.141593 -
<iomanip> для Visual Studio, <iomanip.h> для Borland C++.
setw(n) – для вывода на экран отводится ячеек.
Используется при построении ровной таблицы значений функции.
Пример использования:
cout<<setw(5)<<x<<setw(5)<<y<<endl;
На экране выведутся два числа: первое (1.5) в первых пяти ячейках, второе (-73) во вторых пяти ячейках. _ _ 1 . 5 _ _ - 7 3 .
В программах используются переменные. Имя переменной выбирает составитель программы; имя переменной должно начинаться с буквы латинского алфавита и может содержать буквы латинского алфавита, цифры и символы подчеркивания. Заглавные и строчные буквы считаются разными. Примеры имен переменных: х, y, summa, s1, srednee_ar и т.д. Имена переменных не должны совпадать с ключевыми словами языка С++.
Чтобы использовать в программе переменную, необходимо:
-
объявить переменную в начале программы, явно указав тип данных для переменной. Пример:
double x; //вещественная переменная .
int m; //целочисленная переменная .
Если переменная не будет объявлена, но будет использоваться далее в программе, то программа не запустится, компилятор выдаст ошибку.
-
проинициализировать переменную, т.е. задать переменной значение. Пример:
x=7.81; m=4; z=x+m;
Если переменная не будет проинициализирована, то компилятор не выдаст ошибки, но расчеты будут выполнены неверно.
- использовать далее в программе в расчетах или при выводе на экран.
Для числовых переменных определены простейшие арифметические операции, которые приведены в табл. 3.4. Для их использования не нужно подключать библиотеку.
Операция в С++ | Описание | Пример в программе |
---|---|---|
= | присвоение |
х=0.4; |
+ | сложение |
х=8+3; y=x+7.9; |
- | вычитание |
x=8-3; y=x-7.9; |
* | умножение |
x=4*2.5; y=x*4; |
/ | деление. Результатом деления целых чисел является целое число. |
x=7.5/3.2; y=x/2.6; z=1/3; //z=0 (округление до целого, т.к. делятся целые числа) z=1.0/3.0; //z=0.333(3) |
Для сравнения переменных и чисел используются встроенные знаки сравнения, которые приведены в табл. 3.5. Для их использования не нужно подключать библиотеку.
Сравнение в С++ | Описание | Пример в программе |
---|---|---|
> | больше чем |
x>0 |
< | меньше чем |
y<z |
>= | больше или равно |
y>=x |
<= | меньше или равно |
z<=8.56 |
== | проверка на равенство |
x==0.7 |
!= | не равно |
x!=y |
&& | логическое И |
x>0 && x<1 // двойное неравенство 0<x<1 |
|| | логическое ИЛИ |
s<8 || s>10 |
Для реализации разветвляющегося алгоритма в С++ используется условный оператор if. Приведем общий вид блок-схем и общий вид записи оператора if:
Примечание. Если необходимо выполнить не набор действий, а всего одно действие, то фигурные скобки можно опустить.
Для реализации циклического алгоритма с предусловием в С++ предусмотрено два оператора цикла while и for. По одной и той же блок-схеме с предусловием можно написать две программы, одну – с оператором while, другую – с оператором for. Оператор while удобно использовать, если неопределенно, сколько итераций нужно сделать, или это трудно сделать. Оператор for удобно использовать, когда мы заранее знаем количество итераций.
Приведем общий вид блок-схем и общий вид записи операторов while и for:
Оператор while: x=xn; while(x<xk){ Тело_цикла; x=x+hx; } Оператор for: for(x=xn; x<xk; x=x+hx){ Тело_цикла; } |
Для реализации циклического алгоритма с постусловием в С++ предусмотрен оператор do while. Блок-схема и запись оператора do while в общем виде:
Существует ряд задач, где изменяется сразу две переменные. Тогда используют вложенные циклы. Внутри одного цикла (внешнего) организуют другой цикл (внутренний).
Для ясности будем делать внешний цикл по переменной , а внутренний – по переменной . Обозначим переменные: – начальное значение – конечное значение – шаг по переменной – начальное значение – конечное значение – шаг по переменной . Приведем блок-схему и вид записи операторов цикла с предусловием:
Оператор while: x=xn; while (x<=xk){ y=yn; while (y<=yk){ Тело_цикла; y=y+hy; } x=x+hx; } Оператор for: for (x=xn; x<=xk; x=x+hx){ for(y=yn; y<=yk; y=y+hy){ Тело_цикла; } } |
Общий вид записи циклов с постусловием и блок-схема с постусловием: