“Dasturlash I” fanidan 5-ma’ruza bo`yicha mustaqil topshiriqlar
1. Quyidagi jumlalarga qisqacha izoh bering:
1.1. while sikl operatorining sintaksisi : while (Условие) { Тело цикла; }
1.2. Siklning-davom-etish-sharti : #include
using namespace std;
int main()
{
int i=0;
cout<<"***Birinchi takrorlanish*** "<for(; i<10; i++)
{
cout<<"i - "<}
cout<cout<<"****Ikkinchi takrorlanish*** "<for (; i<20; i++)
{
cout<<"i - "<}
}
N atija:
1.3. Nazoratchi qiymat : Foydalanuvchi tasdig‘iga yoki nazoratchi o‘zgaruvchi qiymatiga ko‘ra while siklini tashkil etish (controlling a loop with user confirmation, controlling a loop with a sentinel value).
Siklni boshqarishniing ko`p tarqalgan usullaridan yana biri – o`qish va qiymat ta’minlash jarayonlarida maxsus qiymatni tayinlashdir. Bu maxsus kiritiluvchi qiymat “Nazoratchi qiymat” nomini olgan bo`lib, kiritishlarning so`ngida belgilanadi. Nazoratchi qiymat qo`llanilgan sikl “Nazoratchi qiymat orqali boshqariluvchi sikl” deb yuritiladi.
Quyida keltirilgan namunada, agar biz ko`p qiymatlar kiritishimiz kerak bo`lsa, bu qiymatlarni klaviaturadan kiritish anchayin malol keladi. Buning uchun oddiy matnli faylda qiymatlarni bo`shliqlar bilan ajratib kiritib olishimiz va dasturni quyidagicha kod orqali ishga tushirishimiz mumkin:
NazoratchiQiymat.exe < kiritish.txt
Bu ko`rsatma kiritishni qayta yo`naltirish deb yuritiladi. Dastur qiymatlarni klaviaturdan kiritishga qaraganda biroz qulayroq bo`lgan – qiymatlarni “kiritish.txt” faylidan kiritish imkonini beradi.
1.4. Fayldan o`qish : Dasturlashda ma’lumotni faylga saqlash va keyin ma’lumotni fayldan o`qish mumkin.Shu vaqtgacha biz ma’lumotlarni kiritish uchun ci nob oyektidan, konsol oynaga chiqarish uchun esa cout ob’yektidan foydalanib kelganmiz. Bundan tashqari, ma’lumotni fayldan o`qish va uni faylga yozish imkoniyati ham bor. Faylga yozish ma’lumotni faylga yozish uchun birinchi navbatda ofstream turida o`zgaruvchini e’lon qilib olish kerak:
ofstream chiqarish;
chiqarish ob’yektidan maxsus open funksiyasini quyidagicha tartibda chaqirib olamiz:
chiqarish.open("sonlar.txt");
Bu ko`rsatma satri sonlar.txt deb nomlangan fayl yaratadi. Agar bunday fayl tarkibda avvalroq yaratilgan bo`lsa, uni qayta quradi va yangisi bilan almashtiradi. open funksiyasining chaqirilishi faylni oqim bilan bog`laydi.
Optimal holatda, bir vaqtning o`zida chiqarish ob’yektining faylini yaratish va o`sha faylni ochish quyidagi ko`rsatma satri orqali amalga oshiriladi:
ofstream chiqarish("sonlar.txt");
Faylga ma’lumot yozish uchun xuddi cout ob’yekti kabi “<<” – oqim operatoridan foydalaniladi:
Fayl bilan bog`liq operatsiyalar bajarib bo`lingandan so`ng chiqarish ob’yektidan close funksiyasi chaqirib olinadi.
chiqarish.close();
1.5. do-while – sikl operatori : do-while sikl operatori (do-sikli, sikl tanasi, iteratsiya, sikl sharti).
do-while – sikl operatori ham while – sikl operatoriga o`xshaydi, farqli tomoni, u birinchi sikl tanasini hisoblaydi, keyin shartni tekshiradi.do-while – sikl operatorining tuzilishi while – sikl operatorining tuzilishidan farq qiladi. Uning snintaksisi quyidagicha:
do
{
// Sikl tanasi;
Ko`rsatmalar(s);
} while (siklni-davom-ettirish-sharti);
do-while – sikl operatori birinchi sikl tanasini hisoblaydi, keyin hisoblashni davom ettirish yoki to`xtatish uchun shartli ifodani tekshiradi.do-while – sikl operatori birinchi sikl tanasini hisoblaydi. Keyin esa siklni-davom-ettirish-sharti tekshiriladi. Agar shartning qiymati true bo`lsa, sikl tanasi yana hisoblanadi; aks holda, sikl ishi to`xtatiladi.
2. Quyidagi masalaning dasturini tuzing:
“Sonni top” o`yini. Kompyuter 0 va 10 oralig`ida bitta son o`ylasin. Foydalanuvchini son kiritishga undaydi va qachonki, foydalanuvchi kompyuter o`ylagan sonni kiritmagunicha bu jarayon davom etadi.
Kod:
#include "stdafx.h"
#include
using namespace std;
struct complex // структура "хранения" комплексного числа
{ float re; // действительная часть
float im; // мнимая часть
};
void print( char * txt, complex x) // вывод комплексного числа
{
printf("%s=(%f,%fi)", txt, x.re, x.im);
return;
};
complex new_complex(float a, float b) // задать значение комплексному числу
{ complex temp;
temp.re=a;
temp.im=b;
return temp;
};
complex plus_complex(complex a, complex b) // сложить два комплексных чисел
{ complex temp;
temp.re=a.re+b.re;
temp.im=a.im+b.im;
return temp;
}
int main() // простая тестовая программа
{
complex z;
printf( "vvedite re и im 1 chisla: ");
cin > > z.re > > z.im;
print( "z", z); printf("\n");
complex q;
printf( "vvedite re и im 2 chisla: ");
cin > > q.re > > q.im;
print("q", q); printf("\n");
complex sum;
sum=plus_complex(z,q);
print("q+z", sum); printf("\n");
return 0;
}
0
Do'stlaringiz bilan baham: |