You are on page 1of 16

-Giáo trình tin học đại cương

-Đánh giá điểm 4-6


điểm quá trình: điểm danh + ktra 20p
điểm thi: 60p làm trên phòng máy, thi xong biết điểm luôn
-Y/c:
đi học đầy đủ, ghi chép, trao đổi
làm bài tập trên lớp và ở nhà
thực hành

Bài 1
1.Khái niệm về thông tin
2.Phần mềm
- phần mềm là chương trình máy tính
- phần mềm được viết bằng ngôn ngữ lập trình
- có nhiều ngôn ngữ lập trình
- có hai loại phần mềm chính
+ hệ điều hành (operating system)
+ phần mềm ứng dụng (applications)

3. Thuật toán
- k/n: là một dãy hữu hạn các bước thực hiện để đạt được một mục tiêu
- giải một bài toán trên máy tính
+ xác định rõ bài toàn
+ xác định thuật toán và cách tổ chức dữ liệu
+ xây dựng chương trình
+ chạy và kiểm thử chương trình
- làm gì khi thuật toán khá phức tạp: vẽ sơ đồ khối (dùng các biểu tượng được quy ước)
- là gì khi đối diện với một bài toán lớn: chia để trị -> phân rã thành các chức năng nhỏ
(các hàm)

4. Xử lý thông tin trên àlmáy tính


Cấu trúc dữ liệu + thuật toán = chương trình
5. Ngôn ngữ lập trình
- công cụ để xây dựng chương trình trên máy tính
+ ngôn ngữ lập trình: bậc thấp, bậc cao
+ có nhiều loại ngôn ngữ (phụ thuộc vào mục đính sử dụng)
+ ngôn ngữ C++: bậc cao, hiệu quả, sử dụng nhiều …

Chương trình bằng mã máy


Chương trình viết bằng Chương trình để máy tính hiểu và thực
một ngôn ngữ (C, C++, biên dịch hiện

Môi trường phát triển tích hợp (IDE)

- Lý do học ngôn ngữ lập trình C :


+ Có một lịch sử phát triển lâu dài (trên 30 năm)
+ Đã được chuẩn hóa
+ Mạnh mẽ, gọn nhẹ, súc tích, lich hoạt
+ Sử dụng phổ biến trong khoa học và kỹ thuật …

Bài 2: Ngôn ngữ lập trình C


1.1
1.2
1.3 Tên
- Tên chuẩn
Tên các hàm chuẩn: sqrt(), pow() …
Tên các kiểu dữ liệu chuẩn: char, int, float …
- Quy tắc đặt tên (cho hằng, biến, mảng, hàm)
Chỉ gồm chữ cái, chữ số và dấu gạch nối ( sinh_vien, sv1 )
Không có dấu cách ở giữa
Không được bắt đầu bằng chữ số
Phân biệt chữ hoa và chữ thường
*chú ý
Nên đặt tên thể hiện ý nghĩa dữ liệu mà nó đại diện
Nên đặt tên biến bằng chữ thường, tên hằng bằng chữ hoa
*VD: /* Chương trình in 2 dòng chữ */
#include<stdio.h>
int main (){
printf("xin chao cac ban");
printf("sinh vien DHGT");
}
1.4 Khai báo biến và mảng
- Quy tắc khai báo biến (variable)
+ Mọi biến trước khi sử dụng đều phải khai báo
+ Khai báo biến là báo cho máy cấp bộ nhớ để lưu dữ liệu
+ Khai báo biến bắt đầu từ khối, sau dấu {
+ Biến có tác dụng từ chỗ khai báo cho đến hết khối
+ Cách khai báo:
kiểu_biến tên_biến;
kiểu_mảng tên_mảng[kích_thước_mảng];
*ví dụ:
int n;
float a, b, c, delta;
float x[100];
1.5 Đưa kết quả ra màn hình
Printf (‘”chuỗi ký tự”, bt1, bt2, …, btn);
- bt1, bt2, …, btn là các biểu thức mà giá trị của chúng cần được đưa ra màn hình
- Chuỗi ký tự bao gồm ba loại ký tự:
+ các ký tự hiển thị
+ các kí tự điều khiển: \n, \t
+ các ký tự dùng để mô tả kiểu cách đưa ra của các loại biến …
1.6 một số ký tự đặc biệt
‘\n’: biểu thị kí tự xuống dòng (cũng tương đương với endl)
‘\t’: kí tự tab …
1.7 nhận dữ liệu từ bàn phím
Scanf(“t1t2…tn”, &b1, &b2,…, &bn);
+ b1, b2,…, bk là các biến để nhận dữ liệu (nhập từ bàn phím)
+t1, t2,…, tn là chuỗi ký tự chứa các dặc tả tương ứng với các biến
*vd: tính chu vi, diện tích hình vuông
#include<stdio.h>
int main (){
float a, cv, dt;
printf("nhap do dai canh hinh vuong = ");
scanf("%f", &a);
cv=a*4;
dt=a*a;
printf("chu vi = %f", cv);
printf("dien tich = %f", dt);
}
*ví dụ: ?* chuong trinh tinh x luy thua y */
#include <stdio.h>
#include <math.h>
int main ()
{
Float x,y,z;
Printf(“\nNhap x va y:”);
Scanf(“%f%f”, &x, &y);
Z = pow(x,y);
Printf(“\nv = %f \ny = %f \nz = %f”, x, y, z);
}
1.7 Một số hàm toán học
Pow(x,y) -> xy
Sqrt(x) -> căn x
Abs(x) -> |x|
Exp(x) -> ex
Log(x), cos(x), tan(x), …
Bài tập: nhập 3 số thực Tính các giá trị: trung bình cộng, trung bình nhân của chúng
#include<stdio.h>
int main (){
float a, b, c, tbc, tbn;
printf("nhap gia tri ba so thuc = ");
scanf("%f%f%f", &a, &b, &c);
printf("trung binh cong = %f", (a+b+c)/3); printf("trung binh nhan = %.2f", (a*b*c)/3);
printf("trung binh nhan = %f", (a*b*c)/3); nếu muốn lấy sau dấu thập phân 2 số
}

Tbn= pow(a*b*c, 1.0/3); để tính tbn

Khai báo thêm #include<math.h> nếu dùng lệnh pow

Bài 2: nhập bán kính của một hình tròn. Tính chu vi và diện tích của hình tròn đó
#include<stdio.h>
int main (){
float a, cv, dt;
printf("nhap do dai ban kinh hinh tron=");
scanf("%f", &a);
cv=2*a*3,14;
dt=a*a*3,14;
printf("chu vi = %f",cv);
printf("dien tich = %f", dt);

}
Bài 3: nhập giá trị hai điện trở. Tính giá trị điện trở tương đương
a) hai điện trở mắc song song
b) hai điện trở mắc nối tiếp
Bài 4: nhập a, b, c là độ dài ba cạnh của một tam giác. Hãy tính chu vi và diện tích của
tam giác đó
#include<stdio.h>
int main (){
float a, b, c, p, h, cv, dt;
printf("nhap do dai ba canh cua tam giac=");
scanf("%f", &a, &b, &c);
cv=a+b+c;
p=(a+b+c)/2;
h=2*(sqrt(p*(p-a)*(p-b)*(p-c))/a;
dt=(1/2)a*h;
printf("chu vi = %f",cv);
printf("dien tich = %f", dt);

}
Bài 5: nhập ba số dương a, b, c. Hãy xác định xem chúng có thể là độ dài ba cạnh của
một tam giác không? Và nếu chúng là độ dài ba cạnh của một tam giác thì hãy tính chu vi
và diện tích của tam giác đó (sử dụng hàm if)
Điện trở mắc nối tiếp có công thức như sau:

UAB=U1+U2+...+Un
IAB=I1=I2=...=In
RAB=R1+R2+...+Rn
Điện trở mắc song song có công thức như sau:

UAB=U1=U2=...Un
IAB=I1+I2+...In
1/RAB=1/R1+1/R2+...+1/Rn
P=(a + b + c)/2
H=2*(√ p∗( p−a)∗( p−b)∗( p−c))/a
Dt= (½) a*h
Bài 3: Các kiểu dữ liệu
1.Kiểu dữ liệu
-trong C sd các kiểu dữ liệu cơ bản
+ Kí tự: char
+ Số nguyên: int
+ Số thực: float
-với mỗi kiểu dữ liệu
+ Ý nghĩa của dữ liệu
+ Kích thước và phạm vi biểu diễn
+ Các thao tác có thể thực hiện trên các kiểu dữ liệu đó
-có thể tạo ra các kiểu dữ liệu mới
typedef struct
2.Kiểu char
-Một giá trị kiểu chả chiếm 1 byte=8bit và biểu diễn được một kí tự
Kí tự = mã SCII: 0=048, 1=049, 2=050, A=065, B=066, a=097, b=098
Khai báo biến kieur chả khi biến chỉ có 1 kí tự
3.kiểu nguyên
-số nguyên (int), số nguyên dài (long) và số nguyên k dấu (unsigned)
Kiểu=phạm vi biểu diễn=kích thước:
Int = --2147483648
4.Kiểu thực
Ba loại giá trị dấu phẩy động là float, double và long double
Kiểu=phạm vi biểu diễn=số chữ số có nghĩa=kích thước (byte)
Float = 3.4E-38->3.4E+38=
5. hằng số
-hằng số là một giá trị k thay đổi trong quá trình tính toán
-các loại hằng
+ Nguyên 1
+ Thực 1.0 .34 1e3 1E3 1e-3 1E-3
+ Kí tự ‘a’ ‘1’
+ Chuỗi kí tự “a” “xin chao”
-định nghĩa hằng
#define MAX 1000
6. khai báo biến và mảng
-quy tắc khai báo biến
-cách khai báo:
Kiểu_biến tên_biến;
Kiểu_mảng tên_mảng

Bài tập
1. Nhập ba số, tìm max của 3 số đó
#include<stido.h>
int main(){
float a, b, c, max;
print("nhap ba so thuc: ");
scanf("%f%f%f", &a, &b, &c);
max=a>b?a:b;
printf("\nMax cua ba so= %f", max>c?max:c);

}
2. Nhập 4 số nguyên, tìm max của các số đó
Max1=a,b?a:b
Max2=c>d?c:d
3. Nhập các hệ số a,b,c. gpt ax2 + bx + c = 0

Bài tập 1: nhập bốn só thực, tính giá trị trung bình cộng, trung bình nhân của các
số đó
#include<stdio.h>
int main (){
float a, b, c, d, tbc, tbn;
printf("nhap gia tri bon so thuc = ");
scanf("%f%f%f%f", &a, &b, &c, &d);
printf("\ntrung binh cong = %f", (a+b+c+d)/4);
printf("\ntrung binh nhan = %f", (a*b*c*d)/4);
}

Bài tập 2: nhập một số tự nhiên có ba chữ số, tính tổng các chữ số của số đó
#include<stdio.h>
int main (){
int n, dv, chuc, tram;
printf("nhap mot so tu nhien co ba chu so: ");
scanf("%d", &n);
dv= n%10;
n=n/10;
chuc= n%10;
tram= n/10;
printf("\nTong cac chu so = %d", dv+chuc+tram);
}
Bài tập 3: nhập một số tự nhiên có 3 chữ số. Hỏi xem nó có phải số Armstrong
không (số armstrong nếu: abc = a3 + b3 + c3)
include<stdio.h>
int main (){
int n, t, a, b, c;
printf("nhap mot so tu nhien co ba chu so: ");
scanf("%d", &n);
t= n;
c= n%10;
n= n/10;
b= n%10;
a= n/10;
if(t==a*a*a + b*b*b + c*c*c);
printf ("\nDay la so Armstrong");
else
printf("\nDay khong la so Armstrong");
}

Bài 4: các câu lệnh điều khiển


1. câu lệnh If
Vd: tìm giá trị lớn nhất của ba số a, b, c
….
If(a >b)
Max= a;
Else
Max= b;
If (c > max)
Max= c;
Printf (“max cua ba so = %f”, max);
Vd: giải phương trình bậc 2: ax2 + bx + c = 0
#include<stdio.h>
#include<math.h>
int main(){
float a, b, c, d, x1, x2;
printf("nhap cac he so:");
scanf("%f%f%f", &a, &b, &c);
d= b*b - 4*a*c;
if(d>0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("\nPT co hai nghiem x1= %f va x2= %f", x1, x2);
}
else
if(d==0)
printf("\nPT co nghiem kep x= %f", -b/(2*a));
else
printf("\nPT vo nghiem");
}
Bài tập 1: viết chương trình tính tiền điện khi biết số điện tiêu thụ (kwh) theo công thức:
Mức 1: từ 0 đến 50 số : 1484đ/số (kwh)
Mức 2: từ 51 đến 100 số : 1786đ/số
Mức 3: từ 101 đến 200 số : 1786đ/số
Mức 4: từ 201 trở lên: 2242 đồng/số

#include<stdio.h>
#define M1 1484
#define M2 1533
#define M3 1786
#define M4 2242
int main(){
int s;
float tien;
printf("nhap so dien tieu thu:");
scanf("%d", &s);
if(s<=50)
tien= (M1*s);
else if(s<=100)
tien= M1*50 + M2*(s-50);
else if(s<=200)
tien= M1*50 +M2*50 + M3*100 + M4*(s-200);
printf("\nSo tien phai tra = %.0f VND", tien);
}

2.Câu lệnh SWITCH


Bài tập: Nhập điểm thi từ bàn phím và hiển thị kết quả: Kém nếu điểm từ 0-3, Yếu nếu
điểm là 4, Trung bình nếu điểm từ 5-6, Khá nếu điểm từ 7-8, Giỏi nếu điểm từ 9-10

#include<stdio.h>
int main()
{
int diem;
printf ("Nhap vao diem (la so nguyen): ");
scanf ("%d", &diem);
switch (diem)
{
case 0 :
case 1 :
case 2 :
case 3 :
printf ("Kem \n");
break;
case 4 :
printf ("Yeu \n");
break;
case 5 :
case 6 :
printf ("Trung binh \n ");
break;
case 7 :
case 8 :
printf ("Kha \n");
break;
case 9 :
case 10 :
printf ("Gioi \n");
default :
printf("Diem sai \n");
}
}
3.Câu lệnh FOR
- cú pháp :
For (biểu thức 1; biểu thức 2; biểu thức 3)
khối lệnh;
->Biểu thức 1-> biểu thức 2 -----> khối lệnh -> biểu thức 3 -> biểu thức 2 -> .. sai(dừng)
Đúng
Bài 1: nhâp số nguyên n và số thực x. Tính: s= x+ x2 +x3 + … + xn
#include<stdio.h>
#include<math.h>
int main()
{
float x, s, i, n;
printf("nhap so thuc x= ");
scanf("%f", &x);
printf("nhap so tu nhien n= ");
scanf("%d", &n);
s= 0;
for(i=1; i<=n; ++i);
s= s + pow(x,i);
printf("tong s = %f", s)
}
Bài 2: nhập số nguyên n và số thực x. tính: s = x*(x+1)*(x+2)*…*(x+n)
#include<stdio.h>
#include<math.h>
int main()
{
float x, s, i, n;
printf("nhap so thuc x= ");
scanf("%f", &x);
printf("nhap so tu nhien n= ");
scanf("%d", &n);
s= 1;
for(i=0; i<=n; ++i);
s= s * (x+i);
printf("tich s = %f", s);
}

You might also like