Алгоритм түсінігі Алгоритм


Область применения[править | править код]



бет17/20
Дата08.11.2022
өлшемі0,76 Mb.
#157176
1   ...   12   13   14   15   16   17   18   19   20
Байланысты:
База Алгоритмы

Область применения[править | править код]


Локальные переменные делают возможной рекурсию[5].
Переменные локальной области видимости используются, чтобы избежать проблем с побочными эффектами, которые могут произойти с глобальными переменными.




  1. Рекурсия түсінігі. Мысал.

В C# допускается, чтобы метод вызывал самого себя. Этот процесс называется рекурсией, а метод, вызывающий самого себя, — рекурсивным. Вообще, рекурсия представляет собой процесс, в ходе которого нечто определяет само себя. В этом отношении она чем-то напоминает циклическое определение. Рекурсивный метод отличается главным образом тем, что он содержит оператор, в котором этот метод вызывает самого себя.




  1. С # тіліндегі құрылым туралы түсінік.

Структура (struct) в C# — это пользовательский тип данных, который используется наряду с классами и может содержать какие-либо данные и методы. Структурами также являются такие типы данных как intdouble и т.д. Основное отличие структуры (struct) от класса (class) заключается в том, что структура — это тип значений, а класс — это ссылочный тип.


  1. C # тіліндегі көпөлшемді массивтер.

Многомерным называется такой массив, который отличается двумя или более измерениями, причем доступ к каждому элементу такого массива осуществляется с помощью определенной комбинации двух или более индексов. Многомерный массив индексируется двумя и более целыми числами.




  1. switch операторы.

witch – оператор, который сравнивает последовательно значение переменной, находящейся в скобках со всеми вариантами значений, находящимися после каждого ключевого слова case.

38)C # тілінде файлдарға тізбекті қол жеткізу.
Файлдың аты тек қол жеткізуді ашқанда ғана қолданылады. Одан әрі қарай файл айнымалысымен жұмыс жүреді, ол файл ашылғанда орнатылады.
Файлдармен жұмыс істегенде қолданылатын бірінші функция –fopen ( ). Ол екі параметрдің болуын талап етеді: файлға жол мен оны ашу режимін. Егер файл бағдарлама орналасқан бумада болса, оның атын көрсетсе болғаны. Файлды ашу операциясы сәтсіз аяқталуы мүмкіндігіне байланысты, оны орындаған кезде fopen ( ) функциясы қайтаратын мән талданады. fopen ( ) функциясы сәтті аяқталған кезде сілтегіші FILE типті құрылымға қайта оралып, егер файлды ашу кезінде қате кеткен болса, функция NULL-ді қайтарады. Ашылатын файлдарға қол жеткізу режимдерін орнатуға болады. Режимді орнату кезіндегі бірінші символ төмендегідей болуы мүмкін:
*r – файл тек оқу үшін ашылады. Егер файл жоқ болса, функция NULL мәнін қайтарады. Сәтті ашылған кезде сілтегіш файлдың басына орнатылады.
*w – файл тек жазу үшін ашылады. Егер мұндай аты бар файл жоқ болса, ол құрылады; егер файл бар болса, ашылар алдында бұрынғы ақпарат жойылады. Сілтегіші файлдың алдына қойылады.
*a – файл файл соңына қосу үшін ашылады. Сілтегіш файлдың соңына қойылады.
*r+, w+, a+ - файл жаңарту үшін ашылады. Бұл режимдерде оқу мен жазуға болады. Қол жеткізуді ашу кезіндегі сілтегіштің орны плюс белгісі жоқ режимдегідей.
39)Тізбекті қатынау файлдарына мәліметтерді қалай жазу керек.

40)Кездейсоқ қол жеткізу файлдары.


41)Тізімдік құрылым туралы түсінік.
42)Стек типті құрылымда мәліметтерді ұйымдастыру.
43)Стекке элемент қосу алгоритмі.
44)Стектен элементті өшіру алгоритмі.

46. Стек мазмұнын көру алгоритмі.


Стек ішіндегісін көру үшін in операциясы жиі қолданылады, мысалы:
Console.Write("Стек ішіндегісі = ");
foreach (int i in vst) Console.Write(i + " ");
Console.WriteLine();
Кодтың көрсетілген жолдары vst төбесінен және бүтін сандардан тұратын стекті қарап шығуға мүмкінді береді.
47. Кезек типіндегі құрылымда мәліметтерді ұйымдастыру.
Кезек типіндегі құрылымдар «қайтаруы бар іздеу» алгоритмдерінде кең қолданылады. Графтардың, бұтақтардың төбелерінен өту алгоритмдері «ішіне қарай жүру» алгоритімін жүзеге аIrimshikу кезінде – стектерді немесе «көлденеңінен жүру» алгоритмін жүзеге аIrimshikу кезінде – кезектерді қолданады. Жаппай қызмет көрсету теориясының көптеген есептері оңтайлы нұсқаларды табу үшін кезектерді қолданады. Кезек типіндегі құрылымның екі тақырыбы болады: ол арқылы кезек элементімен жұмысты орындайтын (элементті жою) кезектің басы және кезекке жаңа элементтерді қосу үшін қолданылатын кезектің соңы. Кезектермен жұмыс жасау үшін C# тілінде арнайы класс (Queue) бөлінген. Бұл кластың әдістер жиыны бар.
51. Кеңейтілген іздеу мүмкіндіктері бар тізімдер.
C# тілінде бір бағыттық тізімдердің іздестіру мүмкіндіктерін кеңейту үшін қос бағыттық тізімдер қосылды, мысалы, LinkedList.
Қос бағыттық тізімдер түйіндердің тізбектерінен тұрады, онда келесі (әдете Next өрісі) және алдыңғы (әдете Old өрісі) түйіндерге сілтемелер болады.
Кеңейтілген іздестіру мүмкіндіктері тізім бойынша кез келген бағытта көшу мүмкіндігімен байланысты. Қос бағыттық тізімдердің қосымша артықшылығы - тізім элементерінің қосу, алу операцияларының қарапайымдылығы. Осы тәртіп араларында операция орындалатын тізім элементтерінің бірнеше сілтемелерін жаңартады.
Қос бағыттық тізімнің келесі модификациясы циклдік тізімдерді құру болып табылады. Циклдік тізімде соңғы элемент Next нұсқағышы арқылы бірінші элементпен, ал тізімнің бірінші элементі Old нұсқағышы көмегімен соңғы элементпен байланыстырылады.
Циклдік тізімде тақырып кез келген элементте орналаса алады. Мысалы, іздеу операциясын орындағаннан кейін біз тақырыпты табылған элементке орната аламыз. Келесі іздеу операциясы кезінде тақырып келесі табылған элементке көшірілуі мүмкін.
Тізімде екі бағытта орнын ауыстыру мүмкіндігін ескере отырып іздеу алгоритмін жақсартуға болады.
Алайда стандартты іздеу алгоритмдерінің көпшілігі тізімдерді өңдеуге бағытталған. Бұл орайда тізім тақырыбы белгілі жерде орналасуы керек. Осы мақсатта тақырыпты өрістерінде мағыналық мәні жоқ элементке орналастыру ұсынылды, ал элемент циклдік тізімде бастапқы нүкте ретінде керек.
Тізімді осылай ұйымдастыру тақырыбы бөлінген тізім деген атқа ие болды.
Екілік іздеу алгоритмін орындау үшін бұтақтар тәрізді құрылым қолданылады, элементтерінде екі нұсқағыштары бар (оң және сол).
52. Глобальді айнымалылар туралы түсінік. Мысал
жазу формасы объект арқылы қарапайым экземпляр айнымалысын пайдалану кезіндегі сияқты болып жазылады, бірақ онда объектінің аты емес, класс аты көрсетіледі. Осындай тәсіл арқылы класс аты мен нүкте-операторды пайдаланып, static типіндегі әдісті де шақыруға болады. static типінде жарияланған айнымалылар, негізінде, глобальді айнымалылар болып табылады. Объектілер өз класында жарияланған кезде, static типіндегі айнымалылардың көшірмесі жасалмайды. Оның орнына кластың барлық экземплярлары static типіндегі бір айнымалымен бірге қолданылады. Мұндай айнымалы оны класта пайдалану алдында инициалданады.
54. Стек типтіндегі тізімдік құрылым туралы түсінік
Стек – қарапайым тізім, онда элементті өшіру мен қосу бір жақ бөлігіндегі тізімнің соңында орындалады. Әдетте стекте орындалатын жұмыс принципі «Бірінші кірген соңында шығады, соңында кірген бірінші болып шығады» сөйлемімен түсіндіріледі. Стек типіндегі құрылым әртүрлі есептеу үдерісінде кең қолданылады. Компьютер процессоры үзуді өңдеу барысында стекті қолданады. Алгоритмдердің көпшілігі алгоритмді алдыңғы қалпына «қайтаруды» орындау үшін стекттерді қолданады, мысалы, лабиринтті, графты немесе бұтақтарды жүріп өткен кезде. Көптеген көліктер туралы есептерді шешу алгоритмдерінде оңтайлы маршруттарды табу үшін стек пайдаланылады, т.б. Әлбетте, «Алгоритмизация және бағдарламалау» пәнінде стек сияқты құрылымды қарастырмай өте алмаймыз, C# тілінде оған әдістер жиыны бар арнайы класс (Stack) бөлінген. Стектермен жұмысты орындау барысында негізгі алгоритмдер: стекке элементті қосу алгоритмі, стектен элементті жою алгоритмі, стек мазмұнын қарау. Стек типіндегі құрылымға қол жеткізу әдетте стек төбесі деп аталатын оның тек бір жақ шетінде ғана мүмкін. Стек класы динамикалық коллекция – бір типтегі деректердің бірігуі түрінде бола алады. Стекті кеңейткен кезде («толтырылған» стекке элементті қосу барысында) стек сыйымдылығы динамикалық түрде екі есе үлкейеді

54. Кезек типтіндегі тізімдік құрылым туралы түсінік


Кезек – қарапайым тізім, онда элементті қосу тізімнің бір жақ бөлігінде (кезек соңы), ал өшіру немесе элементпен жұмыс істеу тізімнің екінші бөлігінде (кезектің басы) орындалады. Кезек типіндегі құрылымдар «қайтаруы бар іздеу» алгоритмдерінде кең қолданылады. Графтардың, бұтақтардың төбелерінен өту алгоритмдері «ішіне қарай жүру» алгоритімін жүзеге аIrimshikу кезінде – стектерді немесе «көлденеңінен жүру» алгоритмін жүзеге аIrimshikу кезінде – кезектерді қолданады. Жаппай қызмет көрсету теориясының көптеген есептері оңтайлы нұсқаларды табу үшін кезектерді қолданады. Кезек типіндегі құрылымның екі тақырыбы болады: ол арқылы кезек элементімен жұмысты орындайтын (элементті жою) кезектің басы және кезекке жаңа элементтерді қосу үшін қолданылатын кезектің соңы. Кезектермен жұмыс жасау үшін C# тілінде арнайы класс (Queue) бөлінген. Бұл кластың әдістер жиыны бар Queue класында келесі үш конструктор бар: Public Queue (); Public Queue (int capacity); Public Queue (ICollection c); Бірінші конструктор 10 элементке «бос» кезекті құрайды. Екінші конструктор сиымдылығы capacity элементіне тең «бос» кезекті құрайды. Үшінші конструктор ICollection элементтері арқылы жұмыс жасайтын, n элементке арналған жаңа кезекті құрайды.
55. C # тіліндегі тізбекті қатынау файлдары түсінігі.
РАБОТА С ПОСЛЕДОВАТЕЛЬНЫМИ ФАЙЛАМИ
Работа с последовательным файлом предполагает однократный доступ к данным файла в течение одного сеанса работы с ним. При этом используется однонаправленный поток. Если файл читается, то данные считываются от начала к концу. Прочитать еще раз ранее считанную информацию в том же сеансе работы невозможно. Если файл записывается, то данные также последовательно выводятся в файл и изменить ранее записанные данные также невозможно.
Ниже рассмотрен пример работы с последовательными файлами на примере объектов класса StreamWriter и StreamReader. Эти классы имеют различные методы обслуживания своих объек-тов. Перечислим некоторые из них.
Методы класса StreamReader:


Достарыңызбен бөлісу:
1   ...   12   13   14   15   16   17   18   19   20




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

    Басты бет