Dành cho GV ôn thi HSG tin
Chia sẻ bởi Nguyễn Thị Thuỷ |
Ngày 26/04/2019 |
49
Chia sẻ tài liệu: Dành cho GV ôn thi HSG tin thuộc Tin học 11
Nội dung tài liệu:
Buổi 1: NHẮC LẠI KIẾN THỨC CƠ BẢN TRONG PASCAL
I.Cấu trúc điều khiển
1.Cấu trúc rẽ nhánh if…then
a.Dạng thiếu if <Điều kiện> then;
*Hoạt động: Kiểm tra điều kiện, nếu điều kiện đúng thì thực hiện Câu lệnh
b.Dạng đủ If <Điều kiện> then
Else;
*Hoạt động: Kiểm tra điều kiện, nếu điều kiện đúng thì thực hiện Câu lệnh 1, điều kiện sai thì thực hiện Câu lệnh 2.
2.Câu lệnh rẽ nhánh Case…of
*Cú pháp: Case of
: Câu lệnh 1;
: Câu lệnh 2;
…….
: Câu lệnh n
[Else Câu lệnh n+1];
End;
*Hoạt động: Khi gặp câu lệnh case…of máy tính tính giá trị biểu thức nếu trả về giá trị nào thì thực hiện câu lệnh tương ứng trong danh sách, nếu khác thì thực hiện câu lệnh n+1.
*Ví dụ: Nhập vào 2 số nguyên là tháng và năm. Cho biết tháng đó có bao nhiêu ngày?
Program vidu1;
Uses crt;
Var T,N,SN:integer;
Begin
Clrscr;
Write(‘Nhap thang va nam’); readln(T,N);
Case T of
4,6,9,11: SN:=30;
2: if (N mod 400=0) or ((N mod 100<>0) and (N mod 4=0)) then SN:=29
Else SN:=28;
Else SN:=31;
End;
Writeln(‘Thang ’,T, ‘ nam ’,N,’ Co so ngay ’,SN);
Readln
End.
3.Cấu trúc lặp For…do
*Cú pháp: For:= to do ;
For:= downto do ;
4.Cấu trúc While…do
*Cú pháp: While <điều kiện> do;
5.Cấu trúc lặp Repeat…until
*Cú pháp: Repeat
;
Until <Điều kiện>;
*Ví dụ: Kiểm tra số nguyên dương N nhập vào từ bàn phím có thỏa mãn điều kiện (0<=N<=1000)?
Repeat
Write(‘Nhap so nguyen N=’);
Readln(N);
Until (n>=0) and(n<=1000);
II.Kiểu dữ liệu có cấu trúc
1.Kiểu mảng một chiều
*Khái niệm: Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu có một tên chung, các phần tử này được đánh số gọi là chỉ số của các phần tử.
*Cú pháp khai báo: Var:array[n1..n2] of ;
2.Kiểu mảng 2 chiều
*Khai báo: Var:array[m1..m2,n1..n2] of ;
*Ví dụ: Chương trình sau tính và đưa ra màn hình bảng nhân
Program bangnhan;
Uses crt;
Var A:array[1..9,1..10] of integer;
i,j:integer;
begin
for i:=1 to 9 do
for j:=1 to 10 do
a[i,j]:=i*j;
for i:=1 to 9 do
begin
for j:=1 to 10 do
write(a[i,j]:4);
writeln;
end;
readln;
end.
*Bài tập về nhà:
Bài 1:Cho mảng 2 chiều m hàng, n cột. Hãy điền các số nguyên dương từ 1 đến m*n vào mảng 2 chiều sao cho mảng được sắp thứ tự theo hình vẽ: (ví dụ m=3, n=4 thì mảng có dạng sau:
1 2 3 4
8 7 6 5
9 10 11 12
Bài 2: Nhập vào số nguyên dương N (2Bài 3: Cho N gói kẹo (N<200) đánh số từ 1 đến N, gói kẹo thứ i có ai cái kẹo(ai<200). Hãy sắp các gói kẹo thành 2 phần sao cho độ chênh lệch
I.Cấu trúc điều khiển
1.Cấu trúc rẽ nhánh if…then
a.Dạng thiếu if <Điều kiện> then
*Hoạt động: Kiểm tra điều kiện, nếu điều kiện đúng thì thực hiện Câu lệnh
b.Dạng đủ If <Điều kiện> then
Else
*Hoạt động: Kiểm tra điều kiện, nếu điều kiện đúng thì thực hiện Câu lệnh 1, điều kiện sai thì thực hiện Câu lệnh 2.
2.Câu lệnh rẽ nhánh Case…of
*Cú pháp: Case
…….
[Else Câu lệnh n+1];
End;
*Hoạt động: Khi gặp câu lệnh case…of máy tính tính giá trị biểu thức nếu trả về giá trị nào thì thực hiện câu lệnh tương ứng trong danh sách, nếu khác thì thực hiện câu lệnh n+1.
*Ví dụ: Nhập vào 2 số nguyên là tháng và năm. Cho biết tháng đó có bao nhiêu ngày?
Program vidu1;
Uses crt;
Var T,N,SN:integer;
Begin
Clrscr;
Write(‘Nhap thang va nam’); readln(T,N);
Case T of
4,6,9,11: SN:=30;
2: if (N mod 400=0) or ((N mod 100<>0) and (N mod 4=0)) then SN:=29
Else SN:=28;
Else SN:=31;
End;
Writeln(‘Thang ’,T, ‘ nam ’,N,’ Co so ngay ’,SN);
Readln
End.
3.Cấu trúc lặp For…do
*Cú pháp: For
For
4.Cấu trúc While…do
*Cú pháp: While <điều kiện> do
5.Cấu trúc lặp Repeat…until
*Cú pháp: Repeat
Until <Điều kiện>;
*Ví dụ: Kiểm tra số nguyên dương N nhập vào từ bàn phím có thỏa mãn điều kiện (0<=N<=1000)?
Repeat
Write(‘Nhap so nguyen N=’);
Readln(N);
Until (n>=0) and(n<=1000);
II.Kiểu dữ liệu có cấu trúc
1.Kiểu mảng một chiều
*Khái niệm: Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu có một tên chung, các phần tử này được đánh số gọi là chỉ số của các phần tử.
*Cú pháp khai báo: Var
2.Kiểu mảng 2 chiều
*Khai báo: Var
*Ví dụ: Chương trình sau tính và đưa ra màn hình bảng nhân
Program bangnhan;
Uses crt;
Var A:array[1..9,1..10] of integer;
i,j:integer;
begin
for i:=1 to 9 do
for j:=1 to 10 do
a[i,j]:=i*j;
for i:=1 to 9 do
begin
for j:=1 to 10 do
write(a[i,j]:4);
writeln;
end;
readln;
end.
*Bài tập về nhà:
Bài 1:Cho mảng 2 chiều m hàng, n cột. Hãy điền các số nguyên dương từ 1 đến m*n vào mảng 2 chiều sao cho mảng được sắp thứ tự theo hình vẽ: (ví dụ m=3, n=4 thì mảng có dạng sau:
1 2 3 4
8 7 6 5
9 10 11 12
Bài 2: Nhập vào số nguyên dương N (2
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Thị Thuỷ
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)