Do. while цикл операторы

While, Do... while цикл операторы

Орындалу саны алдын ала белгісіз болатын циклдер құру кезінде шарттары алдын ала немесе соңынан тексерілетін екі цикл түрі бар. Оның жазылуы:

while (шарт-өрнек)

оператор;

Мұнда шарт ретінде шартты өрнек немесе кез келген типтегі өрнек пайдаланылуы мүмкін. Оператор қарапайым немесе құрама болуы мүмкін. Ол құрама оператор болса, онда операторлар жиыны жүйелі жақшаға алынып жазылады. While операторы орындалғанда, алдымен жақша ішіндегі өрнек есептеліп тексеріледі. Егер өрнек мәні ақиқат болса немесе жалпы жағдайда 0-ге тең болмаса, онда оператор атқарылады. Содан соң жақшадағы өрнек тағы да есептеледі. Егер өрнек мәні жалған болса (немесе жалпы жағдайда 0-ге тең болса), онда while цикл операторы өз жұмысын аяқтайды.

Do... while цикл операторы

Шарты соңынан тексерілетін do … while циклінің оператордың жалпы жазылу түрі:

do

{

1-оператор;

2-оператор;

… … …

n-оператор;

}

while (өрнек);

Цикл тұлғасы ретінде қарапайым немесе құрама оператор қолданылуы мүмкін. Жақшадағы өрнек цикл тұлғасынан кейін тексеріледі. Сондықтан do while цикл тұлғасы ең болмағанда бір рет орындалады. Цикл тұлғасынан кейін жазылған өрнек ақиқат болса (немесе жалған жағдайда ол 0-ге тең болмаса), цикл тұлғасы қайтадан орындалады. Ал өрнек жалған болса (немесе 0-ге тең болса), цикл аяқталады.

#include <iostream.h>

int main()

{inti;

intsum = 0;

for (i = 1; i<= 1000; i++)

{ sum = sum + i; } cout<< "Сумма чисел от 1 до 1000 = " <<sum<<endl; }

7. Функция. Оның программада қолдану ерекшеліктері. Функцияны сипаттау және анықтау. Прототип. Рекурсия. Рекурсия механизмі. Рекурсивтік функция. Оны қолданудың артықшылығы.

Функцияны сипаттау (Описание функции; function declaration) — міндетгі анықтайтын жоғары деңгейдегі программалау тілінің конструкциясы. Функцияға атау беруге (егер қажет болса), оның формальдық параметрлерін көрсетуге және алгоритмнің жүзеге асырылатын міндетін анықтауға қызмет етеді. Функцияны сипаттау программадағы сипаттамалар бөлімінде (мысалы, Паскальда) немесе программалық модуль түрінде әзірленген бас программадан (мысалы, Фортранда) кейін орналасады. Функцияны сипаттау формасы нақтылы тілдің синтаксисімен тағайындалады. Әдетте, Функциялық сипаттау денесі мен функцияның бас тақырыбынан тұрады. Тақырыпта функцияның атауы көрсетіледі және формальдық параметрлері көрсетілуі мүмкін. Ал міндеттің денесінде орындалатын алгоритм міндеттері программаланады.

Рекурсивті алгоритм қаншалықты тиімді? Оның тиімділігін есептей аламыз ба, егер тікелей есептеу алгоритмі квадратты, кіру мәліметтерінің бөліктеуі логарифмді, барлық шешімдердің бірігуі сызықты (кіру мәліметтерінің мөлшеріне байланысты), ал әрқайсысының мөлшері бастапқының төрттен біріне тең болатын барлық кіру мәліметтері 8 бөлікке бөлінетінін білетін болсақ? Бұл есепті шеші оңай емес, оған қалай кірісу керек екендігі де түсініксіз. Дегенмен, «бөл де басқар» түріндегі алгоритмдерді талдау оңай екені анықталды, егер сіздің алгоритміңіздің қадамдары жоғарыда келтірілген жалпы түрдегі алгоритмнің қадамдарына сәйкес қойылса: тура есептеу, кіруді бөлу, бірнеше рекурсивті шақырулар саны және алынған шешімдердің біріктірілуі. Егер осы қадамдар бір-бірімен қалайша біріктірілетінін және әр қадамның күрделілігін білетін болсақ, онда «бөл де басқар» түріндегі алгоритм күрделілігін анықтау үшін келесі формуланы қолдануға болады:

мұндағы DAC — DivideAndConquer алгоритмінің күрделілігі,

DIR — Direct Solution алгоритмінің күрделілігі,

DIV — Divide Input алгоритмінің күрделілігі,

COM — CombineSolutions алгоритмінің күрделілігі.

Осы жалпы формула арқылы алдындағы абзац басында қойылған сұрақ өте қарапайым болып қалады. Тек әр бөліктің белгілі күрделіліктерін формулаға қойсақ болғаны. Нәтижесінде:

немесе кіші жиындар шамасы бірдей болғандықтан, одан да оңай формула:

Мұндай түрдегі теңдіктер рекурренті деп аталады, өйткені функция мәні өз терминдері арқылы беріледі. Сол функцияның басқа шақыруларынан тәуелсіз, тек N-нан тәуелді болатын күрделілік үшін өрнекті тапқымыз келеді.

Факториал мысалына қайтып оралсақ. Факториалды есептеу алгоритмінің барлық кезеңдерін жалпы DivideAndConquer алгоритмімен сәйкес қоялық. Енді осы сәйкестікті пайдаланып, жоғарыда келтірілген жалпы формулаға қою керек мәндерді анықтаймыз. Factorial функциясындағы тура есептеулер ешқандай әрекеттерді қажет етпейді, кіру мәліметтерін бөлу және нәтижелерді біріктіру алгоритмінің әрқайсысы тек бір әрекетті қажет етеді, ал рекурсивті шақыру бастапқы мөлшерден 1-ге кем болатын тек бір есепті шығарады. Нәтижесінде Factorial функциясын есептеу санына келесі рекурентті қатынасты аламыз:

8. Массивтерді сұрыптау алгоритмдері.Таңдау әдісі. Массивте екілік іздеу. Орын алмастыру әдісі. Орнына қою әдісі (метод вставок). Айырмашылықтары.

Алгоритмдерді әдетте сандық (есептеу) және сандық емес (есептеусіз) деп бөледі. Сандық алгоритмдер сандармен математикалық есептеулер жүргізуге арналған, ал сандық емес алгоритмдер әртүрлі құрылымданған мәліметтермен жұмыс істейді. Ең маңызды есептеусіз алгоритмдердің бірі болып сұрыптау және іздеу табылады. Объектілердің берілген тізбегін қандай да бір анықталған ретпен қайта топтастыратын үрдісті сұрыптау деп атайды. Сұрыптаудың мақсаты – сұрыпталған тізбекте қажетті элементтерді іздестіруді жеңілдету. Сұрыптау алгоритмдері мәліметтер құрылымын таңдауға тәуелді, сондықтан сұрыптау әдістерін екі түрге бөледі: ішкі сұрыптау алгоритмдері(массивтерді сұрыптау) және сыртқы сұрыптау алгоритмдері(файлдарды сұрыптау). Сандық емес алгоритмдер үшін жазбалар массивтерін сұрыптау тән. Кілттік өріс – сызықтық тәртіптегі қатынаспен анықталатындай мәлімет типімен берілген өріс. Егер бірдей кілтті элементтердің салыстырмалы реті сұрыптауда өзгермесе, онда сұрыптау әдісі орнықты деп аталады. Ішкі сұрыптаулар алгоритмдері – бұл ішкі жадтағы мәліметтерді сұрыптау алгоритмдері, бұл жағдайда қолайлы құрылым – массив. Массивтерді сұрыптау алгоритмдеріне қойылатын басты талап – жадтың экономды пайдаланылуы. Элементтерді in situ (яғни элементтерді қайта топтастыруды жадтың сол жерінде жүргізеді) сұрыптайтын қарапайым сұрыптау алгоритмдері бар: кірулермен сұрыптау, таңдаумен сұрыптау, алмасумен сұрыптау («көбікше» әдісі). Сұрыптаудың жетілдірілген қарапайым әдістері: кемімелі өсімшелі кіру бойынша сұрыптау (Шелл сұрыптауы), ағаш көмегімен сұрыптау (пирамидалық сұрыптау), бөліктеу арқылы сұрыптау (жылдам сұрыптау). Кірулермен сұрыптау – элементтер шартты түрде дайын тізбекке a1,…, ai-1 және кіретін тізбекке ai,…, an бөлінеді, содан кейін әрбір қадамда, i=2 бастап және i-ді бірлікке арттыра отырып, кіретін тізбектің i-ші элементін алып дайын тізбектің тиісті орнына кіргізе береді. Таңдаумен сұрыптау – ең кіші кілтті элемент таңдалады, содан кейін ол бірінші a1 элементімен орын ауыстырылады. Алмасумен сұрыптау – барлық элементтер қажетінше сұрыпталғанша көрші элементтер өзара салыстырылып және орын ауыстырылады.

Қарапайым таңдаумен сұрыптау әдісі қарапайым әдістердің ішіндегі ең жақсысы, алмасумен сұрыптау – ең жаманы, ал жылдам сұрыптау ең тезі және ең жақсысы болып табылады.

Орын ауыстырып сұрыптаудың негізгі идеясы сұрыпталған тізімге жаңа элементті қосар кезде оны кез келген орынға емес бірден қажетті орынға қою керек, сосын барлық тізімді қайтадан сұрыптау керек. Орын ауыстырып сұрыптау l өлшемді кез келген сұрыпталған тізімнің бірінші элементін оқиды. Екіэлементті сұрыпталған тізім бірэлементті тізімнің қажетті орнына алдыңғы берілген тізімнен екінші элементті қосқаннан құрылады. Енді алдыңғы берілген тізімнен сұрыпталған екіэлементті тізімге үшінші элемент қоюға болады. Бұл процесс алдыңғы берілген тізімнің барлық элементтері тізімнің кеңейтілген сұрыпталған бөлігіне қойылғанға дейін қайталана береді.

Енді көпіршікті сұрыптауға өтейік. Оның негізгі принципі кіші мәндерді тізім басына ығыстыру, ал үлкен мәндерді төмен түсіреді. Көпіршікті сұрыптаудың көптеген әртүрлі нұсқалар бар. Бұл параграфта олардың біреуін сипаттаймз, сонымен бірге, кейбіреуі жаттығуларда қарастырылады.

Көпіршікті әдіс алгоритмі тізім бойынша бірнеше рет өтеді. Әрбір өткенде көрші элементтерді салыстырады. Егер көрші элементтердің тізімі дұрыс емес болса, онда олар орын ауыстырады. Әрбір тәсіл тізім басынан басталады. Алдымен бірінші мен екінші элементтер, сосын екінші мен үшінші, содан кейін үшінші мен төртінші және т.с.с.; жұпта ретсіз тұрған элементтердің орны ауыстырылады. Тізімнің ең үлкен элементін бірінші өткенде тапқан кезде ол тізімнің соңына жеткенге дейін барлық кезекті элементтермен орын ауыстыра береді. Сондықтан екінші рет өткенде соңғы элементпен салыстыру қажет емес. Екінші рет өткенде тізімнің екінші элементі соңғы позициядан бастап екіншіге түседі. Процесті жалғастыра берсек әрбір өткен сайын ең болмағанда кезекті бір элемент өзінің орнында қалады. Бұл кезде ең кіші мәндер жоғары қарай жиналады. Егер қандай да бір өткен кезде ешқандай элементтердің орны ауыспаса, онда олардың барлығы қажетті ретпен тұр, және алгоритмнің орындалуын тоқтатуға болады. Әрбір өткенде бірден бірнеше элемент өзінің орнына жақындай түседі, тек біреуі ғана нақты орнында келеді.

Көпіршіктік сүрыптау (көпіршік әдісімен сүрыптау) (Пузырьковая сортировка (сортировка методом пузырька); bublle sorting) — реттелетін жиымның көрші элементтерін тізбектік орын ауыстырудан тұратын сұрыптау тәсілі. Тоғыстыру арқылы сүрыптау (Сортировка слиянием; merge sorting) — бірінші кезеңде жазбалар тобы жедел жадта сүрыпталатын өрі бірнеше таспаға жазылатын, ал екінші кезенде реттелген топтар бірнеше таспадан бір таспаға жинақталатын сыртқы сүрыптау

9. Құрылымдық типті айнымалылар. Екі өлшемді массивтер. Матрицаны өңдеу тəсілдері.

С позволяет создавать многомерные массивы. Простейшим видом многомерного массива является двумерный массив. Двумерный массив - это массив одномерных массивов. Двумерный массив объявляется следующим образом:тип имя_массива[размер второго измерения][размер первого измерения]; Следовательно, для объявления двумерного массива целых с размером 10 на 20 следует написать:

int d[10] [20];

Двумерные массивы сохраняются в виде матрицы, где первый индекс отвечает за строку, а второй -за столбец. Это означает, что правый индекс изменяется быстрее левого, если двигаться по массиву в порядке расположения элементов в памяти. На рис. показано графическое представление двумерного массива в памяти. Левый индекс можно рассматривать как указатель на строку.

Число байт в памяти, требуемых для размещения двумерного массива, вычисляется следующим образом:

число байт = размер второго измерения * размер первого измерения * sizeof (базовый тип)

Предполагая наличие в системе 2-байтных целых, целочисленный массив с размерностями 10 на 5 будет занимать 10 * 5 * 2, то есть 100 байт.

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

10. Статикалық және динамикалық массивтер. Айырмашылықтары. Мысал келтіріңіз

Массивтер.

Массив өте қарапайым және өте керекті зат. Қарапайым мысал келтірейік: сен директориядан 50 файлдың аттын оқыдың, саған оларды зердеге орналастыру керек, олармен кейін жұмыс істеу үшін. Массивті қолданбасаң, сен 50 айнымалы жариялап, әр қайсына файл атын жазу керек. Бұл ойға сыймайтын зат. Бірақ ойға ең сыймайтыны осы айнымалылармен жұмыс істеу, олардың ішінде саған керекті керек мәліметтерді іздеу. Массив мүлдем басқаша. Массив көмегімен бір атпен сенің 50 файл атын бір атпен сақтауға болады. Оларды сансыз рет кез-келген циклде ақтаруға болады, тек қана массив мүшесінің индексін өзгерте отырып.

Массив – бір атпен біріккен, сансыз мәндер.

Массивті қолданбас бұрын жариялау керек. Ол тура айнымалы сияқты жарияланады. Егер сен оны процедурада локальды жарияласаң, ол осы процедурада қолайлы болады, басқа еш жерде емес, егер (General)-(Daclarations) бөлім формасында жарияланса – онда барлық пішінде, ал егер саған оны глабольды түрде жариялау керек болса, яғни барлық проектіде қолайлы болу үшін, онда оны Public кілтті сөзімен стандартты модульде жариялау керек. Массивтер статистикалық және динамикалық болады.

Статистикалық массивтер.

Статистикалық массив – бұл сен алдын-ала оған қанша айнымалыны жазатынды білесің, яғни егер сен 10 мүшеге массив жарияласаң, онда оған 11 мүшені мүлдем кіргізе алмайсың. Пішінде ол былай жарияланады:

Dim Chislo(9) As Long

Dim – оператор, ол айнымалыны жариялаған сияқты, массивті жариялап және оған зердеден орын бөледі.

Chislo – бұл тек ат, айнымалыға сияқты ойдан шығарылады, және сол талаптарға лайықты.

(9) – массивтегі элемент саны – олар 10. Неге олай. Массив элемент саны нолден бастап белгіленеді, сондықтан массивте он элемент, 0, 1, 2, 3, 4, 5, 6, 7, 9, нөмірлерімен. Егер саған бұл тәртіп ұнамаса, онда Option Base 1 операторы қолданылады, ол Declarations бөлімінде тіркеледі және барлық элеметтердің бірінші массивін бағдарламада бірге байлайды.

As Long– массив мәндерінің типін анықтау жай айнымалының типі сияқты. Әркезде массивтің барлық элементтері бір типті болады. Егер олай болмаса немесе қай типті мәлімет екенін білмесең, Variant типін беруге болады, бірақ ол керегі жоқ, бұл тип зерденің көп көлемін алады, әсіресе егер массив көлемді болса.

Динамикалық массивтер.

Массивте қанша элемент бар екенін алдын ала білмейтін жағдайлар болады. Сондықтан өлшемі шексіз екенін жариялау керек, мысалы

Dim Mass () as String

Оны қолданбас бұрын, оның өлшемін көрстеіп қайта жариялау керек. Redim операторы арқылы жасалады.

Redim Mass (5) as String

Динамикалық массивті қолданудың екі түрі бар.

Бірінші жол, бұл қанша массив элементтері бар екенін санаймыз, содан кейін өлшемін жариялаймыз. Бұл жол ыңғайсыз, өйткені екі цикл құру керек: біреуі қанша элемен барын, ал екіншісі массив айнымалысына элемент енгізеді.

Екінші жол, бұл циклде массив элементерінің саны көбейгенін қайтадан жариялап отыру керек.

Peserve кілттік сөзін қолдану керек:

RedimPreserve Mass (5) as String

11. Минимумды табу арқылы сұрыптау және қарапайым орын ауыстырып сұрыптау алгоритмдерінің айырмашылықтары. Сортировка поиском минимума Итак, мы придумали алгоритм для упорядочения любого набора чисел. на каждом шаге наш алгоритм находит наименьшее число в исходном наборе, удаляет его оттуда и записывает в конец набора, представляющего результат. Такой способ называют сортировкой поиском минимума.

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

После k-го хода результат содержит k чисел, а исходный набор — N-k. Договоримся, что текущий результат мы будем хранить в первых k элементах массива. Разберем подробнее, как это можно реализовать. Для этого вновь обратимся к нашему примеру:3, 6, 1, 2, 9, 5.

На первом шаге мы находим наименьшее число — 1 — и должны переместить его на первое место. Но там уже записано число 3, куда же его деть? Ответ прост: на место числа 1. Таким образом, мы просто меняем местами два элемента массива:1 | 6, 3, 2, 9, 5.

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

На втором шаге мы находим минмиальное число в правой части — среди элементов массива со 2-го по 6-й (в общем случае — по N-й) — и меняем его местами с числом, стоящим на втором месте:1, 2 | 3, 6, 9, 5.

Далее нам следует поставить следующее минимальное число — 3 — на третье место, но оно уже и так там стоит. Впрочем, мы не будем обращать на это внимание, и просто как бы поменяем его само с собой:1, 2, 3 | 6, 9, 5.

Попробуем записать действия, которые нам предстоит проделать на шаге с номером k. Сначала нам нужно найти наименьшее среди чисел, записанных в k, k+1,..., N позициях массива. После этого нам нужно поменять этот элемент с k-м.

Сколько таких шагов нужно сделать, чтобы полностью отсортировать массив? Напрашивается ответ "N", но не будем торопиться. Пусть сделан N-1 шаг. Тогда в правой, неотсортированной части массива останется одно число. Какое это число? Ясно, что это самое большое число в массиве. Где оно в итоге должно оказаться? На последнем месте в массиве. Но оно уже и так там! Поэтому N-й шаг алгоритма выполнять не нужно.

Сортировка методом простого включения (сдвиг-вставка, вставками, вставка и сдвиг)

Хотя этот метод сортировки намного менее эффективен, чем сложные алгоритмы (такие как быстрая сортировка), у него есть ряд преимуществ: - прост в реализации; -эффективен на небольших наборах данных, на наборах данных до десятков элементов может оказаться лучшим; - эффективен на наборах данных, которые уже частично отсортированы; - это устойчивый алгоритм сортировки (не меняет порядок элементов, которые уже отсортированы); - ожет сортировать массив по мере его получения; - не требует временной памяти, даже под стек.

12. Көпіршікті әдіс.

Енді көпіршікті сұрыптауға өтейік. Оның негізгі принципі кіші мәндерді тізім басына ығыстыру, ал үлкен мәндерді төмен түсіреді. Көпіршікті сұрыптаудың көптеген әртүрлі нұсқалар бар. Көпіршікті әдіс алгоритмі тізім бойынша бірнеше рет өтеді. Әрбір өткенде көрші элементтерді салыстырады. Егер көрші элементтердің тізімі дұрыс емес болса, онда олар орын ауыстырады. Әрбір тәсіл тізім басынан басталады. Алдымен бірінші мен екінші элементтер, сосын екінші мен үшінші, содан кейін үшінші мен төртінші және т.с.с.; жұпта ретсіз тұрған элементтердің орны ауыстырылады. Тізімнің ең үлкен элементін бірінші өткенде тапқан кезде ол тізімнің соңына жеткенге дейін барлық кезекті элементтермен орын ауыстыра береді. Сондықтан екінші рет өткенде соңғы элементпен салыстыру қажет емес. Екінші рет өткенде тізімнің екінші элементі соңғы позициядан бастап екіншіге түседі. Процесті жалғастыра берсек әрбір өткен сайын ең болмағанда кезекті бір элемент өзінің орнында қалады. Бұл кезде ең кіші мәндер жоғары қарай жиналады. Егер қандай да бір өткен кезде ешқандай элементтердің орны ауыспаса, онда олардың барлығы қажетті ретпен тұр, және алгоритмнің орындалуын тоқтатуға болады. Әрбір өткенде бірден бірнеше элемент өзінің орнына жақындай түседі, тек біреуі ғана нақты орнында келеді

Біз қысқаша түрде ең жақсы жағдайды қарастырамыз, swappedElements туының дұрыс емес интерпретациясын ескерту үшін, орындалатын жұмыс көлемі қандай жағдайда минималды. for циклі бірінші өткенде толығымен орындалу керек, және сондықтан алгоритмге ең болмағанда N — 1 салыстыру талап етіледі. Екі мүмкіндікті қарастыру керек: бір өткенде ең болмағанда бір орын ауыстыру болды және ауыстырулар болған жоқ. Бірінші жағдайда орын ауыстыру swappedElements жалауының мәнін true -ға ауыстырады, ендеше while циклі қайтадан орындалады және N — 2 салыстыруды талап етеді. Екінші жағдайда swappedElements жалауы false мәнін сақтайды және алгоритмнің орындалуы тоқтайды.Сондықтан жақсы жағдайда N — 1 салыстыру орындалады, және бірінші өткенде орын ауыстыру болмаған кезде орындалады. Бұл деректердің жақсы жиыны талап етліген реттегі элементтер тізімін береді.

Ең жақсы мүмкін болатын тізімдегі элементтер талап теліген ретпен жүргендіктен элементтердің кері реті ең жаман жағдайды бере ме, соны қарау керек. Егер ең үлкен сан бірінші тұрса, онда ол тізімнің соңына дейін барлық элементтермен орын ауыстырады. Бірінші рет өтер алдында шамасы бойынша екінші элемент екінші позициядан орын алса, бірақ бірінші салыстыру және бірінші орын ауыстыру нәтижесінде ол бірінші орынға қойылады. Алдымен екінші рет өткенде бірінші позицияда шамасы бойынша екінші элемент орналасады, және ол тізімнің соңының алдына дейін барлық элементтермен орын ауыстырады. Бұл процесс қалған барлық элементтер үшін қайталанады, сондықтан for циклі N— 1 рет қайталанады. Сондықтан кіріс деректерінің кері реті ең жаман жағдайға әкеледі.

13. Файлдық типтер. Файлдармен жұмыс істеуге арналған жалпы функциялар. Файлдармен жұмыс. Файлдардан мәліметті енгізу-шығару.

Файл дегеніміз – мәліметтер сақтауға арналған сыртқы тасымалдаушыдағы жадының ат қойылған аймағы (бөлігі).

Файылдардымен жұмыс жасау үшін оларды ашу функциясы арқылы орындалады.

Типтері бойынша файлдар шартты тұрде үш түрге бөлінеді:

¡ мәтіндік файл;

¡ типтік файл;

¡ типтік емес файл.

Біз көбінесе мәтіндік және типтік файлдармен жұмыс істейміз.

Қатынау тәсілі бойынша файлдар келесідей бөлінеді:

¡ Тікелей қатынау файлдары

¡ Кезекпен қатынау файлдары

¡ Типті файл – барлық элементтері бір типті мәліметтер болып келетін файл түрі. Типті файл элементтері файлдық типетен басқа кез-келген тип бола алады.

¡ Әр элементті файлға жазу үшін, мәліметтердің типіне байланысты, міндетті белгіленген мөлшерде орын бөледі. Типті файлдарды смпаттау бөлімінде ашу үшін, мәтіндік файлды смпаттағандай, файл мәліметтерді смпаттайтын тип жазылады.

Көбінесе файлдар текстік және екілік болып бөлінеді. Бұлай бөлу адамдың ойлау психологиясына байланысты: баспа символдары бар берілгендер текстік деп есептеліп, қалғангдары екілік деп есептеледі.

Файлдармен жұмыс істеу схемасы барлық программалау тілінде бір:

1.
Алдымен файл ашылады. Бұл деген, программа бұл файлды тапты және одан берілгендерді оқуға, оған берілгендерді жазуға немесе бір уақытта берілгендерді оқу -жазуға дайындады. Жұмыс істеу режимдерін бұлай бөлудің ыңғайлығы мынада: оқу режимінде файл мазмұнын өзгерту мүмкін емес. Ал жазу режимінде файлдан берілгендерді оқу мүмкін емес.

Файл ашылған оған басқа программалар арқылы қатынас жасауға болмайды. Бұл ақпараттарға енудің бөлінуі деп атайды.
2. Файлдарға берілгендерді өңдеу жүреді: олар өзгертіледі не жойылады не қосылады.
3. Файл ж абылады

Ену әдісі

Ену әдісі OPEN операторында ACCESS кілтті сөзі және берілгендермен операция орындау мүмкіндігін анықтайтын қосымша параметрлер арқылы беріледі.
OPEN {файл аты} ACCESS {ену әдісі} AS …
READ –тек оқу үшін
WRITE- тек жазу үшін
READ WRITE - оқу және жазу үшін (RANDOM, BINARY, APPEND
режимдерінде пайдалану мүмкін)
Мысалы:
OPEN “С:/ tmp / temp. dat” FOR INPUT ACCESS READ AS
Енуді шектеу (Блокирование доступа).
OPEN операторының енуді шектеуді басқаратын кілітті сөздері:
SHARED – Файл ашылған соң басқа программалармен өңдеу үшін енуге
болады.
LOСK READ – Басқа программалар арқылы файлдан оқуды шектеу.
LOСK WRITE – Басқа программалар арқылы файлға жазуды шектеу.
LOСK READ WRITE – Басқа программалар арқылы файлға оқу-жазуды
шектеу.
Мысалы:
OPEN “C:/ tmp /temp. dat” FOR INPUT ACCESS READ LOСK READ WRITE AS # 1.
Жазу өлшемі.
OPEN операторының соңғы міндетті емес операторы файлдағы жазу өлшемі (LEN ={жазу ұзындығы}). Үнсіз келісім бойынша файлды RАNDOM режимінде ашуда бұл өлшем 128 байт, қалған жағыдайда 512 байт.
Мысалы:
OPEN “C:/ tmp / temp. dat” FOR INPUT ACCESS READ LOСK READ WRITE AS # 1 LEN = 1000.
Файл өлшемі.
Файлдармен жұмыс кезінде кейде файлдар өлшемін білу пайдалы болады. Оны LOF ({файл нөмірі}) функциясы анықтайды.
Print LOF (1)
Файлды жабу

Ашылған файл CLOSE # {файл нөмірі} операторы арқылы жабылады.

Егер нөмір көрсетілмесе ашылған барлық файл жабылады. Жабу үшін RESET операторында пайдалану мүмкін.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow