O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi buxoro davlat universiteti qo’lyozma huquqida udk



Download 1,19 Mb.
bet15/24
Sana19.07.2021
Hajmi1,19 Mb.
#123588
1   ...   11   12   13   14   15   16   17   18   ...   24
Bog'liq
Amaliy matematika va axborot texnologiyalari

2.4 Klaviaturadan so’z kiritish

Xuddi shu masalani satrni klaviaturadan kiritish variantini ham yasash mumkin. Bu uchun dasturga quyidagi o’zgartirishlarni kiritamiz:

implement main
    open core, string, console, stdio
class predicates
    tokenize:(string, string_List) procedure (i,o).
clauses
    tokenize(S, [T|Ts]) :-
        frontToken(S, T, R), !, tokenize(R, Ts).
    tokenize(_, []).
    run():- console::init(),
       Text=stdio::readLine(),
       tokenize( Text, List),
        stdio::write(List), stdio::nl,
        S= concatList(List),
        stdio::write(S), stdio::nl,
        UCase= toUpperCase(S),
        RR= string::concat("Katta harflar bilan: ", Ucase),
        stdio::write(RR ), stdio::nl.
end implement main
goal
    mainExe::run(main::run).

Yuqoridagi dasturni o’zgartirishlar natijasida biz klaviaturadan so’z kiritib shu so’zni katta harf bilan yozishga va sozlarni qo’shib yozishga erishdik.

­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­2.5 Satrni oldiga bo’sh qolgan joyga yulduzcha(*) belgisini qo’yish dasturi

Quyidagi dastur ham satrlar bilan bog’liq . bu yerda satrni 60 ta sanab shunga qarab satrni oldiga bo’sh qolgan joyga yulduzcha(*) belgisini qo’yadi.

implement main

clauses


classInfo("main", "adjust_example").

run():- console::init(),

FstLn= "Rage ––"

" Goddess, sing the rage of Peleus' son Achilles,",

Str= string::adjust(FstLn, 60, "*", string::right),

stdio::write(Str), stdio::nl.

end implement main

goal mainExe::run(main::run).

Bu dasturda Right satrni o’ngga suradi. Left esa satrni chapga suradi. Quyidagi dasturda esa so’zlarni orasiga vergul qo’yib chiqaradi

implement main

clauses

classInfo("main", "stringops").

run():-

console::init(),

SndLn= [ "murderous", "doomed",

"that cost the Achaeans countless losses"],

Str= string::concatWithDelimiter(SndLn, ", "),

Rule= string::create(20, "-"),

stdio::write(Str), stdio::nl,

stdio::write(Rule), stdio::nl.

end implement main

goal mainExe::run(main::run).

Yuqoridagi dasturdan quyidagi qatorda orasiga vergul(,) belgisini qo’yadi.

Str= string::concatWithDelimiter(SndLn, ", "),

Quyidagi qatorda satrni 15ta plus(+) ishorasiga ko’paytiriladi.

Rule= string::create(15, "+"),

Dasturining to’liq ko’rinishi quyidagicha:

implement main


clauses
   % classInfo("main", "stringops").
    run():-
        console::init(),
        SndLn= [ "murderous", "doomed",
            "that cost the Achaeans countless losses"],
            %yuqorida  satrni  o'zi  chiqadi
        Str= string::concatWithDelimiter(SndLn, ", "),
        % quyida pluslar soni 15ta  chiqadi
        Rule= string::create(15, "+"),
        stdio::write(Str), stdio::nl,
        stdio::write(Rule), stdio::nl.
end implement main
goal mainExe::run(main::run).

Bu dasturni kiritib ishlatsak quyidagicha rasm hosil bo’ladi.



(2.1-rasm) 15 ta plus chiqaruvchi dasturni ko’rinishi

Dasturda shu so’zlarni yozdi va 15ta (+) plus ishorasini ekranimizga chiqardi.

Ro’yxat deb tartiblashtirilgan bir xil tipdagi elementlar to’plamiga aytiladi. Ro’yxatning 1-o’lchovli massivdan farqi shundaki, ro’yxatdagi elementlar soni ixtiyoriy bo’lishi mumkin va uning ustida bajariladigan odatdagi operatsiyalar- ro’yxatdan olish va ro’yxatga qo’shish. Prologda ro’yxat elementlari “,” orqali ajratilib, ro’yxatming o’zi kvadrat qavs (“[”, “]”) ichida joylashtiriladi. Ro’yxatda birinchi element(head) va dum qismi (tail) ga ajratiladi

Ro’yxat uchun shablon yasash mumkin. Shablon ham xuddi ro’yxatga o’xshash tuziladi, faqat elementlar o’rniga o’zgaruvchilar qo’yiladi va bu o’zgaruvchilar o’zaro “,” bilan emas, balki “|” simvoli bilan ajratiladi. Har bir o’zgaruvchi ro’yxatdan mos elementni, agar shunday element ro’yxatda mavjud bo’lsa, qiymat qilib oladi, agar bo’lmasa o’zgaruvchining qiymati aniqlanmagan hisoblanadi. Agar shablondagi oxirgi o’zgaruvchi uchun element qolsa, u ro’yxatning qolgan dumini qiymat sifatida oladi. Masalan, yuqorida ko’rsatilgan ro’yxatlar uchun [X|Xs] shablon asosidagi X va Xs o’zgaruvchilarning qiymatlari quyidagicha aniqlanadi:

Ro’yxat

Tipi

X

Xs

[12,4,25,27,10]

Integer

12

[4,25,27,10]

[“salom”,”ss1”]

String

“salom”

[,”ss1”]

[4]

Integer

4

[]

[12.24, 4.0, 123.23]

Real

12.24

[4.0, 123.23]

(2.2-jadval)

[X|Y|Z] shablon asosidagi X, Y va Z o’zgaruvchilarning qiymatlari quyidagicha aniqlanadi:



Ro’yxat

Tipi

X

Y

Z

[12,4,25,27,10]

integer

12

4

[25,27,10]

[“salom”,”ss1”]

string

“salom”

“ss1”

[]

[4]

integer

4

?

?

[12.24, 4.0, 123.23]

Real

12.24

4.0

[123.23]

(2.3-jadval)


Download 1,19 Mb.

Do'stlaringiz bilan baham:
1   ...   11   12   13   14   15   16   17   18   ...   24




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