亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? symbol.cpp

?? a basic interpreter free basic
?? CPP
字號(hào):
#include "StdAfx.h"
#include "Symbol.h"


CSymbol::CSymbol(void)
: m_VariableValue(0),
  m_VectorLength(0),
  m_VectorValue(NULL),
  m_VectorSelectedSubscript(-1),
  m_MatrixFirstDimensionLength(0),
  m_MatrixSecondDimensionLength(0),
  m_MatrixSelectedFirstDim(-1),
  m_MatrixSelectedSecondDim(-1),
  m_MatrixValue(NULL),
  m_SymbolType(S_NONE)
{
	return;
}

// Create a named symbol
CSymbol::CSymbol(string Name)
: m_VariableValue(0),
  m_VectorLength(0),
  m_VectorValue(NULL),
  m_VectorSelectedSubscript(-1),
  m_MatrixFirstDimensionLength(0),
  m_MatrixSecondDimensionLength(0),
  m_MatrixSelectedFirstDim(-1),
  m_MatrixSelectedSecondDim(-1),
  m_MatrixValue(NULL),
  m_SymbolType(S_NONE)
{
	this->m_Name = Name;
	return;
}

// Create a named, typed symbol
CSymbol::CSymbol(string Name, symboltype_t Type)
: m_VariableValue(0),
  m_VectorLength(0),
  m_VectorValue(NULL),
  m_VectorSelectedSubscript(-1),
  m_MatrixFirstDimensionLength(0),
  m_MatrixSecondDimensionLength(0),
  m_MatrixSelectedFirstDim(-1),
  m_MatrixSelectedSecondDim(-1),
  m_MatrixValue(NULL),
  m_SymbolType(S_NONE)
{
	this->m_Name = Name;
	this->m_SymbolType = Type;

	// Create a default vector or matrix, depending
	// on the given type
	if(this->m_SymbolType == VECTOR)
	{
		this->CreateVector(10);
	}
	else if (this->m_SymbolType == MATRIX)
	{
		this->CreateMatrix(10, 10);
	}
}


CSymbol::~CSymbol(void)
{
	if(this->m_VectorValue != NULL)
	{
		free(this->m_VectorValue);
		//delete[] this->m_VectorValue;
	}
	
	if(this->m_MatrixValue != NULL)
	{
		for(int i = 0; i < this->m_MatrixFirstDimensionLength; i++)
		{
			free(this->m_MatrixValue[i]);
		}

		free(this->m_MatrixValue);
	}

	return;
}

// Create a vector from an existing, uninitialized symbol
void CSymbol::CreateVector(int Dimension)
{
	this->m_VectorLength = Dimension;
	this->m_VectorValue = (float *)malloc(sizeof(float) * this->m_VectorLength);
	//this->m_VectorValue = new float[Dimension];
	
	// Prepopulate the array with zeros
	for(int i = 0; i < this->m_VectorLength; i++)
	{
		this->m_VectorValue[i] = 0.0;
	}

	this->m_SymbolType = VECTOR;
}

// Create a matrix from an existing, uninitialized symbol
void CSymbol::CreateMatrix(int FirstDimension, int SecondDimension)
{
	this->m_MatrixFirstDimensionLength = FirstDimension;
	this->m_MatrixSecondDimensionLength = SecondDimension;

	// Allocate the first dimension
	this->m_MatrixValue = (float **)malloc(sizeof(float *) * this->m_MatrixFirstDimensionLength);

	// Allocate the second dimension
	for(int i = 0; i < this->m_MatrixFirstDimensionLength; i++)
	{
		this->m_MatrixValue[i] = (float *)malloc(sizeof(float) * this->m_MatrixSecondDimensionLength);
		
		// Prepopulate the matrix
		for(int j = 0; j < this->m_MatrixSecondDimensionLength; j++)
		{
			this->m_MatrixValue[i][j] = 0.0;
		}
	}

	this->m_SymbolType = MATRIX;
}

// Set the subscript for a vector
void CSymbol::SetSubscript(int Dim)
{
	this->m_VectorSelectedSubscript = Dim;
}

// Set the subscripts for a matrix
void CSymbol::SetSubscript(int FirstDim, int SecondDim)
{
	this->m_MatrixSelectedFirstDim = FirstDim;
	this->m_MatrixSelectedSecondDim = SecondDim;
}

// Set a value in a flat variable
void CSymbol::Set(float Value)
{
	// Make sure that this is a flat variable
	if(this->m_SymbolType == VARIABLE)
	{
		this->m_VariableValue = Value;
	}
	// Or a proper vector
	else if(this->m_SymbolType == VECTOR && this->m_VectorSelectedSubscript >= 0)
	{
		// Make sure it's within bounds
		if(this->m_VectorSelectedSubscript >= this->m_VectorLength)
			throw SUBSCRIPT_ERROR;

		this->m_VectorValue[this->m_VectorSelectedSubscript] = Value;
	}
	// Or a proper matrix
	else if(this->m_SymbolType == MATRIX &&
		    this->m_MatrixSelectedFirstDim >= 0 &&
			this->m_MatrixSelectedSecondDim >= 0)
	{
		// Stay within boundaries
		if(this->m_MatrixSelectedFirstDim >= this->m_MatrixFirstDimensionLength &&
		   this->m_MatrixSelectedSecondDim >= this->m_MatrixSecondDimensionLength)
		   throw SUBSCRIPT_ERROR;

		this->m_MatrixValue[this->m_MatrixSelectedFirstDim][this->m_MatrixSelectedSecondDim] = Value;
	}
	// Otherwise, throw an exception
	else
	{
		throw ILLEGAL_VARIABLE;
	}
}

// Set a value in a vector
void CSymbol::Set(float Value, int Subscript)
{
	// Make sure the current symbol is a vector
	if(this->m_SymbolType != VECTOR)
	{
		throw ILLEGAL_VARIABLE;
	}

	// Make sure the subscript is within bounds
	if(Subscript >= this->m_VectorLength)
	{
		throw SUBSCRIPT_ERROR;
	}

	// Otherwise, set the value
	this->m_VectorValue[Subscript] = Value;
}

// Set a value in an existing matrix
void CSymbol::Set(float Value, int FirstSubscript, int SecondSubscript)
{
	// Make sure that the current symbol is a matrix
	if(this->m_SymbolType != MATRIX)
	{
		throw ILLEGAL_VARIABLE;
	}

	// Make sure both subscripts are within bounds
	if(FirstSubscript >= this->m_MatrixFirstDimensionLength ||
		SecondSubscript >= this->m_MatrixSecondDimensionLength)
	{
		throw SUBSCRIPT_ERROR;
	}

	// Otherwise, set the value
	this->m_MatrixValue[FirstSubscript][SecondSubscript] = Value;
}

// Get the identifier name of the symbol
string CSymbol::GetName(void)
{
	return(this->m_Name);
}

// Get the value from any kind of variable,
// provided a selection has been made
float CSymbol::Get(void)
{
	// Make sure that this is a flat variable
	if(this->m_SymbolType == VARIABLE)
	{
		return(this->m_VariableValue);
	}
	// Or a proper vector
	else if(this->m_SymbolType == VECTOR && this->m_VectorSelectedSubscript >= 0)
	{
		return(this->m_VectorValue[this->m_VectorSelectedSubscript]);
	}
	// Or a proper matrix
	else if(this->m_SymbolType == MATRIX &&
		    this->m_MatrixSelectedFirstDim >= 0 &&
			this->m_MatrixSelectedSecondDim >= 0)
	{
		return(this->m_MatrixValue[this->m_MatrixSelectedFirstDim][this->m_MatrixSelectedSecondDim]);
	}
	// Otherwise, throw an exception
	else
	{
		throw ILLEGAL_VARIABLE;
	}
}

// Get the value from a vector subscript
float CSymbol::Get(int Subscript)
{
	// Make sure that this is a vector
	if(this->m_SymbolType != VECTOR)
	{
		throw ILLEGAL_VARIABLE;
	}

	// Make sure that we're retrieving a subscript within
	// bounds
	if(Subscript >= this->m_VectorLength || Subscript < 0)
	{
		throw SUBSCRIPT_ERROR;
	}

	// Otherwise, return the value
	return(this->m_VectorValue[Subscript]);
}

// Get a value from a matrix
float CSymbol::Get(int FirstSubscript, int SecondSubscript)
{
	// Make sure that this is a matrix
	if(this->m_SymbolType != MATRIX)
	{
		throw ILLEGAL_VARIABLE;
	}

	// Make sure that we're retrieving a subscript within
	// bounds
	
	if( FirstSubscript >= this->m_MatrixFirstDimensionLength ||
		FirstSubscript < 0 ||
		SecondSubscript >= this->m_MatrixSecondDimensionLength ||
		SecondSubscript < 0)
	{
		throw SUBSCRIPT_ERROR;
	}

	// Otherwise, return the value
	return(this->m_MatrixValue[FirstSubscript][SecondSubscript]);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产亚洲一区二区三区在线观看| 亚洲一区视频在线观看视频| 精品少妇一区二区三区视频免付费 | 久久日韩精品一区二区五区| 欧美挠脚心视频网站| 欧美日韩精品一区二区三区蜜桃 | 日韩福利电影在线| 日韩电影在线一区二区| 日韩一区欧美二区| 男女性色大片免费观看一区二区| 五月婷婷激情综合| 美日韩一区二区三区| 美女网站色91| 国模一区二区三区白浆| 国产91精品一区二区麻豆亚洲| 国内欧美视频一区二区| 国产a区久久久| 97久久精品人人爽人人爽蜜臀| 99re在线视频这里只有精品| 色婷婷综合中文久久一本| 色播五月激情综合网| 欧美精品在线观看一区二区| 日韩午夜av一区| 久久精品日产第一区二区三区高清版 | 一区二区三区在线观看网站| 亚洲国产一二三| 免费成人在线观看| 国产乱码精品一区二区三| 99这里只有久久精品视频| 一道本成人在线| 91.xcao| 久久美女高清视频| 综合欧美一区二区三区| 亚洲h动漫在线| 国产综合色精品一区二区三区| 高潮精品一区videoshd| 91捆绑美女网站| 这里只有精品电影| 久久久久久99久久久精品网站| 最近日韩中文字幕| 天堂成人免费av电影一区| 国产麻豆精品一区二区| 色美美综合视频| 欧美成人vr18sexvr| 亚洲同性gay激情无套| 午夜精品aaa| 国产传媒久久文化传媒| 欧美性大战久久久| 欧美不卡一区二区三区四区| 亚洲色图另类专区| 另类小说色综合网站| 99久免费精品视频在线观看| 制服.丝袜.亚洲.中文.综合| 国产精品乱码一区二区三区软件| 亚洲第一精品在线| 成人免费的视频| 欧美一区午夜视频在线观看| 国产精品欧美一区二区三区| 日本不卡视频在线| 色婷婷av一区二区三区大白胸| 日韩免费观看高清完整版| 亚洲精品视频在线观看免费| 狠狠色丁香婷婷综合| 欧美三级视频在线| 国产精品少妇自拍| 老司机精品视频线观看86| 在线观看av一区二区| 久久久不卡网国产精品一区| 天天综合色天天综合| 99久久免费精品高清特色大片| 日韩精品一区二区三区中文不卡| 一区二区三区中文免费| 丰满放荡岳乱妇91ww| 精品日韩一区二区三区 | 91美女在线看| 国产丝袜欧美中文另类| 青青草国产成人av片免费| 在线观看亚洲精品视频| 国产精品美女久久福利网站| 激情综合亚洲精品| 欧美一级在线视频| 午夜精品久久久久久久久久久| 色哟哟在线观看一区二区三区| 日本一区二区三区在线不卡| 麻豆视频观看网址久久| 欧美丰满高潮xxxx喷水动漫 | 粉嫩高潮美女一区二区三区| 91精品国产91综合久久蜜臀| 伊人一区二区三区| 97成人超碰视| 日韩一区日韩二区| 丁香五精品蜜臀久久久久99网站| 精品国产污污免费网站入口 | 91小宝寻花一区二区三区| 久久久国际精品| 韩国v欧美v亚洲v日本v| 精品国产三级电影在线观看| 免费成人在线视频观看| 欧美一级黄色录像| 日本成人中文字幕| 欧美美女网站色| 日韩精品电影在线观看| 欧美精品自拍偷拍动漫精品| 香蕉加勒比综合久久| 欧美性受xxxx黑人xyx| 亚洲午夜久久久久中文字幕久| 色吧成人激情小说| 亚洲一区二区三区自拍| 欧美亚洲高清一区| 天天影视涩香欲综合网| 51久久夜色精品国产麻豆| 午夜精品福利一区二区蜜股av| 欧美欧美午夜aⅴ在线观看| 日韩精品色哟哟| 精品国产一区二区三区久久影院| 精品一区二区三区av| 久久久久成人黄色影片| 成人免费的视频| 一区二区三区在线免费视频| 欧美网站一区二区| 日本va欧美va欧美va精品| 日韩视频免费直播| 国产老女人精品毛片久久| 国产清纯美女被跳蛋高潮一区二区久久w| 国产一本一道久久香蕉| 国产精品视频观看| 在线这里只有精品| 免费在线观看成人| 久久精品视频在线免费观看| aaa欧美色吧激情视频| 亚洲综合av网| 欧美一区二区三区在线看| 国产在线不卡一区| 国产精品卡一卡二| 欧美最新大片在线看 | 91高清视频在线| 热久久免费视频| 国产日韩欧美不卡在线| 色美美综合视频| 久久狠狠亚洲综合| 国产精品国产三级国产三级人妇 | 日韩欧美国产小视频| 国产成人激情av| 亚洲一区二区三区三| 精品国产髙清在线看国产毛片| 成人做爰69片免费看网站| 一区av在线播放| 欧美va亚洲va国产综合| www.av精品| 日韩精品一卡二卡三卡四卡无卡| 国产三级一区二区三区| 色香蕉成人二区免费| 久久99精品久久久久久久久久久久| 国产精品久久久久国产精品日日 | 久久久99精品久久| 欧美四级电影在线观看| 国产精品综合久久| 一片黄亚洲嫩模| 久久精品人人做人人综合 | 99久久亚洲一区二区三区青草| 亚洲6080在线| 欧美激情一区二区在线| 欧美日韩国产高清一区二区三区| 国产麻豆成人传媒免费观看| 午夜伊人狠狠久久| 国产精品少妇自拍| 欧美大片在线观看一区二区| 91论坛在线播放| 国产大陆亚洲精品国产| 日韩成人免费在线| 亚洲男人的天堂一区二区| 久久久久久久久免费| 欧美日韩国产欧美日美国产精品| 粉嫩嫩av羞羞动漫久久久| 六月丁香婷婷色狠狠久久| 亚洲一区在线观看免费观看电影高清| 337p日本欧洲亚洲大胆色噜噜| 欧美日韩一区二区在线视频| 成人av电影观看| 国产乱码字幕精品高清av | 日韩在线观看一区二区| 亚洲日本在线视频观看| 久久精品视频一区| 精品第一国产综合精品aⅴ| 欧美日韩免费电影| 色94色欧美sute亚洲线路一ni| 不卡的电视剧免费网站有什么| 久久99精品久久久久久动态图| 亚洲成人av免费| 一区二区三区四区国产精品| 国产精品美女久久久久久| 精品不卡在线视频| 日韩欧美中文字幕精品| 欧美精品色综合| 欧美三电影在线| 欧美视频在线观看一区| 色系网站成人免费| 一本色道久久综合狠狠躁的推荐| 成人爽a毛片一区二区免费| 国产成人在线免费观看|