Ім'я файлу: Технології програмування.docx
Розширення: docx
Розмір: 1440кб.
Дата: 17.04.2020
Пов'язані файли:
Англиский Али.doc
Програмування на мові Сі.doc
Філософія.docx

НАЦІОНАЛЬНИЙ АВІАЦІЙНИЙ УНІВЕСИТЕТ

НАВЧАЛЬНО-НАУКОВИЙ ІНСТИТУТ ІННОВАЦІЙНИХ ОСВІТНІХ ТЕХНОЛОГІЙ

КУРСОВА РОБОТА

з дисципліни «Технології програмування»

Виконав студент 3-го курсу

напрям підготовки 125

«Адміністративний менеджмент»

Короленко Остап Васильович

Київ-2020

Завдання 1. Обчислення значення функції

Написати програму, яка по введеному значенню аргументу обчислює значення функції, заданої у вигляді графіка.

Параметр Х вводиться з клавіатури.

Лістинг програми.
using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace ConsoleApplication5

{

    class Program

    {

        static void Main(string[] args)

        {

            double Y = 0;

            Console.Write("Введите значение аргумента: ");

            double X = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine();

 

            if (-3<= X && X < -2)

            {

                Y = -X - 2;

               

            }

            else if (-2 <= X && X <= 0)

            {

                Console.Write("Введите значение величины R: ");

                double R = Convert.ToDouble(Console.ReadLine());

                Y = Math.Sqrt(1-Math.Pow((X+1), 2));

            }

            else if (0 <= X && X <= 4)

            {

                Console.Write("Введите значение величины R: ");

                double R = Convert.ToDouble(Console.ReadLine());

                Y = Math.Sqrt(4-Math.Pow((X-2), 2));

            }

            else if (4 <= X && X <= 6)

            {

                Y = (-X+4)/2;

            }

            else

            {

                Y = -1;

            }

 

            Console.WriteLine();

            Console.WriteLine("Значение ординаты: " + Y);

            Console.ReadLine();

        }

    }

}
Приклад виконання програми.

Завдання 2. У одновимірному масиві, що складається з n речових елементів, обчислити:
• суму негативних елементів масиву;
• добуток елементів масиву, розташованих між максимальним і мінімальним елементами.
Упорядкувати елементи масиву за зростанням.

Лістинг програми.

#include

#include
using namespace std;
int main() {
const int N = 10;

int array[N];

int sum = 0;

int count = 0;

int el=10000 ;

for (int j = 0; j < N; j++) {

cout << "array[" << j << "]= ";

cin >> array[j];

}

for (int j = 0; j < 10 ;j++)

cout << array[j] << " ";

for (int j = 0; j < N; j++)

if (el > array[j])

el = array[j];

cout <<"\n" <

for (int j = 0; j < 10; j++) {

if (el < 0)

{

sum += array[j];
}

if (array[j]<0)

{

break;

}

}

cout <<"\n"<< sum<
system("pause");

}

Приклад виконання програми.


Завдання 3. Двовимірні масиви

Дана цілочисельна прямокутна матриця. Визначити:
• кількість рядків, що не містять жодного нульового елемента;
• максимальне з чисел, що зустрічаються більше одного разу.
#include

#include

#define MTXMIN 2

#define MTXMAX 5

int **mtxcreat(int, int);

int **mtxfill(int **, int, int, FILE *);

/* int **mtxprint(int **, int, int, FILE *);

void mtxfree(int **, int);

int *veccreat(int);

/* int *vecprint(int *, int, FILE *);

void vecfree(int *);

int *bubble(int *, int, int);

int main()

{

int **m, *v, *vp;

int i, j, nelems, maxrep;

int nrows, ncells;

printf("How many rows? ");

if (scanf("%d", &nrows) != 1)

return 1;

printf("How many cells in row? ");

if (scanf("%d", &ncells) != 1)

return 1;

if (nrows < MTXMIN

|| ncells < MTXMIN

|| nrows > MTXMAX

|| ncells > MTXMAX)

return 2;

if ((m = mtxcreat(nrows, ncells)) == NULL)

return 3;

printf("Enter matrix [ %d rows x %d cells ]:\n",

nrows, ncells);

if ((m = mtxfill(m, nrows, ncells, stdin)) == NULL) {

mtxfree(m, nrows);

return 4;

}

/* mtxprint(m, nrows, ncells, stdout);

if ((vp = v = veccreat((nelems = nrows*ncells))) == NULL) {

mtxfree(m, nrows);

return 5;

}

for (i = 0; i < nrows; i++)

for (j = 0; j < ncells; j++)

*vp++ = m[i][j];

bubble(v, 0, nelems-1);

/* vecprint(v, nrows*ncells, stdout);

for (vp = v+nelems-1, maxrep = 0; vp != v; vp--)

if (*vp == *(vp-1)) {

maxrep = *vp;

break;

}

printf("%d\n", maxrep);

vecfree(v);

mtxfree(m, nrows);

return 0;

}

int **mtxcreat(int m, int n)

{

int **mtx, i;

if ((mtx = (int **) calloc(m, sizeof(int *))) == NULL)

return NULL;

for (i = 0; i < m; i++)

if ((mtx[i] = (int *) calloc(n, sizeof(int))) == NULL) {

while (--i >= 0)

free((void *) mtx[i]);

free((void **) mtx);

return NULL;

}

return mtx;

}

int **mtxfill(int **mtx, int m, int n, FILE *ifp)

{

int i, j;

for (i = 0; i < m; i++)

for (j = 0; j < n; j++) {

if (fscanf(ifp, "%d", &mtx[i][j]) != 1)

return NULL;

}

return ferror(ifp) ? NULL : mtx;

}

void mtxfree(int **mtx, int m)

{

int i;

for (i = 0; mtx != NULL && i < m; i++)

free((void *) mtx[i]);

free((void **) mtx);

}

int *veccreat(int n)

{

return (int *) calloc(n, sizeof(int));

}

void vecfree(int *v)

{

free((void *) v);

}

int *bubble(int *a, int m, int n)

{

char is = 1;

int i, c;

while (is) {

is = 0;

for (i = m+1; i <= n; i++)

if (a[i] < a[i-1]) {

c = a[i];

a[i] = a[i-1];

a[i-1] = c;

is = 1;

}

}

return a;

}

int **mtxprint(int **mtx, int m, int n, FILE *ofp)

{

int i, j;

for (i = 0; i < m; i++)

if (mtx[i] != NULL)

for (j = 0; j < n; j++)

fprintf(ofp, "%3d%s",

mtx[i][j], (j == n-1 ? "\n" : ""));

return ferror(ofp) ? NULL : mtx;

}


int *vecprint(int *v, int n, FILE *ofp)

{

while (n--)

fprintf(ofp, " %d%s",

*v++, (n == 0 ? "\n" : ""));

return ferror(ofp) ? NULL : v;

}

Приклад виконання програми.



де 3 – кількість рядків з нулями, а 9 – максимальне з чисел, що зустрічається більше одного разу

Завдання 4. Описати клас, що реалізовує десятковий лічильник, який може збільшувати або зменшувати своє значення на одиницю в заданому діапазоні. Передбачити ініціалізацію лічильника значеннями за умовчанням і довільними значеннями. Лічильник має два методи: збільшення і зменшення, - і властивість, що дозволяє отримати його поточний стан. При виході за межі діапазону викидаються виключення.

Написати програму, що демонструє всі розроблені елементи класу.

Лістинг програми.
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;
namespace ConsoleApplication1

{

class Счетчик

{

int ТекущееСостояние;

int ВерхняяГраница;

int НижняяГраница;

public string КодОшибки;

public Счетчик()

{

this.ТекущееСостояние = 0;

this.НижняяГраница = 0;

this.ВерхняяГраница = 10;

}

public Счетчик(int x, int MinValue, int MaxValue)

{

int T = Math.Min(MinValue, MaxValue);

if (T != MinValue)

{

MaxValue = MinValue;

MinValue = T;

}

if (ТекущееСостояние < MinValue || ТекущееСостояние > MaxValue)

{

this.ТекущееСостояние = MinValue;

}

else

{

this.ТекущееСостояние = ТекущееСостояние;

}

this.НижняяГраница = MinValue;

this.ВерхняяГраница = MaxValue;

}

public int Состояние

{

get

{

return this.ТекущееСостояние;

}

}

public void Увеличить()

{

this.ТекущееСостояние++;

if (this.ТекущееСостояние > this.ВерхняяГраница)

{

this.ТекущееСостояние = this.ВерхняяГраница;

this.КодОшибки = "Провышено допустимое значение";

}

}

public void Уменьшить()

{

this.ТекущееСостояние--;

if (this.ТекущееСостояние < this.НижняяГраница)

{

this.ТекущееСостояние = this.НижняяГраница;

this.КодОшибки = "Превышено допустимое значение";

}

}

class Program

{

static void Main(string[] args)

{

Счетчик A = new Счетчик();

Console.WriteLine(A.Состояние);

while (A.КодОшибки == null)

{

A.Увеличить();

Console.WriteLine(A.Состояние);

}

Console.WriteLine(A.КодОшибки);

Console.ReadKey(true);

}

}

}

}
Приклад виконання програми.



Завдання 5. Класи і операції

Описати клас для роботи з одновимірним масивом цілих чисел (вектором).

Забезпечити наступні можливості:

• завдання довільних цілих меж індексів при створенні об'єкту;

• звернення до окремого елементу масиву з контролем виходу за межі масиву;

• виконання операцій поелементного складання і віднімання масивів з однаковими межами індексів;

• виконання операцій множення і розподілу всіх елементів масиву на скаляр;

• виведення на екран елементу масиву по заданому індексу і всього масиву.

Написати програму, що демонструє всі розроблені елементи класу.
Лістинг програми.
using System;

using System.Collections.Generic;

using System.Text;
namespace vector

{

class Program

{

static void Main()

{

Param one = new Param();

Param two = new Param();
// Console.WriteLine("введите размерность массива One[]: ");

// one.Length = Convert.ToInt16(Console.ReadLine());

one.Length = 10;

one.Start = 1;

one.End = 12;
two.Length = 10;

two.Start = -3;

two.End = 9;
int[] One = new int[one.Length];

int[] Two = new int[two.Length];
one.Cr_arr(One, one.Length, one.Start, one.End);

two.Cr_arr(Two, two.Length, two.Start, two.End);
try

{

Console.Write("индекс элемента = ");

int i = Int16.Parse(Console.ReadLine());

Console.WriteLine("One[{0}]={1}", i, One[i]);

}

catch { Console.WriteLine("индекс элемента выходит за рамки массива"); }
one.SumArr(One, Two);

Console.ReadLine();

one.SustractArr(One, Two);

one.skal_mult(One, 3);

one.skal_del(One, 2);

Console.ReadLine();
}

}

class Param

{

public int Length;

public int Start;

public int End;

int[] Arr;
public void Cr_arr(int[] Arr, int Length, int Start, int End)

{

Random R = new Random();

for (int i = 0; i < Length; i++)

{

Arr[i] = R.Next(Start, End);

Console.Write("{0} ", Arr[i]);

}

Console.ReadLine();

}

public void SumArr(int[] a, int[] b)

{

for (int i = 0; i < Length; i++)

{

a[i] += b[i];

Console.Write("{0} ", a[i]);

}

}

public void SustractArr(int[] a, int[] b)

{

for (int i = 0; i < Length; i++)

{

a[i] -= b[i];

Console.Write("{0} ", a[i]);

}

}

public void skal_mult(int[] a, int temp)

{

for (int i = 0; i < Length; i++)

{

a[i] *= temp;

Console.Write("{0} ", a[i]);

}

}

public void skal_del(int[] a, int temp)

{

for (int i = 0; i < Length; i++)

{

a[i] /= temp;

Console.Write("{0} ", a[i]);

}

}

}

}
Приклад виконання програми.

Завдання 6. Класи та наслідування
Описати базовий клас Елемент.
Закриті поля:
Про ім'я елемента (рядок символів);
Про кількість входів елемента;
Про кількість виходів елемента.
Методи:
Про конструктор класу без параметрів;
Про конструктор, що задає ім'я та встановлює рівним 1 кількість входів і виходів;
Про конструктор, що задає значення всіх полів елемента.
Властивості:
Про ім'я елемента (тільки читання);
Про кількість входів елемента;
Про кількість виходів елемента.
Лістинг програми.



using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;
namespace ConsoleApp9

{

class Element

{

private string name;

private int input, output;

public Element()

{

name = "";

input = 0;

output = 0;

}

public Element(string name)

{

this.name = name;

input = 1;

output = 1;

}

public Element(string name, int input, int output)

{

this.name = name;

this.input = input;

this.output = output;

}

public string Name

{

get { return name; }

}

public int Input

{

get { return input; }

set { input = value; }

}

public int Output

{

get { return output; }

set { output = value; }

}

}

class Combine : Element

{

bool[] numInput = new bool[5];

public Combine()

: base("ИЛИ-НЕ", 5, 1)

{

for (int i = 0; i < 5; i++) setInput(i + 1, false);

}

public Combine(bool[] numInput)

: base("ИЛИ-НЕ", 5, 1)

{

setNumInput(numInput);

}

public void setNumInput(bool[] numInput)

{

try

{

for (int i = 0; i < 5; i++) this.numInput[i] = numInput[i];

}

catch (System.ArgumentOutOfRangeException e)

{

Console.WriteLine(e.Message);

}

}

public void setInput(int i, bool Input)

{

try

{

numInput[i - 1] = Input;

}

catch (System.ArgumentOutOfRangeException e)

{

Console.WriteLine(e.Message);

}

}

public bool getOutput()

{

try

{

return numInput[0] ^ numInput[1] ^ numInput[2] ^ numInput[3] ^ numInput[4];

}

catch (System.ArgumentOutOfRangeException e)

{

Console.WriteLine(e.Message);

return false;

}

}

}

class Register

{

class Memory : Element

{

private bool[] memIn;

private bool outDir, outInv;

public bool OutDir

{

get { return outDir; }

set { outDir = value; }

}

public bool OutInv

{

get { return outInv; }

set { outInv = value; }

}

public Memory()

{

outDir = false;

outInv = false;

Input = 2;

Output = 1;

memIn = new bool[Input];

for (int i = 0; i < Input; i++) memIn[i] = false;

}

public Memory(bool memOutDir, bool memOutInv, bool[] memIn)

{

try

{

this.outDir = memOutDir;

this.outInv = memOutInv;

this.memIn = new bool[2];

for (int i = 0; i < 2; i++) this.memIn[i] = memIn[i];

}

catch (FormatException e) { Console.WriteLine(e.Message); }

}

public Memory(Memory mem)

{

outDir = mem.outDir;

outInv = mem.outInv;

for (int i = 0; i < Input; i++) memIn[i] = mem.memIn[i];

}

public void MemIn(bool[] memIn)

{

try

{

for (int i = 0; i < Input; i++) this.memIn[i] = memIn[i];

}

catch (System.ArgumentOutOfRangeException e)

{

Console.WriteLine(e.Message);

}
}

public void setMemIn(int i, bool memIn)

{

try

{

this.memIn[i - 1] = memIn;

}

catch (System.ArgumentOutOfRangeException e)

{

Console.WriteLine(e.Message);

}

}

public void Cond(bool m1, bool m2)

{

try

{

memIn[0] = m1;

memIn[1] = m2;

if (m1 == false && m2 == true && OutDir == true) OutDir = false; //011

else if (m1 == true && m2 == false && OutDir == false) OutDir = true; //100

else if (m1 == true && m2 == true && OutDir == false) OutDir = true; //110

else if (m1 == true && m2 == true && OutDir == true) OutDir = false; //111

Console.Write(OutDir);

}

catch (System.ArgumentOutOfRangeException e)

{

Console.WriteLine(e.Message);

}

}

public static bool operator ==(Memory a, Memory b)

{

if (System.Object.ReferenceEquals(a, b)) return true;

if (((object)a == null) || ((object)b == null)) return false;

return a.outDir == b.outDir && a.outInv == b.outInv;

}

public static bool operator !=(Memory a, Memory b)

{

return !(a == b);

}

}

private bool r, s;

private Memory[] trig = new Memory[11];

private bool[] InJ = new bool[11];

private bool[] InK = new bool[11];
public bool R

{

get { return r; }

set { r = value; }

}

public bool S

{

get { return s; }

set { s = value; }

}

public Register()

{

r = false;

s = false;

for (int i = 0; i < 11; i++)

{

InJ[i] = false;

InK[i] = false;

trig[i] = new Memory();

}

}

public Register(bool R, bool S, bool[] InJ, bool[] InK)

{

try

{

this.r = R;

this.s = S;

for (int i = 0; i < 11; i++)

{

this.InJ[i] = InJ[i];

this.InK[i] = InK[i];

}

}

catch (FormatException e) { Console.WriteLine(e.Message); }

}

public void MemIn(bool[] j, bool[] k)

{

try

{

for (int i = 0; i < 11; i++)

{

InJ[i] = j[i];

InK[i] = k[i];

}

}

catch (System.ArgumentOutOfRangeException e)

{

Console.WriteLine(e.Message);

}

}

public void MemOut(bool J, bool K, int n)

{

try

{

trig[n].Cond(J, K);

Console.WriteLine("\n");

}

catch (System.ArgumentOutOfRangeException e)

{

Console.WriteLine(e.Message);

}

}

public void RegCond()

{

try

{

trig[0].Cond(r, s);

Console.Write(" " + trig[0].OutInv + "\n");

for (int i = 1; i < 11; i++)

{

trig[i].Cond(trig[i - 1].OutDir, trig[i - 1].OutInv);

Console.Write(" " + trig[0].OutInv + "\n");

}

}

catch (System.ArgumentOutOfRangeException e)

{

Console.WriteLine(e.Message);

}

}

}

class Program

{

static void Main(string[] args)

{

Combine C = new Combine();

Register R = new Register();

int n = 0, m = 0, h;

bool[] input = new bool[5];

bool[] j = new bool[11];

bool[] k = new bool[11];

bool inp;

Random r = new Random();
string c;

do

{

Console.WriteLine("Комбинационный элемент:\nОпределить входы - 1,\nОпределить отдельный вход - 2\nРассчитать выход - 3\n" +

"Регистр:\nОпределить входы - 4\nРассчитать выходы на отдельном триггере - 5\nНовое состояние - 6\nвыйти - 0");

c = Console.ReadLine();

switch (c)

{

case "1":

try

{

for (int i = 0; i < 5; i++)

{

input[i] = Convert.ToBoolean(r.Next(0, 2));

Console.Write(input[i] + " ");

}

}

catch (FormatException e) { Console.WriteLine(e.Message); break; }

C.setNumInput(input);

Console.Write("\nСв-ва элемента:\nИмя " + C.Name + "\nВходы " + C.Input + "\nВыходы " + C.Output + "\n");

break;

case "2":

m = 1;

try

{

while (m == 1)

{

Console.Write("Какой вход задать? ");

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

if (n < 5 && n > 0) m = 0;

}

}

catch (FormatException e) { Console.WriteLine(e.Message); break; }

m = 1;

try

{

while (m == 1)

{

Console.Write("Значение:(0/1) ");

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

if (h == 0) { C.setInput(n, false); m = 0; }

else if (h == 1)

{

C.setInput(n, true);

m = 0;

}

}

}

catch (FormatException e) { Console.WriteLine(e.Message); break; }

break;

case "3":

inp = C.getOutput();

Console.Write(inp + "\n");

break;

case "4":

for (int i = 0; i < 11; i++)

{

j[i] = Convert.ToBoolean(r.Next(0, 2));

k[i] = Convert.ToBoolean(r.Next(0, 2));

Console.Write(j[i] + "," + k[i] + "\t");

}

Console.Write("\n");

R.MemIn(j, k);

break;

case "5":

m = 1;

try

{

while (m == 1)

{

Console.Write("Номер триггера? ");

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

if (n < 11 && n > 0) m = 0;

}

}

catch (FormatException e) { Console.WriteLine(e.Message); break; }

m = 1;

try

{

while (m == 1)

{

Console.Write("Значение j:(0/1) ");

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

if (h == 0) { j[0] = false; m = 0; }

else if (h == 1) { j[0] = true; m = 0; }

}

}

catch (FormatException e) { Console.WriteLine(e.Message); break; }

m = 1;

try

{

while (m == 1)

{

Console.Write("Значение k:(0/1) ");

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

if (h == 0) { k[0] = false; m = 0; }

else if (h == 1) { k[0] = true; m = 0; }

}

}

catch (FormatException e) { Console.WriteLine(e.Message); break; }

R.MemOut(j[0], k[0], n);

break;

case "6":

R.RegCond();

break;

case "0":

break;

default:

Console.WriteLine("Не попал по клавише!");

break;

}

} while (c != "0");

}

}

}
Приклад виконання програми

Завдання 7. Структури даних

Описати структуру з ім'ям STUDENT, що містить наступні поля:
• прізвище та ініціали;
• номер групи;
• успішність (масив з п'яти елементів).
Написати програму, що виконує наступні дії:
• введення з клавіатури даних у масив, що складається з десяти структур типу STUDENT (записи повинні бути впорядковані за зростанням номера групи);
• виведення на екран прізвищ і номерів груп для всіх студентів, включених, в масив, якщо середній бал студента більше 4,0 (якщо таких студентів немає, вивести відповідне повідомлення).
Лістинг програми
using System;

using System.Linq;
namespace Students

{

class Program

{

static void Main(string[] args)

{

Student[] students = new Student[10];
for (int i = 0; i < students.Length; i++)

{

Console.Write("Введите имя и инициалы {0}-ого студента: ", i + 1);

string name = Console.ReadLine();

Console.Write("Введите номер группы {0}-ого студента: ", i + 1);

int nomber = int.Parse(Console.ReadLine());

Console.Write("Введите, через запятую, 5 оценок {0}-ого студента: ", i + 1);

string[] marks = Console.ReadLine().Split(',');
int[] progress = new int[5];

for (int a = 0; a < 5; a++)

progress[a] = int.Parse(marks[a].ToString());
students[i] = new Student(name, nomber, progress);

}
var stud = from i in students orderby i.GroupNomber select i; //Сортировка!
Console.WriteLine("\n\nУпорядоченный по номеру группы массив студентов: ");
foreach (Student student in stud)

Console.WriteLine("\n" + student.ToString());
int count = 0;

foreach (Student student in students)

if (student.MediumBall() > 4)

count++;
if (count == 0)

Console.WriteLine("\nНет студентов со средним баллом больше 4!");

else

Console.WriteLine("\nСписок студентов со средним баллом боьше 4: ");
foreach (Student student in students)

if (student.MediumBall() > 4)

Console.WriteLine("\n" + student.ToString());
Console.ReadKey();

}

}
struct Student

{

public string Name;

public int GroupNomber;

int[] progress;
public Student(string Name, int GroupNomber, int[] marks)

{

this.Name = Name;

this.GroupNomber = GroupNomber;

progress = marks;

}
public double MediumBall()

{

double MedBall = 0;
foreach (int i in progress)

MedBall += i;

MedBall /= progress.Length;
return MedBall;

}
public override string ToString()

{

return string.Format("ФИО: {0} \nНомер группы: {1}", Name, GroupNomber);

}

}

}
Приклад виконання програми




Завдання 8. Створення Windows-додатків. Діалогові вікна

Загальна частина завдання: написати Windows-додаток, заголовок головного вікна якого містить П. І., групу і номер варіанту. В програмі повинна бути передбачена обробка виключень, що виникають через помилкове введення користувача .
Створити меню з командами Input, Calc і Exit.

При виборі команди Input відкривається діалогове вікно, що містить:

• три поля типа TextBox для введення трьох сторін трикутника;

• групу з двох прапорців (Периметр і Площа) типа CheckBox;

• кнопку типа Button.

Забезпечити можливість:

• введення довжин трьох сторін трикутника;

• вибору режиму за допомогою прапорців: підрахунок периметра та/або площі трикутника.

При виборі команди Calc відкривається діалогове вікно з результатами. При виборі команди Exit додаток завершується.
Виконання.

Програма написана в Visual Studio. За допомогою інтрументу Windows Forms.

Лістинг програми.
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;
namespace TrainDelegates03

{

public partial class Form1 : Form

{

delegate float SquareTriangle(float a, float b, float c);
public Form1()

{

InitializeComponent();

}
private void button1_Click(object sender, EventArgs e)

{

SquareTriangle ST;
ST = delegate(float a, float b, float c)

{

float s, p, d;
p = (a + b + c) / 2.0f;

d = p * (p - a) * (p - b) * (p - c);

if (d < 0) return -1.0f;

s = (float)Math.Sqrt(p * (p - a) * (p - b) * (p - c));
return (float)s;

};

float aa, bb, cc;
aa = (float)Convert.ToDouble(textBox1.Text);

bb = (float)Convert.ToDouble(textBox2.Text);

cc = (float)Double.Parse(textBox3.Text);
float area;

area = (float)ST(aa, bb, cc);

label4.Text = "S = " + area.ToString();

}

}

}
Приклад виконання програми.


скачати

© Усі права захищені
написати до нас