Bài thực hành 1
a) Viết lại code
#include <iostream> using namespace std; int main(){ const int max = 5; int a[max] = {50, 30, 20, 0, -10}; int tong = 0, i; for (i=0; i<max; i++) tong = tong + a[i]; cout<<"Tong cac phan tu la: "<<tong; return 0; }
Kết quả khi chạy là:
Tong cac phan tu la: 90
b) Hiển thị ra màn hình tổng các giá trị dương:
#include <iostream> using namespace std; int main(){ const int max = 5; int a[max] = {50, 30, 20, 0, -10}; int tong = 0, i; //cout<<"Cac phan tu co gia tri duong la: \n"; for (i=0; i<max; i++) if(a[i]>0){ tong = tong + a[i]; //cout<<a[i]<<" \n"; } cout<<"Tong cac phan tu co gia tri duong la: "<<tong; return 0; }
Kết quả khi chạy là:
Tong cac phan tu co gia tri duong la: 100
Bài thực hành 2
a) Viết lại code
#include <iostream> using namespace std; int main(){ float a[100]; int n, i; cout<<"Nhap so phan tu cua mang n = "; cin>>n; for(i=0; i<n; i++){ cout<<"a["<<i<<"] = "; cin>>a[i]; } float max=a[0]; for(i=0; i<n; i++) if(a[i]>max) max=a[i]; cout<<"So lon nhat la: "<<max; return 0; }
Khi chạy khi nhập 3 phần tử: 2 8 6 và kết quả là:
So lon nhat la: 8
b) Hiển thị phần tử có giá trị nhỏ nhất và chỉ số của phần tử đó.
#include <iostream> using namespace std; int main(){ float a[100]; int n, i; cout<<"Nhap so phan tu cua mang n = "; cin>>n; for(i=0; i<n; i++){ cout<<"a["<<i<<"] = "; cin>>a[i]; } float min=a[0]; cout<<"Phan tu co gia tri nho nhat la: "; for(i=0; i<n; i++){ if(a[i]<min){ min=a[i]; cout<<"a["<<i<<"]"; } } cout<<" = "<<min; return 0; }
Khi chạy khi nhập 3 phần tử: 2 8 6 và kết quả là:
Phan tu co gia tri nho nhat la: a[0] = 2
Bài thực hành 3
Viết chương trình trình nhập mảng 1 chiều gồm 10 phần tử là các số nguyên nhập từ bàn phím và một số nguyên X. Tìm kiếm và in lên màn hình hình các phần tử có giá trị chị bằng x và chỉ số của các phần tử đó.
Code bài toán này khá giống với bài Nếu trong n phần tử đã nhập có X thì báo “Tìm thấy”, chúng ta chỉ cần biến đổi 1 chút là được.
#include <iostream> using namespace std; void nhap(int a[], int &n); int main(){ int a[10],n=10,x,d=0,timthay=0; cout<<"Nhap 10 phan tu:\n"; nhap(a,n); cout<<"Nhap x = "; cin>>x; for (int i=0; i<n; i++){ if (a[i]==x){ cout<<endl<<"a["<<i<<"] = "<<a[i]; timthay=1; } } if(timthay==0) cout<<"Khong co phan tu nao trung voi "<<x<<"."; } void nhap(int a[], int &n){ for (int i=0; i<n; i++){ cout<<"A["<<i<<"] = "; cin>>a[i]; } }
Khi chạy khi nhập 10 phần tử: 2 4 6 8 6 8 5 6 9 7 và x = 6 thì kết quả là:
Nhap 10 phan tu: A[0] = 2 A[1] = 4 A[2] = 6 A[3] = 8 A[4] = 6 A[5] = 8 A[6] = 5 A[7] = 6 A[8] = 9 A[9] = 7 Nhap x = 6 a[2] = 6 a[4] = 6 a[7] = 6
Khi chúng ta nhập x mà khác với các giá trị trong mảng thì kết quả trả về là Khong co phan tu nao trung voi x
Nhap 10 phan tu: A[0] = 2 A[1] = 4 A[2] = 6 A[3] = 8 A[4] = 4 A[5] = 7 A[6] = 2 A[7] = 3 A[8] = 5 A[9] = 6 Nhap x = 1 Khong co phan tu nao trung voi 1.
Bài thực hành 4
Giống code bài này: Sắp xếp số nguyên tố tăng dần C++
Viết một chương trình thực hiện các yêu cầu sau:
– Viết hàm có tên là sort(int a[],int n)để sắp xếp các phần tử của mảng một chiều theo thứ tự tăng dần.
– Viết hàm có tên là ktsnt(int x) kiểm tra xem một số nguyên x có phải là số nguyên tố không.
– Viết hàm main() nhập 10 phần tử là các số nguyên từ bàn phím, sử dụng hàm sort()và hàm ktsnt()để in lên màn hình các số nguyên tố trong mảng theo thứ tự tăng dần.
#include <iostream> #include <math.h> using namespace std; void sort (int a[], int n) { int i,j,tg; for(i = 0; i < n - 1; i++) { for(j = i + 1; j < n; j++) { if(a[i] > a[j]) { tg = a[i]; a[i] = a[j]; a[j] = tg; } } } for(int i=0;i<n;i++) { cout<<a[i]<<" "; } } int ktnt(int x) { int n=sqrt(x); for (int i=2;i<=n;i++) if (x%i==0) return 0; return 1; } int lietkent(int a[], int n) { for (int i=0; i<n; i++) if (ktnt(a[i])) cout<<a[i]<<" "; } int main () { int i, n=10, a[10]; cout<<"Moi ban nhap mang gom 10 phan tu:\n"; for (i=0;i<n;i++) { cout<<"A["<<i<<"]= "; cin>>a[i]; } cout<<"Sap xep mang tang dan"; sort(a,n); cout<<"\nSap xep cac so nguyen to tang dan la: "; lietkent(a,n); }