Lập trình C: Cấu trúc dữ liệu điểm 2D

Cho cấu trúc dữ liệu Diem2D được mô tả như sau:
struct Diem2D
{
float iX;
float iY;
};
Thực hiện các yêu cầu sau:
1.  Viết hàm Nhập và Xuất Diem2D
2.  Viết hàm Tính khoảng cách giữa 2 điểm A và B
3.  Viết hàm tính chu vi và diện tích của tam giác được thành từ 3 điểm A, B, C

  • file header


#include <stdio.h>
#include <conio.h>
#include <math.h>
#define MAX 100
typedef struct Diem2D
{
float iX;
float iY;
};
void NhapDiem(Diem2D &A);
void XuatDiem(Diem2D A);
float KhoangCach(Diem2D A, Diem2D B);
int TinhDienTichVaChuVi(Diem2D A, Diem2D B, Diem2D C);


  • Mô tả header

#include "MangBt03.h"
void NhapDiem(Diem2D &A)
{
printf("Nhap hoanh do :"); scanf_s("%f", &A.iX);
printf("Nhap tung do :"); scanf_s("%f", &A.iY);
}
void XuatDiem(Diem2D A)
{
printf("\nToa do diem : (%.2f ; %.2f)\n", A.iX, A.iY);
}
float KhoangCach(Diem2D A, Diem2D B)
{
float a1 = pow(A.iX - B.iX, 2), a2 = pow(A.iY - B.iY, 2);
float a = sqrt(a1 + a2);
return a;
}
int KiemTra(float a, float b, float c)
{
int kt = 1;
if (a + b > c && a + c > b && b + a > a)
kt = 1;
else kt = 0;
return kt;
}
int TinhDienTichVaChuVi(Diem2D A, Diem2D B, Diem2D C)
{
int hi;
float a, b, c;
a = KhoangCach(B,C); b = KhoangCach(A,C); c = KhoangCach(A,B);
if (KiemTra(a, b, c))
{
hi = 0;
float P, S, p;
P = a + b + c; printf("Chu vi tam giac ABC: %f", P);
p = P / 2;
float x = p - a, y = p - b, z = p - c;
S = sqrt(p*x*y*z);
printf("\nDien tich tam giac ABC: %f\n", S);
}
else
{
printf("3 diem da nhap khong phai la 3 dinh cua tam giac. Moi nhap lai 3 diems:\n");
hi = 1;
}
return hi;
}

  • Hàm main

#include "MangBt03.h"
void main()
{
printf("An phim 1: Chon cau 1\nAn phim 2: Chon cau 2\nAn phim 3: Chon cau 3");
int luachon; printf("\nNhap lua chon: "); scanf_s("%d", &luachon);
switch (luachon)
{
case 1:
Diem2D X;
printf("Nhap diem \n");
NhapDiem(X);
XuatDiem(X);
break;
case 2:
Diem2D Y, Z;
printf("Nhap diem A\n");
NhapDiem(Y);
printf("Nhap diem B\n");
NhapDiem(Z);
printf("Khoang cach 2 diem A,B: %f\n", KhoangCach(Y, Z));
break;
case 3:
Diem2D A, B, C;
do
{
printf("Nhap diem A\n");
NhapDiem(A);
printf("Nhap diem B\n");
NhapDiem(B);
printf("Nhap diem C\n");
NhapDiem(C);
} while (TinhDienTichVaChuVi(A, B, C));
break;
}
}

Ngày cắt tóc

Gã chạy xe - đi bộ trên những con đường cũ, nhưng kỷ niệm thổi lùa qua tóc, tất cả đã là quá khứ. Mái tóc gã trổ màu ngổ ngáo sau khi cắt tóc chiều. Bao nhiêu râu tóc “phong trần” đã cuốn trôi theo dao cạo, để lại vài vết rát trên gương mặt già trước tuổi. Bóng chiều in đậm trong mắt gã : đời như bèo dạt mây trôi, người ở bên ấy, tôi đi bên này, không biết có còn gặp lại được chăng?

Lập trình C: Nhập chuỗi kí tự và các thao tác cơ bản

Viết chương trình nhập chuỗi S và thực hiện các thao tác sau:

  • Cho biết số lượng khoảng trắng, số lượng kí tự số,số lượng chữ cái latin, số lượng các kí tự khác Latin
  • Đếm và cho biết số lượng từ của chuỗi,, biết rằng các chữ cách nhau 1 khoảng trắng
  • In hoa kí tự đầu
void main()
{
char chuoi[max];
NhapChuoi(chuoi);
printf("An so 1: chon cau 1\nAn so 2: chon cau 2\nAn so 3: chon cau 5\n");
int luachon; printf("Nhap lua chon: "); scanf_s("%d", &luachon);
switch (luachon)
{
case 1:
printf("Cau 1: So luong cac kieu ky tu trong chuoi vua nhap.\n");
DemCackieukitu(chuoi); break;
case 2:
printf("Cau 2: Tim so luong chu trong chuoi.\n");
DemSoChu(chuoi); break;
case 3:
printf("Cau 5: Bien ky tu dau trong chuoi thanh ky tu in hoa\n");
InHoaKyTuDau(chuoi);
}
}
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#define max 100
void NhapChuoi(char *chuoi);
void DemCackieukitu(char chuoi[]);
void DemSoChu(char *chuoi);
void InHoaKyTuDau(char *chuoi);
#include "MangBt01.h"
void NhapChuoi(char *chuoi)
{
printf("Nhap chuoi:");
gets(chuoi);
}
void DemCackieukitu(char *chuoi)
{
int k1 = 0, k3 = 0, k4 = 0, k5 = 0;
int dem = strlen(chuoi);
for (int i = 0; i<dem; i++)
{
if (chuoi[i] == ' ')
k1++;
else if ((chuoi[i] >= '0') && (chuoi[i] <= '9'))
k3++;
else if ((chuoi[i] >= 'a' && chuoi[i] <= 'z') || (chuoi[i] >= 'A' && chuoi[i] <= 'Z'))
k4++;
else
k5++;
}
printf("So luong khoang trang: %d\n", k1);
printf("so luong chu so: %d\n", k3);
printf("so luong ky tu Latin: %d\n", k4);
printf("so luong ky tu khac: %d\n", k5);
}
void DemSoChu(char *chuoi)
{
int dem = 0, k = strlen(chuoi);
if (chuoi[0] != ' ')
{
dem++;
for (int i = 1; i < k; i++)
{
if (chuoi[i] != ' ' && chuoi[i - 1] == ' ')
dem++;
}
}
else
{
for (int i = 1; i < k; i++)
{
if (chuoi[i] != ' ' && chuoi[i - 1] == ' ')
dem++;
}
}
printf("So luong chu trong day la: %d\n", dem);
}
void InHoaKyTuDau(char *chuoi)
{
int k = strlen(chuoi);
for (int i = 0; i < k; i++)
{
if (chuoi[i] >= 'a' && chuoi[i] <= 'z')
{
chuoi[i] = chuoi[i] - 32;
break;
}
}
printf(" Chuoi vua nhap la : % s\n ", chuoi);
}

Lập trình C: Mảng một chiều

Trộn 2 mảng 1 chiều a, b (đã sắp xếp không giảm) thành một mảng một chiều c, cũng có thứ tự không giảm.

#include <stdio.h>
#include <conio.h>
#include <math.h>
#define max 100
void NhapMang(int a[], int &n);
void XuatMang(int a[], int n);
void HoanVi(int &a, int &b);
void SapTang(int a[], int n);
void NoiMang(int a[], int &n, int b[], int m, int c[], int &k);

#include "MangBt07.h"
void NhapMang(int a[], int &n)
{
printf("Nhap so phan tu: "); scanf_s("%d", &n);
for (int i = 0; i < n; i++)
{
printf("a[%d] = ", i);
scanf_s("%d", &a[i]);
}
}
void XuatMang(int a[], int n)
printf("\nNoi dung mang: "); 
for (int i = 0; i < n; i++) 
printf(" %d \t ", a[i]); 
}
void HoanVi(int &a, int &b)
int tam = a;
a = b; b = tam; 
void SapTang(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]) 
HoanVi(a[i], a[j]); 
}
void NoiMang(int a[], int &n, int b[], int m, int c[], int &k)
int i = 0, j = 0; k = 0; 
while (i<n&&j<m) 
{
c[k++] = a[i++];
c[k++] = b[j++];
while (i<n)
c[k++] = a[i++];
while (j<m) 
c[k++] = b[j++];
}

#include "MangBt07.h"
void main()
{
int a[max], b[max], c[max]; int m, n, k;
printf("Nhap vao mang a[]:\n"); NhapMang(a, n); SapTang(a, n);
printf("Nhap vao mang b[]:\n"); NhapMang(b, m); SapTang(b, m);
k = m + n;
NoiMang(a, n, b, m, c, k); XuatMang(c, k);
}

LẬP TRÌNH C TRÊN UBUNTU VÀ CÀI ĐẶT,SỬ DỤNG YAHOO TRÊN UBUNTU

Các bước lập trình C trên Ubuntu :


1,vào terminal của Ubuntu gõ: sudo apt-get install gcc
(giải thích: để tải về gói dữ liệu gcc để lập trình ngôn ngữ
C trên Ubuntu)
2,gõ dòng lệnh: sudo apt-get install build-essential
(giải thích: tải về gói thư viện của Ubuntu trong đó có thư
viện của C trong gcc)
3,nhắp chuột phải trên Desktop của Ubuntu chọn new document
chọn empty document,gõ tên và gắn them đuôi *.c*.
(để tạo file chương trình con ngôn ngữ C)
4,viết câu lệnh câu cấu tạo chương trình con.
5,nhấn phím tắt crt+s để lưu file.
6, vào terminal gõ : cd Desktop
(để chuyển mã nguồn tới desktop của Ubuntu)
7,gõ gcc –g –o *tên file chương trình con* *tên file chương
trình con.c* -lm (đối với câu lệnh có thư viện math.h vì –lm để sử dụng thư viện
math.h trong gcc)
hoặc gcc *tên file chương trình con.c* -o *tên file chương
trình con*(đối với thư viện nhập xuất stdio.h)














8,gõ ./*tên file chương trình con* để bắt đầu chạy chương trình
con.








 Mô tả các bước cài đặt Yahoo bằng
dòng lệnh:


Vì yahoo không có phiên bản tương thích với Ubuntu nên em cài
Pidgin có liên kết với tài khoản Yahoo bằng dòng lệnh.
1,vào terminal,gõ:sudo apt-get install pidgin
2,gõ y để đồng ý tải gói dữ liệu.
3,sau khi cài pidgin xong, gõ pidgin để chạy ứng dụng.
4, ấn add và chọn yahoo trong mục protocol để liên kết tới tài
khoản yahoo.
5 đăng nhập bằng tài khoản Yahoo.