已經兩天沒和大家見面了,今天我們來學習pascal語言和演算法三大風水寶地之一的陣列
三大風水寶地有:
1.迴圈
2.陣列,字串
3.遞迴
我們來看看一維陣列的原理:
陣列的定義是:a(隨意改):array[1..10000(隨意改)]of longint(隨意改);
一維陣列就是把數存入a[1],a[2],a[3]....a[n];
二維陣列同理,定義是:
a:array[1..5000,1..5000]of longint;
舉個栗子
(一維陣列)
輸入n個正整數,把這n個數按由大到小的順序排列。(選擇排序)
將資料按一定順序排列稱為排序,排序的演算法有很多,其中選擇排序是一種較簡單的方法。
【分析】
假設是十個資料
要把十個數按從大到小順序排列,則排完後,第乙個數最大,第二個數次大,……。因此,我們第一步可將第乙個數與其後的各個數依次比較,若發現,比它大的,則與之交換,比較結束後,則第乙個數已是最大的數(最大的泡往上冒)。同理,第二步,將第二個數與其後各個數再依次比較,又可得出次大的數。如此方法進行比較,最後一次,將第九個數與第十個數比較,以決定次大的數。於是十個數的順序排列結束。
如對5個進行排序,這個五個數分別為8 2 9 10 5。按選擇排序方法,過程如下:
初始資料 :8 2 9 10 5
第一次排序:8 2 9 10 5
9 2 8 10 5
10 2 8 9 5
10 2 8 9 5
第二次排序:10 8 2 9 5
10 9 2 8 5
10 9 2 8 5
第三次排序:10 9 8 2 5
10 9 8 2 5
第四次排序:10 9 8 5 2
對於十個數,則排序要進行9次。
答案:var
a:array[1..10000]of integer;
i,j,t,n:integer;
begin
for i:=1 to n do
read(a[i]); //讀入n個初始資料
for i:=1 to n-1 do //進行9次排序
begin
for j:=i+1 to n do //將第i個數與其後所有數比較
if a[i]begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
end;
for i:=1 to 10 do
write(a[i],' ');
end.
字串:
說到字串,就不得不用一些函式了,下面的函式請諸位記一記,尤其是藍色的字
函式和過程名
功 能
說 明
copy(s,m,n)
取s中第m個字元開始的n個字元
若m大於s的長度,則返回空串;否則,若m+n大於s的長度,則截斷
length(s)
求s的動態的長度
返回值為整數
pos(sub,s)
在s中找子串sub
返回值為sub在s中的位置,為byte型
insert(sour,s,m)
在s的第m個字元位置處插入子串sour
若返回串超過255,則截斷
delete(s,m,n)
刪除s中第m個字元開始的n個字串
若m大於s的長度,則不刪除;否則,若m+n大於s的長度,則刪除到結尾
str(x[:w[:d]],s)
將整數或實數x轉換成字串s
w 和 d是整型表示式,意義同帶字寬的write語句
val(s,x,code)
將字串s 轉換成整數或實數x
若s中有非法字元,則code存放非法字元在s中的下標;否則,code為零。code為整型
upcase(ch)
將字母ch轉換成大寫字母
若ch不為小寫字母,則不轉換
舉個栗子讓諸位運用一下
正確的郵箱位址格式是「使用者名稱@伺服器名」,輸入乙個郵箱位址判斷它是不是合法的郵箱位址。
【分析】
1.郵箱位址字串中是否包括字元「@」;
2.@字元不能出現在第乙個位置也不能出現字元的末尾。
答案var
p : integer;
s : string;
begin
readln(s);
p := pos('@',s);
if (p>1) and (pwriteln('ok')
else
writeln('error');
end.
謝謝大家,求關注哦!!!
pascal 的字串操作
1.ord 將字元轉為 ascii碼 2.chr 將ascii碼轉為字元 3.trunc 求整數部分 4.random randomize 5.copy s,i,l 從s串中擷取第i個字元開始後長度為l的串 6.delete s,i,l 從s串中刪除第i個字元開始後長度為l的串 7.insert s...
Pascal 語言中字元與字串
題目 輸入一段文章 255個字元以內 求文章中單詞的個數,相同單詞只記一次,the 和 the 視作相同。敲 vararticle,w string arr array 1.255 of string i,len,ans longint function check w string boolean...
字串行pascal程式
description 從三個元素的集合 a,b,c 中選取元素生成乙個n個字元組成的序列,使得沒有兩個相鄰字的子串行相同。例 n 5時abcba是合格的,而序列abcbc與ababc是不合格的,因為其中子串行bc,ab是相同的。input 對於由鍵盤輸入的n 1 n 10 output 求出滿足條...