• 2-AMALIY TOPSHIRIG’I Tekshirdi: Tojiyev A Jizzax 2022 2-Modul topshiriqlari.
  • Icomparable va Icloneable interfeysi metodlarini sinfda qayta aniqlash Umumlashgan sinflar yaratish va ishlatish
  • IClonable ishlatilmaganda oddiy klassdan obekt olib uni nusxalaganimizda quyidagicha bo’ladi.
  • IClonable ishlatilganda kodimiz quyidagicha bo’ladi.
  • Umumlashgan sinflar yaratish va ishlatish topshiriq
  • 2-amaliy topshirig’I




    Download 1.53 Mb.
    Sana09.03.2024
    Hajmi1.53 Mb.
    #168960
    Bog'liq
    Algoritm amaliy 2
    XORAZMSHOHLAR DAVLATI, Umumiy elektrotexnika va elektronika asoslari (A.Xonboboyev, N.Xalilov) (1)

    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.




    Download 1.53 Mb.