Tin học 8: Pascal

Thái Hoàng Sơn

Học sinh
Thành viên
10 Tháng mười hai 2017
6
3
21
19
Hà Nội
THCS Chu Văn An
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Mình có vài bt sau ,có bạn nào giỏi lập trình thì giúp mình nhé!
Bài 1:
Cho 4 số nguyên dương a, b, c, d không vượt quá 1000. Tìm 2 số nguyên x, y để phân số x/y tối giản và bằng a/b-c/d trong đó y>0.
Bài 2 :
Cho mảng 2 chiều có kích thước mxn (1<m,n<11). Nhập và in mảng ra màn hình phần tử a[i,j] là điểm yên ngựa của mảng nếu phần tử đó nhỏ nhất trong hàng và lớn nhất trong cột. In tất cả các điểm yên ngựa.
Thanks!
 

ka1412

Học sinh chăm học
Thành viên
24 Tháng mười một 2017
874
730
121
Hà Nội
CNN | Life
Bài 2:
Mã:
uses crt;
var a:array[1..100,1..100] of integer;
m,n,i,j,k:integer;
procedure nhap;
var  t:integer;
begin
        write('Nhap m:');readln(m);
        write('Nhap n:');readln(n);
        for i:=1 to m do
        for j:=1 to n do
        begin
                write('a[',i,',',j,']:');readln(A[i,j]);
        end;
        writeln('Mang ban dau:');
        for i:=1 to m do
        for j:=1 to n do
        begin
        write(a[i,j]:4);
        inc(t);
        if t=n then
        begin
                t:=0;
                writeln;
        end;
        end;
end;
function min_hang(q:integer):integer;
var v:integer;
begin
    min_hang := a[q,1];
        for v:=2 to n do
        if a[q,v]<min_hang then min_hang:=a[q,v];
end;
function max_cot(w:integer):integer;
var c:integer;
begin
    max_cot := a[1,w];
        for c:=2 to m do
        if a[c,w]>max_cot then max_cot:=a[c,w];
end;
procedure inm;
begin
        writeln('Cac diem yen ngua:');
        for i:=1 to m do
        for j:=1 to n do
        if min_hang(i)=max_cot(j) then write(a[i,j]:4,'(',i,',',j,')','  ');
end;
begin
        clrscr;
        nhap;
        inm;
readln
end.
 

ka1412

Học sinh chăm học
Thành viên
24 Tháng mười một 2017
874
730
121
Hà Nội
CNN | Life
Bài 1:
Mã:
uses crt;
var a,b,c,d:integer;x,y,k:real;
function ucln(c,v:real):real;
begin
        repeat
        if c>v then c:=c-v else v:=v-c;
        until c=v;
        ucln:=c;
end;
begin
    repeat
        write('Nhap a:');readln(a);
        if (a<=0) or (a>1000) then writeln('Nhap lai a');
        write('Nhap b:');readln(b);
        if (b<=0) or (b>1000) then writeln('Nhap lai b');
        write('Nhap c:');readln(c);
        if (c<=0) or (c>1000) then writeln('Nhap lai c');
        write('Nhap d:');readln(d);
        if (d<=0) or (d>1000) then writeln('Nhap lai d');
    until (a>0) and (a<=1000) and (b>0) and (b<=1000) and (c>0) and (c<=1000) and (d>0) and (d<=1000) ;
    if b=d then begin x:=a-c; y:=b;end;
    if b<>d then
    begin
            x := a*d-c*b;
            y := b*d;
    end;
    k := ucln(x,y);
    x := x/k;
    y := y/k;
    writeln('x=',x:0:0);
    write('y=',y:0:0);
readln
end.
 

trà nguyễn hữu nghĩa

Cựu Mod Vật Lí |Cây bút Thơ|Thần tượng VH
Thành viên
14 Tháng năm 2017
3,974
7,619
744
21
Phú Yên
Trường THPT Lương Văn Chánh
Mình có vài bt sau ,có bạn nào giỏi lập trình thì giúp mình nhé!
Bài 1:
Cho 4 số nguyên dương a, b, c, d không vượt quá 1000. Tìm 2 số nguyên x, y để phân số x/y tối giản và bằng a/b-c/d trong đó y>0.
Bài 2 :
Cho mảng 2 chiều có kích thước mxn (1<m,n<11). Nhập và in mảng ra màn hình phần tử a[i,j] là điểm yên ngựa của mảng nếu phần tử đó nhỏ nhất trong hàng và lớn nhất trong cột. In tất cả các điểm yên ngựa.
Thanks!
1) Đây là code của mình, không biết đúng không nữa (Vì chạy ổn)

uses crt;
var a,b,c,d,x,y : integer;
Function UCLN(m, n : integer): integer;
var a,b : integer;
begin
a := abs(m);
b := abs(n);
while a <> b do
begin
if a > b then a := a - b
else b := b - a;
end;
if m*n > 0 then
UCLN := a
else
UCLN := -a;
end;
Procedure TinhHieu;
var uc : integer;
begin
x := a*d - b*c;
y := b*d;
uc := UCLN(x,y);
x := x div uc;
y := y div uc;
end;
BEGIN
clrscr;
writeln('Nhap a,b,c,d: ');
Readln(a,b,c,d);
TinhHieu;
Write('x = ',x,' y = ',y);
readln;
END.
 
  • Like
Reactions: ka1412

ka1412

Học sinh chăm học
Thành viên
24 Tháng mười một 2017
874
730
121
Hà Nội
CNN | Life
1) Đây là code của mình, không biết đúng không nữa (Vì chạy ổn)

uses crt;
var a,b,c,d,x,y : integer;
Function UCLN(m, n : integer): integer;
var a,b : integer;
begin
a := abs(m);
b := abs(n);
while a <> b do
begin
if a > b then a := a - b
else b := b - a;
end;
if m*n > 0 then
UCLN := a
else
UCLN := -a;
end;
Procedure TinhHieu;
var uc : integer;
begin
x := a*d - b*c;
y := b*d;
uc := UCLN(x,y);
x := x div uc;
y := y div uc;
end;
BEGIN
clrscr;
writeln('Nhap a,b,c,d: ');
Readln(a,b,c,d);
TinhHieu;
Write('x = ',x,' y = ',y);
readln;
END.
Đầu bài cho a,b,c,d là số nguyên dương mà. Không cần abs đâu
 
Top Bottom