Amaliy ish 1 310-21-guruh talabasi Bajardi: Ahmadjonov M. Tekshirdi



Yüklə 18,75 Kb.
tarix23.12.2023
ölçüsü18,75 Kb.
#155854
Dasturlash uslublari 1-amaliy


O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA
KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI

Dasturlash uslublari va paradigmalar fanidan


Amaliy ish 1


310-21-guruh talabasi
Bajardi: Ahmadjonov M.


Tekshirdi: Otaxonova B.


Toshkent 2023

Nazariy ma’lumotlar
R tili funktsional dasturlash paradigmasini qo'llab-quvvatlaydi, ammo uni yaxshiroq amalga oshirish va funksionallikni oshirish uchun purrr to'plamidan foydalanish tavsiya etiladi; Bundan tashqari, siz topshiriqni bajarish uchun ma'lumotlar to'plamini o'z ichiga olgan repurrr paketini yuklab olishingiz va ulashingiz kerak.
Purrr - bu funksiyalar va vektorlar bilan ishlash uchun izchil va kuchli vositalar to'plamini taqdim etadigan mashhur R dasturlash to'plami. U Xedli Uikxem tomonidan ishlab chiqilgan va paketlar to'plamining bir qismidir . Purrr R-da funktsional dasturlash uchun muhim paketdir.
Iteratsiya -Takrorlashlar
Iteratsiya - bu ma’lumotlarni qayta ishlashni tashkil etish, unda harakatlar ko’p marta takrorlanadi. Dasturlashda iteratsiyalar ko’proq elementlar sifatida tizimli dasturlash, ya'ni siklni bajarishda bir qadam sifatida ko'rib chiqiladi. Amalda, funksional dasturlashda iteratsiya ham muhim ahamiyatga ega, masalan, iterativ jarayonni bir xil funktsiyani elementlari turli funktsiyalarga qo'llash deb hisoblash mumkin.
Masala-1
Takroriy paketdagi test ma'lumotlaridan foydalanib, quyidagi vazifani bajaring. Tuzilishi bo'yicha sw_films ro'yxatiga o'xshash nomli ro'yxat yarating, uchun Nom o'rnatish uchun purrr paketining set_names funksiyasidan foydalanish foydalidir. Roʻyxat elementlarining nomi sifatida siz mos keladigan film nomlaridan foydalanishingiz kerak (esda tutingki, roʻyxat elementlariga indeks va sarlavha element) yordamida kirishingiz mumkin. Vazifani funktsional uslubda bajaring.


Yechim:
#include
#include
#include
#include

int main() {


std::vector sw_films = {"A New Hope", "The Empire Strikes Back", "Return of the Jedi"};
std::vector film_names;

for (const auto& film : sw_films) {


std::string name = film.substr(0, film.find_last_of(' '));
film_names.push_back(name);
}

for (const auto& name : film_names) {


std::cout << name << std::endl;
}
return 0;
}
Masala-2
Purrr paketining hujjatlaridan foydalanib, map_* oilasi funksiyalarining farqlari va xususiyatlarini tasvirlab bering. Turli xil usullardan foydalangan holda test ma'lumotlari amalga oshirishga misollar keltiring.
Ma'lumotlar ma'lumotlar to'plamidan yoki o'zingizning test to'plamlaringizni yaratish orqali olinishi mumkin. Ma'lumotlar to'plami paketidagi ma'lumotlarni ko'rish uchun kodlar kutubxonasini ishga tushiring library(help = "datasets")
Yechim:
library(help = "datasets") # Bu R ma'lumotlar to'plami paketidagi mavjud ma'lumotlar to'plamlari ro'yxatini ko'rsatadi
# Map_* funksiyalarini namoyish qilish uchun mtcars maʼlumotlar toʻplamidan foydalanish
data(mtcars) # mtcars maʼlumotlar toʻplamini yuklang
# Map_* funksiyalar oilasini mtcars maʼlumotlar toʻplamiga qoʻllash
# map(): Vektorning har bir elementiga funktsiyani qo'llang va ro'yxatni qaytaring
result_map <- purrr::map(mtcars, mean)

# map_lgl(): Mantiqiy vektorning har bir elementiga funktsiyani qo'llang va mantiqiy vektorni qaytaring


result_map_lgl <- purrr::map_lgl(mtcars, ~ .x > 20)

# map_int(): Butun vektorning har bir elementiga funktsiyani qo'llang va butun vektorni qaytaring


result_map_int <- purrr::map_int(mtcars, ~ .x * 2)

# map_dbl(): Ikki vektorning har bir elementiga funktsiyani qo'llang va qo'sh vektorni qaytaring


result_map_dbl <- purrr::map_dbl(mtcars, ~ .x / 10)

# map_chr(): Belgilar vektorining har bir elementiga funktsiyani qo'llang va belgilar vektorini qaytaring


result_map_chr <- purrr::map_chr(mtcars, as.character)

# Natijalarni ko'rsatish


print(result_map)
print(result_map_lgl)
print(result_map_int)
print(result_map_dbl)
print(result_map_chr)

Yüklə 18,75 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə