Тип данных
|
Байты
|
Биты
|
Min
|
Max
|
float
|
2
|
32
|
3.4E-38
|
3.4E+38
|
double
|
4
|
64
|
1.7E-308
|
1.7E+308
|
long double
|
10
|
80
|
3.4E-4932
|
3.4E+4932
|
Описывать переменные
можно в любом месте программы, но только до её использования. Описывать
переменные очень просто достаточно указать её тип и написать название, которое
используется для обозначения этой переменной в программе. Например
int a;
double
b;
char c;
где
а,b,c – имя переменных.
В
некоторых ситуациях необходимо описать такие значения переменных, которые будут
не изменятся, т.е. констант. Константы описываются точно так же как и
переменная только перед типом ставится служебное слово const
Например,
const
int a=5;
Чтобы использовать
математические операции, такие как вычисление, косинуса, синуса, логарифма,
корня аргумента и.т.д нужно подключить библиотечный файл, для этого в начале
программы необходимо прописать директиву #include <iostream.h>
Операция присваивания, наверняка является самой частой операцией при написание программ на языке С++. Операция присваивания позволяет оперировать переменными, присуждая им определённые значения, или оперировать ими как операндами.
Простая форма операции присваивания.
a = 2;
В этом случае переменной а присвоилось значение 2;
Левый операнд операции присваивания является лево опустимым выражением. В качестве правого операнда операции присваивания может выступать любое выражение. Значение правого операнда присваивается левому операнду. Значение выражения оказывается равным значению правого операнда. Не существует никаких ограничений на структуру этого операнда. Правый операнд может состоять из множества выражений, соединенных операциями присвоения:
Операция инкремента увеличивает значение переменной на 1
А++
Операция декремента уменьшает значение переменной на 1
А—
Операции инкремента и декремента бывают постфиксные и префиксные. Если ++ или – стоит перед переменная то операция префиксная, если после – постфиксная. Если операция префиксная то значение переменной сначала увеличивается (уменьшается) на 1, а только потом данная переменная участвует в вычислениях.
Например int a =1;
(++a)+1; значение а = 3
(a++)+1; значение а = 2
Для вычисления квадратного корня переменной в С++ используется следующий синтаксис:
sqrt(<имя переменной>);
Для вычисления синуса переменной в С++ используется следующий синтаксис:
sin (<имя переменной>);
C++ допускает вложение операций т.е. можно написать:
sqrt (sin(<имя переменной>));
Синтаксис остальных математических операций, можно посмотреть в справочной литературе, так как описание всех математических функции и их нюансов, выходит за рамки этой курсовой работы.
2.3. Использование операторов ветвления
Даже самые старые языки программирования имеют возможность выполнять те или иные действия в зависимости от условия. Без операторов ветвления не обходится не одна более или менее серьезная программа. В С++ чаще всего используется оператор условия и условная операция, разницу между ними будет показана ниже.
Оператор условия предназначен для реализации алгоритмической структуры разветвления, при этом сначала проверяется условие и если оно истинно то выполняется оператор или операторы, если же условие не выполняется то выполняется другое действие или вообще не чего не выполняется. Синтаксис оператора условия
if (<условие>) {
оператор 1;
оператор 2;
…………
оператор n;
}
else {
оператор 1;
…………
оператор n;
}
При необходимости после else (т.е после того как условие не выполнилось), можно вставить ещё одно условие, но если и оно не выполнится то ни какие действия выполнятся не будут.
Например:
int a=2;
int b=3;
int a=2;
if (a>b) {
max=a;
}
else (a<b) max=b;
В этом примере выбирается максимальное значение из 2-ух переменных, так как было задано условие в else, но если a=b не чего выполнятся не будет.
Операция сравнения имеет следующий синтаксис:
<переменная> = (< условие или операнд >)? <опер.2>: <опер.2>;
Единственная в C++ операция с тремя операндами. Первое выражение-операнд располагается слева от знака ?, второе выражение-операнд располагается между знаками ? и :, третье выражение-операнд - справа от знака :. Выполнение условной операции начинается с вычисления значения самого левого операнда. Если его значение оказывается правда или >=1, то вычисляется значение второго операнда, которое и становится значением выражения. Если значение первого операнда оказывается ложь или =0 , то вычисляется значение третьего операнда, и тогда это значение становится значением выражения. В качестве первого операнда часто используется условие. Тот же пример, только уже с использованием условной операцию
int b=3;
int a=2;
max = (a>b)? a: b;
Как видно из этих двух примеров, разница между оператором сравнения и условной операцией очень большая, хоть они и являются операторами ветвления. Во-первых, условную операцию лучше всего использовать в небольших программах, где в зависимости от условия нужно присвоить переменной то или иное значение, программа получается короче и проще. Но в программах, где необходимо создать сложную разветвлённую структуру, использование оператора условия просто необходимо, Также их можно объединять для создания ещё более сложной разветвляющей структуры.
Разветвляющую структуру представлен на следуещем примере.
Входные данные:
z=0,22
y=1,25
Математические формулы:
A =
B = y2 *ln|z-x|
В зависимости от значений z или y необходимо вычислить значение A или B, то есть необходимо применить оператор ветвления.
Пример разветвляющего алгоритма на рис 2.1.
Рис. 2.1. Применение оператора ветвления.
2.4. Создание массивов. Циклические операции
Массив является составным типом данных. По определению массив – это совокупность данных одного и того же типа расположенном в памяти компьютера последовательно один за другим. Каждый массив характеризуется базовым типом и размером ( т.е. количеством элементов в массиве), а также размерностью (одномерный, двумерный и.т.д. Одномерный массив можно сравнить с вектором, в котором каждое число имеет своё определённое место; двумерный массив – с матрицей, в которой каждый элемент имеет свое место и номер. Чтобы получить доступ к элементу массива необходимо знать его номер.
Синтаксис описания массива в программе имеет следующий вид:
<базовый тип> <имя массива> <размер> [<инициализация>]
Например:
int new [100]
int – описание базового типа, в данном примере это целый тип с диапазоном от -32768 до 32767
new – имя массива
[100] – инициализация одномерного массива размером 100
Для доступу к элементу массива необходимо указать название и номер элемента. Например:
a = new[20], в этом случае переменной а будет присвоено значение 19( так как индексация начинается с 0) элемента в массиве. Следует обратить внимание на тот факт, что нумерация начинается не с 1, а с 0.
Описание многомерных массивов имеет почти тот же синтаксис, что и одномерных. Например:
double new2 [10] [10]
В этом случае будет создан двумерный массив с базовым вещественным типом double, размером 10х10.
Для доступа к элементу массива, в данном примере необходимо указывать 2 индекса. Например:
b = new2[5][6].
В этом случае будут получен доступ к элементу с индексом 4,5 (например, если это матрица, то мы получим доступ к 4 элементу 5 столбца).
Чаще всего для создания программ, которые используют массивы, применяются операторы цикла. Так как для заполнения массива данными, необходимо многократное повторение действий.
Операторы цикла предназначены для создания каких-то циклических действий. Каждый цикл включает условие или параметры, в результате выполнения которых, будут совершаться определенные действия.
В С++ существует 3-и типа циклов:
- цикл с предусловием;
- цикл с постусловием;
- цикл с параметрами;
Цикл с предусловием используется в тех случаях, когда сначала необходима проверка условия, перед первым выполнением одного или нескольких действий. Этот тип цикла, распространён больше чем цикл с постусловием. Цикл с предусловием имеет следующий синтаксис:
while (<условие>) {
оператор1;
…………….
оператор n;
}
Цикл с постусловием используется в тех случаях, когда сначала необходимо выполнение действий, а потом уже проверка, продолжать ли выполнение. Цикл с постусловием имеет следующий синтаксис:
do {
оператор1;
…………….
оператор n;
}
while (<условие>)
Цикл с параметрами особая форма цикла с предусловием. Он имеет следующий синтаксис:
for (<инициализация>, <условие>, <приращение переменной цикла>)
{
оператор1;
…………….
оператор n;
}
Пример использования цикла с параметрами:
for (i=0; i<10; i++) {
b=b*i;
cout<< b ‘’ \n’’;
}
Так как массивы часто используются с циклическими операциями, ниже будет приведен пример такого использования.
Входные данные: матрица, размер которой задаётся пользователем (не больше 100х100)
Постановка задача: построить матрицу из исходной путём деления её отрицательных элементов на сумму всех положительных.
Для ввода значений элементов матрицы используем два вложенных цикла с параметрами. Условием в первом будет i<n, где n – число рядков. То есть ввод будет продолжатся до тех пор, пока индекс рядка текущего элемента не будет большим, чем он существует. Вложенный цикл осуществляет ввод элементов.
Для построения новой матрицы, использовались уже циклы с предусловием и постусловием. Исходные тексты программ представлены в приложении 1.
РАЗДЕЛ III
ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ MICROSOFT VISUAL STUDIO 5.0
Microsoft Visual
C++ - это инструмент для
программирования в среде Windows, представляющее собой
множество инструментов, собранных в одном динамическом пакете, готовом к
немедленной работе. Программные задачи Visual
C++ оформляются в виде пакетов. Обычно
для каждой задачи создается свой новый проект. Проект представляет собой набор
файлов, которые совместно используются для создания одной программы. Проекты
размещаются в рабочих областях (Work space) при чем одна рабочая область может
содержать несколько проектов.
Visual C++
автоматически создает для каждого нового проекта свою рабочую область.
Для запуска Visual C++
необходимо выбрать меню :
Пуск ®Программы®Microsoft Visual Studio®Microsoft Visual C++ 5.0
После запуска программы появляется
окно, которое принадлежит интегрированной среде разработки.
Microsoft Developed Studio – это окно управляющее работой Microsoft Visual C++. В этом окне есть пункт меню файл.
Необходимо выбрать команду New, затем
в появившемся диалоговом окне выбрать строку Win 32 Consol Application (закладки project), затем справа указать имя
проекта, и папку в которой будет размещаться созданный объект. После
нажатия создаётся проект с указанным именем . В этот проект будет входить
два файла (Например: если имя проекта будет - ABS )
ABS.dsw
ABS.dsp
Расширение *.dsw определяет параметры новой рабочей
области.
Расширение *.dsp определяет параметры нового проекта.
Для вызова ранее созданного
проекта необходимо открывать файл с расширением *.dsw
Файл с расширением *.срр
, создается в интегрированной среде разработчика. Он содержит исходный
текст программы. Чтобы войти в редактор, для написания программы , необходимо
в меню выбрать пункт меню – <File> -> <New>. В появившемся диалоговом окне,
которое указано на рис.3.1. выбрать закладку <Files>, слева выбрать С++ Source File
Рис.3.1. Создание исходного файла в Microsoft Visual
Studio 6.0.
Выбрать проект, в котором будет
находится файл с расширением *.cpp,
указать имя файла.
Для компилирования
необходимо выбрать меню <Build>®<Compile>
Откомпилировав
программу в нижнем окне Microsoft Visual
Studio выдаст отчет об
компиляции (в нем записывается количество ошибок, если они есть).
После компиляции программу запускают
на выполнение. В том же пункте <Build> следует выбрать file execute.
Появится окно, где будет
написано: Welcome to C++.
Программа - это
последовательность инструкций, предназначенных для выполнения компьютером.
Процесс создания программы предполагает несколько
этапов. За этапом разработки проекта программы следует этап программирования.
На этом этапе пишется программа. Программистами этот текст воспринимается легче
двоичного кода, поскольку различные мнемонические сокращения и имена заключают
дополнительную информацию.
Файл с исходным текстом
программы (его также называют исходным модулем) обрабатывается транслятором,
который осуществляет перевод программы с языка программирования в понятную
машине последовательность кодов. Процесс трансляции разделяется на несколько
этапов.
На первом этапе исходный текст (он обычно хранится
в виде текстового файла) подвергается лексической обработке. Программа
разделяется на предложения, предложение делится на элементарные составляющие
(лексемы). Каждая лексема распознаётся (имя, ключевое слово, литерал, символ
операции или разделитель) и преобразуется в соответствующее двоичное
представление. Этот этап работы транслятора называют лексическим анализом.
Затем наступает этап
синтаксического анализа. На этом этапе из лексем собираются выражения, а из
выражений - операторы. В ходе трансляции последовательности терминальных
символов преобразуются в нетерминалы. Невозможность достижения очередного
нетерминала является признаком синтаксической ошибки в тексте исходной
программы.
После синтаксического
анализа наступает этап поэтапной генерации кода. На этом этапе происходит
замена операторов языка высокого уровня инструкциями ассемблера, а затем
последовательностями машинных команд.
Системы
программирования, реализующие язык программирования C++, предусматривают
стандартные приёмы и средства, которые делают процесс программирования более
технологичным, а саму программу более лёгкой для восприятия.
К числу таких средств
относится система поддержки многомодульных программ, которые строятся из
отдельных фрагментов. Модули располагаются в различных файлах, часть из которых
может быть независимо от других обработана транслятором. На этапе сборки часть
модулей может быть собрана в так называемые загрузочные модули, которые и
выполняются процессором.
Процесс разработки многомодульных программ
эффективнее, особенно если разрабатывается программа большого размера, когда
над реализацией проекта может работать несколько программистов, каждый из
которых имеет возможность модифицировать фрагменты программы, не мешая работе
остальных.
В C++ не существует
специальных языковых конструкций, которые непосредственно в программе описывали
бы общую структуру многомодульной программы. Обычно структура программы
описывается специальными неязыковыми средствами и зависит от конкретной
реализации системы программирования. Межмодульные связи поддерживаются
специальными файлами проектов, в которых и фиксируется вся необходимая для
создания многомодульной программы информация.
Объектный модуль можно
выполнять лишь после специальной дополнительной обработки (компоновки), которая
осуществляется специальной программой-компоновщиком.
В общих чертах процесс
компоновки выглядит следующим образом. Программа строится из инструкций и
операторов. В свою очередь, операторы включают выражения, которые состоят из
операций и операндов. По крайней мере, части операндов в выражениях должны
соответствовать отдельные "участки" оперативной памяти,
предназначаемые, например, для сохранения результатов вычислений.
В ходе трансляции устанавливается соответствие
между операндами и адресами областей памяти вычислительной машины. Так вот
задача компоновщика состоит в согласовании адресов во всех фрагментах кода, из
которых собирается готовая к выполнению программа. Компоновщик отвечает за то,
чтобы конкретному операнду выражения соответствовала определённая область
памяти.
Компоновщик также
добавляет к компонуемой программе коды так называемых библиотечных функций (они
обеспечивают выполнение конкретных действий - вычисления, вывод информации на
экран дисплея и т.д.), а также код, обеспечивающий размещение программы в
памяти, её корректное начало и завершение.
Преобразованная компоновщиком программа называется
загрузочным или выполнимым модулем. Файлы, содержащие загрузочные модули,
называют загрузочными или выполнимыми файлами.
ЗАКЛЮЧЕНИЕ
В результате выполнения данной курсовой работы, был создан диалог человек – компьютер на языке С++. Диалог в котором используется цифровое меню является простейшим интерфейсом. Хотя примерно до 1993г. (до появления графической MS Windows3.1, MS Windows 95, MacOS), такой интерфейс был довольно распространенный, так использование программ и компьютеров в целом, было делом рук специалистов в этой области, но ни как ни рядовых пользователей. Современные ОС позволяют научится работать с компьютером без дополнительной литературы, так как в условиях жестокой конкуренции программисты всеми силами пытаются привлечь пользователей всех уровней к использованию написанных ими программ.
Средствами Microsoft Visual Studio 5.0. Были показаны основные возможности языка С++, и описан синтаксис основных операций. Более детальное рассмотрение возможностей С++ далеко выходит за рамки этой курсовой, так как С++ объектно-ориентированным языком программирования. Стоит упомянуть, что операционная система и программа в которой написана данная курсовая, написана на языке С++, что говорит о его широкой популярности, практичности и универсальности.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Доц. Шевченко Л.П. Конспект лекций.
2.Баженов И.Ю. Visual C++ 6.0. «Уроки програмирования» - М.: Диалог – МИФИ, 2001 – 416с.
3. Интернет http://www.citforum.ru
4. Интернет http://www.winsov.com
5.Х.М.Дейтел, П.Дж.Дейтел "Как программировать на C++"
ПРИЛОЖЕНИЕ 1
#include <iostream.h>
#include <math.h>
void main () {
int main_select, i;
cout << " Designed by Avramenko Viktorya Nikolaevna \n";
cout << "Warning! This computer program is protecting by copiright law \n";
cout << "and international treaties!\n\n\n\n\n\n\n ";
cout << "PRESS 1,2,3,4 to select task;\n";
cout << "1.Welcome to C++; \n";
cout << "2.Mathematic operation; \n";
cout << "3.The operator of a condition; \n";
cout << "4.Using cycles; \n\n\n\n\n";
cout << "You enter number ";
cin >> main_select;
switch(main_select) {
case 1: {
for (i=0; i<20; i++) cout<<"\n"; //for clear screen
cout << "//You select first task. \n\n\n\n\n";
cout<< "Welcome to c++ \n";
for (i=0; i<20; i++) cout<<"\n"; //for clear screen
break; }
case 2: {
for (i=0; i<20; i++) cout<<"\n";
cout << "//You select second task. \n\n\n\n\n";
cout << "WELCOME! \n";
cout << "This programm find the area of rectangular \n";
double a,b,s;
cout <<"Enter value first party \n";
cin >>a;
cout <<"Enter value second party \n";
cin >>b;
s=a*b;
cout <<"Area of rectangular = " << s<< "\n";
break;
}
case 3: {
for (i=0; i<50; i++) cout<<"\n";
double tot,a,b,x;
const double z=0.22;
const double y=1.25;
cout << "//You select third task. \n\n\n\n\n";
cout <<"WELCOME. This program demonstrate using operation of condition\n";
cout <<"Vvedite znachenija X \n";
cin >> x;
cout <<"Priminenie operatora uslovija \n";
if (x>=z)
{
a = sqrt(abs(y)+abs(x)); //first value
cout<<"A ="<<a<<"\n";
}
else
{
b=y*y*log(abs(z-x));
cout<<"B ="<<b<<"\n"; //second value
}
cout <<"Priminenie operacii uslovija \n";
tot = (x>=z)? sqrt(abs(x)+abs(y)):y*y*log(abs(z-x));//both value
cout<<"A ="<<a<<"\n";}
break;
case 4: {
for (i=0; i<50; i++) cout<<"\n";
int n,m,i,j;
cout << "//You select fourth task. \n\n\n\n\n";
cout <<"WELCOME. This program demonstrate using complex" << "\n " <<"type of date with using cycles \n\n\n";
cout << "So, now you create matrix. Size of matrix N x M\n";
double matrix[100][100], tot;
cout<<"Input N= ";
cin>>n;
cout<<"Input M= " ;
cin>>m;
tot=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
cout<<"Input element matrix["<<i<<"]["<<j<<"]=";
cin>>matrix[i][j];
if (matrix[i][j] >=0) tot=matrix[i][j]+tot; //tot - total all positive elements of matrix
}
cout<<"\n"<<"New matrix:\n";
i=0;
j=0;
while(i<n)
{
do
{
if (matrix[i][j] <0) matrix[i][j]=(matrix[i][j] / tot); //division negative elements of old matrix on total all positive elements of matrix
cout<<matrix[i][j] << " " ; //new matrix
j++;
}
while(j<m);
cout << "\n";
i++;
j=0;
}
} //closing case
}//closing switch
}//closing main void function
//THANK FOR ATENTION