From 8d8cc46bdecd20852daf6dae820376494826165f Mon Sep 17 00:00:00 2001 From: Artem Darius Weber Date: Sat, 21 Sep 2024 15:24:52 +0300 Subject: [PATCH] ref: delete lab[1-2] files from lab3 branch --- lab1/README.md | 67 ------------------- lab1/spec/spec_02.rb | 16 ----- lab1/spec/spec_03.rb | 34 ---------- lab1/src/01_hello_world.rb | 2 - lab1/src/02_user_interface.rb | 30 --------- .../03_fork_02_with_exec_pasted_command.rb | 39 ----------- lab1/src/04_number_funcs.rb | 67 ------------------- lab2/README.md | 4 -- lab2/main.rb | 27 -------- lab2/student.rb | 33 --------- 10 files changed, 319 deletions(-) delete mode 100644 lab1/README.md delete mode 100644 lab1/spec/spec_02.rb delete mode 100644 lab1/spec/spec_03.rb delete mode 100644 lab1/src/01_hello_world.rb delete mode 100644 lab1/src/02_user_interface.rb delete mode 100644 lab1/src/03_fork_02_with_exec_pasted_command.rb delete mode 100644 lab1/src/04_number_funcs.rb delete mode 100644 lab2/README.md delete mode 100644 lab2/main.rb delete mode 100644 lab2/student.rb diff --git a/lab1/README.md b/lab1/README.md deleted file mode 100644 index 21c405d..0000000 --- a/lab1/README.md +++ /dev/null @@ -1,67 +0,0 @@ -# Lab 1 - ---- - -## 01. Hello world - -Task: - -Установить компилятор и текстовый редактор. Реализовать и -вызвать Hello World c комментарием. (ну как всегда) - -```bash -ruby 01_hello_world.rb -``` - -Returns: - -``` -Hello, world! -``` - -## 02. User interface - -Task: - -Принять имя пользователя как аргумент программы. -Поздороваться с пользователем с использованием форматирования -строки. Спросить какой язык у пользователя любимый, в случае, если это -ruby, ответить что пользователь подлиза, иначе обязательно ответить, что -скоро будет ruby и поставить различные комментарии для нескольких -языков. - -```bash -ruby 02_user_interface.rb darius -``` - -## 03. User interface with ruby and os commands execution - -Task: - -3.Продолжение предыдущего задания. Попросить пользователя -ввести команду языка ruby. И команду OC. Выполнить команду руби и -команду операционной системы. - -```bash -ruby 03_fork_02_with_exec_pasted_command.rb darius -``` - -## 04. Number funcations - -Task: - -«Работа с числами». Составить 3 метода для работы с цифрами или делителей числа на основании варианта. Каждый метод отдельный коммит. - -- Метод 1. Найти количество четных чисел, не взаимно простых с данным -- Метод 2. Найти максимальную цифры числа, не делящуюся на 3. -- Метод 3. Найти произведение максимального числа, не взаимно простого с данным, не делящегося на наименьший делитель исходно числа, и суммы цифр числа, меньших 5. - -```bash -ruby 04_number_funcs.rb -``` - ---- - -Author: Artem-Darius Weber - -Licence: MIT \ No newline at end of file diff --git a/lab1/spec/spec_02.rb b/lab1/spec/spec_02.rb deleted file mode 100644 index 44080ff..0000000 --- a/lab1/spec/spec_02.rb +++ /dev/null @@ -1,16 +0,0 @@ -require_relative '../src/02_user_interface.rb' - -RSpec.describe "Main" do - before do - allow(STDIN).to receive(:gets).and_return("ruby\n") - end - - it "greets the user and checks Ruby as language" do - expect { main() }.to output("Hello my catgirl test_user! \nWhat is your love language?\nruby\nc++\npy\nПодлиза \n").to_stdout - end - - it "handles unknown language input" do - allow(STDIN).to receive(:gets).and_return("java\n") - expect { main() }.to output(/Неизвестный язык: java/).to_stdout - end -end \ No newline at end of file diff --git a/lab1/spec/spec_03.rb b/lab1/spec/spec_03.rb deleted file mode 100644 index 434b534..0000000 --- a/lab1/spec/spec_03.rb +++ /dev/null @@ -1,34 +0,0 @@ -require_relative '../src/03_fork_02_with_exec_pasted_command.rb' - -RSpec.describe "Main" do - before do - allow(STDIN).to receive(:gets).and_return("ruby\n", "puts 'Hello from Ruby!'\n", "echo 'Hello from shell!'\n") - allow(ARGV).to receive(:[]).with(0).and_return("test_user") - end - - it "greets the user and processes ruby input" do - expect { main() }.to output(/Hello my catgirl test_user! \nWhat is your love language?\nruby\nc++\npy\nПодлиза \n/).to_stdout - end - - it "executes valid ruby command" do - allow(STDIN).to receive(:gets).and_return("ruby\n", "puts 'Hello from Ruby!'\n") - - expect { main() }.to output(/Hello from Ruby!/).to_stdout - end - - it "handles ruby command execution error" do - allow(STDIN).to receive(:gets).and_return("ruby\n", "invalid_ruby_code\n") - - expect { main() }.to output(/Ошибка выполнения команды Ruby: undefined local variable or method `invalid_ruby_code'/).to_stdout - end - - it "executes shell command" do - allow(STDIN).to receive(:gets).and_return("ruby\n", "puts 'Hello from Ruby!'\n", "echo 'Hello from shell!'\n") - expect(main()).to include("Hello from shell!") - end - - it "returns correct output for unknown programming language" do - allow(STDIN).to receive(:gets).and_return("java\n") - expect { main() }.to output(/Неизвестный язык: java/).to_stdout - end -end diff --git a/lab1/src/01_hello_world.rb b/lab1/src/01_hello_world.rb deleted file mode 100644 index 717d507..0000000 --- a/lab1/src/01_hello_world.rb +++ /dev/null @@ -1,2 +0,0 @@ -puts "Hello, world!" - diff --git a/lab1/src/02_user_interface.rb b/lab1/src/02_user_interface.rb deleted file mode 100644 index f68737b..0000000 --- a/lab1/src/02_user_interface.rb +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env ruby - -LANGUAGES = [ - "ruby", - "c++", - "py" -] - -def main() - user_name = ARGV[0] - puts "Hello my catgirl #{user_name}! \nWhat is your love language?" - LANGUAGES.each { |language| puts "#{language}", " " } - - user_lang = STDIN.gets.chomp - - case user_lang - when "ruby" - puts "Подлиза \n" - when "c++" - puts "MATLAB скушал? \n" - when "TS/JS" - puts "Фронтендер, Фууу! \n" - when "py" - puts "Девопсер, иди ДАГИ писать \n" - else - puts "Неизвестный язык: #{user_lang}" - end -end - -main() diff --git a/lab1/src/03_fork_02_with_exec_pasted_command.rb b/lab1/src/03_fork_02_with_exec_pasted_command.rb deleted file mode 100644 index 3d05635..0000000 --- a/lab1/src/03_fork_02_with_exec_pasted_command.rb +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env ruby - -LANGUAGES = [ - "ruby", - "c++", - "py" -] - -def main() - user_name = ARGV[0] - puts "Hello my catgirl #{user_name}! \nWhat is your love language?" - LANGUAGES.each { |language| puts "#{language}", " " } - - user_lang = STDIN.gets.chomp - case user_lang - when "ruby" - puts "Подлиза \n" - when "c++" - puts "MATLAB скушал? \n" - when "TS/JS" - puts "Фронтендер, Фууу! \n" - when "py" - puts "Девопсер, иди ДАГИ писать \n" - end - - puts "Введите команду на языке Ruby для выполнения:" - ruby_command = STDIN.gets.chomp - begin - eval(ruby_command) - rescue Exception => e - puts "Ошибка выполнения команды Ruby: #{e.message}" - end - - puts "Введите команду операционной системы для выполнения:" - os_command = STDIN.gets.chomp - system(os_command) -end - -main() diff --git a/lab1/src/04_number_funcs.rb b/lab1/src/04_number_funcs.rb deleted file mode 100644 index 588e2ec..0000000 --- a/lab1/src/04_number_funcs.rb +++ /dev/null @@ -1,67 +0,0 @@ -require 'prime' - - - - -# @param n [Integer] Число, для которого нужно найти количество четных, не взаимно простых чисел. -# @return [Integer] Количество четных чисел, не взаимно простых с данным числом. -# @example -# count_even_non_coprimes(30) # => 14 -def count_even_non_coprimes(n) - (1...n).count do |num| - num.even? && n.gcd(num) != 1 - end -end - - -# @param n [Integer] Число, цифры которого нужно проверить. -# @return [Integer, nil] Максимальная цифра числа, не делящаяся на 3, или nil, если таких цифр нет. -# @example -# max_digit_not_divisible_by_three(483726) # => 8 -def max_digit_not_divisible_by_three(n) - n.digits.select { |digit| digit % 3 != 0 }.max -end - - -# @param n [Integer] Число, для которого нужно найти наименьший делитель. -# @return [Integer] Наименьший делитель числа. -# @example -# smallest_divisor(30) # => 2 -def smallest_divisor(n) - (2..n).find { |i| n % i == 0 } -end - - -# @param n [Integer] Число, для которого нужно найти подходящее максимальное число. -# @return [Integer, nil] Максимальное число, не взаимно простое с данным, не делящееся на наименьший делитель, или nil, если таких чисел нет. -# @example -# max_non_coprime_not_divisible_by_smallest_divisor(30) # => 28 -def max_non_coprime_not_divisible_by_smallest_divisor(n) - divisor = smallest_divisor(n) - (1...n).select { |num| n.gcd(num) != 1 && num % divisor != 0 }.max -end - - -# @param n [Integer] Число, цифры которого нужно просуммировать. -# @return [Integer] Сумма цифр числа, меньших 5. -# @example -# sum_of_digits_less_than_five(483726) # => 9 -def sum_of_digits_less_than_five(n) - n.digits.select { |digit| digit < 5 }.sum -end - - -# @param n [Integer] Число, для которого проводится вычисление. -# @return [Integer] Произведение максимального числа и суммы цифр числа. -# @example -# product_of_max_and_sum(30) # => 252 -def product_of_max_and_sum(n) - max_number = max_non_coprime_not_divisible_by_smallest_divisor(n) - sum_digits = sum_of_digits_less_than_five(n) - max_number * sum_digits -end - - -puts count_even_non_coprimes(30) # => 14 -puts max_digit_not_divisible_by_three(483726) # => 8 -puts product_of_max_and_sum(30) # => 252 diff --git a/lab2/README.md b/lab2/README.md deleted file mode 100644 index 5ad6678..0000000 --- a/lab2/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Lab 2 - -> "И тут я обнаружил что случайно сделал 3-5 задачи в 1-2" - diff --git a/lab2/main.rb b/lab2/main.rb deleted file mode 100644 index b426934..0000000 --- a/lab2/main.rb +++ /dev/null @@ -1,27 +0,0 @@ -require_relative 'student' - -begin - student1 = Student.new( - surname: 'Алексеевич', - name: 'Артем-Дариус', - patronymic: 'Вебер', - id: 1, - phone: '+79891242223', - telegram: '@alstroemeria22', - email: 'no-replay@djft.ru', - git: 'https://git.djft.ru' - ) - - student2 = Student.new( - surname: 'nil', - name: 'Норакет', - patronymic: 'nil' - ) - - puts student1 - puts '-' * 40 - puts student2 -rescue ArgumentError => e - puts "Err.: #{e.message}" -end - diff --git a/lab2/student.rb b/lab2/student.rb deleted file mode 100644 index 14f5464..0000000 --- a/lab2/student.rb +++ /dev/null @@ -1,33 +0,0 @@ -class Student - attr_accessor :id, :surname, :name, :patronymic, :phone, :telegram, :email, :git - - def self.valid_phone_number?(phone) - phone.match?(/\A\+?[0-9]{10,15}\z/) - end - - def initialize(args = {}) - @surname = args.fetch(:surname) - @name = args.fetch(:name) - @patronymic = args.fetch(:patronymic) - - @id = args[:id] || nil - - @phone = args[:phone] - if @phone && !Student.valid_phone_number?(@phone) - raise ArgumentError, "Invalid phone number format: #{@phone}" - end - - @telegram = args[:telegram] || nil - @email = args[:email] || nil - @git = args[:git] || nil - end - - def to_s - "Student: #{@surname} #{@name} #{@patronymic}\n" \ - "ID: #{@id || 'N/A'}\n" \ - "Phone: #{@phone || 'N/A'}\n" \ - "Telegram: #{@telegram || 'N/A'}\n" \ - "Email: #{@email || 'N/A'}\n" \ - "Git: #{@git || 'N/A'}" - end - end \ No newline at end of file