Дәріс Жүйелік бағдарламалаудың негізгі ұғымдары Кіріспе «Жүйелік бағдарламалау»


Кейбір тапсырмалар үшін библиотеканы



бет4/4
Дата02.12.2023
өлшемі160,45 Kb.
#194707
түріПрограмма
1   2   3   4
Байланысты:
каз лекция Ж йелік ба дарламалауды негізгі ымдары

Кейбір тапсырмалар үшін библиотеканы әзірлеу

Бір ӛлшемді массивта бүтін сандарды ӛңдеумен байланысты есепке арнап DLL оқу библиотекасын әзірлейік. Бұл тек үйрету тапсырмасы, мұнда DLL библиотекасын құру тахнологиясы қарастырылады. Әрі DLL библиотекаларды C# тілінің консольді қосымшасында қолдану сұрақтары қарастырылған.


Біздің DLL библиотекамызда бүтін сандар массивімен жұмыс істейтін тек үш әдіс қана болады:

  • максималды мәнді іздеу;

  • кему реті бойынша сұрыптау;

  • массивтің барлық элементтерінің мәндерінің қосындысын есептеу.

Visual Studio 2008 іске қосып, жобаны құруға кӛшеміз. Жоба типі ретінде "Class Library" типін кӛрсетіміз. DLL библиотекасын құру терезесінің ӛрістерін 1.1-суретіне сәйкес қайта анықтап аламыз.


1.1-сурет – DLL библиотеканы құру


Name ӛрісіне құрылатын DLL аты беріледі. Құрылатын DLL аты LibraryMas1 болсын.


Location ӛрісіне ішінде жоба болатын Шешім сақталынатын директория кӛрсетілед. Компьютердің жұмыс столын (рабочий стол) кӛрсетеміз.
Solition Name терезесінде «Шешім» аты беріледі. Бірінші дәрістің барлық жобалары бір «Шешімге» біріктірілгенін кӛрсететін Lekci_1 атауын қолданамыз.
Solition Name ӛрісінде «Шешімді» орналастыру үшін жаңа директория құру керектігін кӛрсететін "Create directory for solution" элементі таңдалған.
Жоба типін растағаннан соң, ОК бастырмасын басу арқылы келесі кодты аламыз:

using System;


using System.Collections.Generic; using System.Linq;
using System.Text;

namespace LibraryMas1


{
public class Class1
{
}
}
"Class1" атын "MyMas" атына ӛзгертейік, ол үшін жоба кодының
терезесінде ӛзгертілетін идентификаторды белгілеп алып, одан соң басты мәзірден Refactor пунктін және Rename ішкі пунктін таңдаймыз. Ашылған терезеде жаңа атты кӛрсетеміз. Сонда идентификатордың атын ӛзгертуді талап ететін жерлердің барлығы кӛрсетіледі. Біздің жағдайымызда тек бір ғана ауыстыру болады, бірақ жалпы алғанда ауыстырулар кӛп болуы мүмкін, сондықтан барлық кірулерді автоматты түрде ауытыру ӛте пайдалы болады.
Құрылып жатқан DLL библиотеканы тапсырманың шартына сәйкес үш әдістің кодымен толықтырайық:
using System;
using System.Collections.Generic; using System.Linq;
using System.Text;

namespace LibraryMas1


{
public class MyMas
{
public static int maxMas(ref int[] masi, int n)
{
int max = masi[0];
for (int i = 1; i < n; i++)
if (max < masi[i]) max = masi[i]; return max;
}
public static void sortMas(ref int[] masi, int n)
{
int b = 0;
for (int i = 0; i < n - 1; i++) for (int j = i + 1; j < n; j++)
if (masi[i] < masi[j])
{ b = masi[i]; masi[i] = masi[j]; masi[j] = b; }
}
public static int symMas(ref int[] masi, int n)
{
int sym = 0;
for (int i = 0; i < n; i++) sym=sym+masi[i];
return sym;
}
}
}
DLL библиотеаны құрудың ақырғы кезеңінде екі әрекетті орындау керек.
Біріншіден, «Class1.cs» файлының атын «MyMas.cs» атына ауыстыру керек. Ӛйткені, класты сақтап тұрған файл атымен кластың аты бүрдей болу керек. Файл атын ауыстыру Solition Explorer жоба терезесінде іске асады. Файл атын ерекшелеп алғаннан соң, тінтуірдің оң жақ батырмасын басып, Rename командасын таңдап аламыз. Жаңа атауды енгіземіз – ӛзгерістер жобаның барлық элементтерінде болады.
Екіншіден, құрылған DLL библиотеканы компиляция жасау керек, ол үшін Басты мәзірден Build -> Build Solition пунктін таңдаймыз. Сәтті компиляция нәтижесінде dll кеңейтілімі бар файл құрылады.



    1. Құрылған DLL библиотекианы қолдану

Құрылған DLL библиотеканы қолданатын массивпен жұмс істеуге арналған жай ғана үйрену бағдарламасын қарастырайық. Бағдарлама келесі тапсырманы шешуге арналған.


Тапсырма 1.1. минус 50-ден 50-ге дейінгі диапазондағы 20 кездейсоқ бүтін сандардан тұратын массив тұрғызу. Массивтің барлық элементтерінің қосындысын тауып, оны басып шығару. Массив мәндерін 1 разрядқа солға қарай жылжыту. Массив элементтерін кему реті бойынша сұрыптауды орындау. Бағдарлама мәзір болу керек.
DLL библиотеканы қолдану нұсқаларының бірі DLL «Шешіммен» бірге қосымшаны құру. Ол үшін бұрын DLL библиотекада құрылған жобаны қарапайым жолмен ашып, және онда консольді қосымша жобасын 1.2- суретке сәйкес құрамыз.
Name ӛрісінде бастапқыда беріліп тұрған мәнді қалтырамыз. Location ӛрісінде бастапқыда беріліп тұрған мәнді қалтырамыз.
Solition ӛрісінде құрылатын қосымша бар «Шешімге» қосылатын "Add to Solution" мәнін таңдап аламыз.

1.2-сурет – Консольді қосымшаны құру


Консольді қосымшаның кодының даярламасы 1.3-суретте кӛрсетлген.


1.3-сурет – Құрылған консольді қосышаның бастапқы терезесі


«Solition Explorer» терезесінде екі жоба бар екендігіне назар аударамыз. Еі жобада бір шешімде тұр, бірақ олар бір-бірімен байланысты емес.


Оны тексеру оңай, «Solition Explorer» терезесінде «References» каталогын – 1.4-а –суретті қара.

a b
1.4-сурет – Консольді қосымшалардың байланысы Байланыстың болмауы DLL библиотеканың әдістерін біздің консольді
жобамызда қолдануды мүмкін етпейді.
Консольді қосымшамен DLL библиотеканың байланысын (DLL LibraryMas1 бар жобаға сілтеме қосу) ұйымдастыру үшін «Solition Explorer» терезесінде консольді қосымшаның атын (ConsoleApplication1) таңдап алып, тінтуірдің оң жақ батырмасына басқанда ашылатын контекстік мәзірден "Add Reference" пунктін таңдап аламыз. Ашылған сілтемелерді қосу терезесінен "Projects" бетін таңдаймыз. LibraryMas1 жобасы «Шешімге» қосылған болғандықтан, ол автоматты түрде ашылған терезеде пайда болады. Байланысты орнатуды ОК батырмасына басу арқылы растаймыз. DLL LibraryMas1-ге сілтеме консольді қосымшаның "References" каталогында пайда болады. 1.4 – b –суретінде DLL LibraryMas1-ге сілтеме сілтемелер тізімінің жоғары жағында пайда болғаны кӛрінеді. Енді жобалар ӛзара байланысқан, DLL ұсынылатын әдістер консольді қосымшадан қол жетімді болады.
DLL LibraryMas1-ге сілтемені Project-> Add Reference режимін қолдана отырып та орнатуға болады.
Егер сілтемені «Шешімге» кірмеген жобаға орнату керек болса, онда сілтемелерді қосу терезесінде жобаға апаратын жолды кӛрсету керек.
Тапсырманың шарттарына сай бағдарлама кодын әзірлейміз. Бағдарламаның коды:
using System;
using System.Collections.Generic; using System.Linq;
using System.Text;

namespace ConsoleApplication1


{
class Program
{
public static void sozd(ref int[] ma)
{
Random rnd = new Random(); for (int i = 0; i < 20; i++)
ma[i] = rnd.Next() % 101 - 50; Console.WriteLine("Массив создан !!");
}
public static void zadvig(ref int[] ma)
{
int k;
for (int i = 0; i < 19; i++)
{
k = ma[i]; ma[i] = ma[i + 1]; ma[i + 1] = k;
}
Console.WriteLine("Сдвиг массива на 1 разряд выполнен !");
}
public static void prinmas(int[] ma)
{
for (int i = 0; i < 20; i++) Console.Write(" {0}", ma[i]);
Console.WriteLine();
}
static void Main()
{
int[] a = new int[20]; int k = 0;
int s = 0,n = 20; string buf; while (k < 6)
{
Console.WriteLine("1 - Создать массив 20 чисел"); Console.WriteLine("2 - Напечатать массив");
Console.WriteLine("3 - Найти и напечатать сумму всех элементов массива");
Console.WriteLine("4 - Выполнить сдвиг значений массива на 1 разряд влево");
Console.WriteLine("5 - Выполнить сортировку элементов массива в порядке убывания");
Console.WriteLine("6 - Выход из программы"); Console.WriteLine("Введите пункт меню программы"); buf = Console.ReadLine();
k = Convert.ToInt32(buf); switch (k)
{
case 1: sozd(ref a); break; case 2: prinmas(a); break; case 3:
{
s = LibraryMas1.MyMas.symMas(ref a, n); Console.WriteLine("Сумма элементов массива = {0}",s);
}; break;
case 4: zadvig(ref a); break;
case 5: LibraryMas1.MyMas.sortMas(ref a,n); break; default: break;
}
}
}
}
}


Егер жобаны орындауға жіберуге талпынсақ, онда іске қосылатын жоба анықталмаған деген хабарлама шығады. Бұл сияқты жағдай «Шешімде» бірнеше жоба болғанда орын алады. Бірінші қосылатын жобаны анықтау үшін осы жобаның редакторы терезесінде тұрып, келесі Project -> Set as StartUp Project командасын беру керек.

Достарыңызбен бөлісу:
1   2   3   4




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет