Code C\C++: Sử dụng struct trong hình không gian

Code C\C++: Sử dụng struct trong hình không gian 

/*

Viết chương trình:
-          Nhập vào tọa độ 3 điểm A,B,C trong không gian
-          Kiểm tra tính thẳng hàng của A,B,C
-          Nếu A,B,C không thẳng hàng thì tìm tọa độ trọng tâm G của
-          Ghi tọa độ A,B,C và tọa độ trọng tâm tam giác ABC vào file có tên là TamGiac.txt trong ổ đĩa E:\


*/
#include<stdio.h>
#include<conio.h>
#include<math.h>
 // khai bao cau truc
 struct ToaDo{
float x,y,z;
 };
 ToaDo A,B,C; // khai bao 3 bien có kiem la ToaDo
 // nhap toa do
 void Nhap(){
  printf("\n Nhap toa do diem A: ");
printf("\n x : ");   scanf("%f",&A.x);
printf("\n y : ");   scanf("%f",&A.y);
printf("\n z : ");   scanf("%f",&A.z);
  printf("\n Nhap toa do diem B: ");
printf("\n x : ");   scanf("%f",&B.x);
printf("\n y : ");   scanf("%f",&B.y);
printf("\n z : ");   scanf("%f",&B.z);
  printf("\n Nhap toa do diem C: ");
printf("\n x : ");   scanf("%f",&C.x);
printf("\n y : ");   scanf("%f",&C.y);
printf("\n z : ");   scanf("%f",&C.z);
 }
 // kiem tra tinh thang hang
 int KiemTraThangHang(){
  float d1=sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y)+(A.z-B.z)*(A.z-B.z));//AB
  float d2=sqrt((A.x-C.x)*(A.x-C.x)+(A.y-C.y)*(A.y-C.y)+(A.z-C.z)*(A.z-C.z));//AC
  float d3=sqrt((C.x-B.x)*(C.x-B.x)+(C.y-B.y)*(C.y-B.y)+(C.z-B.z)*(C.z-B.z));//BC

  if (d1+d2==d3||d1+d3==d2||d2+d3==d1)
return 1; // thang hang
  return 0;// khong thang hang
 }
 // chu vi, dien tich tam giac
 void ChuVi_DienTich(){
if(KiemTraThangHang()==1) printf("\n 3 diem A,B,C thang hang");
else {
float d1=sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y)+(A.z-B.z)*(A.z-B.z));
float d2=sqrt((A.x-C.x)*(A.x-C.x)+(A.y-C.y)*(A.y-C.y)+(A.z-C.z)*(A.z-C.z));
float d3=sqrt((C.x-B.x)*(C.x-B.x)+(C.y-B.y)*(C.y-B.y)+(C.z-B.z)*(C.z-B.z));
// chu vi
float c=d1+d2+d3;
// dien tich
float p=c/2;
float s=sqrt(p*(p-d1)*(p-d2)*(p-d3));
printf("\n Chu vi = %f ; Dien tich = %f ",c,s);

}
 }
 // Tinh toa do trong tam G
 ToaDo TrongTam(){
ToaDo G;
  G.x=(A.x+B.x+C.x)/3;
  G.y=(A.y+B.y+C.y)/3;
  G.z=(A.z+B.z+C.z)/3;
  return G;
 }
 // GHI VAO FILE
 void GhiFile(){
  FILE *f;
  f=fopen("E:\\TamGiac.txt","w");
  fwrite(&A,sizeof(A),1,f);
  fwrite(&B,sizeof(B),1,f);
  fwrite(&C,sizeof(C),1,f);
  fclose(f);
 }
int main(){
Nhap();
ChuVi_DienTich();
printf("\n Toa do trong tam G:(%f,%f,%f)",TrongTam().x,TrongTam().y,TrongTam().z );
GhiFile();
 getch();
 return 0;
}

Chúc các bạn thành công!

 

Code C\C++: Ví dụ sử dụng FILE trong C\C++

Ví dụ sử dụng FILE trong C\C++

/* Ví dụ sử dùng FILE trong C\C++
Viết chương trình:
 - Nhập vào 2 số nguyên a, b
 - Ghi 2 số nguyên a,b vào file bai1.txt
 - Đọc dữ liệu từ file bai1.txt, tính tổng, hiệu, tích, thương
 - Ghi kết quả vào file bai1.txt
 - Đọc dữ liệu từ file bai1.txt, in kết quả ra màn hình.

*/
#include<stdio.h>
#include<conio.h>
int a,b, tong, hieu, tich, thuong;
FILE *f;
// Nhap 2 so nguyen a,b
void Nhap(){
 printf("\n Nhap 2 so a,b: ");
 printf("\n a= ");
 scanf("%d",&a);
 printf("\n b= ");
 scanf("%d",&b);
}
// ghi a,b vao file bai1.txt
void GhiDuLieu(){
  //  mo file de ghi
  f=fopen("E:\\bai1.txt","w");
  // ghi a, b vao file
  fwrite(&a,sizeof(a),1,f);
  fwrite(&b,sizeof(b),1,f);
  // dong file
  fclose(f);
}
// Doc du lieu tu file bai1.txt
void DocDuLieu(){
// mo file de doc
f=fopen("E:\\bai1.txt","r");
// Doc du lieu tu file bai1.txt
int x,y;// chua du lieu doc ra
fread(&x,sizeof(x),1,f);
fread(&y,sizeof(y),1,f);
// tinh tong, hieu, tich, thuong
tong=x+y;
hieu=x-y;
   tich=x*y;
thuong=x/y;
// dong file
fclose(f);
}
// ghi ket qua vao file
void GhiKQ(){
 // mo file de ghi them
 f=fopen("E:\\bai1.txt","a");
 // di chuyen ve cuoi file
 fseek(f,0,SEEK_END);
 // ghi them tong, hieu,tich,thuong vao file
 fwrite(&tong,sizeof(tong),1,f);
 fwrite(&hieu,sizeof(hieu),1,f);
 fwrite(&tich,sizeof(tich),1,f);
 fwrite(&thuong,sizeof(thuong),1,f);
 //
 fclose(f);
}
// Doc ket qua tu file baiq.txt
void DocKQ(){
// mo file de doc
f=fopen("E:\\bai1.txt","r");
// dua con tro ve dua file
rewind(f);
printf("\n KET QUA DOC TU FILE bai1.txt ");
int t;// chua ket qua
fread(&t,sizeof(t),1,f); printf("\n a= %d",t);
fread(&t,sizeof(t),1,f); printf("\n b= %d",t);
fread(&t,sizeof(t),1,f); printf("\n tong= %d",t);
fread(&t,sizeof(t),1,f); printf("\n hieu= %d",t);
fread(&t,sizeof(t),1,f); printf("\n tich= %d",t);
fread(&t,sizeof(t),1,f); printf("\n thuong= %d",t);
fclose(f);
}
// ham main
int main(){
  Nhap();
  GhiDuLieu();
  DocDuLieu(); // doc và tinh
  GhiKQ(); // ghi them vao file
  DocKQ();
 getch();
 return 0;
}


Chúc các bạn thành công!

 

[C/C++] Hàm chuyển đổi chữ thành số và số thành chữ trong C\C++

Hàm chuyển  đổi số ra chữ, chữ ra số


Khai báo thư viện: #include <stdlib.h>



+ Đổi từ chuỗi ra số, hàm atoi(), atof(), atol() (trong stdlib.h)

Để chuyển đổi chuỗi ra số, ta sử dụng các hàm trên.
Cú pháp:
·         int atoi(const char *s): chuyển chuỗi thành số nguyên
·         long atol(const char *s): chuyển chuỗi thành số nguyên dài
·         float atof(const char *s): chuyển chuỗi thành số thực
Nếu chuyển đổi không thành công, kết quả trả về của các hàm là 0.

+ Đổi từ số ra chuỗi itoa(num, buf, 10);

Một số tài liệu và khoá học bổ ích dành cho bạn: 

# Giáo Trình: Kỹ Thuật Lập Trình C/C++ Căn Bản Và Nâng Cao [Click để xem]

# Khoá học online: Học lập trình C/C++ TỪ A - Z [Click để xem]

Code C\C++: Đổi cơ số 10 ra cơ số 2, 8, 16


/* Doi co so
- Nhap vao tu ban phim so nguyen a (2<a<256)
- Doi a ra co so 2
- Doi a ra co so 8
- Doi a ra co so 16
*/

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

int a;

// nhap a
void Nhap_a(){
 do{
cout<<"\n a= "; cin>>a;
if(a<2||a>256)
cout<<"\n Nhap lai a! ";

 } while(a<2||a>256);
}
// doi ra co so 2
void DoiCoSo2(int a){
int m[8];// chua so so nhi phan
// khoi tao mang
int i;
for(i=0;i<8;i++) m[i]=0;
// doi cho so
i=7;
while(a!=0){
 m[i]=a%2;
 i--;
 a=a/2;
}
// in ra so nhi phan
cout<<"\n* So nhi phan la: ";
for(i=0;i<8;i++) cout<<m[i];
}
// Doi ra so co so 8
void DoiCoSo8(int a){
int m[8];// chua so so bat phan
// khoi tao mang
int i;
for(i=0;i<8;i++) m[i]=0;
// doi cho so
i=7;
while(a!=0){
 m[i]=a%8;
 i--;
 a=a/8;
}
// in ra so bat phan
cout<<"\n* So bat phan la: ";
for(i=0;i<8;i++) cout<<m[i];
}
// Doi ra so co so 16
void DoiCoSo16(int a){
char m[8];// chua so so thap luc phan
// khoi tao mang
int i;
for(i=0;i<8;i++) m[i]='0';
// doi cho so
i=7;
int du;
while(a!=0){
 du=a%16;
 switch(du){
case 0: m[i]='0'; break;
case 1: m[i]='1'; break;
case 2: m[i]='2'; break;
case 3: m[i]='3'; break;
case 4: m[i]='4'; break;
case 5: m[i]='5'; break;
case 6: m[i]='6'; break;
case 7: m[i]='7'; break;
case 8: m[i]='8'; break;
case 9: m[i]='9'; break;
case 10: m[i]='A'; break;
case 11: m[i]='B'; break;
case 12: m[i]='C'; break;
case 13: m[i]='D'; break;
case 14: m[i]='E'; break;
case 15: m[i]='F'; break;
 }
 i--;
 a=a/16;
}
// in ra so bat phan
cout<<"\n* So thap luc phan la: ";
for(i=0;i<8;i++) cout<<m[i];
}
// ham chinh
int main(){

 Nhap_a();
 DoiCoSo2(a);
 DoiCoSo8(a);
 DoiCoSo16(a);

 getch();
 return 0;
}

// Tài liệu C\C++

Sử dụng Con trỏ trong C\C++


 CON TRỎ
-          Là một biến chứa địa chỉ của biến khác
-          Con trỏ kiểu nào chỉ trỏ đến biến kiểu đó
-          Khai báo:
<Kiểu dữ liệu> *<tên con trỏ>;
Vd:
int  *p; // p là con trỏ trỏ đến các biên số nguyên
float *p1;
-          Toán tử * và &
o   Toán tử *: dùng để lấy giá trị tại địa chỉ đứng sau nó
o   Toán tử &: dùng để lấy địa chỉ của biến
            Vd:
int x=4;
int *p;
// p trỏ vào x, nghĩa là p chứa địa chỉ của biến x
P=&x;
int y;
y=*p; //y=4
-          Con trỏ mảng
VD: int a[10]; // a: địa chỉ của mảng a (a chứa địa chỉ của phần tử a[0])
int *p;
P=a; // p trỏ vào phần tử a[0] => a[i] ó *(p+i)
-          Con trỏ cấu trúc
VD:
struct HS{
  char ht[30],lop[5],dc[50];
  float dT,dL,dH,dTong;
};

HS a[10],*p; // p: con trỏ cấu trúc
ð  Truy cập vào các trường trong cấu trúc ???
p=a; //
a[i].ht ó *(p+i).ht ó (p+i)->ht
p->lop
p->dT
Bài tập
   1. Viết chương trình:
a.      Nhập vào 1 dãy số nguyên có không quá 20 số
b.      In dãy vừa nhập
c.       Tìm max
d.      Tính tổng
e.       Sắp xếp
(dùng con trỏ mảng)

2  2.   Viết chương trình:
a.      Nhập thông tin của n học sinh (n<20) gồm các thông tin:
                                                          -    Họ tên
                                                          -     Địa chỉ
                                                          -    Tuổi
                                                          -     Lớp
                                                          -     Điểm toán, điểm lý, điểm hóa
b.      In thông tin của n học sinh
c.       Tính điểm tổng
d.      Đếm số học sinh đỗ đại hoc (điểm chuẩn=13)
e.       Tim học sinh có điểm cao nhât.
(dùng con trỏ cấu trúc)

Click để xem Tài liệu Lập trình C\C++

Code C\C++: Xử lý file văn bản


/* File
  Bai tap 1.
- Nhap vao 1 day so nguyen co n so (2<n<10)
- Ghi day so vua nhap vao file Mang1.txt trong o E:\
- Tim gia tri lon nhat, ghi vao cuoi file Mang1.txt
- Doc du lieu trong file Mang1.txt
*/

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

// khai bao
int a[10],n;
FILE *f;

// Nhap mang
void NhapMang(){
 printf("\n Nhap so phan tu ");
 do{ printf("\n n= ");
scanf("%d",&n);
if (n<2||n>10)
printf("\n Nhap lai n!");
 }while (n<2||n>10);
 // Nhap day
 printf("\n Nhap day: ");
 for(int i=0;i<n;i++)
 {
  printf("\n a[%d]=",i); scanf("%d",&a[i]);
 }
}
// Ghi vao file
void GhiFile(){
 f=fopen("E:\\Mang1.txt","w");
 for(int i=0;i<n;i++)
fwrite(&a[i],sizeof(int),1,f);

 fclose(f);
 printf("\n Da ghi xong!");

}
//Tim max
int Max(){
 int max=a[0];
 for(int i=1;i<n;i++)
if(max<a[i]) max=a[i];

 return max;
}

// Ghi gia tri max vao file
void GhiMax(){
 f=fopen("E:\\Mang1.txt","a");
 // dua con tro file ve cuoi file
 fseek(f,SEEK_END,0);
 int max=Max();
 fwrite(&max,sizeof(int),1,f);

 fclose(f);
 printf("\n Da ghi xong gia tri Max !");
}

// doc du lieu tu file
void DocFile(){
 printf("\n Doc du lieu tu file: \n ");
 f=fopen("E:\\Mang1.txt","r");
 int t;
 for(int i=0;i<n;i++){
fread(&t,sizeof(int),1,f);
printf("%d ;",t);
 }
 // doc gia tri max
 fread(&t,sizeof(int),1,f);
printf("\n Max: %d",t);
}

// Ham main
int main(){
NhapMang();
GhiFile();
GhiMax();
DocFile();
 getch();
 return 0;
}

//----CLICK HERE->>>Tài liêu hướng dẫn xử lý File trong C\C++

Code C#: Giải phương trình bậc 2 - Console

Giải phương trình bậc 2 - Console


/*
Giải và biện luận phương trình bậc 2 (sử dụng ứng dụng Console)
*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GiaiPT_bac2_console
{
    class Program
    {
        static void Main(string[] args)
        {
            float a, b, c;

            string xau;
            // Nhap a,b,c
            Console.WriteLine("\n Nhap he so: ");
            Console.Write("\n a= ");
            xau = Console.ReadLine();
            a = float.Parse(xau);
            Console.Write("\n b= ");
            xau = Console.ReadLine();
            b = float.Parse(xau);
            Console.Write("\n c= ");
            xau = Console.ReadLine();
            c = float.Parse(xau);

            // Giai va bien luan
            if (a == 0)
                if (b == 0)
                    if (c == 0)
                        Console.WriteLine("\n Phuong trinh vo so nghiem");
                    else
                        Console.WriteLine("\n Phuong trinh vo nghiem");
                else
                    Console.WriteLine("\n Phuong trinh co 1 nghiem x= {0}", c / b);
            else
            {
                
                float delta=b*b-4*a*c;
                if(delta<0)
                    Console.WriteLine("\n Phuong trinh vo nghiem");
                if(delta==0)
                    Console.WriteLine("\n Phuong trinh co nghiem kep x1=x2= {0}",-b/(2*a));
                if (delta > 0)
                {
                    float x1, x2;
                    x1 = (-b - (float)Math.Sqrt(delta)) / (2 * a);
                    x2 = (-b + (float)Math.Sqrt(delta)) / (2 * a);
                    Console.WriteLine("\n Phuong trinh co 2 nghiem x1= {0}; x2= {1}", x1, x2);
                }
            }
        }
    }
}
// Ấn CTRL + F5 để chạy.


Chúc các bạn thành công!

 

Code C\C++: Bai tập ôn tập 2 - Cấu trúc điều khiển; xâu ký tự


/* Bai tap on tap
Bai1. In ra man hinh tat ca nhung so nguyen to nho hon 2013
Bai2. Viet ham:
- Nhap vao mot xau ky tu co khong qua 100 ky tu
- In xau
- Dem so ky tu ch co trong xau (ch: nhap tu ban phim)

BTVN: - Chuyen cau truc for -> while -> do/while
- Chuyen if -> while
*/
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<math.h>
//
char xau[100];
// Kiem tra so nguye to
int TestNT(int a){
int i=2;
while(i<=(int)sqrt(a)){
 if (a%i==0) return 0;
 i++;
}
return 1;
}

// In so nguye to
void InSNT(){
 printf("\n In so nguyen to: \n");
 for (int i=1;i<2013;i++)
if (TestNT(i)==1) printf("%d; ",i);
}

//2.
// Nhap xau
void Nhap(){
  printf("\n Nhap xau: ");
  fflush(stdin);
  gets(xau);
}
// In xau
void InXau(){
 printf("\n In xau: %s",xau);

}
// Dem ki tu
void Dem(){
int dem=0;
char ch;
printf("\n Nhap ky tu can dem:");
scanf("%c",&ch);
for(int i=0;i<strlen(xau);i++)
if (xau[i]==ch) dem++;

printf("\n So lan xuat hien cua ky tu %c la: %d",ch,dem);
}

int main(){

 int k;
 printf("\n Chon 1: Bai 1 \n Chon 2: Bai 2");
 printf("\n An so: ");
 scanf("%d",&k);
 switch (k){
  case 1:
InSNT();
break;
  case 2:
Nhap();
InXau();
Dem();
break;
  }

  getch();
  return 0;
}

Code C\C++: Bài tập ôn tập 1 - mảng 2 chiều


/* Bai tap on tap 1:
Viet cac ham:
1. Nhap vao mot ma tran vuong so nguyen co kich thuoc n (4<n<7)
2. Dem so phan tu la so chia het cho 3 va 5
3. Tinh tong theo dong, in ket qua
4. Sap xep tang dan theo dong.
*/
#include<stdio.h>
#include<conio.h>

// mang
#define Max 7
#define Min 4

int m[Max][Max],n;

// Nhap
void Nhap(){
do{
 printf("\n Nhap n:");   scanf("%d",&n);
 if (n<Min||n>Max)
printf("\n Nhap lai n");
 }while (n<Min||n>Max);
 for(int i=0;i<n;i++)
  for(int j=0;j<n;j++)
  {
printf("\n m[%d][%d]=",i,j);
scanf("%d",&m[i][j]);
  }

}

// In
void InMT(){
printf("\n In ma tran: \n");
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
printf("%d\t",m[i][j]);
printf("\n");
}

}
// dem so chia het cho 3 va 5

int Dem(){
int dem=0;
for(int i=0;i<n;i++)
 for(int j=0;j<n;j++)
if(m[i][j]%3==0&&m[i][j]%5==0) dem++;
return dem;
}
// Tong dong
void TongDong(){
for(int j=0;j<n;j++)
{
int tong=0;
 for(int i=0;i<n;i++)

tong=tong+m[j][i];
 printf("\n Tong dong %d: %d ",j,tong);

}
}
  // Sap xep dong tang dan
  void SapXepDong(){
for(int j=0;j<n;j++)
{
for (int i=0;i<n-1;i++)
 for(int k=i+1;k<n;k++)
if(m[j][i]>m[j][k]) {int t=m[j][i];m[j][i]=m[j][k];m[j][k]=t; }
}
  }

  // main
  int main(){
Nhap();
InMT();
printf("\n Dem so chia het cho 3 va 5: %d",Dem());
TongDong();
SapXepDong();
   InMT();
getch();
return 0;
  }