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.
anh em xem baì tập pascal này và giups mình giải với
Mình chỉ nói thuật toán thôi vì dài nhưng không khóanh em xem baì tập pascal này và giups mình giải với
Bạn có thể viết code lun dc không? Mình mới vào pascal nên củng còn yếu! Mong các bạn hỗ trợMình chỉ nói thuật toán thôi vì dài nhưng không khó
Bài 1:
Sử dụng các câu lệnh If để xét hai trường hợp là a='a4' và a='a3'. Với từng trường hợp thì mình lại sd lệnh if để xét th số tờ rồi xét th số mặt. Sau đó lấy 1 biến lưu giá trị sau khi nhân tương ứng
Bài 2:
Hừm...Mình nghĩ cách đơn giản nhất là tạo thêm 1 mảng giống với mảng ban đầu, sau đó xóa các pt giống nhau, rồi sắp xếp mảng giảm dần, từ đó xác định đc pt lớn thứ 3 và lưu vào một biến x chẳng hạn. Đem so sánh x với các pt của mảng ban đầu rồi lưu vị trí,cộng kq và đếm là đc
Bạn thử làm theo sườn này là ra rồi
Vừa vào pascal mà giải đễ rồi , h bạn cần gấp không vậy, muộn rồi, để sáng mai mình làm đc ko bạn, sáng mai mình đi học thêm nên chắc trưa nếu rãnh mình sẽ làmBạn có thể viết code lun dc không? Mình mới vào pascal nên củng còn yếu! Mong các bạn hỗ trợ
var i,n,t,max,max1,x,vt:longint;f,g:text; l:real;
a:array[1..100000000] of longint;
begin
assign(f,'banthangdep.inp');reset(f);
assign(g,'banthangdep.out');rewrite(g);
readln(f,n); max:=0;max1:=0;t:=0;
for i:=1 to n do
begin
read(f,a[i]);
t:= t+a[i];
if max<a[i] then max:=i;
end;
readln(f);
for i:=1 to n do
begin
read(f,x);
a[i]:=a[i]+x; t:=t+x;
if max1<a[i] then begin max1:=a[i];vt:=i;end;
end;
l:=max1/t *100;
writeln(g,vt);
writeln(g,max1,' ',l:0:1);
if vt=max then write(g,1) else write(g,0);
close(f);
close(g);
end.
Code này đã chạy đúng rồi phải ko bạn?bài 3 đây k biết có tối ưu k nữa
Mã:var i,n,t,max,max1,x,vt:longint;f,g:text; l:real; a:array[1..100000000] of longint; begin assign(f,'banthangdep.inp');reset(f); assign(g,'banthangdep.out');rewrite(g); readln(f,n); max:=0;max1:=0;t:=0; for i:=1 to n do begin read(f,a[i]); t:= t+a[i]; if max<a[i] then max:=i; end; readln(f); for i:=1 to n do begin read(f,x); a[i]:=a[i]+x; t:=t+x; if max1<a[i] then begin max1:=a[i];vt:=i;end; end; l:=max1/t *100; writeln(g,vt); writeln(g,max1,' ',l:0:1); if vt=max then write(g,1) else write(g,0); close(f); close(g); end.
Bai 1:Thanks bạn nhé! Để mình về nhà rồi chạy thử xem sao! Bạn có thể giải giúp mình 2 bài còn lại dc ko?
Var
Begin
assign(fi,'muaqua.inp');reset(fi);
assign(fo,'muaqua.out');rewrite(fo);
readln(fi,n);m:=n;
For i:=1 to n do read(fi,a[i]);
For i:=1 to n do b[i]:=a[i];
For i:=1 to m-1 do
For j:=i+1 to m do
if a[i]=a[j] then
begin
For k:=i to m-1 do
a[k]:=a[k+1];
m:=m-1;
end;
For i:=1 to m-1 do
For j:=i+1 to m do
if a[i]<a[j] then
begin
tg:=a[i];a[i]:=a[j];a[j]:=tg;
end;
x:=a[3];t:=0;k:=0;d:=d+1;
For i:=1 to n do
if x=a[3] then
begin
t:=t+a[i];k:=k+1;vt[k]:=i;d:=d+1;
end;
writeln(fo,d);
For i:=1 to k do write(vt[i],' ');
write(fo,t);
Close(Fi);close(fo);
end.
Sao báo lỗi: path not found vậy bạn?code chạy đúng mà .....................................
Up ảnh lên đi bạnSao báo lỗi: path not found vậy bạn?
Mình chèn đường dẫn đúng mà
BẠN có thể viết ra code đầy đủ dc ko? Giúp mình nha!Bai 1:
View attachment 107334
Bai 2:
Bài 1 thì mình check rồi nhưng bài 2 thì chưa, bạn check xem đúng ko có gì báo với mình để mình sửa và thêm phần khai báo . Mà đó cách đơn giản nên chắc chưa có tối ưu đâuMã:Var Begin assign(fi,'muaqua.inp');reset(fi); assign(fo,'muaqua.out');rewrite(fo); readln(fi,n);m:=n; For i:=1 to n do read(fi,a[i]); For i:=1 to n do b[i]:=a[i]; For i:=1 to m-1 do For j:=i+1 to m do if a[i]=a[j] then begin For k:=i to m-1 do a[k]:=a[k+1]; m:=m-1; end; For i:=1 to m-1 do For j:=i+1 to m do if a[i]<a[j] then begin tg:=a[i];a[i]:=a[j];a[j]:=tg; end; x:=a[3];t:=0;k:=0;d:=d+1; For i:=1 to n do if x=a[3] then begin t:=t+a[i];k:=k+1;vt[k]:=i;d:=d+1; end; writeln(fo,d); For i:=1 to k do write(vt[i],' '); write(fo,t); Close(Fi);close(fo); end.
Bài 1 hở bạn? Ầu, mình viết bài đó xong rồi up ảnh lên, sau đó mình xóa và viết code của bài 2 lên đó luôn nên h chỉ có lưu bài 2 chứ bài 1 thì mất rồi, bn thông cảmBẠN có thể viết ra code đầy đủ dc ko? Giúp mình nha!
Up ảnh lên đi bạn
Èo z sao bit đường mà lầnBài 1 hở bạn? Ầu, mình viết bài đó xong rồi up ảnh lên, sau đó mình xóa và viết code của bài 2 lên đó luôn nên h chỉ có lưu bài 2 chứ bài 1 thì mất rồi, bn thông cảm
Gần mà bạn, đọc được mà nhỉÈo z sao bit đường mà lần
Bài 1 củng báo lỗi ở chỗ: if a='a4' then...Gần mà bạn, đọc được mà nhỉ
mà mình chạy bài đó rồi, bạn không cần lo đâu. Bài 2 mới chưa check
Mình chạy được mà, bạn đã khai báo a là string chưa vậyBài 1 củng báo lỗi ở chỗ: if a='a4' then...
Nó bị lỗi: type mismatch
Bài 1 phần khai báo var nó như thế nào bạn bổ sung cho minhg dc ko?Gần mà bạn, đọc được mà nhỉ
mà mình chạy bài đó rồi, bạn không cần lo đâu. Bài 2 mới chưa check
Bài 1 phần khai báo var nó như thế nào bạn bổ sung cho minhg dc ko?
Var
b,c,t:longint;a:string;
fi,fo:text;