Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions examples/02-variables.som
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Variables and Constants with Type Annotations
тағйирёбанда ном: сатр = "Аҳмад";
тағйирёбанда синну_сол: рақам = 25;
тағйирёбанда дуруст_аст: мантиқӣ = дуруст;
тағ ном: сатр = "Аҳмад";
тағ синну_сол: рақам = 25;
тағ дуруст_аст: мантиқӣ = дуруст;
собит ПИ: рақам = 3.14159;

чоп.сабт("Ном: " + ном);
Expand Down
10 changes: 5 additions & 5 deletions examples/03-typed-variables.som
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Typed Variables with Type Annotations
тағйирёбанда ном: сатр = "Дониёр";
тағйирёбанда синну_сол: рақам = 30;
тағйирёбанда калон_аст: мантиқӣ = дуруст;
тағ ном: сатр = "Дониёр";
тағ синну_сол: рақам = 30;
тағ калон_аст: мантиқӣ = дуруст;
собит МАКСИМУМ: рақам = 100;

чоп.сабт("Ном (сатр): " + ном);
Expand All @@ -10,8 +10,8 @@
чоп.сабт("Максимум (собит): " + МАКСИМУМ);

// Array types
тағйирёбанда рақамҳо: рақам[] = [1, 2, 3, 4, 5];
тағйирёбанда номҳо: сатр[] = ["Али", "Фарида", "Ҷамол"];
тағ рақамҳо: рақам[] = [1, 2, 3, 4, 5];
тағ номҳо: сатр[] = ["Али", "Фарида", "Ҷамол"];

чоп.сабт("Рақамҳо: " + рақамҳо);
чоп.сабт("Номҳо: " + номҳо);
8 changes: 4 additions & 4 deletions examples/04-functions.som
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,20 @@
}

функсия ҳисоб_кардани_майдон(дарозӣ: рақам, паҳнӣ: рақам): рақам {
тағйирёбанда майдон: рақам = дарозӣ * паҳнӣ;
тағ майдон: рақам = дарозӣ * паҳнӣ;
бозгашт майдон;
}

// Function calls
салом("Ҷаҳон");
салом("Тоҷикистон");

тағйирёбанда натиҷа: рақам = ҷамъ_кардан(10, 20);
тағ натиҷа: рақам = ҷамъ_кардан(10, 20);
чоп.сабт("10 + 20 = " + натиҷа);

тағйирёбанда майдон: рақам = ҳисоб_кардани_майдон(5, 8);
тағ майдон: рақам = ҳисоб_кардани_майдон(5, 8);
чоп.сабт("Майдони тӯртбурчӣ: " + майдон);

// Nested function calls
тағйирёбанда калон_натиҷа: рақам = ҷамъ_кардан(ҷамъ_кардан(5, 10), ҷамъ_кардан(15, 20));
тағ калон_натиҷа: рақам = ҷамъ_кардан(ҷамъ_кардан(5, 10), ҷамъ_кардан(15, 20));
чоп.сабт("Калон натиҷа: " + калон_натиҷа);
6 changes: 3 additions & 3 deletions examples/05-typed-functions.som
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@
// Function usage
салом_бо_навъ("Фарҳод");

тағйирёбанда ҷамъ: рақам = ҷамъ_кардани_рақамҳо(25, 17);
тағ ҷамъ: рақам = ҷамъ_кардани_рақамҳо(25, 17);
чоп.сабт("Ҷамъ: " + ҷамъ);

тағйирёбанда пурра_ном: сатр = пайвастани_сатрҳо("Аҳмад", "Раҳимов");
тағ пурра_ном: сатр = пайвастани_сатрҳо("Аҳмад", "Раҳимов");
чоп.сабт("Пурра ном: " + пурра_ном);

тағйирёбанда калон_аст: мантиқӣ = санҷиши_калонӣ(20);
тағ калон_аст: мантиқӣ = санҷиши_калонӣ(20);
чоп.сабт("Калонсол аст: " + калон_аст);
8 changes: 4 additions & 4 deletions examples/06-conditionals.som
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Conditional Statements with Type Annotations
тағйирёбанда синну_сол: рақам = 20;
тағйирёбанда баҳо: рақам = 85;
тағ синну_сол: рақам = 20;
тағ баҳо: рақам = 85;

// Simple if-else
агар (синну_сол >= 18) {
Expand All @@ -23,8 +23,8 @@
}

// Complex conditions
тағйирёбанда ном: сатр = "Али";
тағйирёбанда дастрасӣ: мантиқӣ = дуруст;
тағ ном: сатр = "Али";
тағ дастрасӣ: мантиқӣ = дуруст;

агар (ном == "Али" && дастрасӣ == дуруст) {
чоп.сабт("Салом Али! Шумо дастрасӣ доред");
Expand Down
16 changes: 8 additions & 8 deletions examples/07-loops.som
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
// Loop Constructs with Type Annotations
чоп.сабт("=== Давраи То (While) ===");
тағйирёбанда и: рақам = 1;
тағ и: рақам = 1;
то (и <= 5) {
чоп.сабт("Адад: " + и);
и = и + 1;
}

чоп.сабт("\n=== Давраи Барои (For-like with while) ===");
тағйирёбанда ҷ: рақам = 0;
тағ ҷ: рақам = 0;
то (ҷ < 3) {
чоп.сабт("Такрор: " + ҷ);
ҷ = ҷ + 1;
}

чоп.сабт("\n=== Ҳисоби Факториал ===");
тағйирёбанда рақам: рақам = 5;
тағйирёбанда факториал: рақам = 1;
тағйирёбанда к: рақам = 1;
тағ рақам: рақам = 5;
тағ факториал: рақам = 1;
тағ к: рақам = 1;

то (к <= рақам) {
факториал = факториал * к;
Expand All @@ -26,11 +26,11 @@
чоп.сабт("Факториали " + рақам + " = " + факториал);

чоп.сабт("\n=== Ҷадвали Зарб ===");
тағйирёбанда х: рақам = 1;
тағ х: рақам = 1;
то (х <= 3) {
тағйирёбанда у: рақам = 1;
тағ у: рақам = 1;
то (у <= 3) {
тағйирёбанда натиҷа: рақам = х * у;
тағ натиҷа: рақам = х * у;
чоп.сабт(х + " × " + у + " = " + натиҷа);
у = у + 1;
}
Expand Down
12 changes: 6 additions & 6 deletions examples/08-arrays.som
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Arrays and Array Operations with Type Annotations
тағйирёбанда рақамҳо: рақам[] = [1, 2, 3, 4, 5];
тағйирёбанда номҳо: сатр[] = ["Али", "Фотима", "Ҳасан"];
тағйирёбанда холӣ_рӯйхат: ҳар[] = [];
тағ рақамҳо: рақам[] = [1, 2, 3, 4, 5];
тағ номҳо: сатр[] = ["Али", "Фотима", "Ҳасан"];
тағ холӣ_рӯйхат: ҳар[] = [];

чоп.сабт("Рақамҳо: " + рақамҳо);
чоп.сабт("Номҳо: " + номҳо);
Expand All @@ -23,15 +23,15 @@

// Working with arrays in loops
чоп.сабт("\n=== Ҳамаи рақамҳо ===");
тағйирёбанда индекс: рақам = 0;
тағ индекс: рақам = 0;
то (индекс < рақамҳо.дарозӣ) {
чоп.сабт("Рақам[" + индекс + "] = " + рақамҳо[индекс]);
индекс = индекс + 1;
}

// Sum of array elements
тағйирёбанда ҷамъ: рақам = 0;
тағйирёбанда и: рақам = 0;
тағ ҷамъ: рақам = 0;
тағ и: рақам = 0;
то (и < рақамҳо.дарозӣ) {
ҷамъ = ҷамъ + рақамҳо[и];
и = и + 1;
Expand Down
2 changes: 1 addition & 1 deletion examples/09-interfaces.som
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@

// Union types
навъ Натиҷа = сатр | рақам | мантиқӣ;
навъ Ҳолат = "фаъол" | "ғайрифаъол" | "интизор";
навъ Статус = "фаъол" | "ғайрифаъол" | "интизор";

чоп.сабт("Интерфейсҳо муайян карда шуданд");
чоп.сабт("Онҳо барои таъмини навъҳои маълумот истифода мешаванд");
4 changes: 2 additions & 2 deletions examples/10-classes-basic.som
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
}

// Create instances
тағйирёбанда шахс1 = нав Шахс("Аҳмад Раҳимов", 25);
тағйирёбанда шахс2 = нав Шахс("Фотима Каримова", 22);
тағ шахс1 = нав Шахс("Аҳмад Раҳимов", 25);
тағ шахс2 = нав Шахс("Фотима Каримова", 22);

// Use methods
чоп.сабт("=== Маълумоти Шахсон ===");
Expand Down
16 changes: 8 additions & 8 deletions examples/11-classes-advanced.som
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,20 @@
}

ҷамъиятӣ ҷамъ_кардан(а: рақам, б: рақам): рақам {
тағйирёбанда натиҷа = а + б;
тағ натиҷа = а + б;
чоп.сабт(ин.ном + ": " + а + " + " + б + " = " + натиҷа);
бозгашт натиҷа;
}

ҷамъиятӣ зарб_кардан(а: рақам, б: рақам): рақам {
тағйирёбанда натиҷа = а * б;
тағ натиҷа = а * б;
чоп.сабт(ин.ном + ": " + а + " × " + б + " = " + натиҷа);
бозгашт натиҷа;
}

ҷамъиятӣ ҳисоби_дараҷа(асос: рақам, дараҷа: рақам): рақам {
тағйирёбанда натиҷа = 1;
тағйирёбанда и = 0;
тағ натиҷа = 1;
тағ и = 0;
то (и < дараҷа) {
натиҷа = натиҷа * асос;
и = и + 1;
Expand All @@ -38,11 +38,11 @@

чоп.сабт("=== Синфи Ҳисобгар ===");

тағйирёбанда ҳисобгар = нав Ҳисобгар("Математикӣ");
тағ ҳисобгар = нав Ҳисобгар("Математикӣ");
чоп.сабт(ҳисобгар.маълумот());

тағйирёбанда ҷамъ = ҳисобгар.ҷамъ_кардан(15, 25);
тағйирёбанда зарб = ҳисобгар.зарб_кардан(7, 8);
тағйирёбанда дараҷа = ҳисобгар.ҳисоби_дараҷа(2, 5);
тағ ҷамъ = ҳисобгар.ҷамъ_кардан(15, 25);
тағ зарб = ҳисобгар.зарб_кардан(7, 8);
тағ дараҷа = ҳисобгар.ҳисоби_дараҷа(2, 5);

чоп.сабт("Ҳамаи натиҷаҳо: " + ҷамъ + ", " + зарб + ", " + дараҷа);
54 changes: 27 additions & 27 deletions examples/12-student-management-system.som
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@
бозгашт 0;
}

тағйирёбанда ҷамъ = 0;
барои (тағйирёбанда и = 0; и < ин.баҳоҳо.дарозӣ; и++) {
тағ ҷамъ = 0;
барои (тағ и = 0; и < ин.баҳоҳо.дарозӣ; и++) {
ҷамъ += ин.баҳоҳо[и].гирифтани_қимат();
}

Expand All @@ -85,8 +85,8 @@
}

ҷамъиятӣ маълумот(): сатр {
тағйирёбанда асосӣ_маълумот = супер.маълумот();
тағйирёбанда миёнаи_баҳо = ин.ҳисоби_миёнаи_баҳо();
тағ асосӣ_маълумот = супер.маълумот();
тағ миёнаи_баҳо = ин.ҳисоби_миёнаи_баҳо();
бозгашт асосӣ_маълумот + ", Рақами донишҷӯӣ: " + ин.рақами_донишҷӯӣ +
", Миёнаи баҳо: " + миёнаи_баҳо.toFixed(2);
}
Expand Down Expand Up @@ -219,7 +219,7 @@
}

ҷамъиятӣ ҷустуҷӯи_донишҷӯ(рақами_донишҷӯӣ: сатр): Донишҷӯ | холӣ {
барои (тағйирёбанда и = 0; и < ин.донишҷӯён.дарозӣ; и++) {
барои (тағ и = 0; и < ин.донишҷӯён.дарозӣ; и++) {
агар (ин.донишҷӯён[и].гирифтани_рақами_донишҷӯӣ() == рақами_донишҷӯӣ) {
бозгашт ин.донишҷӯён[и];
}
Expand All @@ -228,7 +228,7 @@
}

ҷамъиятӣ ҷустуҷӯи_фан(код: сатр): Фан | холӣ {
барои (тағйирёбанда и = 0; и < ин.фанҳо.дарозӣ; и++) {
барои (тағ и = 0; и < ин.фанҳо.дарозӣ; и++) {
агар (ин.фанҳо[и].гирифтани_код() == код) {
бозгашт ин.фанҳо[и];
}
Expand All @@ -237,8 +237,8 @@
}

ҷамъиятӣ сабти_донишҷӯ_дар_фан(рақами_донишҷӯӣ: сатр, коди_фан: сатр): мантиқӣ {
тағйирёбанда донишҷӯ = ин.ҷустуҷӯи_донишҷӯ(рақами_донишҷӯӣ);
тағйирёбанда фан = ин.ҷустуҷӯи_фан(коди_фан);
тағ донишҷӯ = ин.ҷустуҷӯи_донишҷӯ(рақами_донишҷӯӣ);
тағ фан = ин.ҷустуҷӯи_фан(коди_фан);

агар (донишҷӯ != холӣ && фан != холӣ) {
фан.сабти_донишҷӯ(донишҷӯ);
Expand All @@ -250,11 +250,11 @@
}

ҷамъиятӣ илова_кардани_баҳо(рақами_донишҷӯӣ: сатр, коди_фан: сатр, қимати_баҳо: рақам, сана: сатр): мантиқӣ {
тағйирёбанда донишҷӯ = ин.ҷустуҷӯи_донишҷӯ(рақами_донишҷӯӣ);
тағйирёбанда фан = ин.ҷустуҷӯи_фан(коди_фан);
тағ донишҷӯ = ин.ҷустуҷӯи_донишҷӯ(рақами_донишҷӯӣ);
тағ фан = ин.ҷустуҷӯи_фан(коди_фан);

агар (донишҷӯ != холӣ && фан != холӣ) {
тағйирёбанда баҳо = нав Баҳо(қимати_баҳо, фан, донишҷӯ, сана);
тағ баҳо = нав Баҳо(қимати_баҳо, фан, донишҷӯ, сана);
донишҷӯ.илова_кардани_баҳо(баҳо);
бозгашт дуруст;
} вагарна {
Expand All @@ -265,27 +265,27 @@

ҷамъиятӣ гузориши_донишҷӯён(): холӣ {
чоп.сабт("\n=== Гузориши ҳамаи донишҷӯён ===");
барои (тағйирёбанда и = 0; и < ин.донишҷӯён.дарозӣ; и++) {
барои (тағ и = 0; и < ин.донишҷӯён.дарозӣ; и++) {
чоп.сабт(ин.донишҷӯён[и].маълумот());
}
}

ҷамъиятӣ гузориши_фанҳо(): холӣ {
чоп.сабт("\n=== Гузориши ҳамаи фанҳо ===");
барои (тағйирёбанда и = 0; и < ин.фанҳо.дарозӣ; и++) {
барои (тағ и = 0; и < ин.фанҳо.дарозӣ; и++) {
чоп.сабт(ин.фанҳо[и].маълумот());
}
}

ҷамъиятӣ беҳтарин_донишҷӯён(шумора: рақам): Рӯйхат<Донишҷӯ> {
// Sort students by average grade (descending)
тағйирёбанда мураттабшуда = ин.донишҷӯён.буридан();
тағ мураттабшуда = ин.донишҷӯён.буридан();

// Simple bubble sort for demonstration
барои (тағйирёбанда и = 0; и < мураттабшуда.дарозӣ - 1; и++) {
барои (тағйирёбанда ҷ = 0; ҷ < мураттабшуда.дарозӣ - и - 1; ҷ++) {
барои (тағ и = 0; и < мураттабшуда.дарозӣ - 1; и++) {
барои (тағ ҷ = 0; ҷ < мураттабшуда.дарозӣ - и - 1; ҷ++) {
агар (мураттабшуда[ҷ].ҳисоби_миёнаи_баҳо() < мураттабшуда[ҷ + 1].ҳисоби_миёнаи_баҳо()) {
тағйирёбанда муваққатӣ = мураттабшуда[ҷ];
тағ муваққатӣ = мураттабшуда[ҷ];
мураттабшуда[ҷ] = мураттабшуда[ҷ + 1];
мураттабшуда[ҷ + 1] = муваққатӣ;
}
Expand All @@ -301,22 +301,22 @@
чоп.сабт("=== Системаи Идораи Мактаб - Phase 2: OOP ===\n");

// Create school management system
тағйирёбанда система = нав Системаи_Идораи_Мактаб();
тағ система = нав Системаи_Идораи_Мактаб();

// Create students
тағйирёбанда донишҷӯ1 = нав Донишҷӯ("Аҳмад Раҳимов", 20, "STU001");
тағйирёбанда донишҷӯ2 = нав Донишҷӯ("Фотима Каримова", 19, "STU002");
тағйирёбанда донишҷӯ3 = нав Донишҷӯ("Дониёр Саидов", 21, "STU003");
тағ донишҷӯ1 = нав Донишҷӯ("Аҳмад Раҳимов", 20, "STU001");
тағ донишҷӯ2 = нав Донишҷӯ("Фотима Каримова", 19, "STU002");
тағ донишҷӯ3 = нав Донишҷӯ("Дониёр Саидов", 21, "STU003");

// Add students to system
система.илова_кардани_донишҷӯ(донишҷӯ1);
система.илова_кардани_донишҷӯ(донишҷӯ2);
система.илова_кардани_донишҷӯ(донишҷӯ3);

// Create courses
тағйирёбанда математика = нав Фан("Математика", "MATH101", 3);
тағйирёбанда физика = нав Фан("Физика", "PHYS101", 4);
тағйирёбанда забони_тоҷикӣ = нав Фан("Забони тоҷикӣ", "TJK101", 2);
тағ математика = нав Фан("Математика", "MATH101", 3);
тағ физика = нав Фан("Физика", "PHYS101", 4);
тағ забони_тоҷикӣ = нав Фан("Забони тоҷикӣ", "TJK101", 2);

// Add courses to system
система.илова_кардани_фан(математика);
Expand Down Expand Up @@ -347,15 +347,15 @@

// Show top students
чоп.сабт("\n=== Беҳтарин донишҷӯён ===");
тағйирёбанда беҳтарин = система.беҳтарин_донишҷӯён(2);
барои (тағйирёбанда и = 0; и < беҳтарин.дарозӣ; и++) {
тағ беҳтарин = система.беҳтарин_донишҷӯён(2);
барои (тағ и = 0; и < беҳтарин.дарозӣ; и++) {
чоп.сабт((и + 1) + ". " + беҳтарин[и].маълумот());
}

// Demonstrate error handling
чоп.сабт("\n=== Санҷиши хатогирӣ ===");
кӯшиш {
тағйирёбанда баҳои_нодуруст = нав Баҳо(150, математика, донишҷӯ1, "2024-01-25");
тағ баҳои_нодуруст = нав Баҳо(150, математика, донишҷӯ1, "2024-01-25");
} гирифтан (хато) {
чоп.хато("Хато дар эҷоди баҳо: " + хато.message);
}
Expand Down
Loading
Loading