Quadratic eq. in python
They need:
- more tests
- imaginary roots solving (?)
- to be shorter
tests working 👍 and i couldn't translate the VN comments (T_T)
import math def quadratic(a, b, c): l = [] if a == 0: return 'error! a cannot be 0!' else: D = (b**2) - (4*a*c) if D >= 0: alp = (-b + math.sqrt(D))/(2*a) bet = (-b - math.sqrt(D))/(2*a) l.append(D) l.append(round(alp, 3)) l.append(round(bet,3)) return l else: return "nope can do, roots are imaginary or do not exist and I'm not dealing with either"
//IamQuan :3- import math
//Libraly#include<iostream>#include <math.h>using namespace std;//Code//Ham Phu de goi an cho a b cdouble GoiAn(){double ABC{};std::cin >> ABC;return ABC;}//Codeint main(){//Khai bao cho DKint A{};//Khai bao cho tinh toandouble x1, x2;//--------------------------------------------------// User nhap a b ccout << "Chuong trinh tinh phuong trinh bac 2 mot an\n";cout << "Vui long nhap cac he so a , b , c\n";cout << "---------------------------------------------" << endl;//Nhap he so acout << "Nhap he so a: " ;double a{GoiAn()};- def quadratic(a, b, c):
- l = []
- if a == 0:
- return 'error! a cannot be 0!'
- else:
- D = (b**2) - (4*a*c)
- if D >= 0:
- alp = (-b + math.sqrt(D))/(2*a)
- bet = (-b - math.sqrt(D))/(2*a)
- l.append(D)
- l.append(round(alp, 3))
- l.append(round(bet,3))
- return l
- else:
- return "nope can do, roots are imaginary or do not exist and I'm not dealing with either"
//Dieu kienwhile (a == 0 && A < 1000){cout << "Phuong trinh da chuyen ve \nphuong trinh bac nhat mot an" << endl;cout << "Ban co muon nhap lai ham so a ?\nNeu muon thi nhap lai.\na:" << endl;cin >> a;A++;}//Nhap he so bcout << "Nhap he so b: ";double b{ GoiAn() };//Nhap he so ccout << "Nhap he so c: ";double c{ GoiAn() };// Thong bao cho usercout << "Dang tinh delta va nghiem ......." << endl;//Khai bao Deltadouble delta{ (b * b) - 4 * a * c };//Tinh deltaif (delta < 0){cout << "Delta = " << delta << "\n";cout << " => Phuong trinh vo nghiem " << endl;}else if (delta == 0){cout << "Delta = " << delta << "\n";cout << " => Phuong trinh co nghiem kep " << endl;}else if (delta > 0){cout << "Delta = " << delta << "\n";cout << " => Phuong trinh co 2 nghiem phan biet " << endl;}cout << "\n\n";//Tinh nghiemif (delta > 0){x1 = (-b - sqrt(delta)) / (2 * a);x2 = (-b + sqrt(delta)) / (2 * a);cout << "Nghiem cua phuong trinh la: \n";cout << "x1 = " << x1 << endl;cout << "x2 = " << x2 << endl;}else if (delta == 0) {x1 = x2 = -b / (2 * a);cout << "Nghiem cua phuong trinh la: \n";cout << "x1 = x2 = " << x1 << endl;}else{cout << "Vi phuong trinh vo nghiem nen khong co nghiem" << endl;}system("pause");return 0;}
import codewars_test as test @test.describe("tests") def fixed_tests(): @test.it('test cases 1') def test_case(): test.assert_equals(quadratic(0, 2, 4), 'error! a cannot be 0!') test.assert_equals(quadratic(3, -5, 2), [1, 1, 0.667]) test.assert_equals(quadratic(50, 26, 25), "nope can do, roots are imaginary or do not exist and I'm not dealing with either") test.assert_equals(quadratic(50, 75, 25), [625, -0.5, -1]) test.assert_equals(quadratic(1, 2, 1), [0, -1, -1]) test.assert_equals(quadratic(2, 5, -3), [49, 0.5, -3])
- import codewars_test as test
- @test.describe("tests")
- def fixed_tests():
- @test.it('test cases 1')
- def test_case():
- test.assert_equals(quadratic(0, 2, 4), 'error! a cannot be 0!')
- test.assert_equals(quadratic(3, -5, 2), [1, 1, 0.667])
- test.assert_equals(quadratic(50, 26, 25), "nope can do, roots are imaginary or do not exist and I'm not dealing with either")
- test.assert_equals(quadratic(50, 75, 25), [625, -0.5, -1])
- test.assert_equals(quadratic(1, 2, 1), [0, -1, -1])
- test.assert_equals(quadratic(2, 5, -3), [49, 0.5, -3])
Triangles but it's a class now..It solves the following problems:
- Determines third angle (with 2 angles)
- Determines the type of triangle with angles (Acute, Obtuse and Right)
- Determines the type of triangle with sides (Scalene, Isoceles, Equilateral)
I destroyed it once by reloading it (without saving) 🤦
class Triangle: def __init__(a, b, c, s1, s2, s3): self.a = a self.b = b self.c = c self.s1 = s1 self.s2 = s2 self.s3 = s3 def other_angle(a, b): return 180 - (a + b) def triangle_type_angle(a, b, c): if all( angle < 90 for angle in (a, b ,c)): return "Acute Triangle" if any(angle == 90 for angle in (a, b, c)): return "Right Triangle" return "Obtuse Triangle" def triangle_type_sides(s1, s2, s3): if s1 == s2 == s3: return "Equilateral Triangle" elif s1 == s2 or s2 == s3 or s1 == s3: return "Isoceles Triangle" return "Scalene Triangle"
def other_angle(a, b): return 180 - (a + b)- class Triangle:
- def __init__(a, b, c, s1, s2, s3):
- self.a = a
- self.b = b
- self.c = c
- self.s1 = s1
- self.s2 = s2
- self.s3 = s3
- def other_angle(a, b):
- return 180 - (a + b)
- def triangle_type_angle(a, b, c):
- if all( angle < 90 for angle in (a, b ,c)):
- return "Acute Triangle"
- if any(angle == 90 for angle in (a, b, c)):
- return "Right Triangle"
- return "Obtuse Triangle"
- def triangle_type_sides(s1, s2, s3):
- if s1 == s2 == s3:
- return "Equilateral Triangle"
- elif s1 == s2 or s2 == s3 or s1 == s3:
- return "Isoceles Triangle"
- return "Scalene Triangle"
import codewars_test as test @test.describe("tests") def fixed_tests(): @test.it('test cases 1') def func1_test_cases(): test.assert_equals(Triangle.other_angle(30, 60), 90) test.assert_equals(Triangle.other_angle(60, 60), 60) test.assert_equals(Triangle.other_angle(43, 78), 59) test.assert_equals(Triangle.other_angle(10, 20), 150) test.assert_equals(Triangle.other_angle(110, 30), 40) test.assert_equals(Triangle.other_angle(100, 40), 40) @test.it('test cases 2') def func2_test_cases(): test.assert_equals(Triangle.triangle_type_angle(30, 60, 90), "Right Triangle") test.assert_equals(Triangle.triangle_type_angle(45, 45, 90), "Right Triangle") test.assert_equals(Triangle.triangle_type_angle(10, 80, 90), "Right Triangle") test.assert_equals(Triangle.triangle_type_angle(60, 60, 60), "Acute Triangle") test.assert_equals(Triangle.triangle_type_angle(43, 78, 59), "Acute Triangle") test.assert_equals(Triangle.triangle_type_angle(85, 10, 85), "Acute Triangle") test.assert_equals(Triangle.triangle_type_angle(10, 20, 150), "Obtuse Triangle") test.assert_equals(Triangle.triangle_type_angle(110, 30, 40), "Obtuse Triangle") test.assert_equals(Triangle.triangle_type_angle(100, 40, 40), "Obtuse Triangle") @test.it('test cases 3') def func3_test_cases(): test.assert_equals(Triangle.triangle_type_sides(3, 6, 9), "Scalene Triangle") test.assert_equals(Triangle.triangle_type_sides(4, 4, 9), "Isoceles Triangle") test.assert_equals(Triangle.triangle_type_sides(2, 8, 10), "Scalene Triangle") test.assert_equals(Triangle.triangle_type_sides(6, 6, 6), "Equilateral Triangle") test.assert_equals(Triangle.triangle_type_sides(3, 7, 5), "Scalene Triangle") test.assert_equals(Triangle.triangle_type_sides(8, 6, 8), "Isoceles Triangle") test.assert_equals(Triangle.triangle_type_sides(10, 2, 10), "Isoceles Triangle") test.assert_equals(Triangle.triangle_type_sides(10, 10, 10), "Equilateral Triangle") test.assert_equals(Triangle.triangle_type_sides(4, 4, 4), "Equilateral Triangle")
- import codewars_test as test
- @test.describe("tests")
- def fixed_tests():
@test.it('test cases')def basic_test_cases():test.assert_equals(other_angle(30, 60), 90)test.assert_equals(other_angle(60, 60), 60)test.assert_equals(other_angle(43, 78), 59)test.assert_equals(other_angle(10, 20), 150)test.assert_equals(other_angle(110, 30), 40)test.assert_equals(other_angle(100, 40), 40)- @test.it('test cases 1')
- def func1_test_cases():
- test.assert_equals(Triangle.other_angle(30, 60), 90)
- test.assert_equals(Triangle.other_angle(60, 60), 60)
- test.assert_equals(Triangle.other_angle(43, 78), 59)
- test.assert_equals(Triangle.other_angle(10, 20), 150)
- test.assert_equals(Triangle.other_angle(110, 30), 40)
- test.assert_equals(Triangle.other_angle(100, 40), 40)
- @test.it('test cases 2')
- def func2_test_cases():
- test.assert_equals(Triangle.triangle_type_angle(30, 60, 90), "Right Triangle")
- test.assert_equals(Triangle.triangle_type_angle(45, 45, 90), "Right Triangle")
- test.assert_equals(Triangle.triangle_type_angle(10, 80, 90), "Right Triangle")
- test.assert_equals(Triangle.triangle_type_angle(60, 60, 60), "Acute Triangle")
- test.assert_equals(Triangle.triangle_type_angle(43, 78, 59), "Acute Triangle")
- test.assert_equals(Triangle.triangle_type_angle(85, 10, 85), "Acute Triangle")
- test.assert_equals(Triangle.triangle_type_angle(10, 20, 150), "Obtuse Triangle")
- test.assert_equals(Triangle.triangle_type_angle(110, 30, 40), "Obtuse Triangle")
- test.assert_equals(Triangle.triangle_type_angle(100, 40, 40), "Obtuse Triangle")
- @test.it('test cases 3')
- def func3_test_cases():
- test.assert_equals(Triangle.triangle_type_sides(3, 6, 9), "Scalene Triangle")
- test.assert_equals(Triangle.triangle_type_sides(4, 4, 9), "Isoceles Triangle")
- test.assert_equals(Triangle.triangle_type_sides(2, 8, 10), "Scalene Triangle")
- test.assert_equals(Triangle.triangle_type_sides(6, 6, 6), "Equilateral Triangle")
- test.assert_equals(Triangle.triangle_type_sides(3, 7, 5), "Scalene Triangle")
- test.assert_equals(Triangle.triangle_type_sides(8, 6, 8), "Isoceles Triangle")
- test.assert_equals(Triangle.triangle_type_sides(10, 2, 10), "Isoceles Triangle")
- test.assert_equals(Triangle.triangle_type_sides(10, 10, 10), "Equilateral Triangle")
- test.assert_equals(Triangle.triangle_type_sides(4, 4, 4), "Equilateral Triangle")
Translation to Python??
def other_angle(a, b): req_angle = 180 - (a + b) return req_angle
fn other_angle(a: u32, b: u32) -> u32 {180 - (a + b)}- def other_angle(a, b):
- req_angle = 180 - (a + b)
- return req_angle
import codewars_test as test @test.describe("tests") def fixed_tests(): @test.it('test cases') def basic_test_cases(): test.assert_equals(other_angle(30, 60), 90) test.assert_equals(other_angle(60, 60), 60) test.assert_equals(other_angle(43, 78), 59) test.assert_equals(other_angle(10, 20), 150) test.assert_equals(other_angle(110, 30), 40) test.assert_equals(other_angle(100, 40), 40)
#[test]fn test() {assert_eq!(other_angle(30, 60), 90);assert_eq!(other_angle(60, 60), 60);assert_eq!(other_angle(43, 78), 59);assert_eq!(other_angle(10, 20), 150);}- import codewars_test as test
- @test.describe("tests")
- def fixed_tests():
- @test.it('test cases')
- def basic_test_cases():
- test.assert_equals(other_angle(30, 60), 90)
- test.assert_equals(other_angle(60, 60), 60)
- test.assert_equals(other_angle(43, 78), 59)
- test.assert_equals(other_angle(10, 20), 150)
- test.assert_equals(other_angle(110, 30), 40)
- test.assert_equals(other_angle(100, 40), 40)