Автор работы: Пользователь скрыл имя, 15 Ноября 2013 в 23:44, курсовая работа
Язык программирования C++ широко используется для разработки программного обеспечения. А именно, создание разнообразных прикладных программ, разработка операционных систем, драйверов устройств, а также видео игр и многое другое. Существует несколько реализаций языка программирования C++ — как бесплатных, так и коммерческих. Их производят проекты: GNU, Microsoft и Embarcadero (Borland). Проект GNU — проект разработки свободного программного обеспечения (СПО). Язык программирования С++ был создан в начале 1980-х годов, его создатель сотрудник фирмы Bell Laboratories – Бёрн Страуструп.
Для работы с массивами характерным является использование итерационных циклов for. С их помощью организуется выполнение однотипных операций со всеми элементами массива, в частности, поэлементный ввод-вывод, поэлементные арифметические операции и др.
Массивы в программах C++ могут быть не только линейными. Довольно частым является использование двух - (и более) -мерных структур. К примеру, прямоугольная матрица - типичная структура, представимая с помощью двумерного массива; а 3D-тензор может быть записан как соответствующий трехмерный массив.
Многомерный массив в C++ организован по принципу «массива массивов».
Общий формат его объявления
тип имя[N1][N2]…[NM];
Здесь M - число индексов (или размерность) массива. Индексы изменяются в пределах от 0 до N1 - 1, от 0 до N2 - 1, от 0 до N3 - 1, ..., от 0 до NM - 1, соответственно.
К примеру, запись int G[5][4]; означает объявление двумерного массива целых чисел с именем G и размерами 54.
Доступ к элементам многомерного массива в программе производится так же, как и в одномерном случае, то есть путем указания имени массива и набора индексов в квадратных скобках. Например, операция присваивания значения 0 последнему элементу будет записана как G[4][3] = 0.
При работе с многомерными массивами удобно использовать вложенные циклы for. С их помощью можно выполнить заданное действие с каждым из элементов массива путем перебора всех значений индексов.
Двумерный массив - это так называемая матрица (или таблица), у которой есть строки и столбцы. По соглашению программистов первый индекс массива будет указывать на строки, а второй на столбцы. Вот пример объявления и инициализации двумерного массива, состоящего из трех строк и пяти столбцов.
int aMatrix[3][5] = {{3, 5, 5, 7, 8},
{4, 1, 1, 2, 9},
{3, 8, 8, 9, 7}};
Как видите, двумерный массив имеет два индекса (на то он, в принципе, так и называется). Сразу при объявлении мы его инициализируем целочисленными величинами.
Для удобства мы их записываем в виде матрицы (таблицы): каждая строка с новой строки (их у нас 3), в каждой строке 5 столбцов.
Можно и так записать, как показано ниже. Разницы для компилятора не будет никакой. Разве лишь разница будет в визуальном восприятии для человека.
int aMatrix[3][5] = {{3, 5, 5, 7, 8}, {4, 1, 1, 2, 9}, {3, 8, 8, 9, 7}};
Либо вообще так, без указания фигурных скобок, которые логически разделяют строки друг от друга.
int aMatrix[3][5] = {3, 5, 5, 7, 8, 4, 1, 1, 2, 9, 3, 8, 8, 9, 7};
Кстати, последняя запись демонстрирует то, как на самом деле элементы массива размещаются в памяти компьютера. Как я уже писал в предыдущих главах, они идут последовательно.
Если инициализация двумерного массива происходит одновременно с объявлением, то можно даже не указывать первый индекс, т.е. количество строк массива.
int aMatrix[][5] = {{3, 5, 5, 7, 8},
{4, 1, 1, 2, 9},
{3, 8, 8, 9, 7}};
Зная количество столбцов, компилятор при компиляции сам рассчитает количество строк двумерного массива.
Для доступа к элементам двумерного массива нужно, так же, как и для одномерного указать индекс.
В данном случае нам нужно будет позаботиться об указании двух индексов.
Классы и объекты в С++ являются основными концепциями объектно-ориентированного программирования — ООП. Объектно-ориентированное программирование — расширение структурного программирования, в котором основными концепциями являются понятия классов и объектов. Основное отличие языка программирования С++ от С состоит в том, что в С нету классов, а следовательно язык С не поддерживает ООП, в отличие от С++.
Чтобы понять, для чего же в действительности нужны классы, проведём аналогию с каким-нибудь объектом из повседневной жизни, например, с велосипедом. Велосипед — это объект, который был построен согласно чертежам. Так вот, эти самые чертежи играют роль классов в ООП. Таким образом классы — это некоторые описания, схемы, чертежи по которым создаются объекты. Теперь ясно, что для создания объекта в ООП необходимо сначала составить чертежи, то есть классы. Классы имеют свои функции, которые называются методами класса. Передвижение велосипеда осуществляется за счёт вращения педалей, если рассматривать велосипед с точки зрения ООП, то механизм вращения педалей — это метод класса.
Каждый велосипед имеет свой цвет, вес, различные составляющие — всё это свойства. Причём у каждого созданного объекта свойства могут различаться.
Имея один класс, можно создать неограниченно количество объектов, каждый из которых будет обладать одинаковым набором методов, при этом можно не задумываться о внутренней реализации механизма вращения педалей, колёс, срабатывания системы торможения, так как всё это уже будет определено в классе.
Разобравшись с назначением класса, дадим ему грамотное определение.
Классы в С++ - это абстракция описывающая методы, свойства, ещё не существующих объектов.
Объекты - конкретное представление абстракции, имеющее свои свойства и методы. Созданные объекты на основе одного класса называются экземплярами этого класса. Эти объекты могут иметь различное поведение, свойства, но все равно будут являться объектами одного класса. В ООП существует три основных принципа построения классов:
1 2 3 4 5 6 7 8 9 10 |
// объявление классов в С++ class /*имя класса*/ { private: /* список свойств и методов для использования внутри класса */ public: /* список методов доступных другим функциям и объектам программы */ protected: /*список средств, доступных при наследовании*/}; |
Все методы и свойства класса, объявленные после спецификатор доступа private будут доступны только внутри класса. Все методы и свойства класса, объявленные после спецификатора доступа public будут доступны другим функциям и объектам в программе. При объявлении класса, не обязательно объявлять три спецификатора доступа, и не обязательно их объявлять в таком порядке. Но лучше сразу определиться с порядком объявления спецификаторов доступа, и стараться его придерживаться.
Заключение
Развитие объектно-
Объектно-ориентированный
подход к программированию заключается
в моделировании объектов реального
мира, интерпретируемых как совокупность
свойств и поведения. Примерами
свойств для людей могут
Из всех объектно-ориентированных языков С++ является наиболее широко употребительным. C++ добавляет к C объектно-ориентированные возможности.
Он вводит классы, которые
обеспечивают три самых важных свойства ООП: инкапсуляцию, на
Список использованной литературы
Приложение А
Листинг программы
#include <vcl.h>
#pragma hdrstop
#include <iostream>
#include <math.h>
#include <mas.h>
#pragma argsused
using namespace std;
int main()
{
SetConsoleOutputCP (1251);
Zadacha a;
a.vvod();
a.formula();
int q;
do{
cout<<"Нажмите 1, чтобы вывести массив x\n";
cout<<"Нажмите 2, чтобы вывести массив y\n";
cout<<"Нажмите 3, чтобы вывести Количество\n";
cout<<"Нажмите 4, чтобы вывести Процент\n";
cout<<"Нажмите 0, чтобы выйти из программы \n";
cin >>q;
if (q==1) a.vivodx();
if (q==2) a.vivody();
if (q==3) cout<<a.kolichestvo();
if (q==4) cout<<a.procent();
} while (q!=0) ;
return 0;
}
Листинг заголовочного файла MAS.H
#ifindef _mas_h_
#define _mas_h_
using namespace std;
const int n=10;
class Zadacha
{float R, Xc, Yc, x[n], y[n] ;
public:
Zadacha();
void vvod();
int formula();
void vivodx ();
void vivody ();
int kolichestvo();
float procent();
};
void Zadacha::vvod()
{
cout<<"Vvedite R,Xc,Yc\n";
cin>>R>>Xc>>Yc;
}
void Zadacha::vivodx ()
{
int i;
for(i=0; i<n; i++)
cout<<x[i]<<endl;
}
void Zadacha::vivody ()
{ int i;
for (i=0;i<n;i++)
cout<<y[i]<<endl;
}
int Zadacha::formula()
{ int i;
for (i=0;i<n;i++)
{x[i]=((2.0+i)/(3.0+2.0*cos(3.
If (x[i]<1) y[i]=2*log(fabs(x[i]*x[i]+1))+
else y[i]=(x[i]*sqrt(fabs(pow(sin(
}
}
int Zadacha::kolichestvo()
{ int i, k=0;
for (i=0;i<n;i++)
if ((x[i]<Xc+R)&&(x[i]>Xc-R)&&(y[
{k++;}
return k;
}
float Zadacha::procent()
{
float P=(100*Zadacha::kolichestvo())
return P;
}
# indif
Приложение Б
Листинг графика
#include <math>
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//----------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//----------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
Canvas->MoveTo(25,
Canvas->Pen->Width=2;
Canvas->LineTo(ClientWidth-25,
Canvas->LineTo(ClientWidth-45,
Canvas->MoveTo(ClientWidth-25,
Информация о работе Розробка діалогової системи для рішення прикладних задач