6.5.2.Dastur bilan ishlash
Dastur ishga tushgach dasturning muloqot oynasi hosil bo’ladi. “Yozuvlarni
kiritish” knopasi ko’rinmaydi. Yozuvlar uchun yangi fayl yaratish uchun
“Yaratish” knopkasi bosiladi yoki oldin yaratilgan (mavjud) faylni ochish uchun
“Ochish” knopkasi bosiladi. Bundan keyin “Yozuvlarni kiritish” knopasi ko’rinadi
va yozuvlarni kiritish mumkin bo’ladi. “Tartiblash” knopka bosilganda o’rtacha
ballarining kamayishi tartibida ro’yxatini hosil qilinadi. Bu natijani “Saqlash”
knopkani bosib mantli faylga yozib qo’yish mumkin. Yozuvlar fayl “Close” yoki
knopkasi bosilganda dastur bilan birga yopiladi.
121
Dastur matni quyida keltirilgan:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,Dialogs, StdCtrls, ExtDlgs;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
SaveDialog1: TSaveDialog;
122
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action:
TCloseAction);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
Type
TStudent = record
FIO: string[40];
// F.I.Sh.
otc: array[1..3] of word;
// baxolar
sball : extended;
// urtacha bal
end;
var
Form1: TForm1;
Fz : file of Tstudent;
// yezuv tipidagi fayl
Ft : TextFile;
// Tekst fayl
Stud : array[1..100] of Tstudent; // yozuvlar massivi
nzap : integer;
// yozuv nomeri
FileNameZ, FileNameT : string; // fayl nomlari
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
nzap:=nzap+1;
with stud[nzap] do
begin
FIO:=Edit1.Text;
otc[1]:=StrToInt(Edit2.Text);
otc[2]:=StrToInt(Edit3.Text);
otc[3]:=StrToInt(Edit4.Text);
sball:=(otc[1]+otc[2]+otc[3])/3;
Memo1.Lines.Add(fio+' '+IntToStr(otc[1])+' '
+ IntToStr(otc[2])+'
'+IntToStr(otc[3]));
end;
Write(fz,Stud[nzap]);
// faylga yozish
Edit1.Text:='';
Edit2.Text:='';
123
Edit3.Text:='';
Edit4.Text:='';
edit1.SetFocus
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Memo1.Clear;
Button1.Hide;
// "Yozuvni kiritish" knopkasini kurinmas
kilish
nzap:=0;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
OpenDialog1.Title :='yangi fayl yaratish';
if OpenDialog1.Execute then
begin
FileNameZ:= OpenDialog1.FileName;
AssignFile(Fz, FileNameZ);
Rewrite(Fz);
end;
Button1.Show;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
FileNameZ:= OpenDialog1.FileName;
AssignFile(Fz, FileNameZ);
Reset(Fz);
end;
while not eof(fz) do
begin
nzap:=nzap+1;
Read(fz,stud[nzap]);
with stud[nzap] do
Memo1.Lines.Add(fio+' '+IntToStr(otc[1])+' '
+IntToStr(otc[2])+'
'+IntToStr(otc[3]));
end;
Button1.Show;
124
end;
procedure TForm1.Button2Click(Sender: TObject);
var i,j : word;
st : TStudent;
begin
for i:=1 to nzap-1 do
for j:=i+1 to nzap do
if Stud[i].sball < Stud[j].sball then
begin
st:=Stud[i];
Stud[i]:=Stud[j];
Stud[j]:=st;
end;
Memo1.Clear;
for i:=1 to nzap do
with stud[i] do
Memo1.Lines.Add(IntToStr(i)+' '+fio+' '
+
FloatToStrf(sball,fffixed,4,2));
end;
procedure TForm1.Button6Click(Sender: TObject);
var i:word;
begin
if SaveDialog1.Execute then
begin
FileNameT:= SaveDialog1.FileName;
AssignFile(Ft, FileNameT);
Rewrite(Ft);
end;
for i:=1 to nzap do
with stud[i] do Writeln(Ft,i:4,'. ',fio,sball:8:2);
// tekst faylga yozish
CloseFile(Ft);
end;
procedure TForm1.FormClose(Sender:TObject; var Action:
TCloseAction);
begin
Close;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit2.SetFocus
end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit3.SetFocus
end;
125
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit4.SetFocus
end;
procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and button1.Visible then button1.SetFocus else
edit1.SetFocus
end;
end.
Individual bajarish uchun topshiriqlar:
Dasturga kiritiladigan ma’lumotlar matnli faylda saqlash va oldingi saqlangan faylni
o’qish imkoniyati e’tiborga olinadi. Natijalarni ko’rish oynasida (Memo) va matnli faylga
chiqariladi.
1. Magazinda xaridorlarning tovar sotib olishida ro’yxat hosil qilinadi. Bu
ro’yxatning har bir yozuvi quyidagidan iborat: tartib raqami F.I.Sh., xaridorning uy
manzili va xisobga olingan sanasi.F.I.Sh. va uy manzilini tekshirib takrorlanuvchi
yozuvlarni ro’yxatdan o’chiring.
2. Omborda mavjud tovarlar ro’yxatida tovarning nomlari, tovarning o’lchav
birliklari, birligi bo’yicha bahosi va tovar keltirilgan sanasi. Ombordagi bahosi
1000000 so’mdan oshgan va bir oydan ko’p saqlangan tovarlar ro’yxatini alifbo
tartibida chiqaring.
3. Yotoqxonada joy olish uchun talabalar ro’yxati hosil qilingan. Ro’yxatda
talabaning F.I.Sh, guruhi, o’rtacha ball, oila a’zosi sifatida daromadi haqida
ma’lumotlar bor. Yotoqxona birinchi navbatda minimal oyligining 2 barobaridan
kam bo’lgan daromadli oila a’zosiga, keyin esa o’rtacha ballning kamayish
tartibida yotoqxonada joy berish navbatining ro’yxatini chiqarish dasturini tuzing.
4. Avtovakzalning shoxobchasida avtabuslarning xarakatlanish ro’yxati
ma’lumotnomasi bor. Unda har bir qatnov uchun uning nomeri, avtobusning tipi,
boshlang’ich manzili, jo’nash vaqti va kelish vaqti. Berilgan vaqtdan oldin
boshlang’ich manzilga keladigan foydalanish mumkin bo’lgan qatnovlar haqida
chiqaring.
126
5. Shaharlararo ATSda so’zlashuvlar haqida informasiyalar quyidagicha:
so’zlashuvlar sanasi, shahar kodi va nomeri, so’zlashuv vaqti, tarifi, o’sha
shahardagi telefon nomer va mijozning telefon nomeri. Har bir shahar bo’yicha
so’zlashuvlarning umumiy vaqti va so’mmasi toping.
6. Furmaning xodimlari haqidagi informasiyaga qo’yidagilar kiradi: F.I.Sh,
tabel nomeri, bir oydagi minimal soatlar miqdori, soatbay tarif. Agar ish vaqti 144
soatdan oshsa ikki barobar haq to’lanadi firmaning har bir xodimi uchun oylik
moashi jamini 12% soliq hisobida chop yeting.
7. Sport musabaqasi ishtirokchisi haqidagi matnlar quyidagi: mamlakatlar
nomi, kamandalar nomi, ishtirokchilar F.I.Sh, o’yin nomeri yoshi, bo’yi, vazni.
Komandadagi eng yosh o’yin ishtirokchilari haqida informasiya chiqaring.
8. Kitoblar uchun kutubxonada qo’yidagilar saqlanadi: kutubxonaning
registirasiya nameri, mualliflari F.I.Sh, nashr yili, nashriyot cahifalar soni. Berilgan
yilda nashr etilgan kitoblarning mualliflarini alifbo tartibida chiqaring.
9. Zavodning turli xil sexida bir necha nom bilan maxsulotlar chiqariladi.
Mahsulotning to’g’rsidagi ma’lumotlar qo’yidagicha: nomi, miqdori, sex nomeri.
Berilgan sex uchun kamayishi tartibida har bir nom bo’yicha chiqarilgan
maxsulotlarni conni chop yeting.
10. Korxona xodimlari haqidagi informasiya qo’yidagilardan iborat: F. I.
Sh., bo’lim raqami, lavozimi, ishga kirgan sanasi. Bo’limlar bo’yicha xodimlarning
ctajlarining kamayishi tartibida ro’yxatini hosil qiling.
11. Universitetga imtixon topshirgan abuterintlarning vedimis qaydnomasida
quyidagi ma’lumotlar bor: F. I. Sh., manzili, baholari. Samarqand shahrida
yashovchi va o’rtacha bali 4,5 dan kam bo’lmagan abiturentlar sonini aniqlang va
ularning familiyasini alifbo tartibida chop eting.
12. Aeroport spravochnigida keyingi kunda parvozlar jadvali saqlanadi. Har
bir qatnov uchun quyidagilar ko’rsatilgan: qatnov raqami, samolyot tipi, boradigan
manzili, uchish vaqti. Berilgan manzil uchun barcha qatnov raqamlari, samolyot
tipi va uchish vaqtini chop eting.
127
13. Temir yul kassa administratorda keyingi hafta poyezdlari bo’sh joylari
haqidagi informasiya quyidagi ko’rinishda saqlanadi: jo’nash sanasi, boradigan
manzili, jo’nash vaqti, bo’sh joylari soni. xalkaro konferensiyaning tashkiliy
qo’mitasi administratorga poyezd junash vaqti kechki t soatdan erta, haftaning k-
nchi kuniga m ta joy N shaharga band qilishni iltimos qiladi. Jo’nash vaqtini yoki
tuliq xajmda buyurtmaning bajarolmaslik imkoniyati haqidagi xabarni chop eting.
14. Universitetga imtihon topshirgan abiturentlar kaydnomasida quyidagilar
mavjud: abiturent FISh, bahosi. Universitet buyicha o’rtacha ballni xisoblang,
universitet bo’yicha o’rtacha balldan yuqori balli abiturentlar ruyxatini chop eting.
Ruyxatda birinchi barcha imtihonlarni 5 ga topshirganlarni joylashtirish kerak.
15. Radioatelda remontga berilgan radiooperaturalar haqidagi kvitansiyalar
saqlanadi. Har bir kvitansiyada quyidagi informasiyalar bor: Mahsulot guruhining
nomlanishi (televizior, radio), maxsulot markasi, remontga qabul qilingan sana,
buyurtmaning bajarilgandagi holati (bajarilga yoki bajarilmagan). Mahsulot
ruyxatlari buyicha joriy kundagi buyurtmalarning bajarilganlik xolatini haqidagi
informasiyalarni chop eting.
16. Talabalarning o’zlashtirishi haqidagi qaydnomani shakllantirish dasturi
tuzing. Ushbu qaydnomaning har bir yozuvida quyidagilar mavjud: guruh nomeri,
talabaning FISh, oxirgi sessiyadagi bali, Har bir guruhning talabalar ro’yxatini
chiqaring, har bir guruhda talabaning familiyasi o’rtacha balining kamayish
tartibida joylashtirilsin.
17. Kelin va kuyovlar ro’yxati mavjud. Ro’yxatning har bir yozuvi jinsi,
nomi, yoshi, buyi, vazni xamda sherigiga bo’lgan talablar, ya’ni eng kichik va eng
katta yosh, eng katta va eng kichik og’irlik, eng kichik va eng katta bo’y. Bu
ro’yxatni sheriklarga bo’lgan talablarni e’tiborga olib, kelin va kuyovlarni
takrorlanmasdan juftliklarga xosil qiling.
18. Kutubxonada kitoblar ruyxati bor. Har bir yozuv quyidagilardan iborat:
muallif familiyasi, kitob nomi, nashr etilgan yili. Kitoblarning nomida kandaydir
(klaviaturadan kiritiladigan) kalit so’zi uchraydigan kitoblar ruyxatini chop eting.
128
19. Magazindan sotuvga qo’yilgan avtomabillarning ro’yxati mavjud. Bu
ro’yxatning har bir yozuvida quyidagilar mavjud: avtomabillar markasi, narxi, 100
kmga yoqilgi sarfi, ishonchliligi (remontsiz ishlash vaqti), qulayligi (a’lo darajada,
yaxshi, konikarli). Xaridorlarning talabini qondiruvchi avtomabillarning ro’yxatini
hosil qiling, bunda mumkin bo’lgan qiymatlarni qandaydir intervali shaklida
kiritiladi.
20. Bo’sh ish o’rni ro’yxatining har bir yozuvi quyidagilardan iborat:
tashkilotning nomi, lavozim, klassifikasiyasi (razryad yoki ma’lumot) mutaxasislik
buyicha ishlagan ish staji, oylik maoshi, ijtimoiy sug’urta mavjudligi (ha, yo’q),
har yili haq to’lanadigan mehnat ta’tilning muddati. Mijozlarining talabiga mos ish
joylarni ro’yxatini chop etish.
21. Aeroportning texnik xizmati ma’lumotnomasi mavjud bo’lib, unda
quyidagi strukturadagi yozuvlar bor: samolyotning tipii, chiqqan vaqti, 1000 km ga
yoqilg’i sarfi. Texnik xizmat yoqilgiga talabini aniqlash uchun parvozlar jadvalini
so’raydi. Jadvalning har bir yozuvida quyidagi informasiyalardan iborat: qatnov
raqami, boradigan manzili, uchish masofasi. Keyingi kunga parvozni ta’minlash
uchish uchun yoqilgi mikdori yigindisini chop eting.
22. Shaxmat doskasi maydoni quyidagi yozuv bilan xarakterlanadi:
Do'stlaringiz bilan baham: |