Using System. Collections. Generic




Скачать 77.81 Kb.
НазваниеUsing System. Collections. Generic
Дата публикации08.05.2013
Размер77.81 Kb.
ТипДокументы
using System;

using System.Collections.Generic;

using System.Text;

using System.Windows.Forms;
namespace BaseCalculator {

class CalcClass {

///

/// Последнне сообщение об ошибке.

/// И хороший пример для регрессионного тестирования!

///


private static string _lastError = "";
public static string lastError {

get {

string temp = _lastError;

_lastError = "";

return temp;

}

}
public static double Sinus(double x) {

return Math.Sin(x);

}
public static double Cosinus(double x) {

return Math.Cos(x);

}
public static double Thangens(double x) {

return Math.Tan(x);

}
public static double Cothangens(double x) {

return 1 / Math.Tan(x);

}
public static double Exp(double x) {

return Math.Exp(x);

}
public static double Power(double x, double y) {

return Math.Pow(x, y);

}
///

/// Сложение

///


///
слагаемое


///
слагаемое


/// сумма

public static int Add(long a, long b) {

if (a <= int.MaxValue && b <= int.MaxValue && a >= int.MinValue && b >= int.MinValue && a + b >= int.MinValue && a + b <= int.MaxValue) {

return Convert.ToInt32(a + b);

}

else {

_lastError = "Error 06";

MessageBox.Show("Слишком малое или слишком большое значение числа для int\n Числа должны быть в пределах от -2147483648 до 2147483647");

Program.res = 6;

return 0;

}

}
///

/// вычитание

///


///
уменьшаемое


///
вычитаемое


/// разность

/// Ошибка в 3-ей строке - условие пропускает число 2147483648 и оно обрабатывается неверно

public static int Sub(long a, long b) {

if (a <= int.MaxValue && b <= Convert.ToInt64(int.MaxValue) + 1 && a >= int.MinValue && b >= int.MinValue && a - b >= int.MinValue && a - b <= int.MaxValue) {

return Convert.ToInt32(a) - Convert.ToInt32(b);

}

else {

_lastError = "Error 06";

MessageBox.Show("Слишком малое или слишком большое значение числа для int\n Числа должны быть в пределах от -2147483648 до 2147483647");

Program.res = 6;

return 0;

}

}
///

/// умножение

///


///
множитель


///
множитель


/// произведение

public static int Mult(long a, long b) {

if (a <= int.MaxValue && b <= int.MaxValue && a >= int.MinValue && b >= int.MinValue && a * b >= int.MinValue && a * b <= int.MaxValue) {

return Convert.ToInt32(a * b);

}

else {

_lastError = "Error 06";

MessageBox.Show("Слишком малое или слишком большое значение числа для int\n Числа должны быть в пределах от -2147483648 до 2147483647");

Program.res = 6;

return 0;

}

}
///

/// частное

///


///
делимое


///
делитель


/// частное

public static int Div(long a, long b) {

if (a <= int.MaxValue && b <= int.MaxValue && a >= int.MinValue && b >= int.MinValue) {

if (b != 0) {

long c;

long res = Math.DivRem(a, b, out c);

if (res >= int.MinValue && res <= int.MaxValue) {

return Convert.ToInt32(res);

}

else {

_lastError = "Error 06";

MessageBox.Show("Слишком малое или слишком большое значение числа для int\n Числа должны быть в пределах от -2147483648 до 2147483647");

Program.res = 6;

return 0;

}

}

else {

_lastError = "Error 09";

MessageBox.Show("Ошибка деления на 0");

Program.res = 9;

return 0;

}

}

else {

_lastError = "Error 06";

MessageBox.Show("Слишком малое или слишком большое значение числа для int\n Числа должны быть в пределах от -2147483648 до 2147483647");

Program.res = 6;

return 0;

}

}
///

/// Деление по модулю

///


///
делимое


///
делитель


/// остаток

public static int Mod(long a, long b) {

if (a <= int.MaxValue && b <= int.MaxValue && a >= int.MinValue && b >= int.MinValue) {

if (b != 0) {

long c;

Math.DivRem(a, b, out c);

if (c >= int.MinValue && c <= int.MaxValue) {

return Convert.ToInt32(c);

}

else {

_lastError = "Error 06";

MessageBox.Show("Слишком малое или слишком большое значение числа для int\n Числа должны быть в пределах от -2147483648 до 2147483647");

Program.res = 6;

return 0;

}

}

else {

_lastError = "Error 09";

MessageBox.Show("Ошибка деления на 0");

Program.res = 9;

return 0;

}

}

else {

_lastError = "Error 06";

MessageBox.Show("Слишком малое или слишком большое значение числа для int\n Числа должны быть в пределах от -2147483648 до 2147483647");

Program.res = 6;

return 0;

}

}
///

/// унарный плюс

///


///

///

public static int ABS(long a) {

if (a <= int.MaxValue && a >= int.MinValue && Math.Abs(a) <= int.MaxValue && Math.Abs(a) >= int.MinValue) {

// легко сделать глюк

return Convert.ToInt32(Math.Abs(a));

}

else {

_lastError = "Error 06";

MessageBox.Show("Слишком малое или слишком большое значение числа для int\n Числа должны быть в пределах от -2147483648 до 2147483647");

Program.res = 6;

return 0;

}

}
///

/// унарный минус

///


///

///

/// ошибки в первой и третьей строках:

/// 1 - неправильно поставлено условие, нет двух проверок на -a

/// 3 - непарвильный порядок математических преобразований, которые неверно обрабатывают пример 0 - 2147483648

///


public static int IABS(long a) {

if (a <= Convert.ToInt64(int.MaxValue) + 1 && a >= int.MinValue) {

return -Convert.ToInt32(Math.Abs(a));

}

else {

_lastError = "Error 06";

MessageBox.Show("Слишком малое или слишком большое значение числа для int\n Числа должны быть в пределах от -2147483648 до 2147483647");

Program.res = 6;

return 0;

}

}
public static double Cube(double x) {

return Math.Pow(x, 3.0);

}
public static double Square(double x) {

return Math.Pow(x, 2.0);

}
public static double Lg(double x) {

return Math.Log10(x);

}
public static double Ln(double x) {

return Math.Log(x);

}
public static double Reciprocal(double x) {

return 1 / x;

}
public static long Factor(int n) {

long answ = 1;

for (int i = 1; i <= n; i++) {

answ *= i;

}

return answ;

}
public static double Pi {

get {

return Math.PI;

}
}
public static double E {

get {

return Math.E;

}

}

}

}

Добавить документ в свой блог или на сайт

Похожие:

Using System. Collections. Generic
Показывает, есть ли необходимость в выводе сообщений об ошибках. В случае консольного запуска программы это значение false

Using System. Collections. Generic iconОперационные системы конспект лекций
Внутренняя организация файловой системы: модель версии Fast File System (ffs) bsd 193

Статья составлена по документу Florian Buchholz “The structure of...
Статья составлена по документу Florian Buchholz “The structure of the Reiser file system”, по комментариям в исходных текстах reiserfs,...

Статья составлена по документу Florian Buchholz “The structure of...
Статья составлена по документу Florian Buchholz “The structure of the Reiser file system”, по комментариям в исходных текстах reiserfs,...

1 gks (Graphical Kernel System)
Результатом работ в фрг было создание системы gks. Модель графической системы, положенная в ее основу, приведена на рис

A simple Russian-Slovak machine translation system
Уже в 1958 г составители будущего учебного плана исходили из того, что выпускники отделения должны иметь глубокую подготовку как...

Кедров С. В., Кревский И. Г., Ширканов А. В
Обучающая среда Moodle стала на сегодняшний день одной из наиболее популярных систем поддержки учебного процесса до (lms – learning...

Лекция scsi small Computer System Interface
Эта шина предполагает равноправие устройств и в произвольный момент времени любое устройство, подключенное к шине, может либо быть...

FB30/DB30/FB31 ("Class Seq Loader"/"db seq Loader"/"Class Seq System")
...

FB30/DB30/FB31 ("Class Seq Loader"/"db seq Loader"/"Class Seq System")
...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
odtdocs.ru
Главная страница