Đến nội dung

Hình ảnh

Đề và code Pascal


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

#21
Zjkar

Zjkar

    Hạ sĩ

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

mình làm bằng turbo pascal mà

À vậy để mình tải turbo về chạy :icon6:



#22
Zjkar

Zjkar

    Hạ sĩ

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

Còn cái này để mai tôi up cho. Giờ tui phải ôn bài mai kiểm tra 

Haha,,ta làm được rồi  :icon10:  :icon10:  :icon10: ....nhuuwng mà sao cái ct thì chạy được trên free mà không chạy được trên turbo,,,,lý giả mình vs ....

Bạn lý giải hộ rồi mình post bài lên cho ... ;)



#23
The Dark Hunter

The Dark Hunter

    Binh nhất

  • Thành viên mới
  • 20 Bài viết
Uses crt;
Var n,j,k,i,a: integer;
max,m: char;
s: string;
Begin
clrscr;
write('nhap s=');
readln(s);
n := length(s);
i := n;
max :='*';
If s[n]<s[n-1] Then
Begin
m := s[n];
s[n] := s[n-1];
s[n-1] := m;
End
Else
Begin
While s[i]>=s[i-1] Do dec(i);
For j:=i To n Do
If (s[i-1]>s[j])And(s[j]>max) Then
Begin
max:=s[i];
m := s[i-1];
s[i-1] := s[j];
s[j] := m;
End;
For j:=i To n-1 Do
For k:=j+1 To n Do
If s[j]<s[k] Then
Begin
m := s[j];
s[j] := s[k];
s[k] := m;
End;
End;
if s[1]='0' then delete(s,1,1);
if i<0 then writeln('khong tim dc so hoan vi nhu vay') else
writeln('so can tim la:',s);
readln
End.
đây là ct tìm số hoán vị của 1 số sao cho số hoán vị có giá trị max và nhỏ hơn số ban đầu

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

 

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


#24
The Dark Hunter

The Dark Hunter

    Binh nhất

  • Thành viên mới
  • 20 Bài viết
ai nghĩ cho mk thuật toán tách n ra thành các chữ số.sao cho các chữ số đó có tổng bằng n và tích chúng lớn nhất

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

 

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


#25
Master Kaiser

Master Kaiser

    Thượng sĩ

  • Thành viên
  • 265 Bài viết
" Trên hai đuờng thẳng song song L1 và L2, Người ta đánh dấu trên mỗi đường N 
Điểm, Các điểm  trên đường  thẳng L1 Được đánh số từ 1 đến N, từ  trái qua phải,  
còn các điểm  trên đường  thẳng L2 được đánh số bởi P[1],P[2],...P[N] cũng từ  trái 
qua phải, trong đó P[1],P[2],..P[N] là một hoán vị của các số 1,2,...N  
Ta gọi các số gán cho các điểm là số hiệu của chúng. Cho phép nối hai điểm trên 2 
đường thẳng có cùng số hiệu. 
Yêu Cầu  : Tìm cách nối được nhiều cặp điểm nhất với điều kiện các đoạn nối không 
được cắt nhau.  
Dữ Liệu : Vào từ File BaiToan2.Inp: 
•  Dòng đầu tiên chứa số nguyên dương N(N<=1000) 
•  Dòng thứ hai chứa các số P[1],P[2],....P[N] 
Kết Quả Ghi Ra File : BaiToan2.Out  
•  Dòng Đầu tiên chứa K là số lượng đoạn nối tìm được 
•  Dòng tiếp theo chứa K số hiệu của các đầu mút của các đoạn nối được ghi theo thứ 
tự tăng dần.  
Ví Dụ : 
      WIRES.INP          WIRES.OUT 
9   5 
2 5 3 8 7 4 6 9 1   2 3 4 6 9

               Master Kaiser

                                   Liên hệ facebook : https://www.facebook...uyenhoanganh238


#26
hocpascal

hocpascal

    Trung sĩ

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

Chào các pro ai có ý tưởng làm bài này xin cho ý kiến

Xét số nguyên dương X và gọi S là tổng tất cả các ước dương của 2004X .

Cần tính phần dư của S cho 29. Ví dụ, với X=1, các ước dương của 20041 là 1, 2, 3, 4, 6, 12, 167, 334, 501, 668, 1002 và 2004. Do đó S = 4704 và số dư của S chia cho 29 là      6.

Input: Gồm nhiều bộ test, mỗi bộ là một số nguyên X (1 ≤ X ≤ 107).  Bộ test với X = 0 để kết thúc chương trình và không cần xử lý.

Output: Với mỗi bộ test, in ra một kết quả của số dư S chia cho 29 trên 1 dòng.

Example:

Input

1

10000

0

Output

6

10


Bài viết đã được chỉnh sửa nội dung bởi hocpascal: 03-09-2016 - 19:59


#27
hocpascal

hocpascal

    Trung sĩ

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

Code  được rồi các pro xem hộ cái

var i,t,k,m,n,p,a:longint;
function TUoc(n:longint):int64;
var s:int64; i:longint;
begin
s:=0;
for i:=1 to n do
if n mod i= 0 then s:=s+i;
tuoc:=s;
end;
begin
readln(m,n,p);
a:=tuoc(m); write(a); writeln;
t:=a mod p; k:=t;
if n=0 then
write('1') else
if n=1 then write(t)
else
begin
i:=1;
while i<=n-1 do
begin
k:=k*t;
if k>=p then k:=k mod p;
inc(i);
end;
write(k);
end;
readln
end.


#28
hocpascal

hocpascal

    Trung sĩ

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

Mời các pro code bài này

Tìm a,g biết: (ag)^4=a*****g



#29
hocpascal

hocpascal

    Trung sĩ

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

Pro xem hộ cách giải bài này với số lớn nha

Cho số nguyên dương N, người ta tạo ra số nguyên M bằng cách viết liên tiếp nhau các số nguyên từ 1 đến N. Ví dụ với N=13, ta có M=12345678910111213. Người ta tiến hành thu gọn M bằng cách :

Trong số M lần lượt xóa tất cả các chữ số ở vị trí chẵn thu được số M1, sau đó trong M1 ta lại xóa tất cả các số ở vị trí lẻ thu được số M2, rồi lại xóa tất cả các chữ số ở vị trí chẵn trong M2 , … cho đến khi chỉ còn lại một chữ số.
M=12345678910111213 => M1=135790123 => M2 = 3702 => M3=30 => M4=0
Yêu cầu : Cho số nguyên dương N( 1<N<10^6 +1). Hãy xác định chữ số còn lại sau quá trình thu gọn số M tương ứng.
Nhập vào từ bàn phím một số nguyên dương N.
Xuất ra màn hình chữ số còn lại sau khi thu gọn số M.



#30
Linh22lim

Linh22lim

    Lính mới

  • Thành viên mới
  • 2 Bài viết
Giup toi chuong trinh pascal: chen mang b gom m phân tư vào mãng a gồm n phần tử tại vị trí k

#31
Duongdz2k7

Duongdz2k7

    Binh nhất

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

đây là cách của mình cho bài hoán vị chữ cái  :D

thay đổi chút là sẽ thành hoán vị dãy số từ 1-n nên rất tiện


program bt1;
uses crt;
var b,c:boolean;
i,j,z:integer;
t:char;
s:string;
a:array[1..100] of string;
begin
clrscr;
write('nhap xau:');
readln(s);
z:=1;
a[z]:=s;
b:=true;
while b=true do
begin
b:=false;
for i:=2 to length(s) do
begin
c:=true;
t:=s[1];
s[1]:=s[i];
s[i]:=t;
for j:=1 to z do
if s=a[j] then
c:=false;
if c=true then
begin
z:=z+1;
a[z]:=s;
b:=true;
end;
end;
end;
for i:=1 to z do
writeln(a[i]);
readln;
end.

Bài viết đã được chỉnh sửa nội dung bởi Duongdz2k7: 26-06-2021 - 22:29

                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#32
Duongdz2k7

Duongdz2k7

    Binh nhất

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


Giup toi chuong trinh pascal: chen mang b gom m phân tư vào mãng a gồm n phần tử tại vị trí k

code:
program bt1;
uses crt;
var a,b,c:array[1..100] of integer;
i,k,n,m:integer;
begin
clrscr;
write('nhap vao so phan tu cua mang a:');
readln(n);
for i:=1 to n do
begin
write('nhap a[',i,'] :');
readln(a[i]);
end;
write('nhap vao so phan tu cua mang b:');
readln(m);
for i:=1 to m do
begin
write('nhap b[',i,'] :');
readln(b[i]);
end;
write('nhap k:');
readln(k);
for i:=1 to k-1 do
write(a[i]:4);
for i:=1 to m do
write(b[i]:4);
for i:=k to n do
write(a[i]:4);
readln;
end.

                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#33
Duongdz2k7

Duongdz2k7

    Binh nhất

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

Hơi lâu chút  :D


                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like


#34
Lykan 11

Lykan 11

    Binh nhì

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

 

đây là cách của mình cho bài hoán vị chữ cái  :D

thay đổi chút là sẽ thành hoán vị dãy số từ 1-n nên rất tiện


program bt1;
uses crt;
var b,c:boolean;
i,j,z:integer;
t:char;
s:string;
a:array[1..100] of string;
begin
clrscr;
write('nhap xau:');
readln(s);
z:=1;
a[z]:=s;
b:=true;
while b=true do
begin
b:=false;
for i:=2 to length(s) do
begin
c:=true;
t:=s[1];
s[1]:=s[i];
s[i]:=t;
for j:=1 to z do
if s=a[j] then
c:=false;
if c=true then
begin
z:=z+1;
a[z]:=s;
b:=true;
end;
end;
end;
for i:=1 to z do
writeln(a[i]);
readln;
end.

 

bài này vẫn chưa hay lắm

program bt1;

uses crt;
var a:array[1..100] of string;
c:array [0..255] of char;
s:string;
d,i,j,r:integer;
begin
 write('nhap xau:');
 readln(s);
 d:=length(s)*(length(s)-1);
 for i:=0 to length(s)-1 do begin 
  c[i]:=s[i+1]; 
 end;
 for i:=1 to d do a[i]:='';
 for i:=1 to d do
 for j:=1 to length(s)-1 do
 begin
 r:=((((0-i)+length(s)*j)+d) mod d) div (length(s)-1);
 a[i]:=a[i]+c[r];
 end;
 for i:=0 to d-1 do
 writeln(c[i mod length(s)],a[i+1]);
readln;
end. 
>> bài khá là khó hiểu, ứng dụng giải ngược (mk cx it sd)


#35
Duongdz2k7

Duongdz2k7

    Binh nhất

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


 

bài này vẫn chưa hay lắm

program bt1;

uses crt;
var a:array[1..100] of string;
c:array [0..255] of char;
s:string;
d,i,j,r:integer;
begin
 write('nhap xau:');
 readln(s);
 d:=length(s)*(length(s)-1);
 for i:=0 to length(s)-1 do begin 
  c[i]:=s[i+1]; 
 end;
 for i:=1 to d do a[i]:='';
 for i:=1 to d do
 for j:=1 to length(s)-1 do
 begin
 r:=((((0-i)+length(s)*j)+d) mod d) div (length(s)-1);
 a[i]:=a[i]+c[r];
 end;
 for i:=0 to d-1 do
 writeln(c[i mod length(s)],a[i+1]);
readln;
end. 
>> bài khá là khó hiểu, ứng dụng giải ngược (mk cx it sd)

 

thk anh nha!

nhưng em mới lớp 8 nên ko hiểu lắm !

bây giờ chỉ chơi hệ dễ hiểu thôi ạ haha ! :D


                   Học , học nữa , học mãi  :closedeyes:

Luôn không ngừng cố gắng để đạt thành quả :D  :like





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

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