Đến nội dung

Hình ảnh

Topic Hỏi bài Pascal


  • Please log in to reply
Chủ đề này có 77 trả lời

#21
transontung

transontung

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

Vậy thằng số 5 ở đề  chạy đi đâu rồi ? :icon2:

Dàng lẽ là kq= 2 5 3 13 11 19 chứ  -_-

ờ mình chép sai cái vd 

Vd nó phải là:

5                                          --->        5  

1 6 15 10 21                        --->     2 5 13 11 19

Thanks    



#22
Zjkar

Zjkar

    Hạ sĩ

  • Thành viên
  • 82 Bài viết

ờ mình chép sai cái vd 

Vd nó phải là:

5                                          --->        5  

1 6 15 10 21                        --->     2 5 13 11 19

Thanks    

Ừ lần sau bạn phải cẩn thận hơn nhé, nếu không khó hiểu lắm (nhất là caí vd đó). :icon6:  



#23
transontung

transontung

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

Ừ lần sau bạn phải cẩn thận hơn nhé, nếu không khó hiểu lắm (nhất là caí vd đó). :icon6:  

làm hộ đi



#24
Zjkar

Zjkar

    Hạ sĩ

  • Thành viên
  • 82 Bài viết

làm hộ đi

Ờ... ;)



#25
vanlong12

vanlong12

    Binh nhất

  • Thành viên mới
  • 34 Bài viết

làm hộ đi

 

vi cac so nay nam trong mang nen ban chi can ,,cho 2 vong for ,,,1 vong for chay de lay tung phan tu trong mang,,,
vòng for thứ hai được lòng trong vòng for thứ nhất,,để lấy giá trị của phần tử trong mạng đó,,,chạy từ cuối về đầu neu là số nt  thì in ra màn hình là được,,


_ _ _ nỗi bất hạnh làm ra con người_ _ _

  + _còn con người làm ra hạnh phúc_ +


#26
transontung

transontung

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

vi cac so nay nam trong mang nen ban chi can ,,cho 2 vong for ,,,1 vong for chay de lay tung phan tu trong mang,,,
vòng for thứ hai được lòng trong vòng for thứ nhất,,để lấy giá trị của phần tử trong mạng đó,,,chạy từ cuối về đầu neu là số nt  thì in ra màn hình là được,,

Ý tưởng của bạn sai rồi. Bạn nên đọc kĩ đề đi. Đề yêu cầu đưa ra snt gần với pt a[i] chứ có phải đưa ra các snt của mảng đâu



#27
vanlong12

vanlong12

    Binh nhất

  • Thành viên mới
  • 34 Bài viết


Ý tưởng của bạn sai rồi. Bạn nên đọc kĩ đề đi. Đề yêu cầu đưa ra snt gần với pt a[i] chứ có phải đưa ra các snt của mảng đâu

umk..cach lam co hoi sai that,,nhung ban co the them 1 chut it,,,con sao ban bao day k phai la dung mang thi lam sao luu gia tri cho bien duoc,,ban thu xem lai di...!


_ _ _ nỗi bất hạnh làm ra con người_ _ _

  + _còn con người làm ra hạnh phúc_ +


#28
transontung

transontung

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

umk..cach lam co hoi sai that,,nhung ban co the them 1 chut it,,,con sao ban bao day k phai la dung mang thi lam sao luu gia tri cho bien duoc,,ban thu xem lai di...!

tui có bảo là không dùng mảng đâu



#29
Zjkar

Zjkar

    Hạ sĩ

  • Thành viên
  • 82 Bài viết


 

Câu 1 mình cho sai đề là đúng rồi (cảm ơn bạn). Còn câu 2 thì bạn phải đọc kĩ đề chứ

 


Bài 1 : Tính tổng các chữ số trong xâu kí tự

vd : ngày12thang8nam83 ----> Tổng=12+8+83=103

 

Bài 2 : Cho 1 mảng gồm các số nguyên, hãy đưa ra mảng số nguyên tố gần của các số nguyên đó

(TH tìm được 2 số nguyên tố gần với số trong mảng thì đưa ra số nguyên tố gần bé hơn)

vd: Cho mảng ban đầu

1 6 5 15 10 21

Kết quả hiển thị của các số nguyên tố gần của mảng ban đầu là : 2 5 13 11 19

 


* Phân tích đề:

- Bài 1:

+ Đề y/c là tính tổng các chữ số vậy mà ở ví dụ thì lại tính tổng các số !

+ Nếu là tính tổng các số thì cần thêm điều kiện các số cách nhau bởi 1 ký tự  (Cho phù hợp, chứ nếu các số gần nhau thì tình tổng làm gì nữa ?).

+ Nếu là tính tổng các chữ số thì phải cho ví dụ rõ ràng, chính xác !

- Bài 2:

+ Ở đoạn : (vd: Cho mảng ban đầu

 

1 6 5 15 10 21

Kết quả hiển thị của các số nguyên tố gần của mảng ban đầu là : 2 5 13 11 19) thì theeo mình ví dụ sai:

+ Theo mình cái đúng là thế này: 2 5 3 13 11 19   hoặc  2 5 7 13 11 19.

Cho nên bạn transontung nếu ra đề thì cần phải cẩn thận .

----> Nếu bạn muốn hỏi bài thì nên vào chủ đề Ai muốn hỏi bài tập thì vào đây đó là chủ đề do mình lập nên khi đăng bài nếu có thể thì mình sẽ giúp . Cảm ơn.

 

*Bài 1:

program b1;

uses crt;

var s,s1,s2:string;

i,n,j,k,l,p,t:integer;

begin

clrscr;

write('Nhap xau:');readln(s);

s1:='';

for i:=1 to length(s) do

if s[i] in ['0'..'9'] then s1:=s1+s[i];

for i:=1 to length(s1) do

begin

val(s1[i],n,l);

t:=t+n;

end;

writeln('Tong: ',t);

readln

end.

*bai 2:

program bg;

uses crt;

var i,n,j,k,l,p:integer;

a,b:array[1..1000] of integer;

function nto(n:integer):boolean;

var i,s:integer;

kt:boolean;

begin

kt:=false;

s:=0;

for i:=1 to n do

if n mod i=0 then s:=s+1;

if s=2 then kt:=true;

nto:=kt;

end;

function nt(n:integer):integer;

var i,j,k,l,v,u,z,x:integer;

begin

k:=n;

z:=n;

repeat

n:=n-1;

if nto(n) then begin

l:=n;

break;

end;

until nto(n);

repeat

k:=k+1;

if nto(k) then begin

p:=k;

break;

end;

until nto(k);

v:=z-l;

u:=k-z;

if nto(z) then nt:=z else

if u<v then nt:=k else

if u>=v then nt:=l;

end;

begin

clrscr;

write('Nhap so pt:');readln(n);

for i:=1 to n do

begin

write('a[',i,']=');readln(a[i]);

end;

for i:=1 to n do

if a[i]<>1 then

b[i]:=nt(a[i]) else b[i]:=2;

write('Day la:');

for i:=1 to n do

write(b[i],'    ');

readln

end.

P/s: chạy trên tubor pascal thì very good nhưng chạy trên free pascal thì bị lỗi ((Ko biết tại sao))


Bài viết đã được chỉnh sửa nội dung bởi Zjkar: 13-03-2016 - 10:37


#30
Zjkar

Zjkar

    Hạ sĩ

  • Thành viên
  • 82 Bài viết

Câu 3: (3,5 điểm) Tần suất                                                       TS.PAS

Cho tập hợp S có N phần tử nguyên dương {s1, s2,…, sN}.

(1 ≤ N ≤ 32000; 0 < si ≤ 32000; 1 ≤ i ≤ N)

Yêu cầu: Hãy liệt kê các phần tử trong S có số lần xuất hiện lớn hơn một lần.

Dữ liệu vào: Cho trong file văn bản TS.INP có cấu trúc như sau:

- Dòng 1:  Ghi số nguyên dương N.

- Dòng 2: Ghi N số nguyên dương là giá trị các phần tử của tập hợp S, các số được ghi cách nhau ít nhất một dấu cách.

Dữ liệu ra: Ghi ra file văn bản TS.OUT  trên nhiều dòng, dòng thứ i ghi 2 số si   di, hai số cách nhau một dấu cách. Trong đó si là phần tử xuất hiện trong S lớn hơn một lần và di tương ứng là số lần si xuất hiện.

Ví dụ:

TS.INP

TS.OUT

7

2  5  5  3  5  3   9

3   2

5   3

 



#31
Zjkar

Zjkar

    Hạ sĩ

  • Thành viên
  • 82 Bài viết


Viết chương trình đưa ra tất cả các từ có thể phát sinh ra từ 1 tập chữ cái

program gt;
uses crt;
var i,n,j,k,p,w,pp,y,v,q,lll:integer;
s,st,s2,s1,dd,z,tt,z1,pl,zk,x,bi,bo:string;
a,b,c,cc,m,mk,e,l,sd:array[1..10000] of string;
d:array[1..10000] of integer;
function xoa(s:string):string;
var i,j:integer;
begin
for i:=1 to length(s)-1 do
begin
j:=i+1;
while j<=length(s) do
if s[i]=s[j] then delete(s,j,1) else j:=j+1;
end;
xoa:=s;
end;
function ht(s:string):integer;
var i,j,k,l:integer;
begin
k:=0;
for i:=1 to length(s) do
k:=k+ord(s[i]);
ht:=k;
end;
begin
clrscr;
write('Nhap xau:');readln(s);
n:=0;s1:='';
for i:=1 to length(s) do
begin
s1:=s1+s[i];
a[i]:=s1;
d[i]:=i;
n:=n+1;
s1:='';
end;
tt:='';
for i:=1 to n do
        begin
        y:=d[i];
        str(y,z1);
        tt:=tt+z1;
        l[i]:=tt;
        tt:='';
        end;
k:=0;
for i:=1 to n do
for j:=1 to n do
if i<>j then
begin
dd:=s[j];
pl:=l[j];
k:=k+1;
b[k]:=a[i]+dd;
sd[k]:=l[i]+pl;
end;
p:=0;
for i:=1 to k do
for j:=1 to k do
if i<>j then
        begin
        z:=b[i]+b[j];
        zk:=sd[i]+sd[j];
        p:=p+1;
        c[p]:=z;
        cc[p]:=zk;
        end;
v:=0;
for i:=1 to p do
        begin
        x:='';
        bi:=c[i];
        bo:=cc[i];
        for j:=1 to length(bi)-1 do
                begin
                k:=j+1;
                while k<=length(bi) do
                if (bi[j]=bi[k])and(bo[j]=bo[k]) then
                        begin
                        delete(bi,k,1);
                        if length(bi)=length(s) then break;
                        end else k:=k+1;
                if length(bi)=length(s) then break;
                end;
        v:=v+1;
        x:=x+bi;
        m[v]:=x;
        end;
for i:=1 to v-1 do
begin
j:=i+1;
while j<=v do
if m[i]=m[j] then begin
for k:=j to v do
        m[k]:=m[k+1];
        v:=v-1;
        end else j:=j+1;
end;
lll:=0;
if length(s)=1 then write(s:6) else
for i:=1 to v do
        if ht(m[i])=ht(s) then
        begin
        write(m[i]:6);
        lll:=lll+1;
        if lll mod 10=0 then writeln;
        end;
readln
end.
P/s:sao chạy trên free thì được nhưng nhập nhiều ký tự thì chạy lâu thì mới hiểu thị....((chắc do cấu hình máy...) còn chạy trên tubor thì lại báo lỗi ở phần khai báo biến @@(ko biết tại sao,,các thánh giải thích hộ...);

Bài viết đã được chỉnh sửa nội dung bởi Zjkar: 13-03-2016 - 12:13


#32
transontung

transontung

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

lại cho hỏi 1 bài nữa

 

Bài 2: (3,0 điềm) Xóa số                                               

Cho một số tự nhiên có n chữ số a = a1a2.. an với aiÎ{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}           i = 1..n. Hãy tìm cách xoá bỏ m chữ số của a sao cho số thu được sau khi xoá m chữ số thì số thu được là nhỏ nhất.

Dữ liệu: vào từ file BAI2.INP có cấu trúc:

-   Dòng đầu ghi hai giá trị n, m cách nhau ít nhất một dấu cách. (1<= N <= 30)

-   n dòng tiếp theo ghi các chữ số của a theo trình tự từ trái qua phải.

Kết quả: ghi ra file BAI2.OUT gồm:

-   M dòng đầu tiên mỗi dòng chứa một chỉ số của số bị xoá trong số a ban đầu.

-   Dòng cuối cùng ghi ra số còn lại sau khi xoá, nếu là số có chứa số 0 ở đầu thì số 0 đó được coi là tự động được bỏ.

 

VD1:a = 1200123

Bài 1.inp                                                                    bài 1.out

 

7 2                                                                              1

1                                                                                 2

2                                                                                 123

0

0

1

2

3

 

VD2:a =  321987

 

Bài 1.inp                                                 bài 1.out

 

6 3                                                               1

3                                                                  2

2                                                                  4

1                                                                  187

9

8

7

 Cập nhập: Ở dòng output thi M dòng đầu tiên ghi vị trí của số đã xóa chứ không phải là số đâu nhá nên mọi người đừng nhầm(Làm nhanh hộ nha :D )


Bài viết đã được chỉnh sửa nội dung bởi transontung: 14-03-2016 - 16:13


#33
Fjzar

Fjzar

    Binh nhất

  • Thành viên mới
  • 30 Bài viết

Sao post lên vs bài chất lượng mà sao không bạn nào  :like  vậy  <_< ...

Ủng hộ mạnh vào chứ  ^_^  ^_^



#34
phamngochung9a

phamngochung9a

    Sĩ quan

  • Điều hành viên THPT
  • 480 Bài viết

 

program gt;
uses crt;
var i,n,j,k,p,w,pp,y,v,q,lll:integer;
s,st,s2,s1,dd,z,tt,z1,pl,zk,x,bi,bo:string

 

Em có bài này vừa giải được, thấy hay hay nên post cho mọi người thử sức.

Bài toán

Viết chương trình nhập vào một dãy số nguyên dương $a_{1},a_{2},a_{3},....a_{n}$ (với $n\leq 10^{6}$). Một dãy số $b$ được gọi là dãy con của dãy $a$ nếu như ta loại bỏ đi $a$ một số phần tử (không nhất thiết là liên tiếp) thì thu được dãy $b$. Hãy tìm độ dài lớn nhất của dãy con của $a$ thỏa mãn tổng các phần tử của nó chia hết cho một số $k$ cho trước ($10\leq k\leq 10^{4}$)

 

P.s: Một bài quy hoạch động hay  :icon6:



#35
Fjzar

Fjzar

    Binh nhất

  • Thành viên mới
  • 30 Bài viết

Em có bài này vừa giải được, thấy hay hay nên post cho mọi người thử sức.

Bài toán

Viết chương trình nhập vào một dãy số nguyên dương $a_{1},a_{2},a_{3},....a_{n}$ (với $n\leq 10^{6}$). Một dãy số $b$ được gọi là dãy con của dãy $a$ nếu như ta loại bỏ đi $a$ một số phần tử (không nhất thiết là liên tiếp) thì thu được dãy $b$. Hãy tìm độ dài lớn nhất của dãy con của $a$ thỏa mãn tổng các phần tử của nó chia hết cho một số $k$ cho trước ($10\leq k\leq 10^{4}$)

 

P.s: Một bài quy hoạch động hay  :icon6:

Viết bình thường thôi viết latex mình không hiểu đâu ề  :wacko:



#36
Fjzar

Fjzar

    Binh nhất

  • Thành viên mới
  • 30 Bài viết

lại cho hỏi 1 bài nữa

 

Bài 2: (3,0 điềm) Xóa số                                               

Cho một số tự nhiên có n chữ số a = a1a2.. an với aiÎ{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}           i = 1..n. Hãy tìm cách xoá bỏ m chữ số của a sao cho số thu được sau khi xoá m chữ số thì số thu được là nhỏ nhất.

Dữ liệu: vào từ file BAI2.INP có cấu trúc:

-   Dòng đầu ghi hai giá trị n, m cách nhau ít nhất một dấu cách. (1<= N <= 30)

-   n dòng tiếp theo ghi các chữ số của a theo trình tự từ trái qua phải.

Kết quả: ghi ra file BAI2.OUT gồm:

-   M dòng đầu tiên mỗi dòng chứa một chỉ số của số bị xoá trong số a ban đầu.

-   Dòng cuối cùng ghi ra số còn lại sau khi xoá, nếu là số có chứa số 0 ở đầu thì số 0 đó được coi là tự động được bỏ.

 

VD1:a = 1200123

Bài 1.inp                                                                    bài 1.out

 

7 2                                                                              1

1                                                                                 2

2                                                                                 123

0

0

1

2

3

 

VD2:a =  321987

 

Bài 1.inp                                                 bài 1.out

 

6 3                                                               1

3                                                                  2

2                                                                  4

1                                                                  187

9

8

7

 Cập nhập: Ở dòng output thi M dòng đầu tiên ghi vị trí của số đã xóa chứ không phải là số đâu nhá nên mọi người đừng nhầm(Làm nhanh hộ nha :D )

Bài này làm được nhưng hôm sau post lên cho,,,,mà cũng khá đơn giản ....

P/s:hôm sau post lên cho khỏi các bác kêu em fét  :closedeyes:



#37
transontung

transontung

    Binh nhất

  • Thành viên mới
  • 25 Bài viết

Bài này làm được nhưng hôm sau post lên cho,,,,mà cũng khá đơn giản ....

P/s:hôm sau post lên cho khỏi các bác kêu em fét  :closedeyes:

Làm đi bạn , chờ lâu quá



#38
Zjkar

Zjkar

    Hạ sĩ

  • Thành viên
  • 82 Bài viết

Làm đi bạn , chờ lâu quá

À à xin lỗi bạn mình không để ý để mình bù xho bạn vào trưa mai (bận viết văn mai nộp)) ....thực sự xin lỗi.

P/s:Mình ẩu quá rất xin lỗi bạn... :(  :(  :(


Bài viết đã được chỉnh sửa nội dung bởi Zjkar: 20-03-2016 - 21:24


#39
Zjkar

Zjkar

    Hạ sĩ

  • Thành viên
  • 82 Bài viết


lại cho hỏi 1 bài nữa

 

Bài 2: (3,0 điềm) Xóa số                                               

Cho một số tự nhiên có n chữ số a = a1a2.. an với aiÎ{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}           i = 1..n. Hãy tìm cách xoá bỏ m chữ số của a sao cho số thu được sau khi xoá m chữ số thì số thu được là nhỏ nhất.

Dữ liệu: vào từ file BAI2.INP có cấu trúc:

-   Dòng đầu ghi hai giá trị n, m cách nhau ít nhất một dấu cách. (1<= N <= 30)

-   n dòng tiếp theo ghi các chữ số của a theo trình tự từ trái qua phải.

Kết quả: ghi ra file BAI2.OUT gồm:

-   M dòng đầu tiên mỗi dòng chứa một chỉ số của số bị xoá trong số a ban đầu.

-   Dòng cuối cùng ghi ra số còn lại sau khi xoá, nếu là số có chứa số 0 ở đầu thì số 0 đó được coi là tự động được bỏ.

 

VD1:a = 1200123

Bài 1.inp                                                                    bài 1.out

 

7 2                                                                              1

1                                                                                 2

2                                                                                 123

0

0

1

2

3

 

VD2:a =  321987

 

Bài 1.inp                                                 bài 1.out

 

6 3                                                               1

3                                                                  2

2                                                                  4

1                                                                  187

9

8

7

 Cập nhập: Ở dòng output thi M dòng đầu tiên ghi vị trí của số đã xóa chứ không phải là số đâu nhá nên mọi người đừng nhầm(Làm nhanh hộ nha :D )

Program zzk;

uses crt;

var f,f1:text;

i,n,j,k,l,p:longint;

a,b,c,d:array[1..10000] of longint;

begin

clrscr;

assign(f,'b1.inp');

reset(f);

i:=0;

while not eof(f) do

begin

read(f,x);

i:=i+1;

a[i]:=x;

end;

close(f);

assign(f,'b1.out');

rewrite(f);

n:=a[1];

m:=a[2];

max:=a[3];

p:=n-m;

for i:=3 to n do

if (a[i]<max)and(a[i]<>0)and(n-i>=p) then max:=a[i];

 

----- đang làm giở chưa xong ...---------------



#40
The Dark Hunter

The Dark Hunter

    Binh nhất

  • Thành viên mới
  • 20 Bài viết

Program zzk;
uses crt;
var f,f1:text;
i,n,j,k,l,p:longint;
a,b,c,d:array[1..10000] of longint;
begin
clrscr;
assign(f,'b1.inp');
reset(f);
i:=0;
while not eof(f) do
begin
read(f,x);
i:=i+1;
a[i]:=x;
end;
close(f);
assign(f,'b1.out');
rewrite(f);
n:=a[1];
m:=a[2];
max:=a[3];
p:=n-m;
for i:=3 to n do
if (a[i]<max)and(a[i]<>0)and(n-i>=p) then max:=a[i];

----- đang làm giở chưa xong ...---------------


Tiếp đi p

Đức HD Trần:  :icon6:  :D  :like 

 

AK36 Trường THPT Quang Trung tỉnh Hải Dương





0 người đang xem chủ đề

0 thành viên, 0 khách, 0 thành viên ẩn danh