thảo luận [Nhật ký] Tự học Golang qua bài tập

Status
Not open for further replies.

luckyted

Đã tốn tiền
Xin chào các thím, mình lập thớt này để làm động lực học lập trình.
Mục tiêu là hoàn thành các bài tập ở https://luyencode.net - Một web học lập trình do một Vozer làm ra
Vì web không có ngôn ngữ Golang nên mình sẽ post đáp án lên đây, hi vọng sẽ nhận được sự ủng hộ của anh em.
"Tất cả hành trình đều bắt đầu bằng những bước chân đầu tiên''

  • Yêu cầu: In ra dòng chữ "Lap Trinh Khong Kho!" không có nháy kép.
  • Link đề bài: https://luyencode.net/problem/CB01
  • Cách làm: Sử dụng thư viện "fmt" và hàm fmt.Println() để in ra chuỗi string "Lap Trinh Khong Kho!"
  • Video quá trình code:
Code:
package main

import "fmt"

func main() {
    fmt.Println("Lap Trinh Khong Kho!")
}
  • Yêu cầu: Dữ liệu vào: 2 số nguyên a và b cách nhau 1 dấu cách. Dữ liệu ra: tổng của a và b
  • Link đề bài: https://luyencode.net/problem/CB02
  • Cách làm: sử dụng thư viện "fmt". Dùng hàm fmt.Scanln() để lấy giá trị input và gán vào 2 biến a, b qua địa chỉ con trỏ của a, b. Sau đó dùng hàm fmt.Println() để hiển thị kết quả.
  • Video quá trình code:
Code:
package main

import "fmt"

func main() {
    var a,b int
    fmt.Scanln(&a,&b)
    fmt.Println(a+b)
}
  • Yêu cầu: Dữ liệu vào: 3 số nguyên a,b,c cách nhau 1 dấu cách. Dữ liệu ra: tổng của a,b,c
  • Link đề bài: https://luyencode.net/problem/CB03
  • Cách làm: sử dụng thư viện "fmt". Dùng hàm fmt.Scanln() để lấy giá trị input và gán vào 3 biến a, b, c qua địa chỉ con trỏ của a, b, c. Sau đó dùng hàm fmt.Println() để hiển thị kết quả
  • Code:
Code:
package main

import "fmt"

func main() {
    var a,b,c int
    fmt.Scanln(&a,&b,&c)
    fmt.Println(a+b+c)
}
  • Yêu cầu: Dữ liệu vào: 2 số nguyên a,b cách nhau 1 khoảng trắng. Dữ liệu ra: 4 giá trị tương ứng 4 phép toán (a+b), (a-b), (a*b), (a/b). Mỗi giá trị 1 dòng, nếu phép chia không thực hiện được thì in kết quả là INF. Kết quả phép chia làm tròn tới chữ số thập phân thứ 2
  • Link đề bài: https://luyencode.net/problem/CB04
  • Cách làm:
Code:
Sử dụng thư viện "fmt"

Dùng hàm fmt.Scanln() để lấy 2 giá trị input và gán vào 2 biến a,  b qua địa chỉ con trỏ của a, b

Dùng câu điều kiện if {} else{} để tách ra 2 trường hợp:
    Nếu b=0 thì kết quả a/b sẽ in ra chữ INF
    Nếu b!=0 thì mới thực hiện phép chia a/b
  
Dùng hàm float32() để ép giá trị biến a, b về kiểu số thực rồi mới thực hiện phép chia a/b để lấy dư

Dùng hàm fmt.Sprintf() và truyền vào định dạng "%.2f" để lấy tròn tới số thập phân thứ 2
- Code:
Code:
package main

import "fmt"

func main() {
    var a, b int
    fmt.Scanln(&a, &b)
    if b != 0 {
        fmt.Println(a + b)
        fmt.Println(a - b)
        fmt.Println(a * b)
        c := fmt.Sprintf("%.2f", float32(a)/float32(b))
        fmt.Println(c)
    } else {
        fmt.Println(a + b)
        fmt.Println(a - b)
        fmt.Println(a * b)
        fmt.Println("INF")
    }
}
 
Last edited:
Mình thì đang học Go trên Udemy, góp vui :byebye:
2021728b2585-75e6-4b13-b7fc-c016d0377688.png


via theNEXTvoz for iPhone
 
Cập nhật bài 4
Độ khó hơi tăng dần, mình mất 15' để Google cách lấy giá trị làm tròn 2 số thập phân trong Golang. Sau 1 hồi loay hoay thì cũng xong. Nhưng kiến thức nhận được thật giá trị và khó quên. Hi vọng lời giải đủ dễ hiểu để các bạn sau này học Golang có tài liệu tham khảo
 
Status
Not open for further replies.
Back
Top