Thứ Tư, 11 tháng 12, 2013

C/C++

Posted by Unknown Thứ Tư, tháng 12 11, 2013, under | No comments

* Kể từ bài này mình sẽ viết về lập trình C / C++ ,từ căn bản đến nâng cao .

I. Gới thiệu sách :
Các bạn tìm đọc  vài quyển sau nha ! ( Mình không share được vì bản quyền sách , các bạn cố gắn tìm đọc trên internet , dùng thẻ Visa mua: quyển 1 thì tầm vài chục $, quyển 2 trên 100$, quyền 3 vài chục $  : )) )

1 . Brian Kernighan, Dennis Ritchie, The C Programming Language (2nd Edition :238 trang ): kinh điển và phải-đọc cho tất cả những ai muốn học C! ( hầu như 4 năm DH của tui chỉ đọc cuốn này )


2. Randal Bryant, David O'Hallaron, Computer Systems: A Programmer's Perspective ( 2001 :783 trang; 2002: 1078 trang ): cuốn này được dùng cho lớp CS107. Đọc cuốn này và làm bài tập của lớp CS107 sẽ rèn cho bạn kỹ năng lập trình C .

3. David Hanson, C Interfaces and Implementations ( 533 trang ) : muốn  "lên cơ" bida thì phải thường xuyên xem người khác chơi để mà học "đường" mới ; muốn giỏi lập trình thì phải thường xuyên đọc mã của những cao thủ. David Hanson là một cao thủ C và cuốn sách này sẽ chỉ cho bạn nhiều "đường" mới trong việc sử dụng C ( Văn ôn ,võ luyện . Tầm sư học đạo . Tìm cao thủ bái sư  ... )

II .Bài tập thực hành :

 Bài 1 : Viêt chương trình in dòng " helloworld " .

Tạo mới 1 project " helloworld " -> file -> new ->projects





code :
// khai báo thư viện
#inclucde<stdio.h>
// hàm chính
void main ()
{
// xuất ra màn hình
printf("Hello World ! Welcome to Vietnam !");
}

Kiểm tra lỗi : nhấp phím " F5 " để kiểm tra lỗi , thông báo lỗi hiện dưới khung " Output" .
Chạy chương trình : nhấp phím " Ctrl + F5" , kết quả xuất ra của sổ doc .




Bài tập 2 : Viết chương trình tính tổng 2 số nguyên nhập vào từ bàn phím .

Trước đây, để đọc dữ liệu nhập vào phím với ngôn ngữ C dùng " scanf" , những năm gần đây MS thay đổi là "scanf_s", vì thế khi bạn viêt "scanf" thì khi bạn "debug" sẽ thấy thông báo "Wamring ", đây là lỗi cú pháp, chương trình vẫn chạy .

code :
// bien_docgiatri.cpp : Defines the entry point for the console application.
//khai bao thu vien
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<math.h>
// ham chinh
void main()
{
//khai bao bien
// kieu du lieu bien la so nguyen
int a, b, s;
//doc du lieu nhap vao tu ban phim
printf("\n Nhap gia tri cua a =");
//truoc day doi voi C de doc du lieu nhap vao ban phim dung "scanf"
//bay h chay tren phien ban moi, MS yeu cau "scanf_s", khac ti
scanf_s("%d", &a);
printf("\n Nhap gia tri cua b =");
scanf_s("%d", &b);
s = a + b;
// xuat du lieu xa man hinh
printf("\n Tong cua 2 so vau nhap: %d + %d = %d \n",a,b,s);
_getch();
}

Bải tập 3 : Viết chương trình đọc chuỗi nhập vào từ bàn phím, xuất ra màn hình chuỗi vừa nhập .

code:
// doc_xuat_chuoi.cpp : Defines the entry point for the console application.
// khai bao thu vien
#include "stdafx.h"
#include<concrt.h>
#include<string.h>
void main()
{
// chuoi la mang, mang nay la mang mot chieu chua ky tu
// khai bao bien cho chuoi
// 50 la so ky tu toi da co trong mang "ten"
char ten[50];
printf("\n Nhap vao ho va ten cua ban :");
// doc chuoi nhap vao tu ban phim
gets_s(ten); printf("\n Ho va ten cua ban la :");
// xuat chuoi vua nhap ra man hinh
puts(ten);
_gettch();
}


Bài tập 4 : Viết chương trình xóa bỏ khoảng trắng thừa trong một chuỗi ( giữa 2 từ liền kề nếu có hơn 2 khoảng trắng thì xóa đi chừa 1 khoảng trắng )

code
// xoa_khoang_trang.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
char *trim(char *chuoi)
{
char *p;
while (p = strstr(chuoi, "  "))// 2 khoang trang ke nhau thi xoa 1 khoang trang
memmove(p, p + 1, strlen(chuoi) - (p - chuoi));
if (chuoi[0] == ' ')
memmove(chuoi, chuoi + 1, strlen(chuoi));
if (chuoi[strlen(chuoi) - 1] == ' ')
chuoi[strlen(chuoi) - 1] = 0;
return chuoi;
}
void main()
{
char chuoi[100];
printf("\n Nhap chuoi vao chuoi can chinh sua :"); gets_s(chuoi);
trim(chuoi);
printf("\n Chuoi sau khi da xoa khoang trang thua :"); puts(chuoi);
_getch();
}



Bài tập 5: Viết chương trình nối 2 chuỗi thành 1 chuỗi .

code :
// ghep_chuoi.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include<conio.h>
// khong viet ham
// khong cap phat dong
void main()
{
char s1[100], s2[100];
int i, j;
printf("\n Nhap chuoi thu nhat: ");
gets_s(s1);
printf("\n Nhap chuoi thu hai: ");
gets_s(s2);
for (i = 0; s1[i] != '\0'; ++i);
for (j = 0; s2[j] != '\0'; ++j, ++i)
{
s1[i] = s2[j];
}
s1[i] = '\0';
printf("\n Ket qua sau khi ghep 2 chuoi: %s", s1);
printf("\n");
_getch();
}



* Đến đây mình kết thúc phần đầu về Lập trình C căn bản .
* Phần kế sẽ đi sâu : mảng, con trỏ , cấu trúc .








Xem Nhiều

Bài đăng phổ biến

Lưu trữ blog

Blog Archive