Tin tức và phân tích của tất cả các thiết bị di động

Bạn có thể giải câu hỏi mã hóa này được hỏi ở trường trung học không?

Câu hỏi mã hóa mà TÜBİTAK hỏi học sinh trung học cơ sở tại Thế vận hội Khoa học lần thứ 30 lại trở thành chương trình nghị sự. Ngay cả khi bạn không biết bất kỳ mã hóa nào, chúng tôi đã giải thích rõ ràng giải pháp từng chữ cái.

Mặc dù ngày nay nhiều người không hoàn toàn chấp nhận mối quan hệ giữa toán học và mã hóa, cấp độ cho người bắt đầu để thực hiện mã hóa Cần có kiến ​​thức cơ bản về toán học. Bằng cách này, những gì bạn viết, viết hay viết hiểu và làm cho các mã dễ hiểu trở nên khả thi.

Ví dụ mới nhất về tình huống này xuất hiện trong Thế vận hội Khoa học lần thứ 30, diễn ra vào ngày 21/5. Câu hỏi mã hóa được hỏi cho các trường trung học trong Thế vận hội do TÜBİTAK tổ chức đã trở thành chương trình nghị sự một lần nữa trên các phương tiện truyền thông xã hội ngày nay. Chúng ta hãy xem xét câu hỏi, giải pháp của nó và các phản ứng.

Đây là câu hỏi mã hóa cấp độ cơ bản gây tranh cãi:

Đừng cuộn trang ngay lập tức! Trước tiên, hãy cố gắng hiểu một chút và nhận thức những gì đang được hỏi ở đây.

Vậy câu trả lời cho câu hỏi này là gì?

Để trả lời câu hỏi này, bạn thực sự cần kiến ​​thức mã hóa cơ bản, mà ngày nay ai cũng cần phải có. Câu hỏi trên, được viết bằng ngôn ngữ lập trình C, thực sự hỏi chúng ta về một tình huống toán học. Đầu tiên chúng ta hãy giải thích từng dòng mã để những người không biết mã có thể hiểu câu hỏi.

Main () {…} nghĩa là gì ?:

Cấu trúc này, bao gồm tất cả mã của chúng tôi, thực sự cho chúng tôi biết rằng mã này đại diện cho một chức năng đang diễn ra. Các hàm, là khối xây dựng của một chương trình, là các mã được ghép lại với nhau để thực hiện một công việc cụ thể. Các biến và phép toán được định nghĩa trong các hàm và khi hàm này được chạy, một kết quả sẽ xuất hiện. Nó thực sự là một chức năng được tích hợp trong tất cả các chương trình, với mã mà một chương trình thực thi lần đầu tiên khi nó chạy.

int a = 0;

Chúng tôi đã nói rằng chúng tôi xác định các biến bên trong mỗi hàm. Dòng mã này cũng xác định một biến cho chúng ta. Biểu thức ‘int’ ở đây, giá trị số nguyên đại diện cho kiểu dữ liệu. Trước hết, sau khi chỉ định kiểu dữ liệu của biến của chúng tôi trong mã, điều này chúng tôi đặt tên cho biến của chúng tôi. Sau đó, chúng tôi trình bày giá trị của biến của chúng tôi cho chương trình, vì vậy chúng tôi nói một 0 lấy.

for (int b = 55; b> 0; a ++, b = b – a);

Câu trả lời cho câu hỏi thực sự nằm trong dòng này. Trong dòng này, chúng ta đang sử dụng vòng lặp ‘for (…;…;…)’. Nhờ vòng lặp này, đó là một trong những khối xây dựng cơ bản nhất của lập trình. Thay vì viết các giao dịch lặp đi lặp lại từng dòng, chúng ta có thể viết chúng trên một dòng duy nhất. Nếu không có vòng lặp này, chúng ta có thể viết các thao tác lặp đi lặp lại hàng nghìn dòng lần lượt. Ví dụ, một màn hình 1Nếu chúng ta muốn in các số từ ‘đến 1000’, thông thường chúng ta sẽ có mỗi số “” này trên mỗi dòng.1 mùa hè, 2 mùa hè, 3 mùa hè, 4 mùa hè, 5 mùa hè… ”chúng tôi sẽ lặp lại.

Vòng lặp for được đặt trong dấu ngoặc đơn và phân tách bằng dấu chấm phẩy. Nó yêu cầu ba tình huống khác nhau. Trong phần đầu tiên trong số này, giá trị ban đầu chúng tôi xác định, sau đó cho sự tiếp tục của vòng lặp điều kiện bắt buộc chúng tôi nói và cuối cùng phải làm gì trong mỗi vòng lặp chúng tôi đang nói. Thứ tự chính tả của ba trường hợp này chắc chắn không thay đổi. Hãy giải thích ba tình huống này trong câu hỏi trên.

Ở đây, chúng ta chỉ định một biến kiểu số nguyên giống như chúng ta đã làm ở trên và nhập tên của biến này là ‘b’ và giá trị của nó là 55.

Ở đây, chúng tôi cũng gọi là vòng lặp của chúng tôi, vòng lặp này ‘b’ 0Tiếp tục miễn là lớn hơn. “Chà, chúng ta vừa nói từ b đến 55, chu kỳ này sẽ không tiếp diễn mãi mãi sao?” Bạn có thể đang nói. Nhưng trong thao tác tiếp theo, chúng ta sẽ thay đổi giá trị của b trong mỗi lần lặp.

Chúng tôi đã đến nơi mà zurna gọi là zırt. Dòng này cho thấy tầm quan trọng của dấu câu trong mã hóa. Chúng tôi vừa nói rằng vòng lặp for yêu cầu ba trạng thái. Nhưng ở đây chúng ta thấy hai câu lệnh có dấu phẩy giữa chúng. Đây thực sự dấu phẩy này là từ vòng lặp for cho thấy rằng chúng tôi muốn nó thực hiện hai hoạt động. Với dấu phẩy, chúng tôi có thể tăng số lượng giao dịch mà chúng tôi chỉ định trong trường hợp thứ ba và chúng tôi muốn được thực hiện.

Trong hoạt động đầu tiên của chúng tôi (a ++), chúng tôi nói với chương trình rằng đếm ‘a’ mỗi vòng lặp 1 tăng. Theo cách này, trong vòng lặp đầu tiên 0 trước ‘a’ 1Sau đó 2, 3, 4, 5Nó sẽ có giá trị là… (Thực ra đây là cách chúng ta loại bỏ việc viết hàng nghìn dòng mã). Nhưng trước khi chúng tôi tiếp tục với định giá này, chúng tôi muốn một điều nữa từ chương trình: b = b – a.

Nếu những gì chúng ta muốn từ chương trình trong câu lệnh này là lấy ‘b’ với mỗi vòng lặp, trừ ‘a’ khỏi ‘b’ và gán số mới cho ‘b’. Vì vậy, thay đổi giá trị của ‘b’ thành ‘b-a’. Khi chúng tôi thể hiện điều này theo thời điểm chu kỳ của chúng tôi bắt đầu, quá trình sẽ như sau:

  • b = 55 (b) – 0 (một)
  • b = 55

Vòng lặp này là biến cuối cùng ‘b’ là kết quả của các phép toán. 0 Nó sẽ tiếp tục cho đến khi nó xảy ra. Trong mỗi chu kỳ mới sẽ xử lý biến ‘b’ được đặt trong vòng lặp trước đó. Vì vậy, trong vòng lặp đầu tiên, b = 55, trong khi trong vòng lặp thứ hai, b = 54.

printf (“% d”, a)

Trong dòng lệnh này, chúng tôi yêu cầu chương trình viết một câu lệnh vào bảng điều khiển bằng cách sử dụng hàm ‘printf’. Biểu thức với ‘% d’ này sẽ là một số nguyên và số nguyên này sẽ là ‘a’ chúng tôi bày tỏ. Dòng lệnh này sẽ chỉ hoạt động khi vòng lặp trên kết thúc, bằng cách xử lý các giá trị kết quả của vòng lặp. Vì vậy, ‘b’, 0Chương trình sẽ không in bất cứ thứ gì trừ khi nó đạt đến.

Chúng tôi đã giải thích mã, đã đến lúc giải pháp:

Bây giờ chúng ta hãy đi đến giải pháp. vòng lặp của bạn hành động nó sẽ làm trong mỗi chu kỳ và kết quả của nó nó sẽ như thế này:

  • b = 55 – 0 => b = 55, a 1 tăng.
  • b = 55 – 1 => b = 54, a 1 tăng.
  • b = 54 – 2 => b = 52, (a không ngừng tăng lên)
  • b = 52 – 3 => b = 49,
  • b = 49 – 4 => b = 45….

Câu trả lời cho câu hỏi, tức là câu trả lời cuối cùng của vòng lặp và số cuối cùng để dừng vòng lặp, là b. 0Nó sẽ xuất hiện nếu được đặt thành. Vì vậy, những gì nó cần để thiết lập lại ‘b’ ở cuối vòng lặp? Tất nhiên nó bằng số ‘a’. Trong trường hợp này nhưng nó xảy ra khi a đạt đến 10:

  • b = 19 – 9 => b = 10
  • b = 10 – 10 => b = 0

Vòng lặp của chúng tôi, ‘b’ 0 Vì chúng tôi đã nói dừng lại khi nó xảy ra, nên bây giờ nó kết thúc ở đây. Giá trị mới của ‘b’ trong kết quả vòng lặp 0, Giá trị mới của ‘a’ được định nghĩa là 10. Chương trình bây giờ chuyển sang dòng mã tiếp theo, dòng ‘printf ()’, nơi nó ghi giá trị ‘a’ cho chúng ta:

Tất nhiên, không cần thiết phải trải qua các bước của chương trình để làm tất cả những điều này. Đó là lúc mà toán học và khả năng truyền đạt những gì bạn hiểu được phát huy tác dụng. Mã này Nếu nó được hỏi trong một kỳ thi toán, nó thực sự sẽ giống như thế này:

  • 1Tổng các số liên tiếp bắt đầu bằng số cuối cùng mà bạn đưa vào tổng đạt 55?

Câu trả lời toán học cho câu hỏi này là n (n +1) /2 = trong số 55 dung dịch sẽ được. Ở đây, giá trị duy nhất thỏa mãn phương trình là 10.

Dưới đây là các câu trả lời cho câu hỏi:

  • Một người dùng của Ekşi Sözlük thực sự giải thích rất rõ tầm quan trọng của vấn đề như sau: