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;
  }

Categories

AI (13) AI programming (1) ASP (1) Android (31) App Honeygain (4) Assembly (17) Biểu diễn thuật toán (1) Bubble-Sort (1) Bài giảng (2) Bài giảng lập trình C và Cpp (21) Bài viết hay (104) Bản đồ tư duy (1) C Plus Plus (103) C/C++ (16) CDSL phân tán (1) CSS (2) Cơ sở dữ liệu (11) Danh ngôn lập trình (1) Datamining (4) Genetic Algorithm (1) Giáo trình (2) Giải thuật tiến hóa - thuật toán di truyền (2) Google App Engine (2) Góc học tập (34) HTML (1) Hướng dẫn kiếm tiền online tại nhà (6) Hướng dẫn sử dụng Emu8086 (1) Học lập trình (131) Học lập trình C và CPP qua ví dụ (17) Java (54) Java Căn bản (6) JavaScript (5) Kỹ năng đọc hiệu quả (1) Kỹ thuật lập trình (16) Kỹ thuật đồ họa máy tính (10) Lý thuyết Cơ sở dữ liệu (2) Lý thuyết đồ thị (11) Lập trình Cơ sở dữ liệu (2) Lập trình Python (2) Lập trình căn bản (8) Lập trình hướng đối tượng với Java (7) Lập trình mobile (7) Lập trình mạng (6) Lập trình nhúng (1) Lập trình trí tuệ nhân tạo (2) ML (1) MMO (6) MS Access (1) Machine learning (2) Mạng máy tính (1) Mẹo tìm kiếm trên Google (1) Nghiên cứu khoa học (2) Ngôn ngữ lập trình (2) Những cuốn sách hay mà bạn nên đọc khi còn trẻ (1) Pascal (3) Phương pháp tính toán tối ưu (2) Phương pháp tối ưu (2) Quản lý dự án CNTT (1) SEO (1) SQL (5) Swift (9) Sách hay (4) Thiết kế Web (2) Thuật toán (51) Thuật toán Sắp Xếp -Sort (9) Thuật toán Tìm kiếm - Search (5) Thuật toán di truyền (4) Thực hành Android (2) Tin học văn phòng (5) Tiện ích máy tính (3) Toán rời rạc (13) Treo máy kiếm tiền (3) Trí tuệ nhân tạo (18) Tài liệu tham khảo (4) Tìm hiểu Blockchain (2) Tự học Android (3) Tự học Android qua ví dụ (1) Tự học JavaScript (1) Tự học lập trình (7) Tự học lập trình Android (17) Tự học lập trình C và CPP (14) Tự học lập trình java qua các ví dụ (8) XML (1) blockchain (2) bài giảng quản lý dự án CNTT (1) bài tập java (3) bài tập lập trình (4) cấu trúc dữ liệu giải thuật (15) hướng dẫn viết báo (1) học lập trình Java (11) học máy (5) hợp ngữ (8) lập trình viên (3) phưng pháp đơn hình (2) thuật toán AI (2) tài liệu CNTT miễn phí (3) tính toán tối ưu (1) tự học lập trình iOS (8) tự học lập trình python (1) ví dụ Assembly (1) Đại số gia tử và ứng dụng (1) Đồ họa (4)