bài thực hành tuần 4 1. nội dung 2. các lệnh lặptqlong/2017thcs4/lec04_practice.pdf ·...

3
Bài thc hành tun 4 1. Ni dung Các lnh lp: while, do-while, for Các kthut lp Hàm tính toán bng lp 2. Các lnh lp 1. In ra 10 sđầu tiên theo thttăng dần (CT1 bài ging tun 4) a. Sdng while b. Sdng do-while c. Sdng for 2. In ra quá trinh đếm ngược phóng tên la (CT2 bài ging tun 4) 3. Tính tng 100 stnhiên đầu tiên (CT3 bài ging tun 4). a. Tính tng các stnhiên không lớn hơn 100 mà chia 3 dư 1 (CT4 bài giảng tun 4) 4. Làm menu gm 5 la chọn để in ra 1 trong 5 xâu “orange juice”, “coconut milk”, “rice cake”, “honeydew”, “mango milkshake” (CT6 bài giảng tun 4). Sdụng “go home” để thoát. 5. Dùng lnh for in ra giá trcác góc 0, 1, …, 360 độ và giá trhàm sin(0), sin(1), … tương ng. 3. Các kthut lp 1. Sdng hàm for tính tng các schn trong khong [0, n] hoc [n, 0] vi snguyên n nhp vào tbàn phím (n có thnhhơn 0) 2. Sdng hàm for in ra các schính phương nhỏ hơn số nguyên dương n (nhập tbàn phím. 3. In các bng cửu chương của 2, 4, 6, 8 (da vào CT13 bài ging tun 4) 4. Nhp vào snguyên dương n từ bàn phím và tìm các s“hoàn hảo” trong khoảng [0,n]. Shoàn ho là sbng tổng các ước scủa nó nhưng nhỏ hơn nó. 5. Dùng vòng lp for xp xxác sut tung 2 con xúc sắc đều được mt 6. Gi ý: tung nhiu ln ri ly tn sut 2 con xúc sắc đều hin mt 6. 6. Dùng vòng lp for lồng nhau để tung xúc sc. Lần đầu được mt k thì tung tiếp k ln. Sau đó tính tổng smt xúc sắc đã tung được. Hãy tính trung bình ca tng này sau 10000 lần làm như trên. 7. Dùng vòng lp for lồng nhau để vhình vuông có cnh bng n (nhp tbàn phím) toàn dấu sao nhưng sử dng chX 2 đường chéo. 8. Dùng vòng lp for lồng nhau để vhình tam giác vuông có cnh bên bng n gm toàn du sao. Ví d: n = 4 *

Upload: others

Post on 18-Oct-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bài thực hành tuần 4 1. Nội dung 2. Các lệnh lặptqlong/2017thcs4/lec04_practice.pdf · 3. In các bảng cửu chương của 2, 4, 6, 8 (dựa vào CT13 bài giảng

Bài thực hành tuần 4

1. Nội dung

Các lệnh lặp: while, do-while, for

Các kỹ thuật lặp

Hàm tính toán bằng lặp

2. Các lệnh lặp 1. In ra 10 số đầu tiên theo thứ tự tăng dần (CT1 bài giảng tuần 4)

a. Sử dụng while b. Sử dụng do-while c. Sử dụng for

2. In ra quá trinh đếm ngược phóng tên lửa (CT2 bài giảng tuần 4) 3. Tính tổng 100 số tự nhiên đầu tiên (CT3 bài giảng tuần 4).

a. Tính tổng các số tự nhiên không lớn hơn 100 mà chia 3 dư 1 (CT4 bài giảng tuần 4)

4. Làm menu gồm 5 lựa chọn để in ra 1 trong 5 xâu “orange juice”, “coconut milk”, “rice cake”, “honeydew”, “mango milkshake” (CT6 bài giảng tuần 4). Sử dụng “go home” để thoát.

5. Dùng lệnh for in ra giá trị các góc 0, 1, …, 360 độ và giá trị hàm sin(0), sin(1), … tương ứng.

3. Các kỹ thuật lặp 1. Sử dụng hàm for tính tổng các số chẵn trong khoảng [0, n] hoặc [n, 0] với số nguyên n

nhập vào từ bàn phím (n có thể nhỏ hơn 0) 2. Sử dụng hàm for in ra các số chính phương nhỏ hơn số nguyên dương n (nhập từ bàn

phím. 3. In các bảng cửu chương của 2, 4, 6, 8 (dựa vào CT13 bài giảng tuần 4) 4. Nhập vào số nguyên dương n từ bàn phím và tìm các số “hoàn hảo” trong khoảng [0,n].

Số hoàn hảo là số bằng tổng các ước số của nó nhưng nhỏ hơn nó. 5. Dùng vòng lặp for xấp xỉ xác suất tung 2 con xúc sắc đều được mặt 6. Gợi ý: tung nhiều

lần rồi lấy tần suất 2 con xúc sắc đều hiện mặt 6. 6. Dùng vòng lặp for lồng nhau để tung xúc sắc. Lần đầu được mặt k thì tung tiếp k lần. Sau

đó tính tổng số mặt xúc sắc đã tung được. Hãy tính trung bình của tổng này sau 10000 lần làm như trên.

7. Dùng vòng lặp for lồng nhau để vẽ hình vuông có cạnh bằng n (nhập từ bàn phím) toàn dấu sao nhưng sử dụng chữ X ở 2 đường chéo.

8. Dùng vòng lặp for lồng nhau để vẽ hình tam giác vuông có cạnh bên bằng n gồm toàn dấu sao. Ví dụ: n = 4 *

Page 2: Bài thực hành tuần 4 1. Nội dung 2. Các lệnh lặptqlong/2017thcs4/lec04_practice.pdf · 3. In các bảng cửu chương của 2, 4, 6, 8 (dựa vào CT13 bài giảng

** *** ****

4. Hàm tính toán bằng cấu trúc điều khiển lặp Hãy chuyển mã lệnh các bài tập ở phần 3 thành hàm. Ví dụ với bài 3.1, ta cần viết hàm tính tổng các số chẵn trong khoảng [0,n] hoặc [n,0].

Tổng các số chẵn giữa 0 và n #include <iostream>

using namespace std;

int evenSum(int n)

{

int sum = 0;

if (n > 0) {

for (int i = 0; i <= n; i += 2) {

sum += i;

}

} else {

for (int i = 0; i >= n; i -= 2) {

sum += i;

}

}

return sum;

}

int main()

{

int n;

cin >> n;

cout << "Sum of even numbers in ";

if (n >= 0) {

cout << "[0, " << n;

} else {

cout << "[" << n << ",0";

}

cout << "] is " << evenSum(n) << endl;

return 0;

}

Page 3: Bài thực hành tuần 4 1. Nội dung 2. Các lệnh lặptqlong/2017thcs4/lec04_practice.pdf · 3. In các bảng cửu chương của 2, 4, 6, 8 (dựa vào CT13 bài giảng

Với bài 3.5, ta cần làm hàm tung 2 con xúc sắc và trả về true nếu 2 con xúc sắc cùng có mặt 6. Sau đó làm hàm gọi hàm trên nhiều lần và đếm số lần được true.

Tung 2 con xúc sắc đều được mặt 6 #include <iostream>

#include <ctime>

#include <cstdlib>

#include <iomanip>

using namespace std;

int rollADice()

{

int r = rand() % 6 + 1;

return r;

}

bool bothDiceAreSixes() {

int r1 = rollADice(), r2 = rollADice();

return r1 == 6 && r2 == 6;

}

double bothDiceAreSixesFreq() {

int n_roll = 1000000; // 1 million times

int count = 0;

for (int i = 0; i < n_roll; i++) {

if (bothDiceAreSixes()) {

count++;

}

}

return 1.0*count/n_roll;

}

int main()

{

srand(time(0));

cout << "Both dices are sixes frequency = "

<< fixed << setprecision(2)

<< bothDiceAreSixesFreq()*100 << "%" << endl;

return 0;

}