«AZƏRBAYCAN HAVA YOLLARI» QAPALI SƏHMDAR CƏMİYYƏTİ MİLLİ AVİASİYA AKADEMİYASI. Aerokosmik informasiya sistemləri

Benzer belgeler
Allahverdiyeva N.R., Namazov M.B. C dilində proqramlaşdırma MÜNDƏRİCAT

Kompüter (computer) verilənləri emal etmək üçün istifadə edilən proqramlaşdıra bilən elektron qurğu.

MobilBank. Mobil telefon vasitəsilə kart hesabının idarə olunması

MÜNDƏRİCAT . SADƏ PROQRAMLAR... 9

ACCESSPAY XİDMƏTİ. 7/23/2014 AccessBank Sales Training - 1 -

MobilBank. Mobil telefon vasitəsilə kart hesabının idarə olunması

MÖVZU: Simsiz şəbəkələr. Plan: 1. WiMax tüxnologiyası 2. Digər simsiz texnologiyalar və onların xüsusiyyətləri

İŞ YERİNƏ DAİR ARAYIŞ ELEKTRON XİDMƏTİNDƏN İSTİFADƏ ÜZRƏ MEDODİKİ GÖSTƏRİŞLƏR

Corabların qarışdırılması. Üç müxtəlif corab cütünü bir biri ilə elə qarışdırın ki, heç bir cütdə eyni rəngli corab olmasın.

CMD (COMMAND PROMPT) pəncərəsinin əmrləri

1. ƏDƏDİ BƏRABƏRSIZLİKLƏR VƏ ONLAR ÜZƏRİNDƏ ƏMƏLLƏRİN YERİNƏ YETİRİLMƏSI METODİKASI

Analoq siqnallar Rəqəmli siqnal Rəqəmli siqnal

Elektron Təhlükəsizlik Mərkəzi. Qaynar xətt: Ünvan: Azərbaycan, Bakı, Droqal döngəsi, 702-ci məhəllə

Ana kart (Motherboard)

MsDos (Microsoft Disc Operation System) - əməliyyatlar Sistemi. üzərində Windows əməliyyatlar sistemi qurulmuşdur. Onu bilmədən

Azər-Türk Bank Açıq Səhmdar Cəmiyyəti üzrə xidmət haqqı tarifləri. Ödəniş kartları və onlarla aparılan əməliyyatlar üzrə tariflər cədvəli

HTML İLK ANLAYIŞLAR. HTML - Hyper Text Mark-up Language (Hiper Mətn Hazırlamaq üçün Dil)

Mən hansı ədədəm? Mən hansı ədədəm? İN S I V SİNİF

Access proqram paketinin əsas funksional imkanları. İnterfeysin ümumi quruluşu Müasir idarəetmənin ən vacib problemlərindən biri informasiya

Mühazirə 1.2. : MsExcel TPS-in interfeysilə ilk tanışlıq

Marketinq. Mehdiyev Əkbər

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

GİRİŞ SQL Verilənlər Bazası İdarəetmə Sistemləri: SQL verilənləri tanitma dili Əsas verilən tipləri:

ÖDƏNİŞ KARTLARI ÜZRƏ TARİFLƏR

3. Mütəhərrik oyunlara fiziki tərbiyyə vasitəsi kimi nəzəri əsas verən kim olmuşdur (rus alimi)?

Acronis True Image Home 2012

Mündəricat. BÖLMƏ 1. C# proqramlaşdırma dili... 3 C# proqramlaşdırma dilinə giriş... 3

BİZ BİLİYİ QİYMƏTLƏNDİRİRİK

Təcrübəçi və Yeni Məzunların işə qəbulu

1 xal. arasında yerləşən neçə ixtisara düşməyən kəsr vardır? Məxrəci 24-ə bərabər olan və 1 5 -lə 3 4 ა) 3 ბ) 4 გ) 5 დ) 6

K U R S I Ş I Mövzu: Turbo Pascal proqramlaşdırma dilinin riyazi məsələlərin həllinə tətbiqi

AZƏRBAYCAN DÖVLƏT İQTİSAD UNİVERSİTETİ

MÜTƏXXƏSSİSLƏR dünya standartları tələblərinə cavab verən, 6 ayından 6 yaşınadək uşaqlar üçün inkişafetdirici oyuncaqlar əsasında xüsusi olaraq bütöv

magistrol.blogspot.com

GPS AVTOMOBİL İZLƏMƏ SİSTEMLƏRİ və NƏQLİYYAT VASİTƏLƏRİNİN İDARƏ EDİLMƏSİ

Microsoft Access. Fakültə: Qrup: Kafedra müdiri: Müəllim: Tələbə:

Nisbətin düstura görə seçilməsində hansı müqayisə əməliyyatlarından. Nisbətin düstura görə seçilməsində hansı məntiqi əməliyyatlarından

Smart Baby Watch Q50 -nin istifadə instruksiyası

Elmi tədqiqatların təsnifatı. Məqsədli təyinatı üzrə: Fundamental; Tətbiqi; Axtarış; Işləmə.

MALIYYƏ VƏZIYYƏTI HAQQINDA HESABAT. 31 dekabr 2013-ci il tarixə

BLACKBERRY ENTERPRISE SERVICE 12 BULUD ÜÇÜN BLACKBERRY HƏLLİ ÜZRƏ LİSENZİYA MÜQAVILƏ ("ƏLAVƏ") ÜÇÜN ƏLAVƏ

Fərdi ev və kottec qəsəbələri üçün IP həllər

1. Yaddaşın növləri 2. Yaddaşın idarə olunması Əməli yaddaş (RAM) haqqında

Azərbaycan Respublikasının Mərkəzi Bankı yanında Maliyyə Monitorinqi Xidmətində daxili proseduralarla bağlı qəbul edilmiş qaydalar

DÖVLƏT SOSİAL SIĞORTA ŞƏHADƏTNAMƏSİNİN DƏYİŞDİRİLMƏSİ VƏ YA DUBLİKATININ VERİLMƏSİ ÜÇÜN MÜRACİƏTİN QƏBULU İSTİFADƏÇİ TƏLİMATI

İNTERNET BANKÇILIQ SİSTEMİ ÜZRƏ İSTİFADƏÇİ TƏLİMATI

POS-terminal vasitəsilə ödənişlərin qəbul edilməsi ("retail əməliyyatı ) QAYDALARI. 1. Ümumi qaydalar

MALIYYƏ VƏZIYYƏTI HAQQINDA HESABAT VÖEN

4. Xarici yaddaş qurğuları

e-hesabat proqramının (ehp) İstifadəçi Təlimati

DOSYA İŞLEMLERİ Programlama dilleri hafta -

UNEC. Universitet Daxili İki Diplom Proqramı (UDİD)

Azərbaycan Respublikasının bank sistemində ödəniş vasitələrinin maliyyə hesabatlarında uçotu Qaydaları

İBTIDAI SINIFLƏRDƏ RIYAZIYYAT TAPŞIRIĞI ÜZRƏ KARTOÇKALAR. İstifadə təlimatı

Ümumi təhsil müəssisələri üzrə rəsmi hesabatların formalaşdırılması, təqdim və qəbul edilməsi Q A Y D A L A R I. I.

İnformasiya məhsullarını Beynəlxalq bazarı

Azərlotereya ASC tərəfindən Azərbaycan Respublikasında lotereya fəaliyyətinin təkmilləşdirilməsi, vətəndaşların hüquqlarının və qanuni mənafelərinin

Azərbaycan Dövlət İqtİsad Unİversİtetİ Qİda məhsullarının texnologiyası kafedrası Fənn: İaşə müəssisələrinin avadanlıqları

KURS İŞİ. Azərbaycan Respublikası Təhsil Nazirliyi Azərbaycan Dövlət Neft Akademiyası

PROGRAMLAMA. Dosyalama İşlemleri. Yrd. Doç. Dr. Bülent Çobanoğlu. Sakarya Üniversitesi Mekatronik Mühendisliği. Yrd.Doç.Dr.

Temel Dosya İşlemleri. Kütük Organizasyonu 1

C Dosyalama. Öğr. Gör. M. Ozan AKI. Rev 1.0

AZƏRBAYCAN BANKLAR ASSOSİASİYASI BANK SEKTORU TRENDLƏRİ 2016 /12/

Respublikanın ümumtəhsil məktəblərinin 8-ci sinifləri üçün İnformatika dərslik komplekti. Müəlliflər: Ramin Mahmudzadə İsmayıl Sadıqov Naidə İsayeva

AZƏRBAYCANDA INNOVASIYA POTENSIALı. Mehdiyev Əkbər 1313A

TÜRÜK Uluslararası Dil, Edebiyat ve Halkbilimi Araştırmaları Dergisi 2014 Yıl:2, Sayı:4 Sayfa: ISSN:

Bank sistemində pulların ekspertizasının təşkili və aparılması Q A Y D A L A R I

Sistem inzibatçıları üçün təlimat

T.C. DEVLET PERSONEL BAŞKANLIĞI

Temel Bilgisayar Programlama

Təsdiq edilmişdir Azərbaycan Respublikasının Mərkəzi Bankı cü il. Sədr. Elman Rüstəmov

İllik maliyyə hesabatlarının tərtib olunması üzrə kommersiya təşkilatları üçün nümunəvi formalar. Bakı Çinar Soyuducuları ASC (Təşkilatın adı)

Mövzu 2: Kompyuterin texniki əsaslari.kompyuterin arxitekturasi.

İNFORMATIKA FƏNNININ PREDMETI KOMPÜTERIN QURĞULARI...

1. Universitetin adı ADAU. 3. Kafedra: Aqrar Fizika və riyaziyyat. 4. Fənn: Riyaziyyat. 5. Mühazirəçi: t.e.n. dosent. Bağırlı David Veysəl oğlu

ƏMƏK MÜQAVİLƏSİ BİLDİRİŞLƏRİNİN QEYDİYYATA ALINMASI VƏ BU BARƏDƏ İŞƏGÖTÜRƏNƏ MƏLUMATIN VERİLMƏSİ XİDMƏTİNDƏN İSTİFADƏ ÜZRƏ METODİKİ GÖSTƏRİŞLƏR

ƏVVƏLKİ VƏ YENİ BEYNƏLXALQ TERMİNALDA REKLAM MƏKANLARI. Brendlərin Uçuş Zolağı

Əlavə C3 ƏMSSTQ Əlavəsi Düzəlişlər Reyestri

TİTUL VƏRƏQİ MƏKTƏBLİLƏRİN KİMYA FƏNNİ ÜZRƏ RESPUBLİKA OLİMPİADASI FİNAL MƏRHƏLƏSİ IX SİNİF. İştirakçı S.A.A. Şəhər, məktəb

DAŞINMA) ƏMLAK AGENTLİKLƏRİ ÜÇÜN ƏMLAK BAZASI. atışda, i a ədə olan əmlaklar barədə məlu atla ın dağı ı fo ada dəftərdə, kompyuterdə qovluqlarda və s.

Elektron Təhlükəsizlik Mərkəzi. Qaynar xətt: Ünvan: Azərbaycan, Bakı, Droqal döngəsi, 702-ci məhəllə

Fiziki şəxsin vergi uçotundan çıxarılması elektron xidməti üzrə inzibati reqlament. 1. Ümumi müddəalar

1616 az-s Düz cavab a) variantı. 1. #1616#01#01#01 Müasir hesablama və informasiya hesablama sistemlərinin

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

ETGi Video Konfrans E-Learning, Uzaqdan Təhsil Həlləri

RG-6 və RG-8 kabelinin fərqi hansıdır? A)omeqa dəyəri B)uzunluğu C)Qalınlığı D)Rəngi E)Heç biri

Kredit bürosu borcalanlar üçün əla imkanlar

TA-9106 AZE: AZƏRBAYCANDA HASİLAT SƏNAYESİNDƏ BENEFİSİAR SAHİBLİK MƏLUMATLARININ AÇIQLANMASINA DAİR YOL XƏRİTƏSİNİN TƏTBİQİNƏ DƏSTƏK ( )

BÖYÜK DƏCCAL Amerika

İSTİFADƏ QAYDALARI. «Tələbələrin ölkə daxilində və xaricdə yerləşən ali təhsil müəssisələrindən köçürülməsi sistemi»

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

Nurlan Quliyeva Düşüncənin riyazi dili

«Təsdiq edilmişdir»: Azərbaycan Respublikasının Milli Depozit Mərkəzinin Müşahidə Şurasının. Protokol 11 -li. «16» may 2016-cı il. Sədr B.

ADA Universitetində təhsil alan tələbələrin təhsil. haqqının maliyyələşdirilməsi üçün Təhsil krediti

haqqında ətraflı məlumat

Metin Dosyaları. Metin Dosyaları Dosya Açma ve Kapama Dosya Okuma ve Yazma Rastgele Erişim Standart Girdi/Çıktı Hata Kontrolü

Respublikanın ümumtəhsil məktəblərinin 5-ci sinifləri üçün İnformatika dərsliyi YEKUN RƏY

Eln 1002 Bilgisayar Programlama II

CARİ MƏNFƏƏT VERGİSİ ÜZRƏ KOMMERSİYA TƏŞKİLATLARI ÜÇÜN 3 li MİLLİ MÜHASİBAT UÇOTU STANDARTI

Azərbaycan Dövlət Pedaqoji Universitetində imtahan sessiyasının təşkili və keçirilməsi Q A Y D A L A R I

Transkript:

«AZƏRBAYCAN HAVA YOLLARI» QAPALI SƏHMDAR CƏMİYYƏTİ MİLLİ AVİASİYA AKADEMİYASI FAKÜLTƏ: КAFEDRA: İXTİSAS: Aerokosmik Aerokosmik informasiya sistemləri İnformasiya texnologiyaları və sistemləri mühəndisliyi K U R S İ Ş İ MÖVZU: Massivlərin emalında fayllardan istifadə QRUP: 1444 a TƏLƏBƏ: MÜƏLLİM: Sübhanə Quluzadə Səlahəddin Həbibullayev BAКI - 2015

Mündəricat Giriş...3 1. Mətn fayllarla işləmə...5 2. Müəyyən ölçülü massivlərin emalında fayllardan istifadə...7 3. Qeyri-müəyyən ölçülü massivlərin emalında fayllardan istifadə... 4. Massivlərin emalında binar fayllardan istifadə...10 5. Proqram tərtibatı...13 Nəticə...16 İstifadə olunmuş ədəbiyyat siyahısı...16

Giriş Fayllarla iş axında göstəricinin elanı ilə başlayır. Elan aşağıdakı formatdadır: Məsələn, FILE *fp; FILE *göstərici_adı; FILE sözü struktur tipin standart adı olmaqla, stdio.h adlı faylla elan olunur. FILE - nin strukturundakı informasiya axınlarla işin aparılmasına kömək edir. Növbəti addım fopen() standart funksiyanın köməyi ilə axının açılmasıdır. Bu funksiya axının göstəricisi üçün konkret qiymət qaytarır. Operatorun formatı aşağıdakı kimidir: göstəricinin_adı=fopen(faylın_adı, açmaq_rejimi); fopen() funksiyasının parametrləri simvol massivinin sabitləri və göstəricisi ola bilər. Məsələn, fp=fopen("test.dat","r"); Burada test.dat diskin carikataloqunun fiziki faylının adıdır ki, bununla da fp göstəricisi axınla əlaqələndirilir. r parametri isə faylın oxunması üçün açılması rejimini göstərir. Qeyd edək ki, "faylın açılması" ifadəsini, "axının açılması" ifadəsi kimi işlətmək olar. Turbo Pascal dilində olduğu kimi burada da, yazmaq üçün mövcud faylın açılması əvvəlki informasiyanın itməsinə səbəb olur. Əgər belə fayl mövcud deyilsə, onda o yaradılır. Oxumaq üçün yalnız mövcud fayllar açılır. Axın ya mətn üçün, ya da ikilik mübadilə rejimləri üçün açılır. Yuxarıdakı rejimlərin parametrləri yalnız mətn fayllarını açır. Əgər ikilik fayl göstərmək tələb olunursa, onda parametrə b hərfi əlavə olunur. Məsələn, rb və wb və ya r+b. Bəzi kompilyatorlarda mətn mübadilə rejimi t hərfi ilə işarə olunur, yəni a+t və ya rt yazılır. Axının açılışında hər hansı səbəbdən baş verdikdə, fopen() funksiyası NULL konstant qiymətini qaytarır. Bu konstant həmçinin stdio.h faylında təyin edilib. Səhv diskdə açılan fayl olmadıqda, dinamiki yaddaş üçün yerin çatmamasında və s. baş verir. Faylın açılması üçün aşağıdakı üsul məsləhət görülür: FILE *fp; if (fp=fopen("test.dat","r"))

puts ("Fayli aca bilmirem\n")ı return; Səhv nəticəsində proqram əvvəl açılmış bütün faylların bağlanmasının yerinə yetirilməsini sona çatdırır. Axının (faylın) proqram əvvəl açılmış bütün faylların bağlanması fclose() funksiyası ilə həyata keçirilir ki, prototipi aşağıdakı kimidir: int fclose(file *fptr); Burada fptr bağlanmalı olan axının göstəricisinin formal adını işarə edir. Əgər bağlanma əməliyyatı müvəffəqiyyətlə yerinə yetirilərsə funksiya sıfırı qaytarır. Başqa qiymət isə səhvi göstərir. Simvolların yazılışı və oxunuşu. Simvolların axına yazılışı putc() funksiyası ilə həyata keçirilir ki, prototipi aşağıdakı kimidir: int putc(int ch, FILE *fptr); Əməliyyat müvəffəqiyyətlə getsə, onda yazılan simvol qaytarılır. Səhv olduqda isə EOF konstantı qaytarılır. Axından simvolun oxunması, yəni oxumaq üçün açılması gets() funksiyası ilə həyata keçirilir ki, prototipi aşağıdakı kimidir: int gets(file *fptr);

1. Mətn fayllarla işləmə Əgər klaviaturadan çoxlu sayda verilənlər daxil olunursa, onda onları hər dəfə təkrar daxil etməsi yorucu bir iş olar. Bunun üçün diskdə yeni bir fayl yaradılıb, lazımi verilənlər ora yazılır və proqram lazımi məlumatları məhz bu fayldan oxuyur. Fayllar mətn (bu tip fayllara hərfləri, rəqəmləri, mötərizələri və digər simvollar daxildir) və binar(bu tip fayllarda simvol cədvəlinin istənilən simvolları saxlanıla bilər) tipli olur. (Bundan sonra yalnız mətn tipli fayllara baxılır) Proqramdan fayllara necə müraciət etmək olur? Fayllarla iş sendviç prinsipinə əsaslanır: faylı açmaq faylla işləmək faylı bağlamaq "Faylı açmaq" onunla işə başlamaq, onu aktiv etmək və digər proqramların bu fayla müracətini blokadaya salmaq deməkdir. Faylı bağlayan zaman o blokadadan çıxarılır, digər proqramlar artıq onunla iş görə bilir və bütün dəyişikliklər diskdə yadda saxlanılır. Faylla işləmək üçün faylın göstəricisi adlanan xüsusi dəyişəndən istifadə edilir. Bu açıq fayl haqqında bütün məlumatları özündə saxlayan yaddaş blokunun ünvanıdır. Fayl göstəricisi aşağıdakı kimi elan olunur: FILE *fp; Faylı açmaq üçün fopen funksiyasına müraciət edilir. Bu funksiya faylı açıb onun ünvanını fp dəyişəninə yazır. Bundan sonra fayla müraciət etmək üçün adına yox, fp göstəricisinə müraciət etmək lazımdır. fp=fopen("c:\\data\\qq.dat","r"); Marşrutu göstərərkən "\" (əks sləş) simvolu həmişə cüt yazılmalıdır. "r" (fayldan oxuma) rejimindən başqa digər rejimlərdən də istifadə oluna bilər: "r" "w" ''a" Faylı oxumaq üçün açmaq Yeni fayla yazma. Əgər diskdə həmin adda fayl mövcuddursa, onda əvvəlcə o silinəcəkdir Faylın sonuna əlavə. Əgər diskdə bu adda fayl varsa, onda yeni məlumatlar faylın sonuna əlavə olunacaqdır. Əgər fayl mövcud deyilsə, onda yeni fayl yaranacaqdır

"r+" "w+" Yazıb/oxumaq üçün mövcud faylı açmaq Yazıb/oxumaq üçün yeni fayl yaratmaq (əgər həmin adda fayl varsa, onda o, yenisi ilə əvəz olunur) Bəzən proqram faylı aça bilmir. Əgər fayl oxumaq üçün açılırsa, onda bu vəziyyət aşağıdakı hallarda ola bilər: 1. Fayl düzgün verilməyib və ya bu fayl diskdə yoxdur. 2. Fayl digər proqram tərəfində istifadə olunur və blokadaya salınıb. Əgər fayl açılıbsa, onda bu əməliyyat aşağıdakı hallarda uğursuzluqla nəticələnə bilər: 1. Diskdə yer yoxdur. 2. Fayl yazmaq üçün müdafiə olunur (protected). 3. Faylın adı düzgün yazılmayıb (məsələn, adında iki nöqtə, sual işarəsi və s. simvollar varsa). Əgər faylı açmaq mümkün deyilsə, onda fopen funksiyası NULLkimi ifadə olunan xüsusi sıfır qiyməti (boş göstərici) qaytarır. Ona görə də, faylın düzgün açılmasına nəzarət etmək lazımdır. Əgər fayl açılmırsa, onda səhv haqqında məlumat verib, proqramdan çıxmaq lazımdır. if(fp==null) printf("faylmovcuddeyil"); return 1; Əgər fayl açılıbsa, onda bu fayldan verilənləri oxumaq olar. Bundan ötrü fscanf funskiyasından istifadə olunur. Bu funksiya scanf funksiyasına oxşayır. Fərq ondan ibarətdir ki, bu funskiya verilənləri klaviaturadan yox, fayldan oxuyur və onun birinci parametri fayl göstəricisidir. n=fscanf(fp,"&d",&a[i]); Nəticə olaraq, fscanf funksiyası oxuduğu ədədlərin sayını qaytarır. Əgər bir ədəd oxunursa, onda n dəyişəninin qiyməti 1 ola bilər. Əgər oxuma prosesi səhvlə nəticələnirsə (verilənlər qurtarır və ya səhvdir, yəni fayla ədədlərin əvəzinə sözlər yazılıb), onda n-in qiyməti 0 olur. Fayla verilənləri düzgün yazmaq üçün onlar

boşluqlarla və ya yeni sətrə keçmə simvolu ilə (Enter simvolu) bir-birindən ayırmalıdırlar. Əgər fayl yazmaq üçün açılıbsa, onda fprintf funksiyası vasitəsi ilə bu fayla verilənləri yazmaq olar. Bu funskiya printf funskiyasına oxşardır. Faylla işi bitirdikdən sonra onu fclose funksiyası vasitəsi ilə bağlamaq lazımdır. fclose(fp); Bundan sonra fp göstəricini fayl üçün istifadə etmək olar. Mətn fayllarla iş zamanı massiv elementləri fayldan ardıcıl oxunmalıdır. Faylın oxunmasında yaranan səhvləri (elementlərin azlığı və ya faylın boş olması) proqramda emal etmək lazımdır. #include <stdio.h> constint M=5; constint N=4; main() inti,j,a[m][n]; FILE *fp; fp=fopen("input.dat","r"); for(i=0;i<m;i++) for(j=0;j<n;j++) if (0==fscanf(fp,"%d",&A[i][j])) puts ("Verilenlercatismir!"); fclose (fp); return 1; fclose (fp); Massivi fayla yazmaq üçün analoji əməliyyatlardan istifadə olunur. Əvvəlcə fopenfunksiyası vasitəsilə faylı açmaq lazımdır (burada yazma rejimindən istifadə olunmalıdır "w" ). Sonra isə, ikiqat dövrdə fprintf funksiyasından istifadə edərək massivi fayla ötürmək və axırda fclose-la bağlamaq lazımdır

2. Müəyyən ölçülü massivlərin emalında fayllardan istifadə Misal. input.dat faylından 10 tam tipli ədədlərdən ibarət massivi daxil edib, hər elementi 2-yə vurub, alınmış masssivi output.dat faylına yazmaq. Bu məsələni həll etmək üçün fopen, fscanf, fprintf və fclose funskiyalarından istifadə etmək lazımdır. Proqramda iki vəziyyəti (səhvi) nəzərə almaq lazımdır: fayl yoxdur (açılmır); faylda verilənlərin sayı azdır və ya verilənlər səhv yazılıb. #include<stdio.h> constint N=10; main() inti,a[n]; FILE *fp; fp=fopen("input.dat","r"); //oxumaqucunfaylinacilmasi if(fp==null) printf("faylmovcuddeyil!"); return 1; for(i=0;i<n;i++) if (fscanf(fp,"&d",&a[i])==0) printf("fayldaverilenlerinsayiazdir."); break; fclose(fp); for(i=0;i<n;i++) A[i]=A[i]*2;

fp=fopen("output.dat","w"); for(i=0;i<n;i++) fprintf(fp,"&d\n",a[i]); fclose(fp); Bu proqramın nəticələri ekrana çıxmır, output.dat faylına yazılır. 3. Qeyri-müəyyən ölçülü massivlərin emalında fayllardan istifadə Misal. input.dat faylında iki sütun şəklində (x, y) cütlükləri yazılıb. Hər cütlük üçün cəmləri hesablayıb nəticəni output.dat faylına yazmaq. Məsələnin mürəkkəbliyi ondan ibarətdir ki, input.dat faylına yazılan cütlüklərin sayı əvvəlcədənməlum deyil. Hər iki x və y massivinə yaddaşda yer ayırmaq mümkün olmayacaqdır, çünki fayla yazılan ədədlərin sayı məlum deyil. Lakin, bu məsələni başqa cür həll etmək olar. Hər cütlüyün cəmini hesablamaq üçün yalnız iki ədəd lazımdır, qalan ədədləri yaddaşda saxlamasaq da olar. Cəmi hesabladıqdan sonra, onu yaddaşda saxlamaq lazım deyil, onu birbaşa çıxış faylına yazmaq lazımdır. Məsələnin həlli üçün aşağıdakı alqoritmdən istifadə olunacaqdır: 1. iki faylı açmaq(biri verilənləri oxumaq, digəri isə verilənləri yazmaq üçün üçün istifadə olunur); 2. iki ədədi x və y dəyişənlərə oxuyuruq. Əgər oxumaq olmursa (verilənlər yoxdur və ya düz deyil), onda işi bitirmək; 3. x və y toplayıb, nəticəni çıxış faylına yazmaq; 4. 2-ci addıma keçmək. Oxuma əməliyyatının müvəffəqiyyətlə başa çatmasını yoxlamaq üçün fscanf funskiyasının qaytardığı qiyməti qeyd edəcəyik (bu funskiya oxunan ədədlərin sayını nəticə kimi qaytarır). Hər dəfə iki ədəd, yəni x və y oxuyacağıq. Əgər hər şey normaldırsa, onda fscanf funskiyasının qiyməti 2-yə bərabər olacaqdır. Əgər funskiyanın qiyməti 2-dən azdırsa, onda verilənlər bitib və ya səhvdir. Qeyd etmək lazımdır ki, eyni zamanda iki açıq faylla işləmək lazımdır, ona görə də iki fayl göstəricisindən istifadə olunmalıdır. Onları fin və fout kimi işarə edək. Proqramı qısaltmaq məqsədilə faylın açılması zamanı rast gələ biləcəyimiz səhvlər emal olunmur. #include<stdio.h>

main() int n,x,y,cem; FILE *fin,*fout; fin=fopen("input.dat","r"); fout=fopen("output.dat","w"); while(1) n=fscanf(fin,"%d%d",&x,&y); if(n<2) break; cem=x+y; fprintf(fout,"%d\n",cem); fclose(fout); fclose(fin); Proqramda sonsuz while dövründən istifadə olunur. Əgər faylda verilənlər qurtarırsa, onda dövr öz işini bitirir. 4. Massivlərin emalında binar fayllardan istifadə Mətn fayllardan fərqli olaraq binar fayllarda məlumatlar maşın dilində yazılır. Binar fayla baxarkən heç nə başa düşülmür. Bir əmr vasitəsilə bütöv massivi və ya onun bir hissəsini yazmaq olar. Binar faylların açılması zamanı "r", "w" və "a" rejimlərin əvəzinə, uyğun olaraq, "rb", "wb" və "ab"rejimlərdən istifadə olunur. Əlavə "b" hərfi onu göstərir ki, fayl binardır (ing. binary). Baxılan məsələni binar fayl üçün həll etsək: Misal. input.dat binar faylından 10 tam ədədi oxuyub, hər elementi 2-yə vurub, output.dat binar faylına yazmaq.

#include<stdio.h> constint N=10; main() inti,n,a[n]; FILE *fp; fp=fopen("input.dat","rb"); n=fread(a,sizeof(int),n,fp); if(n<n) printf("fayldaelementlerinsayiazdir!"); break; fclose(fp); for(i=0;i<n;i++) A[i]=A[i]*2; fp=fopen("output.dat","wb"); fwrite(a,sizeof(in),n,fp); fclose(fp); Binarfayldanverilənlərioxumaqüçünfreadfunskiyasındanistifadəolunur. Bu funskiyanın 4 parametrivar: 1. yaddaşünvanı, yənioxunmuşverilənlərin ( yuxarıdakımisaldaamassivininbirincielementininünvanı, &A[0] və ya sadəcə, A kimi işarə edilir) harayayazılması; 2. birelementinölçüsü.ölçünükompüterinözününtəyinetməsidahaməqsədə uyğundur. Bu misaldasizeof(int) tam ədədinölçüsüdür. Baxmayaraqki, DevC++ - da tam ədəd 4 baytyertutur, digərproqramlaşdırmapaketlərindəburəqəmfərqliolabilər.

Onagörədəstandartsizeoffunksiyasındanistifadəetməkdahaməqsədəuyğun dur, çünkiondaproqramdaşınabilən (ing. compatible)olur; 3. elementlərinsayı (N); 4. faylgöstəricisi(fp). Nəticəolaraq, freadfunksiyasıoxunmuşmassivelementlərininümumisayınıqaytarır. Bu qiymətisəhvlərinemalıüçünistifadəetməkolar. Əgərfunksiyanınqaytardığıqiymətelementlərinsayındankiçikdirsə, ondafayldaverilənlərçatışmır. Massivibinarfaylayazmaqüçünfwrite funksiyasından istifadə olunur. Bu funskiyanın parametrləri fread funksiyasının parametrləri ilə üst-üstə düşür. Nəticə olaraq, bu funksiya fayla yazılmış elementlərin sayını qaytarır. Bu üsulun əsas üstünlüyü ondan ibarətdir ki, massiv bir vahid blok şəklində həm oxunur, həm də yazılır. Bu isə proqramın sürətini artırır. Əgər verilənlər başqa proqram vasitəsilə fayla yazılırsa, onda bu verilənləri binar faylı ilə oxumaq rahat olacaqdır. Binar faylların əsas üstünlüyü ondadır ki, onlardan oxunma və onlara yazma sürətlə baş verir, çünki bütöv massiv birdəfəlik oxunur və ya yazılır. Bu zaman fread və fwrite funksiyalarında bir elementin uzunluğunu və ümumi sayını, yəni M N göstərmək lazımdır. Aşağıdakı proqramda massiv binar fayldan oxunur, onun üzərində müəyyən əməliyyatlar aparılır və sonra o, binar fayla yazılır. #include <stdio.h> const int M=5; const int N=4; main() int total, A[M][N]; FILE *fp; fp=fopen("input.dat","rb"); total=fread(a,sizeof(int),m*n,fp); fclose (fp);

if(total!=m*n) printf("verilenlerin sayi azdir!"); return 1; fp=fopen("output.dat","wb"); if(m*n!=fwrite(a,sizeof(int),m*n,fp)); printf("faylin yazilmasinda sehv var!"); fclose (fp); Səhvlərin emalı üçün o faktdan istifadə olunur ki, fread və fwrite funksiyaları, nəticə olaraq oxunmuş və ya yazılmış elementlərin sayını göndərirlər və əgər o say elementlərin ümumi sayına bərabər deyilsə, onda ekranda səhv haqqında məlumat çıxarılır. 5. Proqram tərtibatı Tərtib olunmuş proqram seçimdən asılı olaraq yaddaşa yazılmış massivi fayla yazır və fayldan oxuyur: #include<stdio.h> #include<conio.h> #include<string.h> #include<stdlib.h> #define n 5 int main(void) char z; FILE *f; int i,a[n+1]; printf("1. fayla yaz\n"); printf("2. fayldan oxu\n"); f=fopen("info.txt","w");fclose(f);

do z=getch(); if(kbhit())z=getch(); switch(z) case '1': for(i=1;i<=n;i++) printf("a[%d]=",i); scanf("%d",&a[i]); f=fopen("info.txt","a"); fprintf(f,"%s\n",""); fprintf(f,"%d",a[i]); fclose(f); break; case '2': f=fopen("info.txt","r"); i=1; while(!feof(f)) fscanf(f,"%d",&a[i]); printf("a[%d]=%d\n",i,a[i]); i++; fclose(f); break; while(z!='0');

NƏTİCƏ Bu kurs işində "Massivlərin emalında fayllardan istifadə" mövzusundan bəhs edilir. Kurs işi giriş, nəzəri hissə, proqram tərtibatı, nəticə, istifadə olunmuş ədəbiyyat siyahısından ibarətdir. Girişdə fayllar haqqında ümumi məlumat verilmişdir. Nəzəri hissə bir neçə hissədən ibarətdir: Mətn fayllarla işləmə, Müəyyən ölçülü massivlərin emalında fayllardan istifadə, Qeyri-müəyyən ölçülü massivlərin emalında fayllardan istifadə, Massivlərin emalında binar fayllardan istifadə. Nəzəri hissədə hər bir mövzuya uyğun olaraq məlumat və qısa proqramlar verilmişdir. Proqram tərtibatında tərtib edilmiş massivi fayla yazılması proqramı və nəticəsi göstərilmişdir. Ədəbiyyat isə istifadə olunmuş kitabın müəlliflərindən ibarətdir. Ədəbiyyat siyahısı 3 adda siyahıdan ibarətdir. Bura Azərbaycan dilində ədəbiyyat daxildir. ƏDƏBİYYAT 1. R.Ə.Sadıxov, S.B.Həbibullayev - Proqramlaşdırma II hissə. Bakı, 2003 2. Allahverdiyeva N.R., Namazov M.B. - C dilində proqramlaşdırma. Bakı 3. Ə.Sadıxov - C++ proqramlaşdırma dili. Bakı, 2013