close

Вход

Забыли?

вход по аккаунту

?

Отчет Лабораторная 2

код для вставкиСкачать
ИТ1201. Опацкий Владимир.
Лабораторная работа №2. Разработка приложений с использованием коллекций
1. Цель работы
Изучить интерфейсы и классы коллекций библиотеки .NET Framework, основные свойства и методы этих классов, применяемые при работе с коллекциями.
2. Задание
Рациональное число можно представить записью с двумя полями: числитель и знаменатель. Разработать функцию сократить(m) приведения рационального числа m к несократимому виду. Дан стек рациональных чисел. Сократить эти числа и записать их в список, отсортировав по убыванию.
3. Листинг
Класс "Рациональное число"
class RDigit
{
int ch;
int zn;
public RDigit(int ch, int zn)
{
this.ch = ch;
this.zn = zn; }
public void Div()
{
int k = ch;
int l = zn;
if (k>l) for (int i=l;i>0;i--)
{
if ((k%i==0) && (l%i==0)&& (k!=0) && (l!=0))
{
k = k / i;
l = l / i;
}
}
else
for (int i = k; i > 0; i--)
{
if ((k % i == 0) && (l % i == 0) && (k != 0) && (l != 0))
{
k = k / i;
l = l / i;
}
}
ch=k;
zn=l;
}
public int cs
{
get
{
return ch;
}
set
{
ch=value;
}
}
public int zm
{
get
{
return zn;
}
set
{
zn = value;
}
}
}
Код программы.
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Stack digs = new Stack();
private void button1_Click(object sender, EventArgs e)
{
RDigit cdig = new RDigit(Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text));
digs.Push(cdig);
dataGridView1.RowCount = 2;
dataGridView1.ColumnCount = digs.Count;
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
RDigit cdig1 = new RDigit(0,0);
cdig1=(RDigit)digs.Pop();
dataGridView1.Rows[0].Cells[dataGridView1.ColumnCount-i-1].Value = cdig1.cs;
dataGridView1.Rows[1].Cells[dataGridView1.ColumnCount-i-1].Value = cdig1.zm;
}
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
RDigit cdig1 = new RDigit(Convert.ToInt32(dataGridView1.Rows[0].Cells[i].Value), Convert.ToInt32(dataGridView1.Rows[1].Cells[i].Value));
digs.Push(cdig1); }
}
private void button4_Click(object sender, EventArgs e)
{
if (digs.Count != 0)
{
digs.Pop();
dataGridView1.ColumnCount -= 1;
}
else
MessageBox.Show("Стек пуст");
}
private void button2_Click(object sender, EventArgs e)
{
RDigit cdig1 = new RDigit(0, 0);
cdig1 = (RDigit)digs.Pop();
cdig1.Div();
digs.Push(cdig1);
dataGridView1.Rows[0].Cells[dataGridView1.ColumnCount - 1].Value = cdig1.cs;
dataGridView1.Rows[1].Cells[dataGridView1.ColumnCount - 1].Value = cdig1.zm;
}
private void button3_Click(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
RDigit cdig1 = new RDigit(0, 0);
cdig1 = (RDigit)digs.Pop();
cdig1.Div();
dataGridView1.Rows[0].Cells[dataGridView1.ColumnCount - i - 1].Value = cdig1.cs;
dataGridView1.Rows[1].Cells[dataGridView1.ColumnCount - i - 1].Value = cdig1.zm;
}
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
RDigit cdig1 = new RDigit(Convert.ToInt32(dataGridView1.Rows[0].Cells[i].Value), Convert.ToInt32(dataGridView1.Rows[1].Cells[i].Value));
digs.Push(cdig1);
}
}
}
}
Документ
Категория
Рефераты
Просмотров
18
Размер файла
20 Кб
Теги
отчет, лабораторная
1/--страниц
Пожаловаться на содержимое документа