Pascal陣列,字串

2021-08-20 05:01:25 字數 2465 閱讀 8158

已經兩天沒和大家見面了,今天我們來學習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 求出滿足條...