HH. Powered by Blogger.

Hướng dẫn giải bài tập 7 SGK Tin học 11 - Trang 51

Đề bài: Nhập từ bàn phím tuổi của cha và con (hiện tại tuổi cha lớn hơn hai lần tuổi con và tuổi cha hơn tuổi con ít nhất là 25). Đưa ra màn hình câu trả lời cho câu hỏi " Bao nhiêu năm nữa thì tuổi cha gấp đôi tuổi con?"

Code mẫu:
Readln(cha,con);
nam:=0;
Repeat 
       inc(cha);
       inc(con);
       inc(nam);
Until cha=2*con;
Writeln(nam);

Hướng dẫn giải bài toán cổ Vừa gà vừa chó (pascal)

Đề bài: lập trình giải bài toán cổ (Bài tập 6 - SGK tin học 11 - Trang 51)
Vừa gà vừa chó
Bó lại cho tròn
36 con
100 chân chẵn
Hỏi số gà, số chó?

Bài này mình có thể làm theo 3 cách khác nhau sử dụng các dạng vòng lặp For, While
Đây là cách 1: Bài vừa gà vừa chó
var g,c: integer;
begin
for c:=1 to 25 do
begin
g:=36-c;
if g*2+c*4=100 then write('So ga: ', g ,' So cho: ',c);
end;
end. 

Cách 2: Bài vừa gà vừa chó

For i:=1 to 36 do 
      If 4*i+2*(36-i)=100 then Writeln('Cho:',i,' Ga:',36-i);

Hướng dẫn giải bài tập tin học 11 Pascal - chương 3 - trang 51

Bài 1: Sự giống nhau và khác nhau giữa hai dạng câu lệnh if-then
Hai dạng câu lệnh If-then trong Pascal:
- Dạng khuyết: If <điều kiện> Then <câu lệnh>;
- Dạng đủ:       If <điều kiện> Then <câu lệnh 1> Else <câu lệnh 2>;

- Sự Giống nhau: Cả hai dạng câu lệnh đều thực hiện việc kiểm tra <điều kiện> trước.
- Sự Khác nhau: Đối với dạng khuyết thiếu nếu <điều kiện sai> thì bỏ qua việc thực hiện câu lệnh sau Then và thực hiện tiếp chương trình; đối với dạng đủ nếu <điều kiện> sai thì thực hiện <câu lệnh 2>;

Bài 2: Câu lệnh ghép là gì? Tại sao phải có câu lệnh ghép?
- Câu lệnh ghép là một nhóm các câu lệnh được đặt trong cặp từ khóa Begin... End;
- Khi <câu lệnh> gồm nhiều thao tác phức hợp cần thiết phải có nhiều câu lệnh nhỏ để thực hiện thì các câu lệnh con được gộp với nhau trong câu lệnh ghép.

Bài 3: Có thể dùng cấu truc While-Do thay thế cho cấu trúc For-Do được.

Ví dụ Tong1_a viết lại dùng cấu trúc While-Do:
Var S: real;
      a,N: integer;
Begin
clrscr;
Write('Nhap a:,') Readln(a);;
S:=1/a;
While N<100 do
begin
       S:=S+1/(a+N);
       N:=N+1;
End;
Writeln('Tong la: ', S:8:4);
Readln;
End.

Bài 4: Viết câu lệnh rẽ nhánh tính biểu thức
a) if(sqr(x)+sqr(y)<=1) then z:=sqr(x)+sqr(y)
    else if ((sqr(x)+sqr(y)>1) and y>=x) then z:=x+y
          else z:=0.5;

b) if (sqr(x-a)+sqr(x-b))<=R*R then z:=abs(x)+abs(y)
    else z:=x+y;

Bài 5: Tính giá trị tổng
a) For i:=1 to 50 do
      Y:=Y+1/(1+i);

b) S:=1; N:=1;
While 1/(S*N) <2.E-6 Do
         S:=S+1/(S*N);
Writeln('Tong la: ', S:8:4);
Readln;
End.

Bài 6: Giải bài toán vừa gà vừa chó
var ga, cho: integer;
Begin
      clrscr;
      for ga:=1 to 36 do
      begin
             cho:=36-ga;
             if (cho*4+ga*2=100) then Write('So ga: ', ga, ' So cho: ', cho);
      end;
Readln;
End.
Bài 7:

Bài 8:

Hướng dẫn giải bài tập Pascal 11 - chương 2 - trang 35-36

Bài 1: Hãy cho biết sự khác nhau giữa hằng có đặt tên và biến? (sgk)
Bài 2: Tại sao phải khai báo biến? (sgk)
Bài 3: Biến chỉ nhận giá trị nguyên trong khoảng 10 đến 25532 thì có thể khai báo bằng các kiểu dữ liệu Integer, Word, LongInt, Real, Extended đều được
Bài 4: Đáp án B, D đều có thể chấp nhận được.
Bài 5. Đáp án thích hợp nhất là C
Bài 6: 
(1+z)*((x+y/z)/(a-1/(1+x*x*x)))
Bài 7: 
Bài 8: Viết biểu thức logic
a) abs(x)<=1 and (y>=0 and y<=1) and abs(y)>=x;
b) abs(x)<=1 and abs(y)<=1;
Bài 9: 
Program bai9;
var
      R,S: real;
      pi=3.14;
uses:crt;
Begin
      Write('Nhap ban kinh: ');
      Readln(R);
      S=pi*R*Y/2;
      Writeln('Dien tich phan hinh gach cheo la: ', S:7:4);
      Readln;
End.

Bài 10:
Program bai10;
var
       h,v: real;
       g=9.8;
uses crt;
begin
       clrscr;
       write('Nhap vao do cao h = ');
       Readln(h);
       write('Van toc tai thoi diem cham dat cua vat la v = ', sqrt(2*g*h):6:3);
       Readln;
End.

Kiểu dữ liệu mảng (Bài 11. Kiểu mảng)

1. Làm việc với mảng một chiều trong Pascal

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ó cùng kiểu
Khai báo mảng 1 chiều:
Cách 1: Trực tiếp

Var <DS biến mảng> : array[<chỉ số đầu>..<chỉ số cuối>] of <kiểu phần tử> ;


Cách 2: Gián tiếp

Type <Tên mảng> = array[<chỉ số đầu>..<chỉ số cuối>] of <kiểu phần tử> ;
Var <DS biến mảng> :<Tên mảng> ;

Truy cập phần tử trong mảng một chiều


2. Bài tập về mảng một chiếu trong lập trình Pascal


Bài tập về làm việc với tệp trong pascal

Dưới đây là một số đề bài tập dạng đơn giản nhằm rèn luyện kĩ năng làm việc với tệp trong pascal:
Working with file in Turbo Pascal:

Bài tập 1: Một trường THPT tổ chức cho các giáo viên và học sinh của trường đi cắm trại, sinh hoạt ngoài trời ở vườn quốc gia Cúc Phương. Để lên lịch đến thăm khu trại các lớp, thầy hiệu trưởng cần biết khoảng cách từ trại của mình (ở vị trí có tọa độ (0,0)) đến các trại của các giáo viên chủ nhiệm. Mỗi lớp có một trại, vị trí của trại mỗi giáo viên chủ nhiệm đều có tọa độ nguyên (x,y) được ghi trong tệp văn bản TRAI.TXT. Lập chương trình đọc các cặp tọa độ từ tệp TRAI.TXT, tính rồi đưa ra màn hình khoảng cách (với độ chính xác là hai số sau dấu phẩy thập phân) giữa trại của mỗi giáo viên chủ nhiệm và trại của thầy hiệu trưởng?

Bài tập 2: Tính điện trở tương đương
Cho ba điện trở R1, R2, R3. Sử dụng cả ba điện trở để tạo ra năm mạch điện có điện trở tương đương khác nhau bằng cách mắc theo các sơ đồ khác nhau. Cho tệp văn bản RESIST.DAT gồm nhiều dòng, mỗi dòng chứa ba số thực R1, R2, R3, các số cách nhau bởi một dấu cách.
Lập chương trình tính các điện trở tương đương và ghi kết quả vào tệp RESIST.EQU, mỗi dòng ghi 5 điện trở tương đương của ba điện trở ở dòng dữ liệu vào tương ứng?


Tài liệu hướng học Windows XP