You are on page 1of 4

Bài tập C++ – Procedure và Function

Function là hàm do người lập trình tự tạo để thực hiện một chức năng nào đó, TD:
long long giaithua(int k) {}
là hàm dùng để tính giai thừa của một số k và trả về giá trị giai thừa của K

long long giaithua (int k) { // Giá trị trả về là số nguyên lớn long long
long long gt, i; // long long để khai báo số nguyên lớn
gt=1;
for (i=1; i<=k; i++) gt=gt*i;
return gt; // Trả về giá trị gt tính được
}

Bài 02.01 – In ra giá trị giai thừa của mảng 1 chiều


Bạn hãy nhập một dãy số nguyên và tính giai thừa của từng số trong dãy đó.
(Dãy 1, 4, 7, 5, 2 => In ra 1, 24, 5040, 120, 2)

#include <stdio.h>
#include <conio.h>

long long giaithua (int k) {


long long gt, i;
gt=1;
for (i=1; i<=k; i++) gt=gt*i;
return gt;
}

void main(){
clrscr();
int n, i, a[10]; // Sử dụng tối đa 10 số trong dãy

printf("Nhap so phan tu cua day so ");


scanf("%d", &n);

for (i=1; i<=n; i++) {


printf("Nhap so phan tu thu %d ", i);
scanf("%d", &a[i]);
}

printf("Day so da nhap la: \n"); // \n để lệnh in sau đó xuống dòng mới


for (i=1; i<=n; i++) {
printf("%5d ", a[i]); // In mỗi phần tử số theo dạng xxxxx
}
printf("\n");

Biên soạn: Th.s Nguyễn Anh Việt Trang 1


Bài tập C++ – Procedure và Function

printf("Giai thua cua day so la: \n");


for (i=1; i<=n; i++) {
printf("%5d ", giaithua(a[i]));
}
getch();
}

Bài 02.02 – In ra giá trị luỹ thừa 2 của các phần tử trong mảng 1 chiều
Bạn hãy nhập một dãy số nguyên và tính luỹ thừa 2 của từng số trong dãy đó.
(Dãy 1, 4, 7, 5, 2 => In ra 1, 16, 49, 25, 4)

#include <stdio.h>
#include <conio.h>

long long luythua (int a, int k) {


long long lt, i;
lt=1;
for (i=1; i<=k; i++) lt=lt*a;
return lt;
}

void main(){
clrscr();
int n, i, a[10];

printf("Nhap so phan tu cua day so ");


scanf("%d", &n);

for (i=1; i<=n; i++) {


printf("Nhap so phan tu thu %d ", i);
scanf("%d", &a[i]);
}

printf("Day so da nhap la: \n");


for (i=1; i<=n; i++) {
printf("%5d ", a[i]);
}
printf("\n");

printf("Luy thua 2 cua day so la: \n");


for (i=1; i<=n; i++) {
printf("%5d ", luythua(a[i], 2));
}
getch();
}

Biên soạn: Th.s Nguyễn Anh Việt Trang 2


Bài tập C++ – Procedure và Function

Procedure (void) cũng tương tự như Function, có thể có đối số, nhưng không giá trị trả về. TD:
void nhandoimang();

void nhandoimang () {
int i;
for (i=1; i<=n; i++) a[i]=a[i]*2;
return;
}

Bài 02.03 – In ra giá trị nhân đôi của các phần tử trong mảng 1 chiều
Bạn hãy nhập một dãy số nguyên và nhân đôi từng số trong dãy đó.
(Dãy 1, 4, 7, 5, 2 => In ra 2, 8, 14, 10, 4)

#include <stdio.h>
#include <conio.h>
int n, i, a[10];
void nhandoimang () {
int i;
for (i=1; i<=n; i++) a[i]=a[i]*2;
return;
}
void main(){
clrscr();
printf("Nhap so phan tu cua day so ");
scanf("%d", &n);
for (i=1; i<=n; i++) {
printf("Nhap so phan tu thu %d ", i);
scanf("%d", &a[i]);
}
printf("Day so da nhap la: \n");
for (i=1; i<=n; i++) {
printf("%5d ", a[i]);
}
printf("\n");

nhandoimang(); // Chú ý nếu không có () thì mảng không được nhân đôi

printf("Mang da nhan voi 2: \n");


for (i=1; i<=n; i++) {
printf("%5d ", a[i]);
}
getch();
}

Biên soạn: Th.s Nguyễn Anh Việt Trang 3


Bài tập C++ – Procedure và Function

Bài 02.04 – In ra giá trị nhân 4 của các phần tử trong mảng 1 chiều
Bạn hãy nhập một dãy số nguyên và nhân 4 từng số trong dãy đó. Chỉ được sử dụng void
nhandoimang như trong Bài 02.03. và không sửa lệnh a[i]=a[i]*2 => a[i]=a[i]*4 trong void này
(Dãy 1, 4, 7, 5, 2 => In ra 4, 16, 28, 20, 8)

Bài 02.05 – In ra số nguyên tố trong mảng 1 chiều


Bạn hãy nhập một dãy số nguyên và in ra các số nguyên tố trong dãy đó. Số nguyên tố là các số chỉ
chia hết cho 1 và chính nó như 2, 3, 5, 7, 11, 13, …
(Dãy 1, 4, 7, 5, 23 => In ra 7, 5, 23)

#include <stdio.h>
#include <conio.h>
#include <math.h> // Dùng để tính sqrt (căn số bậc 2)
int nguyento (int k) {
if (k<2) return 0; // Các số nhỏ hơn 2 không phải số nguyên tố
int i;
for (i=2; i<=int(sqrt(k)); i++) if (k%i==0) return 0; // Thử chia k cho
// 2 đến căn của k nếu chia hết thì không là nguyên tố
return 1; // không chia hết số nào thì là nguyên tố
}
void main(){
int n, i, a[10];
clrscr();
printf("Nhap so phan tu cua day so ");
scanf("%d", &n);
for (i=1; i<=n; i++) {
printf("Nhap so phan tu thu %d ", i);
scanf("%d", &a[i]);
}
printf("Day so da nhap la: \n");
for (i=1; i<=n; i++) {
printf("%5d ", a[i]);
}
printf("\n");
printf("Cac so nguyen to trong day: \n");
for (i=1; i<=n; i++) {
if (nguyento(a[i])==1) printf("%5d ", a[i]);
}
getch();
}

Biên soạn: Th.s Nguyễn Anh Việt Trang 4

You might also like