diff --git "a/reports/Bosak/lab2/rep/\320\241\320\237\320\237(\320\273\320\260\320\2612).pdf" "b/reports/Bosak/lab2/rep/\320\241\320\237\320\237(\320\273\320\260\320\2612).pdf" new file mode 100644 index 00000000..7d935427 Binary files /dev/null and "b/reports/Bosak/lab2/rep/\320\241\320\237\320\237(\320\273\320\260\320\2612).pdf" differ diff --git a/reports/Bosak/lab2/src/1.py b/reports/Bosak/lab2/src/1.py new file mode 100644 index 00000000..d70fea17 --- /dev/null +++ b/reports/Bosak/lab2/src/1.py @@ -0,0 +1,37 @@ +class Rectangle: + def __init__(self, side_a, side_b): + self.side_a = side_a + self.side_b = side_b + + def area(self): + return self.side_a * self.side_b + + def perimeter(self): + return 2 * (self.side_a + self.side_b) + + def is_square(self): + return self.side_a == self.side_b + + def exists(self): + return self.side_a > 0 and self.side_b > 0 + + def __str__(self): + return f"Rectangle({self.side_a}, {self.side_b})" + + def __eq__(self, other): + return self.area() == other.area() + + +def main(): + a = float(input("Side a: ")) + b = float(input("Side b: ")) + rect = Rectangle(a, b) + print(rect) + print(f"Area: {rect.area()}") + print(f"Perimeter: {rect.perimeter()}") + print(f"Is square: {rect.is_square()}") + print(f"Exists: {rect.exists()}") + + +if __name__ == "__main__": + main() diff --git a/reports/Bosak/lab2/src/2.py b/reports/Bosak/lab2/src/2.py new file mode 100644 index 00000000..0bddeca5 --- /dev/null +++ b/reports/Bosak/lab2/src/2.py @@ -0,0 +1,47 @@ +class Abiturient: + def __init__(self, name): + self.name = name + self.grades = [] + + def add_grade(self, grade): + self.grades.append(grade) + + def avg_grade(self): + return sum(self.grades) / len(self.grades) if self.grades else 0 + + def is_admitted(self, passing_score=60): + return self.avg_grade() >= passing_score + + +class Faculty: + def __init__(self, name): + self.name = name + self.abiturients = [] + + def register(self, abiturient): + self.abiturients.append(abiturient) + + +def main(): + faculty = Faculty(input("Faculty name: ")) + num = int(input("Number of abiturients: ")) + + for _ in range(num): + name = input("Abiturient name: ") + ab = Abiturient(name) + faculty.register(ab) + + exam_count = int(input(f"Number of exams for {name}: ")) + for _ in range(exam_count): + exam_name = input("Exam name: ") + teacher = input("Teacher: ") + grade = float(input("Grade: ")) + ab.add_grade(grade) + + print("\nResults:") + for ab in faculty.abiturients: + print(f"{ab.name}: average = {ab.avg_grade():.2f}, admitted: {ab.is_admitted()}") + + +if __name__ == "__main__": + main()