Bài tâp 1: nh p xâu ký t , d m s t b t d u b ng ‘h’ ho c k t thúc
b ng ’h’
Vd:
“_ _Khanh hoc_ _ _hanh rat hay xxxh”
=>4 t
#include <iostream.h>
int dem_tu(char s[]){
int i=0, d=0, b;
while(s[i]!='\0'){
while(s[i]==' ' && s[i]!='\0')i++;
b=i;
while(s[i]!=' ' && s[i]!='\0')i++;
if(s[b]=='h' || s[i-1]=='h')d++;
} return d;
} void main(){
char st[100];
cout<<"Nhap xau: ";
cin.getline(st,100);
cout<<"so tu bd or kt voi 'h' = "
<<dem_tu(st);
}
Trang 2Bt2: nh p xâu ký t ,
d m s t có ch a kí t ‘h’
Vd: “hoi khuyen hhoc”
Có 3 t
#include <iostream.h>
int dem_tu(char s[]){
int i=0, d=0, b;
while(s[i]!=0){
while(s[i]==' ' && s[i]!=0)i++;
b=i;
while(s[i]!=' ' && s[i]!=0)i++;
int x=0;
for(int j=b;j<i;j++)
if(s[j]=='h') {d++; x=1; break;}
if(x){
cout<<"tu thu "<<d<<": ";
for(int j=b;j<i;j++)cout<<s[j]; cout<<endl;
} } cout<<endl;
return d;
} void main(){
char st[100];
cout<<"Nhap xau: ";
cin.getline(st,100);
cout<<"so tu co chua ki tu 'h' = "
<<dem_tu(st);
}
Trang 3Bt3: nh p xâu, tìm 1 xâu con
d i x ng dài nh t
Phân tích:
-nh p xâu
-hàm ki m tra xâu d i x ng
-v i m i d dài I (n->1)
L y dc t t c các xâu con d dài I, n u xâu này dx thì in nó ra, k t thúc
#include <iostream.h>
int length(char *s){
int d=0;
while(s[d]!='\0')d++;
return d;
}
int kt_dx(char *s){
int i=0, k=length(s)-1;
while(i<k && s[i]==s[k]){i++;k ;}
if(i<k)return 0;
return 1;
}
void main(){
char s[100],t[100];
cout<<"nhap xau:";
cin.getline(s,100);
int n=length(s);
for(int i=n;i>1;i )
for(int j=1; j<=n-i+1; j++){
for(int k=0;k<i;k++) t[k]=s[k+j-1];
t[i]='\0';
if(kt_dx(t)){
cout<<"Xau con do dai "<<i
<<" :"<<t;
return;
} }
cout<<"khong co xau con doi xung dai hon 1";
}
Trang 4Bt4(m ng) Nh p m ng n ph n t s nguyên, tìm do n dài nh t (liên t c) trong m ng tang d n
#include <iostream.h>
int kt_mangtang(int a[],int p1,int p2){
for(int i=p1; i<p2; i++)
if(a[i]>a[i+1])return 0;
return 1;
}
void NhapMang(int a[], int &n){
cout<<"Nhap so luong phan tu:";
cin>>n;
for(int i=0; i<n; i++){
cout<<"A["<<i<<"]=";
cin>>a[i];
}
}
void main(){
int a[100],n;
NhapMang(a,n);
for(int i=n; i>1; i )
for(int j=1; j<=n-i+1; j++)
if(kt_mangtang(a,j-1,(j-1)+i-1)){
cout<<"Doan dai nhat "<<i
<<" phan tu tang dan: ";
for(int k=j-1; k<=i+j-2; k++)
cout<<a[k]<<' ';
return;
} cout<<"Khong tim thay";
}
Trang 5Bài 5: Nh p s nguyên N t bàn phím
Li t kê ra màn hình theo th t tang d n các phân s t i gi n d ng a/b v i 1=a=b=N
#include <iostream.h>
void main(){
int a,b,va,vb,n;
cout<<"Nhap n="; cin>>n;
float max=0,min,t;
do{
min=2;
for(a=1; a<=n; a++)
for(b=a; b<=n; b++){
t=(float)a/b;
if(t<min && t>max){
va=a; vb=b; min=t; }
} cout<<va<<'/'<<vb<<" ";
max=min;
}while(max<1);
}
Trang 6Bài 6: nh p m ng n ph n t s th c, in ra các ph n t l n hon tbc c a m ng
theo th t tang d n
#include <iostream.h>
void NhapMang(int a[], int &n){
cout<<"Nhap so luong phan tu:";
cin>>n;
for(int i=0; i<n; i++){
cout<<"A["<<i<<"]=";
cin>>a[i];
}
}
void LietKe(int a[], int n){
cout<<"Liet ke tang dan: ";
for(int i=0; i<n; i++)
cout<<a[i]<<" ";
cout<<endl;
}
void SapXep(int a[], int n){
for(int i=0; i<n-1; i++)
for(int j=i+1; j<n; j++)
if(a[i]>a[j]){
int tg=a[i];
a[i]=a[j];
a[j]=tg;
}
}
void main(){
int a[100], n;
NhapMang(a, n);
SapXep(a, n);
LietKe(a, n);
}
Trang 7G i vào s ti n t
Lãi su t hàng tháng q
Tính s tháng d c v n và lãi g p dôi s ti n g i
Trang 8M i tháng cho khách hàng rút ti n lãi, v n tính lãi nhu k rút ti n
#include <iostream.h>
void main(){
float t,q,tr=0,t0,lai;
int n,i;
cout<<"nhap so tien gui: ";
cin>>t;
t0=t;
cout<<"nhap lai suat: "; cin>>q;
cout<<"nhap ky han: "; cin>>n;
for(i=1; i<=n;i++){
lai=t*q;
cout<<"rut "<<lai
<<" => lai suat="
<<lai/(t0-tr)<<endl;
tr+=lai;
t=t+lai;
} cout<<"tong tien rut="<<tr<<endl
<<"ca von + lai="<<t0+tr;
}
Nh p 2 phân s
In ra t ng 2 phân s dó d ng t i gi n
2 4
2 8
3 4 A,b,c,d a/b+c/d=X/Y voi x=a*d+b*c y=b*d Bài toán con: nh p vào 2 s x,y
In ra phân s t i gi n c a x/y Con2: tìm uscln(x,y)=z
A/b+c/d=x/y x,y =>z x/y=(x/z)/(y/z)
bt1: Ki m tra s nguyên N có ph i là s chính phuong?
#include <iostream.h>
#include <math.h>
void main() { int n;
cout<<"Nhap n: ";
cin>>n;
float y=sqrt(n);
Trang 9if((int)y==y)
cout<<n<<" la so chinh phuong";
else
cout<<n<<" KHONG la so chinh phuong";
} Bt2 : Li t kê các s cp t 1 d n N, v i N nh p t bàn phím -cách làm
Ý tu ng : Sau khi có n (nh p n) Dùng vòng l p quét h t các s mà d u bài y/c For(i=1;i<=n;i++)
M i l n l p n u s dang quét là scp thì in nó ra
for(i=1; i<=n; i++){
y=sqrt(i) if((int)y==y) cout<<i<<”, ”;
}
#include <iostream.h>
#include <math.h>
void main() { int i,n;
cout<<"Nhap n: ";
cin>>n;
for(i=1; i<=n; i++){
float y=sqrt(i);
if((int)y==y) cout<<i<<" ";
} } Bt2.1 : Li t kê/Tính t ng/TBC các s cp t 1 d n N, v i N nh p t bàn phím
*Ý tu ng:
Sau khi có n (nh p n) Dùng vòng l p quét h t các s mà d u bài y/c
For(i=1;i<=n;i++)
M i l n l p n u s dang quét là scp thì C ng nó vào túi tham Khai báo bi n ch a t ng, kh i t o b ng 0
T NG
#include <iostream.h>
#include <math.h>
void main() { int i,n,s=0;
cout<<"Nhap n: ";
Trang 10cin>>n;
for(i=1; i<=n; i++){
float y=sqrt(i);
if((int)y==y) s+=i;
} cout<<"TOng cac so cp="<<s;
}
TBC
#include <iostream.h>
#include <math.h>
void main() { int i,n,s=0,d=0;
cout<<"Nhap n: ";
cin>>n;
for(i=1; i<=n; i++){
float y=sqrt(i);
if((int)y==y){s+=i; d++;}
} cout<<" TOng cac so cp="<<s<<endl;
cout<<"So luong cac so cp="<<d<<endl;
cout<<" TBC cac so cp="<<s/(float)d;
}
Bt3: m t ngu i g i s ti n T vào ngân hàng v i lãi su t s%/1 tháng H i sau bao nhiêu tháng ngu i dó rút h t ti n s du c s ti n g p 10 l n s
ti n g i ban d u?
Ð u vào: T, s
Ð u ra: s tháng mà t ng rút b ng 10T
Sau 1 tháng dc:
t ng rút=g c + lãi=T+T*s
n u chua d t 10T thì ch thêm 1 tháng