Thứ Năm, 29 tháng 1, 2015

viết chương trình c chuyển đổi hệ đếm nhị phân, bát phân, thập lục phân

viết chương trình c chuyển đổi hệ đếm nhị phân, bát phân, thập lục phân.
 DEC,BIN,HEX,OCT. 
 Viết chương trình in bảng của các số từ 1 đến 256 dưới dạng nhị phân, bát phân và thập lục phân tương ứng

#include<iostream>
using namespace std;
long sodu(int a,int b)
{
return a-b*int(a/b);
}
void dao(char *s)
{
char a;
for(int i=0;i<strlen(s)/2;i++)
{
a=s[i];s[i]=s[strlen(s)-1-i];s[strlen(s)-1-i]=a;
}
}
void to2(long n,char *s)
{

int i=0;
while(n>0)
{
s[i++]=sodu(n,2)+48;        //so 0 co ma 48
n/=2;
}
s[i]='\0';
dao(s);
}
void to8(long n,char *s)
{
int i=0;
while(n>0)
{
s[i++]=sodu(n,8)+48;//so 0 co ma 48
n/=8;
}
s[i]='\0';
dao(s);
}
void to16(long n,char *s)
{
int i=0,m;
while(n>0)
{
m=sodu(n,16);
if(m<10) s[i++]=m+48;
else switch(m)
{
case 10:s[i++]='A';break;
case 11:s[i++]='B';break;
case 12:s[i++]='C';break;
case 13:s[i++]='D';break;
case 14:s[i++]='E';break;
case 15:s[i++]='F';break;
}
n/=16;
}
s[i]='\0';
dao(s);
}
void main()
{
char a[100];
char b[100];
char c[100];
int i;
printf("DEC   :   BIN      : OCT    : HEX   \n-----------------------------------\n");
for(i=150;i<=256;i++)
{
to2(i,a);to8(i,b);to16(i,c);
printf("%-5d : %-10s : %-6s : %-6s\n\n",i,a,b,c);
}
}

lập trình tìm các bộ số pitago | lập trình c/c++

lập trình tìm các bộ số pitago | lập trình c/c++. 
 Một tam giác vuông có thể có tất cả các cạnh là các số nguyên. Tập của ba số nguyên của các cạnh của một tam giác vuông được gọi là bộ ba Pitago. Đó là tổng bình phương của hai cạnh bằng bình phương của cạnh huyền, chẳng hạn bộ ba Pitago (3, 4, 5). Viết chương trình tìm tất cả các bộ ba Pitago như thế sao cho tất cả các cạnh không quá 500.

#include<iostream>
#include<math.h>
using namespace std;
int sochinhphuong(float n)
{
if ((float)sqrt(n) - (int)sqrt(n) == 0) return 1;
return 0;
}
void pitago()
{
int i, j;
for (i = 2; i < 500; i++)
for (j = i; j < 500; j++)
{
if (sqrt(i*i+j*j)>500) break;
if (sochinhphuong(i*i + j*j)) cout << " (" << i << "," << j << "," << sqrt(i*i + j*j) << ") \n";
}
}
void main()
{
pitago();

}

viết hàm in các tam giác bằng dấu sao *


Viết chương trình nhập vào số nguyên dương h (2<h<23), sau đó in ra các tam giác có chiều cao là h.viết hàm in các tam giác có chiều cao h=N nhập vào
#include<iostream>
using namespace std;
void tamgiac1(int n)
{
int i,j;
for (i = n; i >=1; i--)
{
for (j = i; j <= n; j++)cout << "  ";
for (j = 1; j <= 2 * i - 1; j++) cout << "* ";
cout << "\n\n";
}
cout << "\n\n";
}
void tamgiac2(int n)
{
int j, i;
for (i = 1; i <= n; i++)
{
for (j = i; j <= n; j++) cout << "  ";
for (j = 1; j <= 2 * i - 1; j++) cout << " *";
cout << "\n\n";
}
cout << "\n\n";
}
void tamgiac3(int n)
{
int i, j;
for (i = 1; i < n; i++)
{
for (j = i; j <= n; j++) cout << "  ";
for (j = 1; j <= 2 * i - 1; j++) if (j == 1 || j == 2 * i - 1) cout << "* "; else cout << "  ";
cout << "\n\n";
}
cout << "  ";
for (i = 1; i <= 2*n-1; i++) cout << "* ";
cout << "\n\n\n\n";
}
void tamgiac4(int n)
{
int i, j;
cout << "  ";
for (i = 1; i <= 2 * n - 1; i++) cout << "* ";
cout << "\n\n";
for (i = n - 1; i >= 1; i--)
{
for (j = i; j <=n; j++) cout << "  ";
for (j = 1; j <= 2 * i - 1; j++) if (j == 1 || j == 2 * i - 1) cout << "* "; else cout << "  ";
cout << "\n\n";
}
cout << "\n\n";
}
void main()
{
int n;
cout << "nhap N="; cin >> n;
tamgiac1(n);
tamgiac2(n);
tamgiac3(n);
tamgiac4(n);
}

Thứ Tư, 28 tháng 1, 2015

thuật toán tìm kiếm tuyến tính cải tiến trên dãy đã sắp xếp


thuật toán tìm kiếm tuyến tính cải tiến trên dãy đã sắp xếp
#include<iostream>
using namespace std;
int tim(int *a,int n,int x)
{
int i=0;
while(a[i]!=x && i<n) i++;
if(i==n) return 0;
return i;
}
int tim1(int *a,int n,int x)
{
int i=0;
a[n]=x;
while(a[i]!=x) i++;
if(i==n) return 0;
return i;

}
int tim2caitien(int *a,int n,int x)
{
int i=0;
a[n]=x;
while(a[i]<x) i++;
if(i<n && a[i]==x) return i;
return 0;
}
void main()
{
int a[11]={1,3,6,7,10,11,13,24,45,46},x;
cout<<"tim so x=";
cin>>x;
if(int t=tim2caitien(a,10,x)) cout<<"tim thay tai vi tri: "<<t<<"\n";
else cout<<"khong tim thay";

}

thuật toán tìm kiếm nhị phân bằng đệ quy


//thuật toán tìm kiếm nhị phân bằng đệ quy
#include<iostream>
using namespace std;
int tim(int *a,int left,int right,int x)
{
int m;
if(left>right) return 0;
m=(left+right)/2;
if(a[m]==x) return m;
if(x<a[m]) return tim(a,left,m-1,x);
return tim(a,m+1,right,x);
}
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int x;
cout<<"tim so: ";cin>>x;
if(int z=tim(a,0,9,x)) cout<<"tim thay tai vi tri: "<<z<<"\n";
else cout<<"khong tim thay\n";

}

viết hàm kiểm tra số chính phương


in ra màn hình số chính phương lớn nhất trong dãy. nếu không có só chính phương nào thì in ra "dãy không có số chính phương nào".
viết hàm kiểm tra 1 số có phải là số chính phương hay không.
#include<iostream>
#include<math.h>
#include<stdlib.h>
using namespace std;
int sochinhphuong(float n)
{
if((float)sqrt(n)-(int)sqrt(n)==0) return 1;
return 0;
}
void main()
{
int max=0;
int *a=(int*)malloc(91*sizeof(int));
for(int i=10;i<=100;i++) a[i-10]=i;
for(int i=0;i<91;i++)
if(sochinhphuong(a[i]) && max<a[i]) max=a[i];
cout<<"day:";
for(int i=0;i<91;i++) cout<<" "<<a[i];
if(max==0) cout<<"\nday khong co so chinh phuong nao\n";
else cout<<"\nso chinh phuong lon nhat trong day: "<<max<<"\n";
}

Thứ Ba, 27 tháng 1, 2015

Tính Giá Trị Biểu Thức Nhập Từ Bàn Phím


//lập trình c tính giá trị của 1 biểu thức bất kỳ nhập từ bàn phím gồm các phép tính cộng, trừ, nhân, chia (+-/*). biểu thức nhập ở dạng chuỗi. giống máy tính bỏ túi casio
#include<iostream>
#include<string.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
using namespace std;
float tinhgiatri(char *s);
void sohang(char *s,float *a,int &n);
void dau(char *s,char *b);
int kiemtra(char *s);
void main()
{
char s[1000],c;
       cout<<"TRẦN KHÁNH TOÀN\n-------------------------------------------------------------------";
loop:;
do
{
cout << "\n->nhap bieu thuc:\n\t";
fflush(stdin);
gets(s);
if(!kiemtra(s)) cout<<"\nnhap bieu thuc khong chua <space>,ky tu,phep tinh lien ke...\n\tNHAP LAI\n\n";
}while(!kiemtra(s));
cout<<"\t= "<<tinhgiatri(s)<<"\n\n\t---------------------\n\t| tiep tuc: <space> |\n\t| ket thuc: bat ky  |\n\t---------------------\n";
if(c=getch()==32) goto loop;
}
float tinhgiatri(char *s)
{
float kq,a[1000];
int i,j,n;
char b[1000];
sohang(s,a,n);
dau(s,b);
for(i=0;i<strlen(b);i++)
{
if(b[i]=='*')
{
(float)a[i]*=(float)a[i+1];
for(j=i+1;j<n-1;j++) a[j]=a[j+1];
n--;
for(j=i;j<strlen(b)-1;j++)b[j]=b[j+1];
b[strlen(b)-1]='\0';
i--;
}
if(b[i]=='/')
{
(float)a[i]/=(float)a[i+1];
for(j=i+1;j<n-1;j++) a[j]=a[j+1];
n--;
for(j=i;j<strlen(b)-1;j++) b[j]=b[j+1];
b[strlen(b)-1]='\0';
i--;
}
}
(float)kq=(float)a[0];
for(i=0;i<strlen(b);i++)
{
if(b[i]=='+') kq+=(float)a[i+1];
else kq-=(float)a[i+1];
}
return kq;
}
void sohang(char *s,float *a,int &n)
{
char z[1000];
int i,k,j,x;
n=0;
for(i=0;i<strlen(s);i++)
{
k=0;
while(s[i]>='0' && s[i]<='9') z[k++]=s[i++];
z[k]='\0';
x=atoi(z);
a[n++]=(float)x;
}
}
void dau(char *s,char *b)
{
int i,k=0;
for(i=0;i<strlen(s);i++)
if(s[i]=='+' || s[i]=='-' || s[i]=='*' || s[i]=='/')
b[k++]=s[i];
b[k]='\0';
}
int kiemtra(char *s)
{
if(strlen(s)==0) return 0;
for(int i=0;i<strlen(s);i++)
if(s[i]==' ' ||
(s[i]>='a' && s[i]<='z') ||
(s[i]>='A' && s[i] <='Z') ||
((s[i]=='+' || s[i]=='-' || s[i]=='*' || s[i]=='/')&& (s[i+1]=='+' || s[i+1]=='-' || s[i+1]=='*' || s[i+1]=='/')))
return 0;
return 1;
}

Bài đăng phổ biến