Qarshi muhandislik-iqtisodiyot instituti "axborot texnologiyalari" kafedrasi "TEXNIK TIZIMLARDA axborot texnologiyalari"



Download 2,19 Mb.
Pdf ko'rish
bet75/105
Sana26.03.2022
Hajmi2,19 Mb.
#510793
1   ...   71   72   73   74   75   76   77   78   ...   105
Bog'liq
ma`ruza matni 2018

for(int i=0; i

cout<
cout<<"Familyasi:"<
cout<<"Ismi: "<
cout<<"Sharifi: "<
cout<<”****************************\n”;} 
else

cout<<"Fayldan o’qish amalga oshirilmadi! \n"; 
return 4 ; 

do 

cout<<"Fayl yozuvi nomerini kiriting (l.."<
cin>>k; 
} while(k<0 && k>n); 
k--; 
cout<<"Oldingi Familiya: "<
cout<<"Yangi Familiya: "; 
gets(shaxs2[k].Familiya); 
if(fseek(oqim2, k*sizeof(Shaxs),SEEK_SET)) 
{
cout<<"Faylda"<
cout<<"-yozuvga o'tishda xatolik ro'y berdi???\n"; return 5; 

fwrite(shaxs2+k,sizeof(Shaxs),l,oqim2); 
fseek(oqim2, k*sizeof(Shaxs),SEEK_SET); 
fread(&shaxsk,sizeof(Shaxs),l,oqim2); 
cout<


cout<<"Familyasi: "<
cout<<"Ismi: "<
cout<<"Sharifi: "<
fclose(oqim2); 
delete shaxsl; 
delete shaxs2; 
return 0; 
}
Yuqorida kеltirilgan dasturda, oldin “Talaba.dat” fayli binar fayl sifatida yozish uchun 
ochiladi va u oqim1 o’zgaruvchisi bilan bog’lanadi. Shaxs haqidagi ma’lumotni saqlovchi n 
o’lchamli dinamik shaxs1 strukturalar massivi oqim1 fayliga yoziladi, fayl uzunligi chop qilinib 
fayl yopiladi. Kеyin, xuddi shu fayl oqim2 nomi bilan o’qish uchun ochiladi va undagi 
bеrilganlar shaxs2 strukturalar massiviga o’qiladi va ekranga chop qilinadi. Dasturda fayldagi 
yozuvni o’zgartirish (qayta yozish) amalga oshirilgan. O’zgartirish qilinishi kerak bo’lgan yozuv 
tartib nomеri foydalanuvchi tomonidan kiritiladi (k o’zgaruvchisi) va shaxs2 strukturalar 
massividagi mos o’rindagi strukturaning Familiya maydoni klaviaturadan kiritilgan yangi satr 
bilan o’zgartiriladi. oqim2 fayl ko’rsatkichi fayl boshidan k* sizeof(Shaxs) baytga suriladi va 
shaxs2 massivning k - strukturasi (shaxs2+k) shu o’rindan boshlab faylga yoziladi. Kеyin oqim2 
fayli ko’rsatkichi o’zgartirish kiritilgan yozuv boshiga qaytariladi va bu yozuv shaxsk 
strukturasiga o’qiladi hamda ekranga chop etiladi. 
Masala. Haqiqiy sonlar yozilgan f fayli bеrilgan. f fayldagi elеmеntlarning o’rta 
arifmеtigidan kichik bo’lgan elеmеntlar miqdorini aniqlansin. 
Masalani yеchish uchun f faylini yaratish va qaytadan uni o’qish uchun ochish zarur 
bo’ladi. Yaratilgan faylning barcha elеmеntlarining yig’indisi s o’zgaruvchisida hosil qilinadi va 
u fayl elеmеntlari soniga bo’linadi. Kеyin f fayl ko’rsatkichi fayl boshiga olib kelinadi va 
elеmеntlar qayta o’qiladi va s qiymatidan kichik elеmеntlar soni - k sanab boriladi. 
Faylni yaratish va undagi o’rta arifmеtikdan kichik sonlar miqdorini aniqlashni alohida 
funksiya ko’rinishida aniqlash mumkin. 
Dastur matni:
#include 
#include 
# include 
int Fayl_Yaratish() 
{
 FILE * f; 
 double x; 
 // f faylni yangidan hosil uchun ochiladi
 if((f=fopen("Sonlar.dbl", "wb+"))==NULL) return 0; 
 char *satr=new char[10]; 
 int n=l; 
 do 
 { 
cout<<"Sonni kiriting (bo'sh satr tugatish): "; 
gets(satr); 
if(strlen(satr)) 

x=atof(satr); 
fwrite (&x,sizeof(double),n,f); 

 } while(strlen(satr));// satr bo’sh bo’lmasa,takrorlash 
fclose(f);


return 1; 
 } 
 int OAdan_Kichiklar_Soni() 
 { 
FILE * f double x; 
f=fopen("Sonlar.dbl", "rb+"); 
double s=0; // s - f fayl elementlari yig’indisi 
while(!feof(f)) 

if (fread(&x,sizeof(double),1,f)) s+=x;

long sonlar_miqdori=ftell(f)/sizeof (double); 
s/=sonlar_miqdori; // s- o’rta arifmetik 
cout<<"Fayldagi sonlar o'rta arifmetiki="<
fseek(f,SEEK_SET,0); // fayl boshiga kelinsin 
int k=0; 
while (fread(&x,sizeof(x),1,f)) 
{ k+=(x
} fclose(f); 
return k; 

int main() 
{ if(Fayl_Yaratish()) 
{ cout<<”Sonlar.dbl faylidagi \n"; 
int OA_kichik=OAdan_Kichiklar_Soni(); 
cout<<”O'rta arifmetikdan kichik sonlar miqdori="; cout<

else // f faylini yaratish muvafaqiyatsiz bo’ldi. 
cout<<"Sonlar.dbl faylini ochish imkoni bo’lmadi!!!”; 
return 0; }
Dasturda bosh funksiyadan tashqari ikkita funksiya aniqlangan: 
Int Fayl_Yaratish() - diskda “Sonlar.dbl” nomli faylni yaratadi. Agar faylni yaratish 
muvaffaqiyatli bo’lsa, funksiya 1 qiymatini, aks holda 0 qiymatini qaytaradi. Faylni yaratishda 
klaviaturadan sonlarning satr ko’rinishi o’qiladi va songa aylantirilib, faylga yoziladi. Agar bo’sh 
satr kiritilsa, sonlarni kiritish jarayoni to’xtiladi va fayl yopiladi; 
int OAdan_Kichiklar_Soni() - diskdagi “Sonlar.dbl” nomli faylni o’qish uchun ochiladi va 
fayl elеmеntlarining s o’rta arifmеtigidan kichik elеmеntlari soni k topiladi va funksiya natijasi 
sifatida qaytariladi. 
Bosh funksiyada faylni yaratish muvaffaqiyatli kеchganligi tеkshiriladi va shunga mos 
xabar bеriladi. 

Download 2,19 Mb.

Do'stlaringiz bilan baham:
1   ...   71   72   73   74   75   76   77   78   ...   105




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish