2-amaliy topshirig’I



Download 1.53 Mb.
Date11.05.2024
Size1.53 Mb.
#64228
2-amaliy topshirig’I

Mirzo Ulug’bek nomidagi O’zbekiston
Milliy universiteti Jizzax filialli
Amaliy matematika fakulteti
Axborot tizimlari va texnologiyalari
21-21-guruh talabasi
Bo’riboyev Diyorbekning
“Algoritmik tillar va dasturlash” fanidan yozgan


2-AMALIY TOPSHIRIG’I

Tekshirdi: Tojiyev A


Jizzax 2022
2-Modul topshiriqlari.
2-modul topshiriqlari quyidagi amaliy mashg’ulot mavzularini o’z ichiga oladi.
Interfeyslar bilan ishlash
Ienumerable va Ienumerator interfeysi metodlarini sinfda qayta aniqlash
Icomparable va Icloneable interfeysi metodlarini sinfda qayta aniqlash
Umumlashgan sinflar yaratish va ishlatish

Icomparable va Icloneable interfeysi metodlarini sinfda qayta aniqlash topshiriq:



using System;
using System.Collections.Generic;
namespace ComparToInterfeys
{
class havokema : IComparable
{
public string nomi { set; get; }
public int tezligi { get; set; }
public double harajat { get; set; }
public havokema() { }
public havokema(string nomi, int tezligi, double harajat)
{
this.nomi = nomi;
this.tezligi = tezligi;
this.harajat = harajat;
}
public int CompareTo(object obj)
{
havokema temp = (havokema)obj;
if (this.harajat > temp.harajat)
return 1; if (this.harajat < temp.harajat)
return -1;
else
return 0;
}
public override string ToString()
{
return String.Format("Nomi=" + this.nomi + " " + "Tezligi=" + this.tezligi + " " + "Harajati" + this.harajat);
}
}

class Program


{
static void Main(string[] args)
{
const int n = 3;
havokema[] REFE = new havokema[n];
REFE[0] = new havokema();
REFE[0] = new havokema("Yuk tashuvchi", 450, 3000000);
REFE[1] = new havokema("Harbiy", 700, 10000000);
REFE[2] = new havokema("Pasajir", 500, 2500000);
Console.WriteLine("Havokemalari ruyhati dastlabki:\n");
foreach (havokema a in REFE)
{
Console.WriteLine(a);
}
Console.WriteLine("\n Endi Havokemalarni harajatini obekt sifatida saraylamiz: \n");
Array.Sort(REFE);
foreach (havokema a in REFE)
{
Console.WriteLine(a);
}
}
}
}
IClonable ishlatilmaganda oddiy klassdan obekt olib uni nusxalaganimizda quyidagicha bo’ladi.

using System;


namespace Klonlash


{
class Ishchi
{
public string ismi { get; set; }
public string unvoni { get; set; }
public int yosh { get; set; }
public int stajyili { get; set; }
public Ishchi(string ismi,string unvoni,int yosh,int stajyili)
{
this.yosh = yosh;
this.ismi = ismi;
this.unvoni = unvoni;
this.stajyili = stajyili;
}
public void Print()
{
Console.WriteLine($"ism ={ismi} , yosh = {yosh} , unvoni={unvoni} , yillik hisobda malakasi={stajyili}");
}
}
class Program
{
static void Main(string[] args)
{
Ishchi W = new Ishchi("Yegor","Kamandir",35,6);
Ishchi W2; W2 = W;
W2.ismi = "Farxod";
W2.unvoni = "Stajor";
W2.yosh = 21;
W2.stajyili = 1;
W.Print();
W2.Print();
}
}
}
IClonable ishlatilganda kodimiz quyidagicha bo’ladi.


using System;


namespace Klonlash
{
class Ishchi : ICloneable
{
public string ismi { get; set; }
public string unvoni { get; set; }
public int yosh { get; set; }
public int stajyili { get; set; }
public object Clone()
{
return new Ishchi
{
yosh = this.yosh,
ismi = this.ismi,
unvoni = this.unvoni,
stajyili = this.stajyili
};
}
public void Print()
{
Console.WriteLine($"ism ={ismi} , yosh = {yosh} , unvoni={unvoni} , yillik hisobda malakasi={stajyili}");
}
}
public interface ICloneable
{
object Clone();
}
class Program
{
static void Main(string[] args)
{
Ishchi W = new Ishchi();
W.ismi = "Yegor";
W.unvoni = "Kamandir";
W.yosh = 35;
W.stajyili = 8;
Ishchi W2 = (Ishchi)W.Clone();
W2.ismi = "Farxod";
W2.unvoni = "Stajor";
W2.yosh = 21;
W2.stajyili = 1;
W.Print();
W2.Print();
}
}
}
Umumlashgan sinflar yaratish va ishlatish topshiriq:


Download 1.53 Mb.

Share with your friends:




The database is protected by copyright ©ininet.org 2024
send message

    Main page