Xin chào và chào mừng. Trong phần trình diễn này, tôi muốn đưa ra giải pháp cho
thử thách cuối cùng của chúng tôi. Vì vậy, tôi
muốn cung cấp một giải pháp cho chương trình c của
chúng tôi, mất một số phút và chuyển đổi nó thành đại diện là
ngày và bao nhiêu năm.
Không nhất thiết phải là chương trình
thực tế, nhưng nó sẽ trình bày một vài khái
niệm chính mà các bạn có thể học chủ yếu bằng cách sử dụng các
toán tử số học, nhận đầu vào từ bàn phím.
Và bạn cũng phải sử dụng toán tử ép kiểu mà tôi có thể không đề
cập đến trong thử thách, nhưng hy vọng các
bạn đã tìm ra điều này vì khi bạn làm - không cần sử dụng
toán tử ép kiểu, bạn không cần ban đầu
tôi đã nghĩ rằng một giải pháp cần một toán tử mô-đun. Nhưng nếu bạn thực hiện
một modulus, tôi nghĩ nó chỉ mất
2 int.
Vì vậy, dù sao, chúng ta hãy bắt đầu. Hãy bắt đầu các khối nguội, và tạo
một dự án, xem qua những thứ cơ bản mà chúng ta đã khá giỏi cho đến thời điểm này.
Vì vậy mình sẽ không đi vào chi tiết, các bạn có thể theo dõi.
Nhưng tôi sẽ tạo một dự án mới và nó sẽ là một dự án bảng điều khiển và
chắc chắn sẽ là c và điều tôi sẽ đặt tên
cho dự án này là bạn luôn muốn có được những cái tên hay và có ý nghĩa.
Tôi sẽ nói chuyển đổi phút.
Vì vậy, nó giống như một ứng dụng chuyển đổi phút.
Và bây giờ tôi sẽ sửa đổi chính của chúng tôi. c tệp.
Vì vậy, chúng ta hãy thoát khỏi điều này. Và chúng tôi sẽ giữ các câu lệnh bao gồm.
Và như mọi khi, bạn sẽ muốn thêm nhận xét, hãy chắc chắn rằng bạn thêm nhận xét,
chỉ vì tôi không làm điều đó không có nghĩa là bạn không nên làm điều đó.
Đó là thực hành tiêu chuẩn. Nó chỉ vì mục đích hiệu quả và thời gian, tôi bỏ nó ra.
Điều tôi muốn làm ở đầu chương trình
là xóa các biến mà tôi cần sử dụng và sau đó khởi tạo chúng.
Vì vậy, hãy bắt đầu theo cách đó. Tôi sẽ tạo một biến số nguyên cho
phút, người dùng sẽ nhập. Và tôi sẽ gọi số phút đó đã được nhập. Tôi sẽ khởi tạo nó thành 0.
Tôi sẽ lập cú đúp trong nhiều năm. Điều này thực sự có thể là một
khoảng thời gian dài tùy thuộc vào mức độ tính toán bạn muốn thực hiện bởi vì bạn thực sự có
thể nhận được một số dấu phẩy thập phân khá lớn.
Vì vậy, dài thậm chí có thể là một lựa chọn tốt hơn. Nhưng bây giờ tôi chỉ sử
dụng một double, khởi tạo số 0 đó. 0 và số ngày bằng
0 đó. 0.
Và bây giờ tôi muốn nhận thông tin đầu vào từ người dùng.
Để nhận được thông tin đầu vào từ người dùng, điều đầu tiên bạn làm là bạn phải yêu cầu người dùng nhập thông tin đầu vào.
Vì vậy, tôi sẽ hiển thị một số đầu
ra nói rằng vui lòng nhập số phút.
Và nó sẽ đặt một dấu hai chấm ở đó và một khoảng trắng
và kết thúc nó bằng dấu chấm phẩy.
Tiếp theo là tôi sẽ thực sự lấy đầu vào.
Đây là nơi bạn có thể nói rằng hãy lấy ý kiến từ người dùng dưới dạng nhận xét.
Làm cách nào để chúng tôi nhận được thông tin đầu vào từ người dùng? Chúng tôi sử dụng chức năng scanf.
Vì vậy, hãy nhớ điều này từ một thời gian trước, chỉ cần nói scanf, tương tự như printf.
Và tham số đầu tiên mặc dù đối số
là loại dữ liệu mà bạn muốn đọc để chuyển đổi.
Hãy nhớ rằng, mọi thứ được đọc dưới dạng chuỗi hoặc văn bản.
Vì vậy, bạn phải chuyển đổi nó thành cách bạn sẽ lưu trữ nó.
Vì vậy, bạn đặt nó trong dấu ngoặc kép giống như printf. Bạn sử dụng công cụ định dạng.
Nơi đây. Tôi sẽ chỉ nói rằng tôi muốn lưu trữ nó dưới dạng số thập phân.
Vì vậy, tôi sẽ nói d là số nguyên,
không phải số nguyên thập phân, xin lỗi.
Và sau đó đối số tiếp theo là biến bạn sẽ lưu trữ nó.
Trong tôi sẽ lưu trữ nó trong vài phút được nhập.
Bây giờ hãy nhớ rằng quét f và
tôi thực sự chỉ quét ở đó, scanf cho mọi kiểu
dữ liệu ngoại trừ một chuỗi, bạn phải cung
cấp ký hiệu và. Toán tử phụ địa chỉ.
Vì vậy, chúng tôi phải cung cấp điều đó. Chúng ta đang đọc một số nên chúng ta phải thực hiện ký hiệu và.
Hãy nhớ điều đó từ bài giảng. Sau đó, tôi muốn thêm điều này bằng dấu chấm phẩy.
Và tại thời điểm này, có lẽ bạn nên thử nghiệm.
Đảm bảo rằng bạn có thể nhận được thông tin đầu vào từ người dùng. Và bạn có thể chỉ có một printf để hiển thị những gì bạn đã nhập.
Nhưng vì tôi biết rằng điều này là chính xác, tôi sẽ tiếp tục.
Tôi sẽ cần thực hiện một phép tính ở dòng 15.
Chủ yếu, tôi muốn lưu trữ số phút theo năm.
Vì vậy, những gì tôi sẽ làm là tạo một biến khác mà
tôi đã quên để lưu trữ số phút trong năm.
Bởi vì điều này sẽ làm cho nó dễ dàng hơn. Vì vậy, ở đây tôi chỉ nói phút và năm.
Bạn sẽ nhận thấy rằng quy ước tôi đang sử dụng ở đây để đặt tên cho các biến là camelCase.
Đó là nơi bạn có chữ thường cho phường
đầu tiên và sau đó mỗi từ sau đó bạn viết hoa ký tự đầu tiên.
Tôi đã không giải thích điều đó sớm hơn vì vậy tôi nghĩ rằng tôi sẽ đề cập đến nó.
Vì vậy, phép tính đầu tiên tôi muốn đặt số phút và năm của mình
vì đây là cách tôi
sẽ tính số năm của mình. Vì vậy, số phút và số năm thực sự sẽ bằng
- và tôi thích sử dụng dấu ngoặc đơn để sắp xếp, để mọi thứ đều rõ ràng. Nó làm cho nó dễ đọc hơn.
Nó sẽ là 60, bởi vì 60
là số phút trong một giờ. Và tôi sẽ nhân nó với số giờ trong ngày là 24.
Tôi sẽ nhân số ngày đó với số ngày
trong năm, là 365.
Và vì vậy phép tính này sẽ cho tôi bao nhiêu phút trong một năm.
Và bây giờ tôi có thể sử dụng số này để tính số năm của mình.
Vì vậy, ở dòng tiếp theo, tôi có thể nói các năm bằng nhau - vì vậy chúng tôi đang sử
dụng các toán tử gán ở đây, bằng.
Và sau đó những gì chúng tôi đang làm trong dấu ngoặc đơn ở dòng 16 là chúng
tôi đang sử dụng dấu hoa thị là một phép nhân. Vì vậy, khá gọn gàng.
Số năm sẽ bằng - và một lần nữa tôi muốn sử dụng dấu ngoặc đơn.
Số phút đã nhập do người dùng thực hiện chia
cho số phút trong năm.
Vì vậy, nếu bạn nhập 5000 phút và có 20000 phút trong một năm, 5000
chia cho 20000 sẽ cho bạn bao nhiêu năm trong
đó sẽ là 0 điểm.
Để tính toán
các ngày, ở đây
tôi chỉ nói số phút được
nhập chia cho 60 và 60. 0
vì có 60 phút
trong một giờ.
Và sau đó khi tôi có số giờ, tôi có thể chia nó cho
số ngày là 24. 0.
Và tôi có thể đặt điều này trong một phép tính khác nếu tôi muốn.
Nhưng một lần nữa, tôi muốn đảm bảo rằng chúng tôi thực hiện việc này theo đúng trình tự.
Vì vậy, đầu tiên tôi sẽ chia số phút nhập chia cho 60.
Bạn không cần phải lo lắng về điều này thực sự
bởi vì chúng tôi đang thực hiện phân chia ở đây, vì vậy sự kết hợp sẽ từ trái
sang phải và tôi thực sự không cần những dấu ngoặc đơn này. Nhưng tôi luôn thích thêm dấu ngoặc đơn vì nó làm cho mọi thứ dễ đọc hơn.
Vì vậy, hãy thêm cái cuối cùng đó.
Đó là loại thừa. Tôi thậm chí không cần một cái ở đây. Vì vậy, chúng ta
hãy bỏ nó ra, chỉ những cái đầu tiên. Và điều này sẽ hiển thị ngày của chúng ta.
Bây giờ tôi đã thực hiện các phép tính của mình và sử dụng một số toán tử.
Tôi muốn thực hiện printf để chỉ in ra dữ liệu của mình.
Ở đây tôi sẽ nói trước tiên hãy in ra
số phút, phần
trăm d phút là khoảng phần trăm f năm và phần trăm f ngày.
Và sau đó tôi sẽ thêm một nguồn cấp dữ liệu dòng.
Vì vậy, những gì điều này đang làm là chúng tôi đang sử dụng printf để hiển thị đầu ra của
các biến và các ký hiệu phần trăm ghi nhớ các chỉ số đánh dấu của chúng tôi.
Điều đầu tiên tôi muốn in ra là phút, vì vậy tôi phải đặt phút sau dấu phẩy đầu tiên khi nhập nó.
Cái thứ hai là năm nên tôi muốn nói là năm vì đó là phần trăm f năm.
Và thứ ba là những ngày như
thế.
Bây giờ tôi nên biên dịch và chạy, và họ sẽ thực hiện chuyển đổi cho tôi.
Vì vậy, chúng ta hãy tiếp tục và xây dựng. Tôi không có buổi sáng, không có lỗi.
Hãy chạy và tôi thậm chí không chắc là bao nhiêu phút
trong một năm. Vì vậy, tôi không chắc làm thế nào
để kiểm tra điều này, nhưng chúng ta hãy dành 5000 phút để bắt đầu.
Khi tôi chạy chương trình, nó yêu cầu tôi nhập số phút, tôi sẽ đặt 5000.
Và nếu bạn không nhập một số, bạn có thể gặp sự cố vì
bạn đang chuyển đổi nó thành một số trong hàm scanf của mình.
Tôi nhấn trở lại, điều này nói rằng 5000 phút là
xấp xỉ 0. 009513
năm 3. 47222 ngày, điều
này có vẻ hợp lý vì 60 phút trong một giờ nhân
với 24, tương đương với 2400 hoặc lâu hơn
trong một ngày so với 2400
và 2400, không phải 60 lần. Tôi xin lỗi
60 lần 24 sẽ là khoảng 1200.
Vì vậy, 1200 chuyển thành 5000 như thế nào, bao nhiêu lần cho mỗi
ngày có lẽ là khoảng 3. 4 xung quanh đó.
Vì vậy, đại khái điều này có vẻ là chính xác.
Vì vậy, bạn có thể chạy điều này nhiều lần, mặc dù vậy, hãy đặt một số con số lớn mà bạn sẽ nhận thấy.
Chúng tôi chỉ lưu trữ đôi ở đây. Vì vậy, nếu bạn chạy nó và bạn cố gắng đưa
vào một con số quá lớn, chẳng hạn như 600 tỷ hoặc một cái gì
đó, bạn có thể nhận được sai
- vì vậy bạn có thể có sai sót ở đây. Vì vậy, đây là cho bạn thấy các vấn đề về kiểu dữ liệu.
Vì vậy, tôi đang lưu trữ trong một int. Int chỉ là 8 byte. Tôi đã nhập con số khổng lồ này.
Điều đó không thể được lưu trữ trong đó. Vì vậy, khi tôi đi
in nó ra, nó đang in trên một số hoàn toàn khác, 184298154.
Đó là bởi vì những gì tôi đang nhập lớn hơn một int.
Vì vậy, bạn có thể muốn xem xét nếu bạn muốn chương trình
này thậm chí chính xác hơn và bạn muốn nhập các số lớn hơn để thay đổi một số
kiểu dữ liệu, thay đổi int thành gấp đôi hoặc thậm chí nhân đôi thành longs.
Vì vậy, đây là nói 350 năm và 127000 ngày hoặc lâu hơn.
Vì vậy, một ứng dụng chuyển đổi nhỏ xinh, một lần nữa, cố gắng cung
cấp cho bạn một số hiểu biết về
các loại dữ liệu cũng như các toán tử.
Chúng tôi có thể có rất nhiều ứng dụng chuyển đổi khác nhau. Một ứng dụng tuyệt vời
khác mà bạn muốn viết để thực hành nhiều hơn sẽ là ứng dụng
Fahrenheit to Celsius.
Viết một ứng dụng cho phép người dùng nhập độ F và sau đó chuyển đổi sang độ C.
Ý tôi là có rất nhiều, rất nhiều tình huống khác nhau mà bạn đưa ra. Nhưng điều này sẽ buộc bạn phải sử dụng các toán tử.
Và chúng tôi thậm chí có thể thực hiện một buổi
casting ở đây nếu chúng tôi muốn. Nếu chúng tôi không thích điều đó thì
ngày quá chính xác và có thể chúng tôi muốn thay đổi số kép thành số nguyên.
Và chúng tôi muốn làm cho nó ít chính xác hơn một chút. Chúng ta thực sự có thể nói là ép kiểu
này thành một nó bằng cách chỉ cung cấp các dấu ngoặc đơn và
sau đó thực hiện int.
Và điều này thực sự sẽ mất con số đó trong nhiều ngày.
Và nếu nó là số thập phân 3. 549 hoặc cái gì đó, nó sẽ chuyển đổi nó thành 3.
Có thể điều đó sẽ tốt hơn cho người dùng, tùy thuộc vào bạn.
Nhưng bây giờ chúng ta hãy giữ nó như một nhân đôi.
Nhưng đó là cách bạn học. Bạn chơi xung quanh chương trình, thử các kịch bản khác
nhau, thử các đầu vào khác nhau, đảm bảo rằng mọi thứ đều chính xác. Cảm ơn bạn.