Menu-ngang

☰ MENU

14/03/2023

Bài thực hành lập trình C

NỘI DUNG THỰC HÀNH

Chương 1. Tổng quan về ngôn ngữ C

//1. Khai bao thu vien
#include <stdio.h>
#include <conio.h>

//2. Khai bao hang so (neu co)
#define PI 3.14 //cach 1
const float pi = 3.14; //cach 2

//3. Khai bao bien toan cuc
int a; //bien a co kieu so nguyen
float x; //bien x co kieu so thuc

//4. Ham chinh
int main()
{
	//5. Khai bao bien cuc bo (neu can)
   	int i; 
	float y = 10;
	
	//6. Khoi lenh
	printf("Pi = %f", pi);
	printf("\ny = %f", y);
	
	getch();
    return 0;
}

Chương 2. Các thành phần cơ bản

Bài 1. Viết chương trình xuất ra màn hình dòng chữ “Xin chao ngon ngu C”.


Bài 2. Viết chương trình nhập vào 1 số nguyên, xuất ra màn hình số nguyên vừa nhập.


Bài 3. Viết chương trình tính tổng, hiệu, tích của 2 số nguyên a và b nhập từ bàn phím.



Bài 4. Viết chương trình tính thương của 2 số thực a và b nhập từ bàn phím. Kết quả lấy 1 số lẻ.


Bài 5. Viết chương trình đổi nhiệt đô từ đơn vị Ferarit ra độ C theo công thức: C = (F-32)/1.8


Bài 6. Viết chương trình tính diện tích, chu vi hình tròn với bán kính R nhập từ bàn phím.



Bài 7. Nhập vào 2 số nguyên a,b. Tìm số lớn nhất trong 2 số.

Bài 8. Nhập vào 5 số nguyên. Tính trung bình cộng 5 số đó.

Bài 9. Viết chương trình tính diện tích, chu vi của hình chữ nhật với 2 cạnh a và b nhập từ bàn phím.

Bài 10. Viết chương trình tính diện tích, chu vi của tam giác vuông với 2 cạnh a và b nhập từ bà

Xem lý thuyết: https://www.vnkha.com/2022/02/chuong-2-cac-thanh-phan-co-ban.html

Chương 3. Các lệnh có cấu trúc

Bài 1. Giải phương trình bật nhất ax + b = 0

#include <stdio.h>

int main(){
  int a;
  int b;
  float nghiem;
  
  printf("Nhap a = ");
  scanf("%d", &a);
  printf("Nhap b = ");
  scanf("%d", &b);
    
  if(a == 0) {
    if(b == 0) {
      printf("\nPhuong co vo so nghiem.");
    } else {
      printf("\nPhuong trinh vo nghiem.");
    }
  } 
  else {
      nghiem = (float)-b/a;
      printf("\nPhuong trinh co nghiem: x = %0.2f",nghiem);
  }

  return 0;
}

Bài 2. Giải phương trình bật hai ax2 + bx + c = 0

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

main()
{
    float a, b, c, delta, x1, x2;
    printf("=== GIAI PHUONG TRINH BAC 2 ===\n");
    printf("Nhap vao 3 so a, b, c: ");
    scanf("%f%f%f", &a, &b, &c);
    if(a==0)
    {
        if(b==0)
            {
                if(c==0)
                    printf("Phuong trinh co vo so nghiem!");
                else
                    printf("Phuong trinh vo nghiem!");
            }
        else
            printf("Phuong trinh co nghiem duy nhat la: %f",-c/b);
    }
    else
    {
        delta = b*b-4*a*c;
        if (delta < 0)
            printf("Phuong trinh vo nghiem!");
        else if (delta == 0)
            printf("Phuong trinh co nghiem kep la: %f", -b/(2*a));
        else
            {
            	x1 = (-b+sqrt(delta))/(2*a);
            	x2 = (-b-sqrt(delta))/(2*a);
				printf("Phuong trinh co 2 nghiem phan biet la: \n x1 = %f \n x2 = %f", x1, x2);
			}
			    
    }    
  return 0;
}
    

Bài 3. Dùng cấu trúc lặp for, while, do..while xuất ra màn hình từ 1 đến 10

     
#include <stdio.h>
int main()
{
	//Dung cau truc for
    for(int i=1;i<=10;i++)
    	printf("\n for - dong: %d",i);
	
	//Dung cau truc while
	int j = 1;
    while(j<=10)
    {
    	printf("\n while - dong: %d",j);
    	j++;
	}
	
	//Dung cau truc do..while
	int k = 1;
    do{
    	printf("\n do..while - dong: %d",k);
    	k++;
	} while(k<=10);
    
	return 0;
}

    

Bài 4. Tính tổng S = 1 + 2 + 3 + .. + n với n là số nguyên dương nhập từ bàn phím

  
#include <stdio.h>

int main()
{
	int n, s;
	
	//Nhap n tu ban phim
	printf("Nhap n = ");
	scanf("%d", &n);
	
	s = 0;
    for(int i=1;i<=n;i++)
    {
    	s = s+i;
	}
    //Xuat ra ket qua, tong s
    printf("Tong n = %d",s);

    return 0;
}

Bài 5. Tính tổng số chẵn SC = 2 + 4 + 6 + .. + n với n là số nguyên dương nhập từ bàn phím

  
#include <stdio.h>

int main()
{
	//Khai bao bien
	int n, tong_chan;
	
	printf("=== TINH TONG CAC SO CHAN TU 1..n ===\n");
	//Nhap n tu ban phim
	printf("Nhap so nguyen n = ");
	scanf("%d",&n);
	
	tong_chan = 0;
    for(int i=1;i<=n;i++)
    {
    	//Tinh tong chan
    	if(i%2 == 0)
    		tong_chan = tong_chan + i;
	}
    //Xuat ra ket qua
    printf("\nTong chan = %d",tong_chan);

    return 0;
}

Bài 6. Tính tổng số lẻ SL = 1 + 3 + 5 + .. + n với n là số nguyên dương nhập từ bàn phím

     
#include <stdio.h>

int main()
{
	//Khai bao bien
	int n, tong_le;
	
	printf("=== TINH TONG CAC SO LE TU 1..n ===\n");
	//Nhap n tu ban phim
	printf("Nhap so nguyen n = ");
	scanf("%d",&n);
	
	tong_le = 0;
    for(int i=1;i<=n;i++)
    {
    	//Tinh tong le
    	if(i%2 != 0)
    		tong_le = tong_le + i;
	}
    //Xuat ra ket qua
    printf("\nTong chan = %d",tong_le);

    return 0;
}

Bài 7. Tìm các ước số của n, với n là số nguyên dương nhập từ bàn phím

    
#include<stdio.h> #include<conio.h> int main() { int n; do { //Nhap n         printf("\nNhap n(n > 0): "); scanf("%d", &n); //Kiem tra n co phai nguyen duong if(n <= 0) { printf("\n N phai > 0. Vui long nhap lai !"); } }while(n <= 0); //Tim cac Uoc so for(int i=1; i<=n; i++) { if(n % i == 0) printf("%4d", i); } getch(); return 0; }

Bài 8. Tính tổng các ước số của n, với n là số nguyên dương nhập từ bàn phím

     
#include<stdio.h> #include<conio.h> int main() { int n; do { //Nhap n printf("\nNhap n(n > 0): "); scanf("%d", &n); //Kiem tra n co phai nguyen duong if(n <= 0) { printf("\n N phai > 0. Vui long nhap lai !"); } }while(n <= 0); //Tim tong cac Uoc so for(int i=1; i<=n; i++) { if(n % i == 0) printf("%4d", i); } getch(); return 0; }

Bài 9. Tìm các số nguyên tố từ 1..n, với n là số nguyên dương nhập từ bàn phím

     
#include <stdio.h> #include <conio.h> int main() { int n; printf("\nNhap n = "); scanf("%d", &n); printf("Day so nguyen to tu 1..%d la:\n", n); for(int j=2; j<=n; j++) { int dem = 0; for(int i = 2; i < j; i++) { if(j % i == 0) dem++; } if(dem == 0) printf("\t%d", j); } getch(); return 0; }

Bài 10. Tìm các số hoàn hảo từ 1..n, với n là số nguyên dương nhập từ bàn phím

     
#include <stdio.h> #include <conio.h> int main() { int n; printf("\nNhap n = "); scanf("%d", &n); printf("Day so hoan hao tu 1..%d la:\n", n); for(int j=2; j<=n; j++) { int s = 0; for(int i = 1; i < j; i++) { if(j%i == 0) s = s + i; } if(s == j) printf("\t%d", j); } getch(); return 0; }

Chương 4. Hàm

#include <stdio.h>

//Ham tinh tong 2 so nguyen
int tong_2_so(int a, int b)
{
	int tong;
	tong = a + b;
	return tong;
}

//Ham tinh hieu 2 so nguyen
int hieu_2_so(int a, int b)
{
	int hieu;
	hieu = a - b;
	return hieu;
}

//Ham tinh tich 2 so nguyen
int tich_2_so(int a, int b)
{
	int tich;
	tich = a*b;
	return tich;
}

//Ham tinh thuong 2 so nguyen
float thuong_2_so(int a, int b)
{
	float thuong;
	thuong = (float) a/b;
	return thuong;
}
int main()
{
	int x, y;
	int tong, hieu, tich;
	float thuong;
	printf("Nhap 2 so nguyen x, y: ");
	scanf("%d%d",&x, &y);
	tong = tong_2_so(x,y);
	hieu = hieu_2_so(x,y);
	tich = tich_2_so(x,y);
	thuong = thuong_2_so(x,y);
	printf("Tong %d + %d = %d", x,y,tong);
	printf("\nHieu %d - %d = %d", x,y,hieu);
	printf("\nTich %d * %d = %d", x,y,tich);
	printf("\nThuong %d / %d = %.2f", x,y,thuong);
	
    return 0;
}

Chương 5. Mảng

Bài 1. Chương trình nhập, xuất mảng số nguyên a:

#include <stdio.h>
#include <conio.h>
int main()
{
	//1.Khai bao
	int a[100]; //khai bao mang co 100 phan tu
	int n; //Khai bao so pt nhap tu ban phim
	
	//2.Nhap so phan tu
	printf("Nhap so phan tu:");
	scanf("%d",&n);
	
	//3.Nhap gia tri phan tu
	for(int i=0;i<n;i++)
	{
		printf("Nhap phan tu thu %d: ",i+1);
		scanf("%d",&a[i]);
	}
	
	//4.Xuat gia tri cua cac phan tu
	printf("Gia tri cac phan tu trong mang a:");
	for (int i=0;i<n;i++)
	{
		printf("\nGia tri cac phan tu thu %d la: %d",i+1, a[i]);
	}
	
	getch();
	return 0;
}
  

Bài 2. Chương trình thực hiện xử lý một số hàm về mảng  

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

void nhap_mang(int a[], int n)
{
	for(int i=0;i<n;i++)
	{
		printf("Nhap phan tu thu %d: ",i+1);
		scanf("%d",&a[i]);
	}
}

void xuat_mang(int a[], int n)
{
	printf("Danh sach cac phan tu trong mang:\n");
	for(int i=0;i<n;i++)
		printf("\t %d: ",a[i]);
	
}

int dem_pt_le(int a[], int n)
{
	int dem = 0;
	for(int i=0; i<n; i++)
	{
		if(a[i]%2 != 0)
			dem++;
	}
	return dem;
}

int dem_pt_chan(int a[], int n)
{
	int dem = 0;
	for(int i=0;i<n;i++)
	{
		if(a[i]%2 == 0)
			dem++;
	}
	return dem;
}

int tinh_tong_pt(int a[], int n)
{
	int tong = 0;
	for(int i=0;i<n;i++)
	{
		tong = tong + a[i];
	}
	return tong;
}

int tong_pt_le(int a[], int n)
{
	int tong = 0;
	for(int i=0;i<n;i++)
	{
		if(a[i]%2 != 0)
			tong = tong + a[i];
	}
	return tong;
}

int tong_pt_chan(int a[], int n)
{
	int tong = 0;
	for(int i=0;i<n;i++)
	{
		if(a[i]%2 == 0)
			tong = tong + a[i];
	}
	return tong;
}

int max(int a[], int n)
{
	int max;
	max = a[1];
	for(int i=0;i<n;i++)
	{
		if(a[i] > max)
			max = a[i];
	}
	return max;
}

int min(int a[], int n)
{
	int min;
	min = a[1];
	for(int i=0;i<n;i++)
	{
		if(a[i] < min)
			min = a[i];
	}
	return min;
}

int main()
{ 
	int a[100];
	int n;
	printf("THAO TAC VOI CAC PHAN TU TRONG MANG\n");
	printf("Nhap so phan tu cho mang: ");
	scanf("%d",&n);
	
	nhap_mang(a,n);
	xuat_mang(a,n);
	printf("\nSo pt le trong mang: %d",dem_pt_le(a, n));
	printf("\nSo pt chan trong mang: %d",dem_pt_chan( a, n));
	printf("\nTong cac pt trong mang: %d",tinh_tong_pt(a, n));
	printf("\nTong cac pt le trong mang: %d",tong_pt_le( a, n));
	printf("\nTong cac pt chan trong mang: %d",tong_pt_chan(a, n));
	printf("\nPhan tu Max: %d",max(a, n));
	printf("\nPhan tu Min: %d",min(a, n));
	getch();
	return 0;
}
  
 

Chương 6. Con trỏ

Bài 1.

(đang cập nhật)

Chương 7. Chuỗi kí tự

Bài 1.

(đang cập nhật)

Chương 8. Đọc, ghi file

Bài 1.

(đang cập nhật)