Ishlab chiqarish muammolari Quyida massivlarga xos bo‘lgan ishlab chiqarishda kelib chiquvchi muammolar keltirilgan:
Indekslar qanday tipda bo‘lishi mumkin?
Kerakli diapazondan indeksning chiqishiga yo‘l qo‘yiladimi?
Indekslar qiymatlar sohasi cheklanganmi?
Qachon massiv xotirada joylashadi?
Indekslarning qanchasiga yo‘l qo‘yilgan?
Massivlar ular xotiraga joylashtirilganidan so‘ng initsializatsiyalanishi mumkinmi?
Massivlarning qanday kesishmasiga yo‘l qo‘yiladi yoki bunga umuman ruxsat berilganmi o‘zi?
Keyingi bo‘limlarda loyihaviy echimlarga misollar keltirilgan bo‘lib, dasturlashning eng keng tarqalgan tillarida qo‘llaniladi.
Assotsiatsiativ massivlar Assotsiatsiativ massivlar deb, tekislanmagan ma’lumotlarning bir qancha elementlari tushuniladi, kalit deb nomlanuvchi xuddi shuncha kattaliklar bilan indekslanadi. Assotsiatsiativ bo‘lmagan massivlarda indekslarni saqlab bo‘lmaydi. Assotsiatsiativ massivlarda esa foydalanuvchi tomonidan aniqlanuvchi kalitlar massiv strukturasida saqlanishi lozim. SHunday qilib, assotsiatsiativ massivlarning har bir elementi elementlar juftligi bo‘ladi: kalit va kattalik.
Assotsiatsiativ massivlar uchun quyidagi ishlab chiqarish savollari xos hisoblanadi:
Elementlarni chaqirish formasi qanday?
Assotsiatsiativ massiv o‘lchami qanday: statistikmi yoki dinamikmi?
Strukturalar va amallar Perl tilining assotsiatsiativ massivlari xesh deb ataladi, chunki ularning elementlari xotiraga joylanadi va xesh funksiyasi orqali ulardan chiqariladi. Perl tilida xesh ismlar fazosi aniq belgilangan: har bir xeshlangan o‘zgaruvchi protsent belgisi bilan boshlanishi kerak.
salaries = (“Cedric” => 7500, “Perry” => 57000,
“Mary” => 55750, “Gary” => 47850);
Pascal, Modula-2 va Ada tillari yozuvlarda COBOL tilida tasdiqlangan bosqichlar nomerini emas, balki o‘zinining sintaktik qoidalarini qo‘llaydi: ushbu tillarda yozuvlar strukturasini yaratish uchun ortogonal struktura qo‘llaniladi, u bir e’lonlarni boshqalariga kiritishga ruxsat beradi. Ada tilidagi quyidagi e’lonni ko‘rib chiqamiz:
EMPLOYEE_RECORD :
record
EMPLOYEE_NAME :
record
FIRST : STRING (1..20);
MIDDLE : STRING (1..10);
LAST : STRING (1..20);
end record
HOURLY_RATE : FLOAT;
end record;
C tilida yozuvlar ham ko‘rib chiqilgan va struktura deb nomlanadi. Ular ko‘p narsada Pascal tilidagi yozuvlarga o‘xshaydi. 5.8 bo‘limda ko‘rib chiqilgan variantli yozuvlar yoki birlashuvlarni strukturalar o‘zida saqlamasligi bundan mustasnodir.
FORTRAN 90 tilida yozuvlarni e’lon qilish har qanday kiritilgan yozuvlarni tip kabi tavsiflashni talab qiladi. Shunday qilib, yuqorida keltirilgan ishchi haqidagi yozuvlarja ishchi nomini yozish oldinan tavsiflashni talab qiladi, bundan keyin esa ishchi yozuvi maydonida u shunchaki tip deyiladi.