Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Алгоритм работы программы ConsoleApplication2




Алгоритм работы программы ConsoleApplication4

 

 

Исходные тексты программы

Console Application1

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication1

{

delegate string MyDelegate(int arg);

class Program

{

public static string MyMethod(int arg)

{

return arg.ToString();

}

static void Main(string[] args)

{

MyDelegate dlg = new MyDelegate(MyMethod);

//вызываем метод, на который указывает делегат

string returnValue = dlg(25);

Console.WriteLine(returnValue); //выводим полученное

значение

}

}

}

Console Application2

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication1

{

delegate void MesToPers(string s);

class Person

{

// Данные

private string message;

// Данные для хранения значений свойств:

private string name;

private int id;

private double salary;

// Свойства:

public string Name

{

get { return (name); }

set { name = value; }

}

public double Salary

{

get { return (salary); }

set { salary = value; }

}

public int Id

{

get { return (id); }

set { id = value; }

}

// Конструкторы

public Person()

{

name = ""; id = 0; salary = 0.0;

}

public Person(string name)

{

this.name = name;

}

public Person(string name, int id, double salary)

{

this.name = name; this.id = id; this.salary = salary;

}

public Person(Person pers)

{

this.name = pers.name; this.id = pers.id;

this.salary = pers.salary;

}

// Mетоды

public void ToPerson(string mes)

{

this.message = mes;

Console.WriteLine("{0}, {1}", name, message);

}

}

 

class Program

{

static void Main(string[] args)

{

// объявляем переменную типа Person и создаем ее

экземпляр

Person man1 = new Person("Дмитрий");

// объявляем переменную personMessag типа делегата,

создаем его экземпляр и связываем его с методом

объекта man1 класса Person

MesToPers personMessage = new MesToPers(man1.ToPerson);

// Через делегата передаем сообщение объекту man1

personMessage("пора работать!");

}

}

}

Console Application3

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication2

{

delegate void MesSalary();

delegate void MesId();

class Person

{

// Данные

private string message;

// Данные для хранения значений свойств:

private string name;

private int id;

private double salary;

// Свойства:

public string Name

{

get { return (name); }

set { name = value; }

}

public double Salary

{

get { return (salary); }

set { salary = value; }

}

public int Id

{

get { return (id); }

set { id = value; }

}

// Конструкторы

public Person()

{

name = ""; id = 0; salary = 0.0;

}

public Person(string name)

{

this.name = name;

}

public Person(string name, int id, double salary)

{

this.name = name; this.id = id;

this.salary = salary;

}

public Person(Person pers)

{

this.name = pers.name; this.id = pers.id;

this.salary = pers.salary;

}

// Mетоды

public void ToPerson(string mes)

{

this.message = mes;

Console.WriteLine("{0}, {1}", name, message);

}

public void PrintSalary()

{

Console.WriteLine(salary);

}

public void PrintID()

{

Console.WriteLine(id);

}

}

class Program

{

static void Main(string[] args)

{

Person man = new Person("Дмитрий",1,15000);

MesSalary s=new MesSalary(man.PrintSalary);

MesId i = new MesId(man.PrintID);

i();

s();

Console.ReadKey();

}

}

}

Console Application4

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace _3._1

{

delegate void MesToPers(string mes);

class Combination

{

private static void policeman(string mes)

{

//анализ сообщения

if (mes == "Пожар!") Console.WriteLine(mes + " Милиция

ищет виновных!");

else Console.WriteLine(mes + " Милиция здесь!");

}

private static void ambulanceman(string mes)

{

if (mes == "Пожар!") Console.WriteLine(mes + " Скорая

спасает пострадавших!");

else Console.WriteLine(mes + " Скорая помощь здесь!");

}

private static void fireman(string mes)

{

if (mes == "Пожар!") Console.WriteLine(mes + " Пожарные

тушат пожар!");

else Console.WriteLine(mes + " Пожарные здесь!");

}

public static MesToPers Policeman

{ get { return (new MesToPers(policeman)); } }

public static MesToPers Fireman

{ get { return (new MesToPers(fireman)); } }

public static MesToPers Ambulanceman

{ get { return (new MesToPers(ambulanceman)); } }

}

 

 

class Program

{

static void Main(string[] args)

{

MesToPers Comb;

Comb = (MesToPers)Delegate.Combine

(Combination.Ambulanceman, Combination.Policeman);

Comb = (MesToPers)Delegate.Combine

(Comb, Combination.Fireman);

Comb("Пожар!");

}

}

}

Console Application5

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace _3._1

{

delegate void MesToPers(string mes);

class Combination

{

private static void policeman(string mes)

{

//анализ сообщения

if (mes == "Пожар!") Console.WriteLine(mes + " Милиция

ищет виновных!");

else Console.WriteLine(mes + " Милиция здесь!");

}

private static void ambulanceman(string mes)

{

if (mes == "Пожар!") Console.WriteLine(mes + " Скорая

спасает пострадавших!");

else Console.WriteLine(mes + " Скорая помощь здесь!");

}

private static void fireman(string mes)

{

if (mes == "Пожар!") Console.WriteLine(mes + " Пожарные

тушат пожар!");

else Console.WriteLine(mes + " Пожарные здесь!");

}

public static MesToPers Policeman

{ get { return (new MesToPers(policeman)); } }

public static MesToPers Fireman

{ get { return (new MesToPers(fireman)); } }

public static MesToPers Ambulanceman

{ get { return (new MesToPers(ambulanceman)); } }

public static void BadService(string mes)

{

int i = 7, j = 5, k = 0;

Console.WriteLine("Bad Service: Zero Divide");

j = i / k;

}

 

}

 

class Program

{

static void Main(string[] args)

{

MesToPers Comb;

Comb = (MesToPers)Delegate.Combine

(Combination.Ambulanceman, Combination.Policeman);

Comb = (MesToPers)Delegate.Combine

(Comb, Combination.Fireman);

Comb("Пожар!");

Console.ReadKey();

Comb = (MesToPers)Delegate.Remove(Comb,

Combination.Policeman);

//Такое возможно: попытка отключить не существующий

элемент

Comb = (MesToPers)Delegate.Remove(Comb,

Combination.Policeman);

Comb("Через 30 минут!");

Comb = (MesToPers)Delegate.Remove(Comb,

Combination.Ambulanceman);

Comb("Через час!");

Comb = (MesToPers)Delegate.Remove(Comb,

Combination.Fireman);

//Comb("Через два часа!"); // Comb не определен

Console.ReadKey();

Comb = Combination.Ambulanceman;

Console.WriteLine(Comb.Method.Name);

Comb += Combination.Fireman;

Comb += Combination.Policeman;

Comb("День города!");

Comb -= Combination.Ambulanceman;

Comb -= Combination.Fireman;

Comb("На следующий день!");

Console.ReadKey();

//---------------------------------

Comb=null;

Comb = (MesToPers)Delegate.Combine

(Combination.Ambulanceman,

Combination.Policeman);

Comb = (MesToPers)Delegate.Combine

(Comb, new MesToPers(Combination.BadService));

Comb = (MesToPers)Delegate.Combine

(Comb, Combination.Fireman);

foreach (MesToPers currentJob in

Comb.GetInvocationList())

{

try { currentJob("Пожар!"); }

catch (Exception e)

{

Console.WriteLine(e.Message);

Console.WriteLine(currentJob.Method.Name);

}

}

}

}

}

Console Application6

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace _4

{

public class HighOrderIntegral

{

// Делегат

public delegate double SubIntegralFun(double x);

public double EvalIntegral(double a, double b, double eps,

SubIntegralFun fun)

{

int n = 4;

double I0 = 0, I1 = I(a, b, n, fun);

for (n = 8; n < Math.Pow(2.0, 15.0); n *= 2)

{

I0 = I1; I1 = I(a, b, n, fun);

if (Math.Abs(I1 - I0) < eps) break;

}

if (Math.Abs(I1 - I0) < eps)

Console.WriteLine("Требуемая точность достигнута! "

+" eps = {0}, достигнутая точность ={1}, n= {2}",

eps, Math.Abs(I1 - I0), n);

else

Console.WriteLine("Требуемая точность не

достигнута! " +" eps = {0}, достигнутая точность ={1},

n= {2}", eps, Math.Abs(I1 - I0), n);

return (I1);

}

private double I(double a, double b, int n,

SubIntegralFun fun)

{

//Вычисляет частную сумму по методу трапеций

double x = a, sum = fun(x) / 2, dx = (b - a) / n;

for (int i = 2; i <= n; i++)

{ x += dx; sum += fun(x); }

x = b; sum += fun(x) / 2;

return (sum * dx);

}

}

class Functions

{

//подынтегральные функции

static int k=1;

static int b=0;

static int a = 0;

static int q = 0;

static int c = 0;

static public void SetParametrs()

{

Console.WriteLine("f1(x)=k*x+b");

Console.WriteLine("Установите k");

k = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Установите b");

b = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("f1(x)="+k+"x+"+b);

Console.WriteLine("f2(x)=a*x^2+b*x+c");

Console.WriteLine("Установите a");

a = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Установите b");

q = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Установите c");

c = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("f2(x)="+a+"*x^2+"+q+"*x+"+c);

}

static public double fun1(double x)

{

return (double)(k * x + b);

}

static public double fun2(double x)

{

return (double)(a * x * x + q * x + c);

}

}

 

class Program

{

static void Main(string[] args)

{

double val = 0.0;

Functions.SetParametrs();

HighOrderIntegral f = new HighOrderIntegral();

HighOrderIntegral.SubIntegralFun f1 =

new HighOrderIntegral.SubIntegralFun(Functions.fun1);

val = f.EvalIntegral(2, 3, 0.1e-5, f1);

Console.WriteLine("myintegral1 = {0}", val);

HighOrderIntegral.SubIntegralFun f2 =

new HighOrderIntegral.SubIntegralFun(Functions.fun2);

val = f.EvalIntegral(2, 3, 0.1e-5, f2);

Console.WriteLine("myintegral2 = {0}", val);

Console.ReadKey();

}

}

}

 

 





Поделиться с друзьями:


Дата добавления: 2017-02-11; Мы поможем в написании ваших работ!; просмотров: 446 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Наглость – это ругаться с преподавателем по поводу четверки, хотя перед экзаменом уверен, что не знаешь даже на два. © Неизвестно
==> читать все изречения...

2610 - | 2184 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.