13 Trả lời Show Theo dõi câu hỏi này
Thành viên VIP của luyenthi123.com mới được xem tiếp câu trả lời khác
Bài tập cơ bản này ta có thể có nhiều hướng giải quyết khác nhau, như sử dụng vòng lặp for , sử dụng vòng lặp while, … Đầu vào sẽ là một biến nguyên n và yêu cầu của bài toán là tính tổng các phần tử từ 1 đến 1/n. 2. Lời giảiĐể giải được bài tập tính S(n) = 1 + 1/2 + 1/3 +…+ 1/n bạn phải có kiến thức về toán học cơ bản, có kiến thức về lập trình C cơ bản và cách sử dụng vòng lặp. Các bước thực hiện bài toán như sau: Bước 1: Phân tính bài toán S(n) = 1 + 1/2 + 1/3 +…+ 1/n ta thấy nó có dạng s(n) = 1/i + 1/(i+1) + 1/(i+2) + … + 1/(i+n) trong đó i bắt đầu từ 1. Bước 2: Tạo một biến float sum = 0 để thể hiện giá trị tổng. Bước 3: Ta sẽ sử dụng vòng for với một biến int i = 1 , điều kiện dừng khi nó bằng n và mỗi lần i tăng lên 1. Bước 4: Trong vòng lặp ta cho biến sum mỗi lần lặp sẽ tăng lên 1/i. Chương trình giải bài tập S(n) = 1 + 1/2 + 1/3 +…+ 1/n như sau : #include <stdio.h> int main(){ // khai bao so nguyen n int n; // khai bao sum float sum = 0; // nhap du lieu gan vao bien n printf("nhap n = "); scanf("%d", &n); //vong lap for bat dau tu i = 1 và ket thuc khi i <= n, moi lan lap i tang len 1 for(int i = 1; i <= n; i++){ // moi lan thuc hien vong lap bien sum se tan lên 1/i sum += (float)1/i;//ép kieu float cho phép tinh 1/i vi la so nguyen chia so nguyen } // in ket qua ra man hinh printf("S(%d) = %f", n,sum); } Ví dụ tôi nhập n = 20 Kết quả:
3. Tổng kếtĐể thực hiện giải bài tập tính S(n) = 1 + 1/2 + 1/3 +…+ 1/n bạn đọc cần phải có kiến thức cơ bản về ngôn ngữ lập trình C, bạn cần nắm vững cách nhập xuất căn bản và các cách sử dụng vòng lặp trong C, cách ép kiểu trong C và các phép toán học cơ bản. Bài tập trên có thể giải bằng các khác là sử dụng vòng lặp while. Chương trình như sau: #include <stdio.h> int main(){ // khai bao so nguyen n int n; // khai bao sum float sum = 0; // nhap du lieu gan vao bien n printf("nhap n = "); scanf("%d", &n); int i = 1;//bat dau tu i = 1 while(i <= n){//dieu kien ket thuc vong lap i <= n //moi lan lap sum tang len 1/i sum += (float)1/i;//ep kieu float cho 1/i vi là so nguen chia so nguyen i++;//moi lan lap i tang len 1 } // in ket qua ra man hinh printf("S(%d) = %f", n,sum); }Ví dụ tôi nhập n = 4 Kết quả:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.Morbi adipiscing gravdio, sit amet suscipit risus ultrices eu.Fusce viverra neque at purus laoreet consequa.Vivamus vulputate posuere nisl quis consequat.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.Morbi adipiscing gravdio, sit amet suscipit risus ultrices eu.Fusce viverra neque at purus laoreet consequa.Vivamus vulputate posuere nisl quis consequat. Viết chương trình tính tổng: S=1+1/2+1/3+...+1/n Biết n là số tự nhiên được nhập từ bàn phím Câu hỏi: viết chương trình tính tổng s=1+1/2+1/3+...+1/n Lời giải: program tinhtong; uses crt; var i, n : integer; S : real; begin clrscr; writeln('Nhap so thu n: '); readln(n); S:=0; i:=1; while i<=n do begin S:=S+1/i; i:=i+1; end; writeln('Tong la: ',S:2:3); readln end. Cùng Top lời giải ôn lại kiến thức để làm bài tốt hơn nhé!!! 1. Các công việc phải thực hiệnTrong cuộc sống hằng ngày, nhiều hoạt động được thực hiện lặp đi lặp lại nhiều lần. Ví dụ: + Các ngày trong tuần các em đều lặp đi lặp lại hoạt động buổi sáng đến trường và buổi trưa trở về nhà + Các em học bài thì phải đọc đi đọc lại nhiều lần cho đến khi thuộc bài Ví dụ số lần lặp biết trước:Các ngày trong tuần các em đều lặp đi lặp lại hoạt động buổi sáng đến trường và buổi trưa trở về nhà. Ví dụ số lần lặp không biết trước:Trong một trận cầu lông các em lặp đi lặp lại công việc đánh cầu cho đến khi kết thúc trận cầu. Tóm lại:Khi viết chương trình máy tính, trong nhiều trường hợp ta cũng phải viết lặp lại nhiều câu lệnh chỉ để thực hiện 1 phép tính nhất định. 2.Câu lệnh lặp- một lệnh thay cho nhiều lệnhVí dụ 1:Giả sử cần vẽ 3 hình vuông có cạnh 1 đơn vị. Mỗi hình vuông là ảnh dịch chuyển của hình bên trái nó một khoảng cách 2 đơn vị. Thuật toán: + Bước 1. Vẽ hình vuông (vẽ liên tiếp bốn cạnh và trở về đỉnh ban đầu) + Bước 2. Nếu số hình vuông đã vẽ được ít hơn 3, di chuyển bút vẽ về bên phải 2 đơn vị và trở lại bước 1, ngược lại kết thúc thuật toán Bài toán vẽ một hình vuông: Thuật toán mô tả các bước để vẽ hình vuông: + Bước 1. k←0 (k là số đoạn thẳng đã vẽ được) + Bước 2. k←k+1. Vẽ đoạn thẳng 1 đơn vị độ dài và quay thước 900 sang phải + Bước 3. Nếu k < 4 thì trở lại Bước 2; Ngược lại, kết thúc thuật toán Trong đó, biến k được sử dụng như là biến đếm để ghi lại số cạnh đã vẽ được. Kết luận - Cách mô tả các hoạt động lặp trong thuật toán như ví dụ trên được gọi là cấu trúc lặp - Để chỉ thị cho máy tính thực hiện cấu trúc lặp với một câu lệnh gọi là câu lệnh lặp 3. Ví dụ về câu lệnh lặpCú pháp: For< Biến đếm > := < Giá trị đầu >to< Giá trị cuối >do< Câu lệnh >; Trong đó: + For, to, dolà các từ khóa + Biến đếm là biến kiểu nguyên + Giá trị đầu, giá trị cuối là các giá trị nguyên Lưu ý: + Giá trị đầu phải nhỏ hơn giá trị cuối
+ Câu lệnh không làm thay đổi giá trị của biến đếm + Nếu câu lệnh nhiều hơn một lệnh thì phải đặt trong cặp Begin … end Hoạt động của vòng lặp: + Bước 1: Biến đếm nhận giá trị đầu + Bước 2: Chương trình kiểm tra biểu thức điều kiện, nếu biểu thức điều kiện đúng thì thực hiện câu lệnh + Bước 3: Biến đếm tự động tăng lên 1 đơn vị và quay lại Bước 2 + Bước 4: Nếu biểu thức điều kiện nhận giá trị sai thì thoát ra khỏi vòng lặp Ví dụ 3:Chương trình sau sẽ in ra màn hình thứ tự lần lặp. Chương trình mẫu: PHP: Ví dụ 4:In một chữ "O" trên màn hình. Chương trình mẫu: PHP: 4. Tính tổng và tích bằng câu lệnh lặpVí dụ 5:Chương trình sau đây sẽ tính tổng N số tự nhiên đầu tiên với N nhập từ bàn phím. Chương trình mẫu: PHP: Ví dụ 6:Ta kí hiệu N! là tích N số tự nhiên đầu tiên: N! = 1.2.3…N. Chương trình mẫu: PHP:
|