Tải bản đầy đủ (.doc) (4 trang)

Thực hành tin học đại cương tuần 3

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (126.84 KB, 4 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
Đại học Công nghệ Thông tin
  
THỰC HÀNH MÔN TIN HỌC ĐẠI CƯƠNG
Bài số 3: CÁC CÂU LỆNH LẶP
1. MỤC TIÊU
1.1. Phân tích được yêu cầu bài toán
1.2. Chọn loại vòng lặp thích hợp để xử lý bài toán
2. BÀI TẬP THỰC HÀNH
2.1. Chương trình tính biểu thức theo công thức cho trước
2.2. Một số bài tập đề nghị
3. XÁC ĐỊNH LỖI TRONG CHƯƠNG TRÌNH MẪU
3.1. Chương trình tính biểu thức theo công thức cho trước
2. BÀI TẬP THỰC HÀNH
2.1. Chương trình tính biểu thức theo công thức cho trước
• Đề bài :
Nhập một số nguyên dương N. Tính :
n
n
S
+++
=
21
1
222
212 nS
+++=
• Phân tích bài toán :
Với một số nguyên dương N bất kỳ, để tính tổng từ 1 đến N, ta cần dùng một
vòng lặp (ví dụ vòng lặp for) và thực hiện thao tác cộng dồn. Sau đó thực hiện
thao tác chia (S1) hoặc lấy căn (S2). Lưu ý rằng, S1 và S2 có thể không nguyên,


do đó chúng ta dùng kiểu float. Mặt khác, để tối ưu bài toán ta tính đồng thời S1
và S2 trong cùng một vòng lặp.
• Chương trình minh họa :
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int k, n;
float S1, S2;
do
{
printf(‘ Nhập một số nguyên dương bất kỳ :’);
scanf(“%d”, &N);
if (n<=0)
printf(‘%d không phải là số nguyên dương.’, n);
}while(n<=0);
S1:=0; //khởi gán giá trị ban đầu cho S1 và S2
S2:=0;
for (k=1; k <= n;k++)
{
S1 = S1 + k;
S2 = S2 + k*k;
}
S1 = S1/n; //N nguyên dương, do đó khác 0
S2 = sqrt(S2);
printf(‘Kết qủa S1 = %d, S2 = %d ’, S1, S2);
getch();
}
• Nhận xét :

Trong chương trình trên, chúng tôi dùng vòng lặp for để tính biểu thức tổng.
Đề nghị các anh chị viết lại đoạn chương trình đó với vòng lặp while, và do …
while.
2.2. Một số bài tập đề nghị
 Bài tập 1:
Nhập vào một số nguyên dương n. Xuất ra n có bao nhiêu chữ số.
 Bài tập 2:
Nhập số n nguyên đảm bảo sao cho n dương. ( Nếu nhập n ≤ 0 thì chương
trình phải bắt nhập laị ), rồi tính:
S1 = 1
2
+ 3
2
+ 5
2
+ 7
2
+ + (2n+1)
2

 Bài tập 3:
Tìm và in lên màn hình tất cả các số nguyên trong phạm vi từ 10 đến 99 sao
cho tích của hai chữ số của nó thì bằng hai lầøn tổng của hai chữ số của nó. Ví dụ:
số N=36 có hai chữ số là 3 và 6, và 3*6 = 2*(3+6). Tương tự đối với số 44 .
 Bài tập 4:
Nhập N nguyên đảm bảo lớn hơn 1. Tính tổng các số lẻ ≤ N. Ví dụ : nếu N=5
thì tổng S=1+3+5 = 9, nếu N=8 thì S=1+3+5+7=16.
 Bài tập 5:
Nhập vào một số nguyên dương n, xác định n có phải là số nguyên tố hay
không.

 Bài tập 6:
Nhập vào 2 số nguyên dương, xuất ra ước chung lớn nhất và bội chung nhỏ
nhất của 2 số đó.
 Bài tập 7:
Nhập vào số nguyên dương n, in ra tất cả các ước số của n.
 Bài tập 8:
Nhập vào số nguyên dương n, in ra n số nguyên tố đầu tiên.
 Bài tập 9:
Nhập vào số nguyên dương n, in ra tất cả các số nguyên tố nhỏ hơn n.
3. XÁC ĐỊNH LỖI TRONG CHƯƠNG TRÌNH MẪU
3 .1. Chương trình tính biểu thức theo công thức cho trước
 Đề bài :
Nhập một số nguyên dương N. Tính:
nS
××××=
531
nếu n lẻ
nS
××××=
642
nếu n chẵn
 Chương trình :
#include <stdio.h>
#include <conio.h>
void main()
{
long s;
do
printf(‘Nhập vào một số nguyên dương :’);
scanf(“%d”, &n);

while(n<=0);
while (n>=0)
{
s = s*n;
n = n – 2;
}
printf(‘Kết quả là : %ld’, s);
getch();
}

×