1樓:
單目運算子 (最高優先順序)
@ 取變數或函式的地址(返回一個指標)
not 邏輯取反或按位取反
乘除及按位運算子
* 相乘或集合交集
/ 浮點相除
div 整數相除
mod 取模 (整數相除的餘數)
as 程式執行階段型別轉換 (rtti運算子)and 邏輯或按位求和
shl 按位左移
shr 按位右移
加減運算子
+ 相加、集合並集、字串連線或指標增加一個偏移量- 相減、集合差集或指標減少一個偏移量
or 邏輯或按位或運算
xor 邏輯或按位異或運算
關係及比較運算子(最低優先順序)
= 判斷是否相等
<> 判斷是否不相等
< 判斷是否小於
> 判斷是否大於
<= 判斷是否小於或等於,或是否是一個集合的子集>= 判斷是否大於或等於,或是否是一個集合的父集in 判斷是否是集合成員
is 判斷物件是否型別相容 (又一個rtti運算子)
2樓:匿名使用者
* / div(除後取整數部分)mod(除後取小數部分)(這四個優先順序一樣) + -
(這兩個優先順序一樣)
3樓:方永福
http://www.zjtg.cn 去**看
free pascal 語言程式設計
4樓:快樂幸福的自由
回答即可得2分經驗值第三章 迴圈程式
在程式設計中經常遇到需要多次規律相同的重複處理,這就是迴圈問題。turbo pascal採用不同的迴圈方式來實現,常用的環循有三種: for、repeat、while.
第一節 for 迴圈
for迴圈是一種自動計數型迴圈。
[例3.1] 試列印出1~20的自然數。
解:① 用a代表1~20各數,同時也用a兼作計數,以控制迴圈次數;
② 讓a從1開始;
③ 輸出a;
④ a自動計數(加1),如果未超越所規定的迴圈範圍則重複步驟③,否則結束迴圈。
pascal程式:
program exam12;
var a: byte;
begin
for a:=1 to 20 do
writeln (a);
readln
end.
程式中 for a:=1 to 20 do writeln (a); 是for迴圈語句。
for 迴圈語句有兩種格式:
(1) for 迴圈變數:=初值 to 終值 do 語句;
(2) for 迴圈變數:=初值 downto 終值 do 語句;
第(1)種格式的初值小於等於終值,迴圈變數值按自動加1遞增變化;
第(2)種格式的初值大於或等於終值,迴圈變數值按自動減1遞減變化。for 迴圈是 (以遞增1或以遞減1) 計數型迴圈。
比如: 若將[例3.1]程式改為倒計數(遞減)迴圈,則輸出20~1的自然數數:
program exam31;
var a: byte;
begin
for a:=20 downto 1 do
writeln(a) ;
readln
end.
[例3.2]列印出30至60的偶數。]
解:方法一:
= 1 \* gb3 ①設a表示30至60的所有的數,可用for迴圈列出;
= 2 \* gb3 ②用式子 a mod 2=0 篩選出其中的偶數並輸出。
pascal程式:
program ex32;
var a : integer;
begin
for a := 30 to 60 do
if (a mod 2=0) then writeln(a);
readln;
end.
在這個程式中,for迴圈後的迴圈語句是一個條件分支語句。
方法二:我們知道,在式子a=2*n中,若n取自然數1、2、3、…,時,則a依次得到偶數2、4、6、…。因此要想得到30至60的偶數,就可以讓上面式子中的n取15至30的自然數就可以了。
所以本題還可以按以下步驟處理:
= 1 \* gb3 ①設n表示15至30的所有自然數,可用for迴圈列出;
= 2 \* gb3 ②用式子 a := 2*n 求出其中的偶數;
= 3 \* gb3 ③將結果輸出至螢幕。
pascal程式:
program ex32;
begin
for n := 15 to 30 do
begin
a := 2*n;
writeln(a);
end;
readln;
end.
[例3.3]自然數求和:編一個程式,求從1至100的自然數的和。
解:① 令s=0;
② 令a表示1至100的自然數,用迴圈列出;
③ 將這些自然數用公式s:=s+a 逐一累加到s中去;
= 4 \* gb3 ④ 迴圈結束後,s即為1至100的自然數的和,輸出即可。
pascal程式:
program ex33;
var s,a : integer;
begin
s := 0;
for a := 1 to 100 do
s := s+a;
writeln(『s=』,s);
readln;
end.
[例3.4]一個兩位數x,將它的個位數字與十位數字對調後得到一個新數y,此時y恰好比x大36,請程式設計求出所有這樣的兩位數。
解:① 用for迴圈列舉出所有的兩位數,x為迴圈變數;
② 用公式a:= x div 10分離出x的十位數字;
③ 用公式b:= x mod 10分離出x的個位數字;
④ 用公式y:= b*10+a合成新數y;
= 5 \* gb3 ⑤ 用式子y-x=36篩選出符合條件的數x並輸出。
pascal程式:
program ex34;
begin
for x := 10 to 99 do
begin
a := x div 10;
b := x mod 10;
y := b*10+a;
if y-x=36 then writeln(x);
end;
readln;
end.
[例3.5] 把整數3025從中剪開分為30和25兩個數,此時再將這兩數之和平方,(30+25)2=3025計算結果又等於原數。求所有符合這樣條件的四位數。
解:設符合條件的四位數為n,它應當是一個完全平方數,用(a*a)表示。
① 為了確保n=(a*a)在四位數(1000~9999)範圍內,可確定a在32~99迴圈;
② 計算n=a*a;將四位數n拆分為兩個數n1和n2;
③ 若滿足條件(n1+n2)*(n1+n2)=n 就輸出 n 。
pascal程式:
program exam35;
var n,a, x,n1,n2: integer;
begin
for a:=32 to 99 do
begin
n:=a*a;
n1:= n div 100; {拆取四位數的前兩位數}
n2:= n-n1*100; {拆取四位數的後兩位數}
x:=n1+n2;
if x*x=n then writeln (n);
end;
readln
end.
[例3.6]用「*」號列印出如下的長方形圖案。
*********
*********
*********
*********
解:① 上面給出的圖例共有4行,我們可以用一個迴圈控制行的變化;
② 在每行中又有9列,我們可以在前面控制行的迴圈中再套一個迴圈來控制列的變化。
pascal程式:
program ex36;
begin
for a := 1 to 4 do
begin
for b := 1 to 9 do
write(『*』);
writeln;
end;
readln;
end.
程式中的迴圈對於a的每個值都包含著一個b=(1~9)次的內迴圈。外迴圈for a 將內迴圈for b 包含在裡面,稱為for迴圈的巢狀。巢狀形式如:
for a:=n1 to n2 do
for b:=m1 to m2 do 迴圈體語句;
[例3.7] 列印出九九乘法表:
解:設a為被乘數,範圍為1~9;b為乘數,範圍為1~a;乘式為a*b=(a,b的乘積),則
a=1: b=1~a 1*1=1
a=2: b=1~a 2*1=2 2*2=4
a=3: b=1~a 3*1=3 3*2=6 3*3=9
a=4: b=1~a 4*1=4 4*2=8 4*3=13 4*4=16
: :
a=9 b=1~a 9*1=9 9*2=18 … 9*9=81
⑴從上面分解的橫行中看到共有9行,這裡的「行」數變化與a的變化從1~9相同,可用a控制「行」的迴圈;
⑵每「行」裡面相乘的次數與b的範圍相關,由b控制每「行」裡面的「內部」迴圈;
⑶內迴圈被包含在最裡層,執行完每「行」的內部迴圈,就到下一「行」去執行新「行」裡面的迴圈,每「行」都擁有形式相同的( b=1~a )內迴圈。
即每到一「行」都要執行該「行」的內迴圈。這裡所指的「行」可以理解成抽象的行,不一定是實際上具體對應的行,可以是一個處理「塊」。
pascal程式:
program exam37;
var a,b: byte;
begin
for a:=1 to 9 do
begin
for b:=1 to a do
write(a,』* 』,b,』= 』,a*b,』 』:3);
writeln
end;
readln
end.
根據這種格式還可以實現多層迴圈巢狀,例如:
for a:=n1 to n2 do
for b:=m1 to m2 do
for c:=k1 to k2 do 迴圈體語句;
[例3.8]從七張撲克牌中任取三張,有幾種組合方法?請程式設計輸出所有組合形式。
解:設每次取出三張分別為a,b,c。用三重迴圈分別從1~7的範圍裡取值;為了排除取到重號,用(a-b)*(b-c)*(a-c) < >0進行判斷。
pascal程式:
program exam38;
const n=7;
var a,b,c,t: integer;
begin
t:=0;
for a:=1 to n do
for b:=1 to n do
for c:=1 to n do
if (a-b) * (b-c) * (a-c) < >0 then
begin
inc (t);
writeln (a:3, b:3, c:3)
end;
writeln ( total:, t :5);
readln
end.
[例3.9] 數學上把除了1和它本身,沒有別的數能夠整除它的自然數叫做素數(或質數)。現在由鍵盤輸入一個自然數n,程式設計判斷n是否是素數,是則輸出「yes」,否則輸出「no」。
解:根據定義,對於給定的自然數n,只需判斷除1和它本身外,還有沒有第三個自然數即可。
① 令k從1迴圈至n;
② 根據n mod k是否為0可統計k的約數的個數;
③ 若n的約數的個數超過2個,則判定n不是素數。
pascal程式:
program exam39;
var n,m,k,t: integer;
begin
write(『n=』);
readln(n);
t:=0;
for k:=1 to n do
if n mod k=0 then t := t+1;
if t>2 then writeln(『no』)
else writeln(『yes』);
readln;
end.
程式中的變數yse為布林(或邏輯)型別(boolean)。布林值只有兩個:
true(真) false(假)
布林值與條件判斷結果為真(條件成立)或為假(條件不成立)的作用相同,常用於條件語句和迴圈語句中。
上面程式中用 if yes and (t mod 7=0) then writeln;實現每行列印七個素數換行,程式中布林變數yes為真,在邏輯上表示是素數;關係式(t mod 7=0) 的值為真時,表示該行輸出素數巳是7個;用and將這兩個「條件」連起來是作一種布林(邏輯)運算。
pascal 共有四種邏輯運算子:
① and (與) 兩條件都為true時,其結果值為true;否則為false;
② or (或) 兩條件中只要有一個為true ;其結果值為true;否則為false;
③ xor (異或) 兩條件的邏輯值不相同時,其結果值為true;否則為false;
④ not (非) 條件為true時,其結果值為false;否則為true;(取反)
習題3.1:
1.列印出1至20的平方數表。
2.列印出100至200之間的奇數。
3. 雞兔同籠(用for迴圈程式完成)
4.一輛快車和一輛慢車開往同一地點,快車票價為18元,慢車票價為13. 5元,共售出400張,共計5940元,求快車票和慢車票各多少張?.
5.求出能被5整除的所有四位數的和。
6.在下面式子中的二個□內填入一個合適的同樣的數字,使等式成立。
□3*6528=3□*8256
7.有一個三位數,它的各位數字之和的11倍恰好等於它自身,請程式設計求出這個三位數。
8.在自然數中,如果一個三位數等於自身各位數字之立方和,則這個三位數就稱為是水仙花數。如:153=13+53+33,所以153是一個水仙花數。求所有的水仙花數。
9.程式設計序列印出下列圖案:
平行四邊形 等腰三解形 菱形
****** * *
****** *** ***
****** ***** *****
****** ******* ***
****** ********* *
10.程式設計列印出如下圖案:
1222
33333
4444444
555555555
11.有三種明信片:第一種每套一張,售價2元;第二種每套一張,售價4元; 第三種每套9張,售價2元。
現用100元錢要買100張明信片,要求每種明信片至少要買一套,問三種明信片應各買幾套?請輸出全部購買方案。
12.某人想把一元錢換成伍分、貳分、壹分這樣的零錢, 在這三種零錢中每種零錢都至少各有一個的情況下,共有多少種兌換方案。並打出這些方案。
13.14. 輸出100 以內的全部素數,要求每行顯示5 個。
15.a、b兩個自然數的和、差、積、商四個數加起來等於243,求a、b兩數。
16.百錢買百雞:今有錢100元,要買100只雞,公雞3元一隻,母雞1元一隻,小雞1元3只,若公雞、母雞和小雞都至少要買1只,請程式設計求出恰好用完100元錢的所有的買雞方案。
,回答被採納可同步增加經驗值和財富值
c語言中有哪些算術運算子C語言中有哪些算術運算子
c語言中算術運算子有以下這些 例項 include int main 當上面的 被編譯和執行時,它會產生下列結果 line 1 c 的值是 31 line 2 c 的值是 11 line 3 c 的值是 210 line 4 c 的值是 2 line 5 c 的值是 1 line 6 c 的值是 2...
在C語言中,有如下定義
執行後輸出的結果是 5 do while 是怎樣迴圈的啊?第一趟迴圈不判別迴圈條件,直接執行迴圈體 if i 2 i 2為f i i為1 s s i s為1 第二趟迴圈,判別迴圈條件i 3為t,執行迴圈體if i 2 i 2為t i i為4 s s i s為5 第二趟迴圈,判別迴圈條件i 3為f,退...
c語言中怎麼用C語言中怎麼用
最近 盤 字很流行,盤是什麼意思?為什麼能成為網路熱詞?結果是3 解答過程 自 首先算a b 表示異或 十進位制a 1,等於二進位制0001 十進位制b 2,等於二進位制0010 異或為對應位不同時取真,故0001 0010結果為0011,即為十進位制的3 再算 a b c 表示按位與,a b的結果...