38. Programma tuzilsin. t matn fayli berilgan. Undagi eng qisqa satrlarning birinchisi chop qilinsin.
39. type imtihon = (analiz, algebra, programmalash);
talaba = record
FISh: record fam,ismi,sharifi: string[12]; end;
baho: array [imtihon] of 2..5;
guruh: 101..116
end;
kurs = file of student;
Tashqi xotirada (diskda) kurs turidagi talabalar haqidagi ma'lumotlarni o'z ichiga olgan KURS1 fayli berilgan. KURS1 faylida faqat imtihonlarni muvoffaqiyatli topshirgan talabalar haqidagi ma'lumotlarni qoldiradigan va kamida bitta qarzga ega talabalar haqidagi ma'lumotni chop qiluvchi programma tuzilsin. Qarzdor talabalar haqidagi chop qilinadigan ma'lumotlar: talaba familiyasi va initsiallari, guruh nomeri va topshirilmagan imtihonlar soni.
40. Programma tuzilsin. Butun sonlardan tashkil topgan A fayli berilgan. Qo'shimcha B, C, D yordamchi fayllaridan foydalangan holda A fayl quyidagi metod bilan kamaymaydigan qilib tartiblansin (balanslangan birlashuvli tartiblash usuli).
7-rasm
Faylning kamaymaydigan qilib tartiblangan eng uzun qismini «bo'lak» deb ataymiz (7-a rasmda misol tariqasida bo'laklari vertikal chiziq bilan ajratilgan A fayli ko'rsatilgan). Tartiblashning boshlang'ich bosqichida A fayldagi bo'laklar aniqlanadi va navbatma-navbat S va D fayllariga o'tkaziladi (7-b rasm). Keyingi qadamda C va D fayldagi i- bo'laklar (i=1,2,...) navbatma-navbat yanada kattaroq bo'laklarga birlashtirilib, A va B fayllariga o'tkaziladi (7-v rasm). Undan keyin A va B fayllardagi bo'laklar birlashtirilib, C va D fayllarga o'tkaziladi (7-g rasm) va hokazo. (Oxir-oqibatda, yagona tartiblangan sonlar A faylda hosil bo'lishi kerakligi inobatga olinsin.)
22. Matritsa algebrasi
3. const n=10;
type matrisa = array[1..n,1..n] of real;
vektor = array[1..n] of real;
var A,B,C : matrisa; x,y,z,u : vektor;
Berilgan A,B,C matritsalar va x,y,z vektorlardan u vektor elementlari hisoblansin, bunda u=Ax+By-Cz+Bx.
6. Programma tuzilsin. x, y va z haqiqiy 30 elementli vektorlar berilgan. (a,a)-(b,c) kattalik hisoblansin, bu yerda a vektor berilgan vektorlar ichidan eng katta minimal elementga ega (bunday vektor yagona deb hisoblansin), b va c qolgan ikkita vektor, bu erda (p,q) - p va q vektorlarning skalyar ko'paytmasi.
7. const n=15; m=20;
type matrisa=array [1..n, 1..m] of real;
Quyidagi ko'rinishdagi kattalikni hisoblaydigan sum(A) funktsiyasi aniqlansin:
,
bu yerda - A matritsaning i-chi satridagi eng katta element.
8. type vector=array of char;
Parametrlari to'rtta vektordan iborat bo'lgan, x va u vektorlarni quyidagi ko'rinishga olib keluvchi almashtirish(x,y,a,b) funktsiyasi tuzilsin:
9. const n=8; m=13;
type matrisa=array[1..n,1..m] of real;
A va B matritsalarning maksimal elementlarini almashtiradigan swap(A,B) funktsiyasi tuzilsin. (Har bir matritsada maksimal element bitta deb hisoblansin.)
10. const n=...; {butun o'zgarmas > 1}
type son= array[1..n] of ‘0’..’9’;
massiv= array [1..40] of son;
x massiv sonlarini quyidagi usul bilan tartiblaydigan (o'sish tartibida) tartib(x) funktsiyasi tuzilsin: x dagi barcha sonlarni oxirgi raqami bo'yicha tartiblab, yordamchi u massivga o'tkazilsin; keyin u dagi sonlarni oxiridan bitta oldingi raqami bo'yicha tartiblansin (raqamlar teng bo'lganda tartib oxirgi raqam bo'yicha saqlansin) va u qayta x massiviga yozilsin; keyin, x dagi sonlar oxiridan uchinchi raqam bo'yicha tartiblansin va u massiviga o'tkazilsin va hokazo. (Natijaviy sonlar x massivida qolishi hisobga olinsin.)
11. type index=1..20;
matrisa=array[index,index] of real;
A matritsaning bo'yalgan sohasidagi katta elementini topadigan max(A,n,k) funktsiyasi tuzilsin. Bu yerda A-matritsa, n va k-indekslar (4-rasm).
4-rasm
12. type table1=array [1..10,1..10] of integer;
table2=array [1..20,1..30] of integer;
table1 turidagi A,V va S matritsalar orqali table2 turidagi D matritsani quradigan constr(A,B,C,D) funktsiyasi tuzilsin. D matritsa
ko'rinishda. Bunda N table1 turidagi nol matritsa.
13. Programma. 1 dan 6 gacha lotin xarflaridan iborat bo'lgan so'zlar ketma-ketligi berilgan. So'zlar bir-birlari bilan vergul bilan ajratilgan, oxirgi so'zdan keyin nuqta keladi. Bir xil «qo'shnilari», ya'ni oldin va keyin keluvchi so'zlar bilan ustma-ust tushadigan so'zlar chop etilsin.
14. Programma. Uchta haqiqiy turdagi 4-tartibli kvadrat matritsalar berilgan. Ularning orasida normasi eng kichik bo'lgani chop etilsin (bunday matritsa bitta deb hisoblansin). Matritsaning normasi sifatida, uning elementlarining absolut qiymatlarini maksimumi olinsin.
18. const n = 20;
type vector = array [1..n] of real;
x,y va z vektorlar ichida manfiy elementlari eng ko'p bo'lgan venktorning (bunday vektor bitta deb hisoblansin) musbat elementlarini: agar bu vektor x yoki z bo'lsa, ularning kublari bilan, aks holda (u vektor), ularning teskari kattaliklari bilan almashtiradigan uzgartirish(x,y,z) funktsiyasi tuzilsin.
19. O'qish faylidan probeldan farqli birinchi belgini o'qib, uni o'zining qiymati deb e'lon qiladigan parametrsiz next funktsiyasi tuzilsin. Bu funktsiyani o'qish faylida berilgan va nol bilan tugaydigan matnning probeldan farqli belgilar soni - k ni hisoblashda foydalanilsin.
20. const d=100; m=5;
type satr = array [1..d] of char;
satrosti = array[1..m] of char;
pozitsiya=1..d;
var x: satr; y,z: satrosti;
Berilgan ss satrosti s satrning k- o'rnidan boshlanuvchi satr ostiga kirishini aniqlovchi qidiruv(s,ss,k,n) mantiqiy funktsiyasi tuzilsin. Agar javob ijobiy bo'lsa, s satrning shu qismidagi ss satr ostining birinchi kirishining boshlanish o'rni n o'zgaruvchiga berilsin. Berilgan funktsiyadan foydalanib, x satrda y satr ostini z satr osti bilan almashtirilsin.
30. Programma. 9x4 o'lchamli uchta butun turdagi matritsalar berilgan. Faqat nollardan iborat satrlari eng ko'p bo'lgan matritsa chop etilsin (agar bunday matritsalar bir nechta bo'lsa, barchasi chop etilsin).