Основные возможности С++, операторы Case, построение интерфейса
СОДЕРЖАНИЕ.
ВВЕДЕНИЕ ………………………………………………………………….2 1. РАЗДЕЛ I СОЗДАНИЕ ДИАОЛОГА……………………………………6 1.1.Построение диалога………………………………………………6 1.2.Оператор Case…………………………………………………….9 2.РАЗДЕЛ II ОСНОВНЫЕ ВОЗМОЖНОСТИ ЯЗЫКА С++……………11
2.1. Первое знакомство с языком С++………………………….......12
2.2. Математически операции в С++. Основные типы данных, Операция присваивания. Операции инкремента и декремента…..13
2.3. Использование операторов ветвления…………………………16
2.4. Создание массивов. Циклические операции…………………..21
3.РАЗДЕЛ III ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ
MICROSOFT VISUAL STUDIO 5.0……………………………………….25
ЗАКЛЮЧЕНИЕ……………………………………………………………..32
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ ……………………….33
ПРИЛОЖЕНИЕ 1……………………...........................................................34
ВВЕДЕНИЕ
В одном энциклопедическом словаре по поводу того, что такое язык, сказано буквально следующее:
«ЯЗЫК» - 1) естественный язык, важнейшее средство человеческого общения. Язык неразрывно связан с мышлением; является социальным средством хранения и передачи информации, одним из средств управления человеческим поведением. Язык возник одновременно с возникновением общества в процессе совместной трудовой деятельности первобытных людей. Возникновение членораздельной речи явилось мощным средством дальнейшего развития человека, общества и сознания. Языки мира различаются строением, словарным составом и др., однако всем Языкам присущи некоторые общие закономерности, системная организация единиц языка (например, парадигматические и синтагматические отношения между ними) и др. C++ также является языком. Его так и называют "язык программирования C++". Это формальный язык. Он служит для описания данных и алгоритмов их обработки на ЭВМ. Несмотря на огромную разницу между естественными и формальными языками, у них есть много общего. Их общие черты неожиданно проявляются в самых разных областях. Например, изучение естественного языка является сложным процессом, включающим как обретение элементарных автоматических навыков, так и восприятие сложных абстрактных понятий. При этом возможность относительно свободного использования языка как средства общения появляется уже на ранних стадиях этого процесса, когда вообще ещё не имеет смысла говорить о знании языка. Так, подавляющее большинство населения любого крупного города общается между собой, используя разговорный язык той страны или той местности, в которой расположен этот город. Практически все, кто проживает в городе, свободно владеет разговорным языком, а вернее, навыками разговорной речи. При этом лишь незначительная часть жителей действительно знает этот язык.
Первые опыты программирования, подобно использованию навыков разговорной речи, не требуют особых познаний в области формальных языков. Для составления работающих программ достаточно иметь интуитивные представления об алгоритмах и устройстве компьютера. Часто бывает достаточно ознакомиться с несколькими работающими программами или даже с фрагментами таких программ, чтобы, в буквальном смысле используя образцы, успешно описывать собственные алгоритмы. Однако грамотная речь невозможна без знания языка, а профессиональное программирование требует глубоких знаний в области языков программирования.
Дело в том, что C++ является языком "общения" человека с компьютером. Основным "читателем" текстов на языке C++ является транслятор. Это особая программа, в обязанности которой входит проверка правильности текста программы и его последующий перевод на язык процессора - основного устройства ЭВМ, который и обеспечивает выполнение программы.
|
|
Почти все типы лексем (кроме ключевых слов и идентификаторов) имеют собственные правила словообразования, включая собственные подмножества алфавита. Лексемы разделяются разделителями. Этой же цели служит множество пробельных символов, к числу которых относятся пробел, символы горизонтальной и вертикальной табуляции, символ новой строки, перевода формата и комментарии.
C++ — это язык программирования общего назначения, Цель которого — сделать работу серьезных программистов более приятным занятием. За исключением несущественных деталей, C++ является надмножеством языка С. Помимо возможностей, предоставляемых С, C++ обеспечивает гибкие и эффективные средства определения новых типов. Программист может разделить приложение на несколько фрагментов, определив новые типы, отражающие базовые концепции предметной области. Такой способ разработки часто называют абстракцией данных. Объекты типов, определяемых пользователем, содержат необходимую информацию, свою для каждого типа. Такие объекты можно удобно и безопасно использовать даже в контексте, где их тип нельзя определить во время компиляции. Программы, использующие объекты таких типов, часто называют объектными. При надлежащем использовании подобные методы дают более короткие, понятные и простые в сопровождении программы. Ключевое понятие в C++ — класс. C++ предоставляет гораздо лучшие, чем С, средства для проверки типов и поддержки модульного программирования. Кроме того, язык содержит усовершенствования, непосредственно не связанные с классами, такие как: символические константы, встраивание функций в место вызова, аргументы функций по умолчанию, перегруженные имена функций, операторы управления свободной памятью и ссылки. C++ сохраняет способность языка С эффективно работать с аппаратной частью на уровне битов, байтов, слов, адресов и т. д. Текущая реализация будет работать на большинстве систем, поддерживающих язык С. Библиотеки языка С можно использовать в программе, написанной на C++, и большинство инструментальных средств С можно применять для C++.
Целью данной курсовой работы показать простое взаимодействие человека с компьютером средствами языка С++. Microsoft Visual C++ имеет огромные средства создания для создания графических интерфейсов, но описание всех возможностей языка С++ по созданию графического интерфейса далеко уходить за рамки данной курсовой работы.
РАЗДЕЛ I
СОЗДАНИЕ ДИАОЛОГА
По словарю С.И.Ожегова: Интерфейс - в вычислительной технике: система унифицированных связей и сигналов, посредством которых устройства вычислительного комплекса взаимодействуют друг с другом. От того, насколько удобен и практичен интерфейс зависит во многом успех программы среди огромной массы уже созданных. Не редко, программы, которые имеют меньше функциональных возможностей, но более приятный и интуитивный интерфейс становятся лидерами среди своих конкурентов. За примером далеко ходит не надо. Всем известная Windows получила такое широкое распространение и монополию, всего лишь тем что её интерфейс понятен даже ребёнку, ведь до её создания понятие пользователь не существовало, было лишь понятие программист, который должен был днём и ночью помнить кучу команд в DOS для выполнения простейших операций.
Любой язык программирования позволяет создавать интерфейс с пользователем. Ведь программа не имеет смысла, если человек который её использует, не вводит исходные данные. Язык С++ имеет огромные средства для создания диалога с пользователем. В данной курсовой работе будет рассмотрен пример, в котором используется цифровое меню в качестве простейшего интерфейса.
1.1.Построение диалога
Построение диалога очень ответственная часть создания программы. Ведь от того насколько логично и удобно будет построен диалог, будет зависеть комфортная работа пользователя. В данном примере будет построен диалог при помощи которого пользователь сможет выбрать какую конкретно задачу он хочет решить с помощью компьютера. Создание диалога в данном примере можно разбить на несколько этапов:
|
|
При выборе первого пункта меню на экран будет выведена программа, которая приветствует пользователя; при выборе второго - программа, которая демонстрирует простые математические возможности; при выборе третьего пункта – программа которая демонстрирует возможности оператора ветвления; при выборе четвёртого пункта программа демонстрирует возможности операторов цикла и сложных типов данных. Общий вид диалога представлен на рис.1.1. Для создания диалога на языке С++, необходимо использовать поток ввода/вывода (cin / cout), который более детально рассмотрены ниже. Задачи будут весьма простые, и все они сводятся к демонстрации основных возможностей языка C++. Как указывалось выше диалог будет в виде цифрового меню, после нажатия определённой клавиши пользователю будет открываться соответствующая программа. Естественно такой диалог далеко не самый красивый, но с точки зрения практичности он имею довольно высокий уровень. Усовершенствовать его можно путём добавления дополнительных пунктов или текстовых подсказок, для обеспечения более комфортной работы с программой.
рис.1.1. Общий вид диалога 1.2.Оператор Case
|
Таким образом, в нашем примере пользователь нажав определённую кнопку запустит соответствующую часть программы. Алгоритм более детально представлен на рис 1.2.
Mathematic operation; |
Да |
Нет |
Да |
Начало |
Welcome to C++ |
Main_select = 2 |
Нет |
Да |
Main_select = 1 |
|
|
|
|
|
Using a cycles. |
Нет |
Да |
Конец |
Main_select = 4 |
ОСНОВНЫЕ ВОЗМОЖНОСТИ ЯЗЫКА С++
Перечислим некоторые существенные особенности языка С++:
- С++ обеспечивает полный набор операторов структурного программирования, самые необходимые и главные из них будут рассмотренны чуть ниже;
- С++ предлагает необычно большой набор операций. Многие операции С++ соответствуют машинным командам и поэтому допускают прямую трансляцию в машинный код. Разнообразие операций позволяет выбирать их различные наборы для минимизации результирующего кода;
С++ поддерживает указатели на переменные и функции. Указатель на объект программы соответствует машинному адресу этого объекта. Посредством разумного использования указателей можно создавать эффективно выполняемые программы, т.к. указатели позволяют ссылаться на объекты тем же самым путем, как это делает ЭВМ. С++ поддерживает арифметику указателей, и тем самым позволяет осуществлять непосредственный доступ и манипуляции с адресами памяти.
Однако, следует отметить, что преимущества языка С++ становятся очевидными при реализации больших программных проектов. Первые же шаги при программировании на С++ требуют от студента тщательного проектирования программы, а также определенной дисциплины при программировании.
2.1. Первое знакомство с языком С++
Большинство книг по различным языкам программирования, начинают свои первые главы с описания создания небольшой программы, которая выводит на экран приветственное сообщение. Не уходя далеко от общепринятых стандартов, начнём наше знакомство с языком С++, созданием программы которая выведет на экран сообщение «Hello world».
Это программы будет выводится у нас при нажатии кнопки 1, после создания нашего конечного диалога. Но сначала всё по порядку.
Мы создадим простейший диалог, который будет выводит сообщение на экран. Эта программа не имеет входных данных, поэтому с практической точки зрения она не имеет смысла. Но разобраться с тем, что такое диалог и как его создавать, даже самый простой очень важная часть в изучении С++, ведь без диалога или интерфейса не обходится ни одна программа.
Для создания приветственного сообщения необходимо использовать поток вывода. Обычно поток вывода используется совместно с потоком ввода, но так как вводится в компьютер в данном примере нечего не будет, будет использован только поток вывода.
Чтобы использовать поток ввода/вывода необходимо сначала подключить его. Для этого в начале необходимо написать директиву #include <iostream.h>
Синтаксис потока ввода/вывода
cout >> “Сообщение” ;
cin << имя переменной ;
При помощи оператора cout на экран выводится сообщение, например приглашение пользователю ввести значение переменной, как показано на рис.1.1 Поток вывода. При помощи оператора cin пользователь вводит значение переменной.
Поток ввода /вывода, может иметь несколько сложную структуру, например, когда нужно вывести на экран одновременно и строковую константу и значение переменной одной строкой.
Например:
cout << “ Value of a =” << a<<\n;
Следует обратить внимание, на то, что строковая константа записывается с кавычками, а переменная без.
Итак, в данной программе будет выведена на экран фраза: “Hello world”. Для этого будет использован поток вывода: cout<< “Hello world”;
2.2. Математически операции в С++. Основные типы данных, Операция присваивания. Операции инкремента и декремента
Любой язык программирования имеет огромные возможности для создания программ, в которых используются сложные математические вычисления. Средствами С++, так как он является языком низкоуровневым, можно создать программы от простого калькулятор до сложных мат. физических моделей, который будут использовать всю вычислительную мощь ЭВМ.
Так как при различных задачах необходимо использовать различные типы чисел (натуральные, целые, действительные), С++ позволяет описывать тип переменной для её эффективного использования. Есть возможность выделить для переменной, которая имеет небольшой диапазон значений, достаточно без избытка места в памяти.
Для того чтобы имя переменной можно было использовать у программе на С++, оно должно быть объявлено. То есть нужно знать тип данного индефикатора, чтобы сообщить компилятору к какому типу относится данная переменная
Объявление типа переменной вводит имя переменной в область видимости, которая простирается от точки объявления переменной до конца блока. Типы данных в С++ можно разделить на простые и сложные:
Простые – те типы, которые позволяют описывать переменные представляющие собой простые данные (число, символ). Сложные – представляют совокупность простых (массивы)
Простые типы в свою очередь подразделяются на целые и вещественные. Целые типы данных используются для хранения целых типов данных. Вещественные типы данных предназначены для хранения действительных чисел. В компьютере действительные числа хранятся в виде чисел с плавающей точкой, с помощью мантиссы.
Целые типы данных указаны в таблице 2.1.
Таблица 2.1. Простые типы данных
Тип данных |
Байты |
Биты |
Min |
Max |
char |
1 |
8 |
- 128 |
127 |
short |
2 |
16 |
-32768 |
32767 |
int |
2 |
16 |
-32768 |
32767 |
long |
4 |
32 |
-2147483648 |
2147483647 |
Все целые типы можно использовать как логические (0-ложь, 1 и больше – истинна)
Вещественные типы данных указаны в таблице 2.2.
Таблица 2.2. Вещественные типы данных
Тип данных |
Байты |
Биты |
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.
Начало |
X>=Z |
Нет |
Введите Х |
|
|||
SHAPE \* MERGEFORMAT
B = y2 *ln|z-x| |
A= |
Конец |
Рис. 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