Часть 1
Введение в язык С++
Основной задачей большинства компьютерных программ является быстрое выполнение большого количества вычислительных операций. В целях увеличения производительности промежуточные результаты расчетов хранятся в оперативной памяти. Программы С++ для размещения своих данных в оперативной памяти используют переменные. В языке С++ имена, которые используются для обозначения переменных, называются идентификаторами. Идентификатор может содержать латинские буквы, цифры и символ подчеркивания, и начинаться обязан с буквы или символа подчеркивания. В стандарте ANSI языка С++ идентификатор определяется своими первыми 32 символами. Строчные и прописные буквы рассматриваются в С++ как разные символы. Идентификатор не должен совпадать с ключевыми словами (командами, конструкциями языка).
В языке С++ все переменные должны быть объявлены до их использования. В нем определены 6 типов переменных, которые можно назвать базовыми.
Таблица 1. Стандартные типы С++
Тип | Название типа | Диапазон возможных значений |
char | символьный | Символы ASCII, числа от -128 до 127 |
int | целый | от -32768 до 32767 |
float | вещественный | от 3,4 *10-38 до 3,4 *10+38 |
double | вещественный двойной точности | от 1,7*10-308 до 1,7*10+308 |
void | пустой, не имеющий значения | |
bool | логический | true или false |
Если исключить из представления целых чисел знак, то полученный тип данных будет представлять неотрицательные числа с удвоенной верхней границей диапазона представления.
Таблица 2. Беззнаковые целые типы С++
Название типа | Нижняя граница диапазона | Верхняя граница диапазона | Размер в байтах |
unsigned char | |||
unsigned int | 65 535 | ||
unsigned long | 4 294 967 295 |
При объявлении переменная также может быть инициализирована (определено ее начальное значение) некоторой величиной из диапазона допустимых значений. Для этой цели используется оператор присваивания «=». Общая форма объявления переменной:
Тип_переменной идентификатор_переменной [=начальное значение];
В квадратных скобках указано необязательное выражение. Можно считать, что неинициализированная переменная не имеет определенного значения (точнее, ее значение непредсказуемо).
Объявление переменной может размещаться почти в любом месте программы. Однако оно всегда должно предшествовать первому обращению к этой переменной. Одна и та же переменная может быть объявлена несколько раз в разных блоках программы. Нельзя объявить дважды одну переменную в одном блоке программы (в цикле, функции и т.д.)
Примеры объявления и инициализации переменных:
int x=10; // переменная х целого типа и начальным значением 10
float a, b, c; // неинициализированные вещественные переменные a, b, c
char s=’a’; // инициализируем символьную переменную s буквой «а»
char s [20]; // текстовая строка из 20 символов с именем s
При объявлении двух или более переменных одного типа в форме списка можно одну из них (или несколько) обеспечить начальными значениями. При этом все элементы списка разделяются запятыми.
Пример: int a, b=8, c=19, d;
В С++ определен широкий набор операций. Имеется четыре общих класса операций: арифметические, поразрядные, логические и операции отношений. В С++ определены следующие арифметические операции.
Таблица 3. Арифметические операции
Название операции | Знак в С++ | Запись на С++ |
сложение | + | а + 7 |
вычитание | - | р - с |
умножение | * | b * m |
деление | / | х / у |
Остаток от деления (деление по модулю) | % | х % у |
Кроме арифметических операций С++ дает удобные возможности использования математических функций. Большая их часть содержится в библиотеке math.h и для их пользования требуется подключение соответствующей библиотеки (директива #include <math.h>).
Таблица 4. Наиболее употребительные математические функции
Название функции | Обозначение | Запись С++ |
синус | sin x | sin (x) |
косинус | cos x | cos (x) |
тангенс | tg x | tan (x) |
квадратный корень | sqrt (x) | |
возведение в степень | pow (x,y) | |
экспонента | exp (x) | |
натуральный логарифм | ln x | log (x) |
модуль | fabs (x) | |
арксинус | arcsin x | asin (x) |
арккосинус | arcсos x | acos (x) |
арктангенс | arctg x | atan (x) |
Все перечисленные функции принимают в качестве аргумента вещественную переменную (или константу) и возвращают вещественный результат.
В библиотеке math.h также определены некоторые часто используемые математические константы, часть из которых приведена ниже.
Таблица 5. Математические константы
Константа | Запись в С++ |
M_PI | |
е | M_E |
ln2 | M_LN2 |
ln10 | M_LN10 |
Практическая работа № 3. Объявление и инициализация переменных. Стандартные типы данных
Цель работы
Приобретение практических навыков в работе с основными типами переменных, в записи выражений на языке программирования С++.
Упражнение 1
Какие из следующих имен переменных недопустимы?
а) count
б)_count
в) count27
г)67count
д) if
Упражнение 2
Создайте новое консольное приложение со следующим исходным кодом. Запишите набранную программу в свой каталог под любым именем. Запустите программу на выполнение. Проанализируйте листинг исходного кода и объясните, для каких целей здесь использованы переменные name, cm, inch? Сформулируйте алгоритм работы этой программы.
//zadanie2.cpp
#include <iostream.h>
#include <conio.h>
void main ()
{
char name [20];
float cm, inch;
// ввод значения переменной name с клавиатуры
cout <<”Enter your name –“;
сin>> name;
cout <<”Enter your height –“;
cin >> cm;
inch=cm/2.54;
cout <<”Your heigt is”<<inch;
getch ();
}
Упражнение 3
Исправьте ошибки в программе, проверьте работу программы со следующими числами a, b: 32766, 32768; 23, 0.00005; 15, 20.
//zadanie3.cpp
#include <iostream.h>
#include <conio.h>
void main ()
{
clrscr ();
int a,b;
float c;
cout<<"vvedite a,b\n";
cin>>a>>b;
c=a*b;
cout<<"\n c="<<c;
c=a / b;
cout<<"\n c="<<c;
getch ();
}
Упражнение 4
Напишите программу, запрашивающую у пользователя длины сторон треугольника a, b, c и выводящую на экран углы α, β, γ.
Упражнение 5
Выполните программу вычисления математического выражения
.
Вопросы и задания для отчета
1. Какое действие выполняет директива #include <iostream.h> (#include <conio.h>)?
2. Какое ключевое слово в С++ служит для объявления данных целочисленного (вещественного, символьного) типа? Каким образом в С++ объявляется текстовая строка?
3. Можно ли использовать переменные типа char для представления небольших целых чисел?
4. Найдите синтаксические и логические ошибки в приведенных ниже конструкциях:
а) int a; b;
сout >> b;
cin <<a;
б) float x = -0,5;
float y = |x|;
в) float x, y, z;
float x = 1.5;
г)float i=2*exp(x));
д) float x, y, z;
z=sin (x, y);
z=pow (xy)
е) int a = 1;
int b = cos (a);
5. Найдите произведение цифр заданного трехзначного числа.
6. Напишите программу, рассчитывающую значение заданной функции и выводящую его на экран. Значения аргумента должны вводиться с клавиатуры.