机器翻译pascal程序
題意:
把一串數放進一個字典里,如果字典里沒有相同的數,就把最先放的那一類數拿出來,把當前的數放進去,再統計一次。
分析
整個查字典過程如下:每行表示一個單詞的翻譯,冒號前為本次翻譯后的內存狀況:
空:內存初始狀態為空。
第一個數時. 1:查找單詞1 并調入內存。
第二個數時. 1 2:查找單詞2 并調入內存。
第三個數時. 1 2:在內存中找到單詞1。
第四個數時. 1 2 5:查找單詞5 并調入內存。
第五個數時. 2 5 4:查找單詞4 并調入內存替代單詞1。
第六個數時. 2 5 4:在內存中找到單詞4。
第七個數時. 5 4 1:查找單詞1 并調入內存替代單詞2。
共計查了5 次詞典。
var
m,n,tj,m1,i:longint;
a,t:array[0..1000]of longint;
m2:array[0..100]of longint;
procedure work;
var
i:longint;
begin
? ? for i:=1 to m-1 do
? ? m2[i]:=m2[i+1];
end;
begin
? ? readln(m,n);
? ? tj:=0;m1:=0;
? ? fillchar(t,sizeof(t),0);
? ? for i:=1 to n do
? ? begin
? ? ? ? read(a[i]);
? ? ? ? if (t[a[i]]=0)and(m1<m) then
? ? ? ? begin
? ? ? ? ? ? inc(tj);
? ? ? ? ? ? inc(m1);
? ? ? ? ? ? t[a[i]]:=1;
? ? ? ? ? ? m2[m1]:=a[i];
? ? ? ? end else
? ? ? ? if (t[a[i]]=0)and(m1=m) then
? ? ? ? begin
? ? ? ? ? ? inc(tj);
? ? ? ? ? ? t[m2[1]]:=0;
? ? ? ? ? ? work;
? ? ? ? ? ? m2[m]:=a[i];
? ? ? ? ? ? t[a[i]]:=1;
? ? ? ? end;
? ? end;
? ? write(tj);
end.
轉載于:https://www.cnblogs.com/YYC-0304/p/9500228.html
總結
以上是生活随笔為你收集整理的机器翻译pascal程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oliver的救援pascal程序
- 下一篇: 笨小猴pascal题解