Đến nội dung

The Dark Hunter nội dung

Có 20 mục bởi The Dark Hunter (Tìm giới hạn từ 23-05-2020)


Sắp theo                Sắp xếp  

#650576 cách tìm nghiệm của hệ phương trình

Đã gửi bởi The Dark Hunter on 20-08-2016 - 23:34 trong Giải toán bằng máy tính bỏ túi

rút x hoặc y ra thế vào pt còn lại




#650181 TOPIC: Tổng hợp bài tập PASCAL

Đã gửi bởi The Dark Hunter on 18-08-2016 - 08:29 trong Góc Tin học

* Lỗi ở đây là do số nguyên tố ghép đó lớn hơn kiểu dữ liệu trong chương trình !

Có hai cách giải quyết:

- Nghĩ cách làm sao để sử dụng được kiểu dữ liệu lớn hơn để giải quyết vấn đề trên (vẫn sử dụng thuật toán cũ)

- Nghĩ một thuật toán mới, tối ưu hơn thuật toán cũ và sử dụng kiểu dữ liệu lớn hơn.

* Nếu bạn muốn người khác suy nghĩ, cải tiến theo hướng thuật toán của bạn thì ít nhất bạn cũng phải nói ý tưởng của mình. Chứ nhìn vào chương trình thì ai mà biết bạn đang làm gì ? có tác dụng gì ? ...vv 

thì mình làm như bình thường :kiểm tra số nguyên tố rồi ghép với số nguyên tố trước nó xong kiểm tra số ghép có phải số nguyên tố không

nếu đúng thì tăng j,nếu j=k thì chương trình dừng




#649818 TOPIC: Tổng hợp bài tập PASCAL

Đã gửi bởi The Dark Hunter on 15-08-2016 - 22:53 trong Góc Tin học

Số nguyên tố ghép

Xét dãy A các số nguyên tố  2, 3, 5, 7, 11, 13, 17, 19,...

và dãy B gồm các số thu được từ dãy A bằng cách ghép hai số liên tiếp trong A: 23, 57, 1113, 1719, ...

Trong dãy B có những phần tử là số nguyên tố. Chẳng hạn 23, 3137, 8389, 157163...

Các số nguyên tố trong dãy B gọi là số nguyên tố ghép.

Yêu cầu: Cho trước số nguyên dương K ≤ 500, hãy tìm số nguyên tố ghép thứ K.

Input

Output

2

3137

ai nghĩ hộ thuật toán bài này dc ko?
Mk làm rồi nhưng k lớn thì chịu  :(
program wanted;
uses crt;
var a,i,j,k:longint;
function ktra(x:longint):boolean;
var i:longint;
begin
ktra:=true;
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then
   begin
   ktra:=false;
   exit;
   end;
end;
function ghepso(x1,x2:longint):longint;
var s1,s2,s:string;a:longint;c:integer;
begin
str(x1,s1);str(x2,s2);
s:=s1+s2;
val(s,a,c);
ghepso:=a;
end;
begin
clrscr;
write('nhap k=');
readln(k);
j:=0;a:=2;i:=2;
repeat
      begin
      if ktra(i) then a:=i;
         inc(i);
      if (ktra(i)) and (ktra(ghepso(a,i))) then
       inc(j);
      end;
until j=k;
writeln('so nguyen to ghep thu k la:',ghepso(a,i));
readln
end.



#649817 Chuỗi gần đúng

Đã gửi bởi The Dark Hunter on 15-08-2016 - 22:45 trong Góc Tin học

Nhận xét:

- Các TH khác thì không biết thế nào nhưng nếu nhập từ kiểm tra là "misspelled" và từ gốc là "mispeld" , sai số là 30. Thì kết quả ra là sai !

* Nói chung thuật toán vẫn chưa chính xác lắm !

cái chỗ:

else
       begin
       S:=0;break;
       end;
quên ko để ý S:=100 mới đúng 



#649502 Chuỗi gần đúng

Đã gửi bởi The Dark Hunter on 13-08-2016 - 22:30 trong Góc Tin học



 

Lỗi ở đây là không đọc được file. Dạo này đang chán và mệt nên nhác nghĩ, mình cho bạn coi cái code của mình về bài này hồi ôn.Nhưng chưa chuẩn xác lắm đâu nhưng nhìn đơn giản hơn nhiều.Bạn có gắng tự xử nhé, lúc nào rảnh thì mình làm cho :]

Code:

 

program chuoi_gan_dung;
uses crt;
var a,b:array[1..100] of string;
s,st:string;
i,n,m,k,p,l,j:integer;
begin
clrscr;
write('Nhap so % :');readln(m);
write('Nhap xau goc :');readln(s);
write('Nhap so xau can xac dinh :');readln(n);
p:=0;
for i:=1 to n do
        begin
        write('nhap xau a[',i,']=');readln(a[i]);
        st:=a[i];
        l:=1;
        j:=1;
        k:=0;
        while (l<=length(s))and(j<=length(st)) do
        if s[l]=st[j] then
        begin
        l:=l+1;
        j:=j+1;
        end else
                begin
                j:=j+1;
                k:=k+1;
                end;
        if (k/length(st))*100<=m  then
        begin
        p:=p+1;
        b[p]:=st;
        end;
        end;
for i:=1 to p do
writeln(b[i]);
readln
end.
P/s: Bạn sửa lại nội dung ví dụ nhé .Thân !

 

thuật toán dễ hiểu đấy




#649499 Chuỗi gần đúng

Đã gửi bởi The Dark Hunter on 13-08-2016 - 22:20 trong Góc Tin học

thuật toán mình làm dc rồi nhưng ko biết phải thao tác với file thế nào thôi

uses crt;
var n:integer;s1,s2:string;
function sai_so(s1,s2:string):integer;
var a:string;k1,k2,i,b,c,S,H:integer;
begin
k1:=length(s1);
k2:=length(s2);
S:=0;a:=s2;
for i:=1 to k1 do
    begin
    c:=pos(s1[i],a);
    b:=k2-length(a)+c;
    if c>0 then
       begin
       S:=S+c-1;
       a:=copy(s2,b+1,k2-b);
       end
       else
       begin
       S:=0;break;
       end;
    end;
H:=trunc(S/k2*100);
sai_so:=H;
end;
begin
clrscr;
write('nhap xau:');readln(s1);
write('nhap xau can kiem tra:');readln(s2);
write('% sai so:');readln(n);
if sai_so(s1,s2)<n then writeln('ok')
else writeln(':(');
readln
end.



#649316 Chuỗi gần đúng

Đã gửi bởi The Dark Hunter on 13-08-2016 - 00:30 trong Góc Tin học

Hai chuỗi gọi là gần đúng khi các ký tự của chuỗi gốc xuất hiện trong chuỗi kia
theo đúng thứ tự như chuỗi gốc. Số kí tự sai khác được tính thành tỉ lệ phần trăm so
với chuỗi có độ dài lớn hơn. Nếu tỉ lệ % sai khác không lớn hơn m% thì ta gọi đây
là 2 chuỗi gần đúng.
Ví dụ: xem hình sau:
Trong hình trên, độ sai lệch giữa mispeld misspelled là 3 kí tự; tỉ lệ là 3/10
tức 30%.
* Yêu cầu: Viết chương trình tìm các chuỗi gần đúng so với chuỗi gốc.
Fie dữ liệu vào cho trong File BAI2.INP. Hàng đầu tiên là m (số nguyên giá trị
từ 1 đến 50). Hàng kế tiếp là chuỗi gốc; các hàng còn lại là các chuỗi cần xác định
có gần đúng với chuỗi gốc đã cho hay không. Chuỗi chỉ gồm các kí tự chuẩn trong
bảng mã ASCII và không có khoảng trắng trong chuỗi; chiều dài chuỗi không quá
254 kí tự.
Kết quả ghi trong File dữ liệu ra BAI2.OUT; gồm chuỗi gốc và các chuỗi gần
đúng với chuỗi gốc (không phân biệt chữ hoa/thường). Mỗi chuỗi được ghi trên 1
hàng.
Ví dụ:
BAI2.INP BAI2.OUT
30 mispeld
mispeld misspelled
misplace
misspelled
mislead

 

M.n giúp tìm lỗi sai với:

uses crt;
var f1,f2:text;n:integer;s1,s2:string;
function sai_so(s1,s2:string):integer;
var a:string;k1,k2,i,b,c,S,H:integer;
begin
k1:=length(s1);
k2:=length(s2);
S:=0;a:=s2;
for i:=1 to k1 do
    begin
    c:=pos(s1[i],a);
    b:=k2-length(a)+c;
    if c>0 then
       begin
       S:=S+c-1;
       a:=copy(s2,b+1,k2-b);
       end
       else
       begin
       S:=0;break;
       end;
    end;
sai_so:=S;
 
end;
begin
clrscr;
assign(f1,'input.txt');
reset(f1);
assign(f2,'output.txt');
rewrite(f2);
while not eof(f1) do
begin
     read(f1,n,s1,s2);
     writeln(f2,sai_so(s1,s2));
end;
close(f1);close(f2);
readln
end.

File gửi kèm




#622741 Trao đổi kinh nghiệm giải các bài tập Pascal

Đã gửi bởi The Dark Hunter on 26-03-2016 - 17:36 trong Tin học phổ cập

Gmail thôi bạn à !!

ukm c



#622698 Trao đổi kinh nghiệm giải các bài tập Pascal

Đã gửi bởi The Dark Hunter on 26-03-2016 - 12:14 trong Tin học phổ cập

Vậy */ ko làm à ?
Ý tưởng bìa này mình vẫn chưa có,nếu thấy có "tia sáng" gì thì bạn nói với nhé !

c có dùng fb ko thảo luận cho dễ



#622670 Trao đổi kinh nghiệm giải các bài tập Pascal

Đã gửi bởi The Dark Hunter on 26-03-2016 - 05:59 trong Tin học phổ cập

Vậy mảng A phải nhập từ bp à ?
Th nếu ko có dấu nào thỏa thì có cần thông báo ko ?
VD: Mảng : 1 4 7
số n: 11;
Thì có phải thế này ko ? 1*4+7.
Bạn giải thích hộ vs nhé.

bạn cứ làm điền dấu + - vào trước đã
t vẫn chưa biết ý tưởng làm bài này



#622669 Đề thi Tin học trẻ TP Đà Nẵng 2010-2011

Đã gửi bởi The Dark Hunter on 26-03-2016 - 05:55 trong Tin học phổ cập

Đây là ct hoán vị của 1 số à ??
Nếu phải thì bạn có thể nói ý tưởng giúp mình đc ko ?,Thank.

mk kiểm tra dãy theo thứ tự giảm dần từ cuối về đầu hoán đổi số lớn nhì lên đầu các số còn sắp xếp giảm dần
vd 282578
dãy 82578
chuyển thành 78852



#622205 Đề và code Pascal

Đã gửi bởi The Dark Hunter on 23-03-2016 - 23:05 trong Góc Tin học

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



#622114 Đề thi Tin học trẻ TP Đà Nẵng 2010-2011

Đã gửi bởi The Dark Hunter on 23-03-2016 - 19:11 trong Tin học phổ cập


Bài 3: (5đ) Số kề trước.
Cho một số tự nhiên N có K chữ số (0<K<=255). Bằng cách hoán vị các chữ số của N, ta sẽ được một
Bài 4: (5đ) Xóa số
Cho trước một dãy gồm N số nguyên không âm x1,x2,x3,...,xN và một số nguyên dương K. Hãy xóa đi ít nhất các phần tử trong dãy số trên để tổng các số còn lại bằng K.

Input: File văn bản XOASO.INP gồm 2 dòng:
-Dòng đầu ghi lại 2 số nguyên N và K cách nhau ít nhất 1 dấu cách, trong đó 0<N; K<=100
-Dòng thứ 2 ghi N số nguyên không âm có giá trị không quá 100, mỗi số cách nhau ít nhất 1 dấu cách.

Output: File văn bản XOASO.OUT ghi một số nguyên M là số phần tử ít nhất cần xóa. Trường hợp không có phương án xóa nào thỏa mãn các phần tử còn lại có tổng bằng K thì ghi ra số M có giá trị bằng -1.

Giới hạn: 5 giây.

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.



#622099 Đề và code Pascal

Đã gửi bởi The Dark Hunter on 23-03-2016 - 18:11 trong Góc Tin học

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



#622096 Topic Hỏi bài Pascal

Đã gửi bởi The Dark Hunter on 23-03-2016 - 18:06 trong Góc Tin học

Xin lỗi đang nghĩ mà hơi ríc rắc ở đoạn tìm số bé nhất thỏa mãn Đk,,,lúc đầu đọc sơ qua thấy khá giống cái bài hôm trước mình làm nhưng giời đọc lại công nhận nó nặng hơn 1 tí @@....Bạn cố gắng chờ thêm vài bữa nữa khi nào nghĩ ra thì mình post lên ngay.

mk vẫn chưa hiểu đề lắm p cho vd dc ko?



#621882 Topic Hỏi bài Pascal

Đã gửi bởi The Dark Hunter on 22-03-2016 - 17:53 trong Góc Tin học

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



#621798 Pascal tính toán!

Đã gửi bởi The Dark Hunter on 22-03-2016 - 05:53 trong Góc Tin học

Thực hiện bằng xâu là đơn giản nhất, ngoài ra còn dùng được mảng động zhay danh sách liên két

cho hỏi mảng động là gì vậy



#621498 Đề thi Tin học trẻ TP Đà Nẵng 2010-2011

Đã gửi bởi The Dark Hunter on 20-03-2016 - 21:18 trong Tin học phổ cập

xin thuật toán bài 3,4 với.thanks ạ



#621433 Viết chương trình xác định số chữ số lớn nhất tạo thành số đơn điệu của 1 số...

Đã gửi bởi The Dark Hunter on 20-03-2016 - 18:20 trong Góc Tin học

đề hỏi gì vậy.khó hiểu



#620898 Trao đổi kinh nghiệm giải các bài tập Pascal

Đã gửi bởi The Dark Hunter on 18-03-2016 - 13:13 trong Tin học phổ cập

cho mình hỏi bài này tý:cho mảng 1 chiều A và 1 số n.hãy điền các dấu +-*/ vào giữa các A[i] để giá trị nhận dc =n