HomeLập trình Scratch

Bạn có sinh đúng ngày con số hạnh phúc code Pascal và Scratch

Like Tweet Pin it Share Share Email
Like và share giúp mình phát triển website nhé.
  •  
  •  
Hôm nay lang thang trên mạng mình tìm được những con số hết sức thú vị đó là con số hạnh phúc, con số buồn bãquả thật những con số này đã làm cho toán học trở nên có hồn và đầy lí thú phải không các bạn. Trong đầu mình chợt nghĩ ra một chương trình kiểm tra vui đó là kiểm tra xem bạn có sinh đúng vào ngày hạnh phúc không.
Mình định nghĩa vui về ngày hạnh phúc như sau: Ngày sinh của bạn là ngày được viết dưới dạng ddmmyyyy. Chẳng hạn bạn sinh ngày 10 tháng 1 năm 1995 thì ngày sinh của bạn là 10011995
Ok bây giờ bạn hãy nhấn vào biểu tượng lá cờ của chương trình dưới đây sau đó nhập vào ngày sinh của bạn theo mẫu trên rồi bấm Enter để kiểm tra xem bạn có may mắn sinh vào ngày hạnh phúc không nhé.

Có rất nhiều bạn sinh vào ngày hạnh phúc đó chẳng hạn: 10/01/1995, 22/02/1985, 24/05/1981, …

Vậy chương trình trên mình viết như thế nào nhỉ? Ta hãy cùng tìm hiểu nào

Định nghĩa con số hạnh phúc, con số buồn bã

Với một số nguyên dương bất kì, thay thế số đó bằng tổng bình phương các chữ số của nó, và cứ lặp lại quá trình đó sẽ có những trường hợp sau xảy ra:

  • Kết thúc bằng 1 – Ta gọi số đó là số hạnh phúc
  • Kết thúc bằng 0 – Ta gọi số đó là số buồn bã
  • Lặp lại vô hạn lần – Số đó không hạnh phúc cũng không buồn bã

Một ví dụ cho dễ hiểu chẳng hạn số 44

Lần 1: 42 + 42 = 16 +16 =32

Lần 2: 32 + 22 = 9 + 4 =13

Lần 3: 12 + 32 = 1 + 9 =10

Lần 4: 12 + 02 = 1 + 0 = 1

Ò vậy 44 là số hạnh phúc

Các viết chương trình kiểm tra con số hạnh phúc bằng Scratch

Mình thấy chương trình này thú vị quá lập tức mở Scratch lên và bắt đầu lập trình ngay, bữa nay mình nghiện Scratch hơn Pascal rồi vì nó đơn giản quá chỉ 10 phút sau là hoàn thành chương trình.

Bạn hãy tạo một đối tượng (ở đây mình chọn biểu tượng trái tim) sau đó tiến hành lập trình cho trái tim như sau:

Chú ý khi lập trình:

  • Theo định nghĩa số hạnh phúc, số buồn bã thì có những số theo cách kiểm tra trên thì sẽ lặp vô hạn lần, vì vậy ở đây mình giới hạn tối đa là lặp 100 lần thôi, thực ra nếu các bạn nghiên cứu kĩ về con số này thì không đến 100 lần là cho kết quả là 0 hay 1 rồi còn nếu quá thì chắc chắn quá trình lặp vô hạn. Mình cứ để 100 cho thoải mái
  • Mình không lập trình dùng DIV hay MOD để tách lấy các chữ số của số nhập vào vì dữ liệu trong Scratch không phân biệt số hay chuỗi kí tự, mình lợi dụng điều đó để code cho đơn giản.
  • Mình chỉ kiểm tra ngày sinh hạnh phúc thôi, không có ngày sinh buồn bã vì sợ 1 số bạn sẽ thấy buồn. Hehe

Hãy viết chương trình kiểm tra con số hạnh phúc bằng Pascal nào

Mình đã đưa bài con số hạnh phúc vào 50 bài tập Scratch rồi, mọi bữa mình hay code bằng Pascal trước sau đó chuyển sang lập trình bằng Scracth, bữa nay thì ngược lại, các bạn hãy từ code Scratch để viết chương trình trong Pascal nhé.

Trong trường hợp này thì code Pascal sẽ phức tạp hơn chút đó bạn, Chúc các bạn thành công.

Và bạn nào có ngày sinh Hạnh phúc thì comment ở dưới để các bạn cùng chúc mừng nhé.

File Word hướng dẫn

Comments (2)

  • viết qua pascal đi ạ

    Reply
  • Code đây bạn oi :
    program sohanhphuc;
    uses crt;
    var n,i,j,s: integer;
    chuoi:string;
    m:array[1..100] of integer;
    error: word;
    value : integer;
    begin
    clrscr;
    repeat
    readln (n);
    until n0;
    while (j<=1000) or (s=1) or (s=0) do
    begin
    str(n,chuoi);
    for i:=1 to length (chuoi) do
    begin
    val (chuoi[i],m[i],error);
    end;
    for i:=1 to length (chuoi) do sqr (m[i]);
    for i:=1 to n do s:=s+m[i];
    val(chuoi,value,error);
    if value = 1 then j:=1001
    else if value = 0 then j:=1001
    else j:=j+1 ;
    end;
    if value=1 then writeln (n,' la so hanh phuc !')
    else if value = 0 then writeln (n,' la so buon ba !')
    else writeln (n,' khong phai la so hanh phuc hay so buon ba !');
    readln;
    end.

    Reply

Trả lời

Your email address will not be published. Required fields are marked *