From 10362d3aaf5c58c4b5451c296e4915d0c3b8fc39 Mon Sep 17 00:00:00 2001 From: Artem Darius Weber Date: Sat, 21 Sep 2024 15:22:45 +0300 Subject: [PATCH] ref: delete lab1 code from lab2 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 ------------------- 7 files changed, 255 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 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