Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
program hotrotinhoc;
function toigian(x,y: integer): integer;
var z: integer;
begin
while y<>0 do
begin
z:=x mod y;
x:=y;
y:=z;
end;
toigian:=x;
end;
var i,n,a,b,c,d: integer;
tu,mau: real;
begin
readln(a,b,c,d);
if (c=0) and (d=0) then write(a,' ',b);
if (c=0) and (d<>0) then write(c,'/',d,'=0');
if (c<>0) and (d<>0) then
if b/toigian(a,b)=1 then
writeln(a,'/',b,'=',(a/toigian(a,b))/b/toigian(a,b):1:0) else
writeln(a,'/',b,'=',(a/toigian(a,b)):1:0,'/',b/toigian(a,b):1:0);
if (c<>0) and (d<>0) then
begin
tu:=(a*d+c*b)/toigian(a*d+c*b,b*d);
mau:=(b*d)/toigian(a*d+c*b,d*b);
if (mau=1) or (tu=0) then writeln(a,'/',b,'+',c,'/',d,'=',tu/mau:1:0) else
writeln(a,'/',b,'+',c,'/',d,'=',tu:1:0,'/',mau:1:0);
tu:=(a*d-c*b)/toigian(a*d-c*b,b*d);
mau:=(b*d)/toigian(a*d-c*b,d*b);
if (mau=1) or (tu=0) then writeln(a,'/',b,'-',c,'/',d,'=',tu/mau:1:0) else
writeln(a,'/',b,'-',c,'/',d,'=',tu:1:0,'/',mau:1:0);
tu:=(a*c)/toigian(a*c,b*d);
mau:=(b*d)/toigian(a*c,b*d);
if mau=1 then writeln(a,'/',b,'*',c,'/',d,'=',tu/mau:1:0) else
writeln(a,'/',b,'*',c,'/',d,'=',tu:1:0,'/',mau:1:0);
tu:=(a*d)/toigian(a*d,b*c);
mau:=(b*c)/toigian(a*d,b*c);
if mau=1 then writeln(a,'/',b,'/',c,'/',d,'=',tu/mau:1:0) else
writeln(a,'/',b,'/',c,'/',d,'=',tu:1:0,'/',mau:1:0)
end;
readln
end.
program hotrotinhoc;
function toigian(x,y: integer): integer;
var z: integer;
begin
while y<>0 do
begin
z:=x mod y;
x:=y;
y:=z;
end;
toigian:=x;
end;
var i,n,a,b,c,d: integer;
tu,mau: real;
begin
readln(a,b,c,d);
if (c=0) and (d=0) then write(a,' ',b);
if (c=0) and (d<>0) then write(c,'/',d,'=0');
if (c<>0) and (d<>0) then
if b/toigian(a,b)=1 then
writeln(a,'/',b,'=',(a/toigian(a,b))/b/toigian(a,b):1:0) else
writeln(a,'/',b,'=',(a/toigian(a,b)):1:0,'/',b/toigian(a,b):1:0);
if (c<>0) and (d<>0) then
begin
tu:=(a*d+c*b)/toigian(a*d+c*b,b*d);
mau:=(b*d)/toigian(a*d+c*b,d*b);
if (mau=1) or (tu=0) then writeln(a,'/',b,'+',c,'/',d,'=',tu/mau:1:0) else
writeln(a,'/',b,'+',c,'/',d,'=',tu:1:0,'/',mau:1:0);
tu:=(a*d-c*b)/toigian(a*d-c*b,b*d);
mau:=(b*d)/toigian(a*d-c*b,d*b);
if (mau=1) or (tu=0) then writeln(a,'/',b,'-',c,'/',d,'=',tu/mau:1:0) else
writeln(a,'/',b,'-',c,'/',d,'=',tu:1:0,'/',mau:1:0);
tu:=(a*c)/toigian(a*c,b*d);
mau:=(b*d)/toigian(a*c,b*d);
if mau=1 then writeln(a,'/',b,'*',c,'/',d,'=',tu/mau:1:0) else
writeln(a,'/',b,'*',c,'/',d,'=',tu:1:0,'/',mau:1:0);
tu:=(a*d)/toigian(a*d,b*c);
mau:=(b*c)/toigian(a*d,b*c);
if mau=1 then writeln(a,'/',b,'/',c,'/',d,'=',tu/mau:1:0) else
writeln(a,'/',b,'/',c,'/',d,'=',tu:1:0,'/',mau:1:0);
end;
readln
end.
Các thao tác với bảng là:
-Chèn thêm hoặc xoá ô, hàng hay cột;
-Tách một ô thành nhiều ô;
-Gộp nhiều ô thành một ô;
-Định dạng văn bản trong ô.
Mô tả thuật toán
-Bước 1: nhập a,b,c
-Bước 2: kt:=0;
-Bước 3: Nếu ((a=b) và (a<>c)và (b<>c)) hoặc ((b=c)và (b<>a)và (b<>c)) hoặc ((a=c)và (a<>b)và (c<>b)) thì kt:=1;
-Bước 4:Nếu (a=b) và (b=c) thì kt:=2;
-Bước 5:Nếu (sqr(a)=sqr(b)+sqr(c)) hoặc (sqr(b)=sqr(a)+sqr(c)) hoặc (sqr(c)=sqr(a)+sqr(b)) thì kt:=3;
-Bước 6: Nếu kt=0 thì xuất('Day la tam giac thuong');
Nếu kt=1 thì xuất('day la tam giac can');
Nếu kt=2 thì xuất('day la tam giac deu');
Nếu kt=3 thì xuất('day la tam giac vuong');
-Bước 7: Nếu (a>0) và (b>0) và (c>0) và (a+b>c) và (a+c>b) và (b+c>a) thì quay lại bước 2
Không thì xuất('day khong la ba canh trong mot tam giac');
-Bước 8: Kết thúc
Viết chương trình
uses crt;
var a,b,c,kt:integer;
begin
clrscr;
write('nhap a='); readln(a);
write('nhap b='); readln(b);
write('nhap c='); readln(c);
if (a+b>c) and (a+c>b) and (b+c>a) then
begin
write('day la tam giac ');
kt:=0;
if ((a=b)and(a<>c)and(b<>c)) or ((b=c)and(b<>a)and(b<>c)) or ((a=c)and(a<>b)and(c<>b)) then kt:=1;
if (a=b) and (b=c) then kt:=2;
if (sqr(a)=sqr(b)+sqr(c)) or (sqr(b)=sqr(a)+sqr(c)) or (sqr(c)=sqr(a)+sqr(b)) then kt:=3;
if kt=0 then write('thuong');
if kt=1 then write('can');
if kt=2 then write('deu');
if kt=3 then write('vuong');
end
else writeln('day khong phai la tam giac');
readln;
end.
Câu 1:
Cú pháp: For <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Giải thích các thành phần:
FOR, TO, DO: là từ khóa.
Biến đếm: thuộc kiểu dữ liệu số nguyên.
Giá trị đầu, giá trị cuối: là giá trị nguyên.
Câu lệnh: có thể là câu lệnh đơn hay câu lệnh ghép.
Khi thực hiện, biến đếm sẽ nhận giá trị là giá trị đầu, sau mỗi vòng lặp, biến đếm sẽ tự động tăng thêm một đơn vị cho đến khi bằng giá trị cuối thì dừng lại.
Câu 2:
Cú pháp: While <điều kiện> do <câu lệnh>;
Giải thích các thành phần:
While, do: là các từ khóa
Điều kiện: thường là một phép so sánh 3
Câu lệnh: có thể là câu lệnh đơn giản hay câu lệnh ghép
Hoạt động:
Bước 1. Kiểm tra điều kiện
Bước 2. Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện câu lệnh lặp kết thúc. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại Bước 1
"For..to..do.." hay "For..downto..do.." được hiểu như là cấu trúc lặp với số lần lặp được báo trước và thường sẽ có kết thúc (hay còn gọi là "thoát" khỏi vòng lặp).
Tuy nhiên, cấu trúc "While..do.." hay "Repeat..Until.." nói chung được hiểu như cấu trúc lặp với số lần lặp không biết trước (hoặc chưa biết trước) và có một số trường hợp sẽ "treo" máy vì cấu trúc lặp vô tận xãy ra do lỗi cài đặt hoặc xử lý câu lệnh của người viết chương trình
Câu lệnh lặp với số lần biết trước
a. Dạng 1:
1 2 | for <bien>:=<gia_tri_dau> to <gia_tri_cuoi> do <cong_viec>; |
– Bước 1: Kiểm tra giá trị đầu có <= (nhỏ hơn hoặc bằng) giá trị cuối hay không. Nếu đúng thì gán giá trị đầu cho biến và thực thi công việc.
– Bước 2: Kiểm tra giá trị biến <> (khác) giá trị cuối hay không. Nếu đúng thì tăng thêm biến một đơn vị (bien:=SUCC(bien)) rồi thực hiện công việc.
– Lập lại bước 2, cho đến khi giá trị biến bằng giá trị cuối thì kết thúc câu lệnh.
Lưu ý:Biến sau từ khoá for phải là biến đếm được và giá trị đầu phải <= giá trị cuối.
b. Dạng 2:
1 2 | for <bien>:=<gia_tri_dau> downto <gia_tri_cuoi> do <cong_viec>; |
– Bước 1: Kiểm tra giá trị đầu có >= (nhỏ hơn hoặc bằng) giá trị cuối hay không. Nếu đúng thì gán giá trị đầu cho biến và thực thi công việc.
– Bước 2: Kiểm tra giá trị biến <> (khác) giá trị cuối hay không. Nếu đúng thì giảm biến xuống một đơn vị(bien:=PRED(bien)) rồi thực hiện công việc.
– Lập lại bước 2, cho đến khi giá trị biến bằng giá trị cuối thì kết thúc câu lệnh.
Lưu ý:Biến sau từ khoá for phải là biến đếm được và giá trị đầu phải >= giá trị cuối.
Lưu ý: Không giống với các ngôn ngữ khác, Pascal không kiểm tra (biến>cuối) trong câu lệnh FOR … TO … DO để kết thúc vòng lặp mà là kiểm tra (biến=cuối) để thực hiện lần lặp cuối cùng. Vì lẽ đó việc can thiệp vào biến đếm có thể gây ra sự cố “vòng lặp vô tận”. Ngay cả khi bien đã duyệt qua hết phạm vi của kiểu dữ liệu (tức giá trị 255) thì bien quay lai giá trị 0 … và mọi thứ lại tiếp tục …trừ khi gõ Ctrl – Break.
4. Câu lệnh lặp với số lần chưa biết trước
a. Vòng lặp WHILE
Cú pháp:
1 2 | while <dieu_kien> do <cong_viec>; |
Khi gặp vòng lặp chương trình sẽ kiểm tra điều kiện, nếu điều kiện đúng thì thực thi công việc, sau đó quay lại kiểm tra điều kiện. Cứ tiếp tục như thế cho tới khi nào điều kiện sai thì kết thúc.
{Trong khi điều kiện đúng thì làm công việc}.
b. Vòng lặp REPEAT
Cú pháp:
1 2 3 4 | repeat writeln('i =',i); i:=i+1; until i>10; |
Khi gặp vòng lặp chương trình sẽ thực thi công việc, sau đó kiểm tra điều kiện, nếu điều kiện sai thì tiếp tục thực hiện công việc sau đó kiểm tra điều kiện. Cứ tiếp tục như thế cho tới khi nào điều kiện đúng thì kết thúc. {Làm công việc cho đến khi điều kiện đúng}.
Lưu ý:
+ Không giống với vòng lặp for Cả hai vòng lặp While và Repeat đều là vòng lặp không xác định trước số lần lặp. Cần phải có câu lệnh thay đổi giá trị biến điều khiển vòng lặp để có thể thoát ra khỏi vòng lặp.
+ Trong vòng lệnh while thì điều kiện sẽ được kiểm tra trước, nếu điều kiện đúng thì thực hiện công việc. Còn trong lệnh repeat thì ngược lại, công việc được làm trước rồi mới kiểm tra điều kiện, nếu điều kiện đúng thì vòng lặp kết thúc. Như vậy đối với vòng lặp repeat bao giờ thân vòng lặp cũng được thực hiện ít nhất một lần, trong khi thân vòng lặp while có thể không được thực hiện lần nào.
+ Nếu dùng 2 lệnh này để giải cùng một bài toán, cùng một giải thuật như nhau thì điều kiện sau while và điều kiện sau until là phủ định nhau.
+ Các câu lệnh trong vòng lặp repeat không cần phải đặt trong cặp từ khóa BEGIN và END;
Hướng dẫn giải:
Để tìm được diện tích trồng trau đầu tiên ta phải thực hiện các bước sau:
1. Tìm chiều cao hình thang
Để tìm được h, ta sử dụng định lý Pytago để giải quyết:
- Đầu tiên dễ dàng nhận thấy 2d sẽ bằng b - a. => d = \(\dfrac{b-a}{2}\)
- Áp dụng ĐL Pytago ta có c2 = h2 + d2
=> h = \(\sqrt{c^2-d^2}\)
2. Tìm diện tích cái giếng
Bán kính bằng = 1/4 độ dài được cao => \(r=h.\dfrac{1}{4}\)
Diện tích cái giếng bằng: S1 = r x r x 3.14
3. Tìm diện tích hình thang
Sử dụng công thức hình thang bình thường để tính \(S_2=\dfrac{1}{2}\times\left(a+b\right)\times h\)
4. Diện tích trồng rau khi đó sẽ là S = S2 - S1
Code tham khảo: