14
例 4-18 P71 例例例例 例例例例 例例例例例例例例例 例例例例例 例 ,一。一 4 例 5 例例例例例例例例例 90 例例例例2 3 4 17 88 3 4 8 9 1 22 2 3 0 4 1 3 4 5 8 1 22 3 2 3 2 4 3 4 3 8 4 5 0 9 17 8 4 1 88 a24 b43 a25 b53 a13 b34 b[i,j]:=a[ ] 已已

例 4-18 P71

  • Upload
    shaw

  • View
    46

  • Download
    2

Embed Size (px)

DESCRIPTION

b 34. a 13. a 24. a 25. b 43. b 53. 例 4-18 P71. 转置矩阵,就是将一个矩阵的行列互换。编程输入一个 4 行 5 列的矩阵,顺时针旋转 90 度后输出。. 1 22 3 2 3 2 4 3 4 3 8 4 5 0 9 17 8 4 1 88. 2 3 4 17 88 3 4 8 9 1 22 2 3 0 4 1 3 4 5 8. 已知. b[i,j]:=a[ , ]. 直接输出. 1 22 3 2 3 2 4 3 - PowerPoint PPT Presentation

Citation preview

Page 1: 例 4-18   P71

例 4-18 P71 转置矩阵,就是将一个矩阵的行列互换。编程输入一个 4 行 5 列的矩阵,顺时针旋转 90 度后输出。

2 3 4 17 88

3 4 8 9 1

22 2 3 0 4

1 3 4 5 8

1 22 3 2

3 2 4 3

4 3 8 4

5 0 9 17

8 4 1 88

a24

b43a25

b53

a13

b34

b[i,j]:=a[ , ]已知

Page 2: 例 4-18   P71

2 3 4 17 88

3 4 8 9 1

22 2 3 0 4

1 3 4 5 8

1 22 3 2

3 2 4 3

4 3 8 4

5 0 9 17

8 4 1 88

program ex_zz;var i,j:integer;    a:array[1..4,1..5] of integer;    begin  for i:=1 to 4 do    for j:=1 to 5 do      read(a[i,j]);      for i:=1 to 5 do     begin        for j:=4 downto 1 do write(a[j,i],' ');       writeln;     end;end.

直接输出

Page 3: 例 4-18   P71

2008第一题var i,a,b,c,d:integer; f:array[0..3] of integer;begin for i:=0 to 3 do read(f[i]); a:=f[0]+f[1]+f[2]+f[3]; a:=a div f[0]; b:=f[0]+f[2]+f[3]; b:=b div a; c:=(b*f[1]+a) div f[2]; d:=f[(b div c) mod 4]; if (f[(a+b+c+d) mod 4]>f[2]) then begin a:=a+b; writeln(a) end else begin c:=c+d; writeln(c); end;end.输入: 9 19 29 39

f[0] f[1] f[2] f[3] a b c d

1

2

3

4

9 19 29 39

96

10 77 4 19

Page 4: 例 4-18   P71

数组应用

Page 5: 例 4-18   P71

4-19 进制转换4-21 约瑟夫问题

Page 6: 例 4-18   P71

所有信息在计算机内部都是以 0 与 1 组成的序列表示,包括文字、声音、图像、视频等

数也不例外,由 0 与 1 作为基数来代表数,是二进制

我们日常习惯用 10 进制,这就涉及到转换

11 二进制,转换成 10 进制是多少?

Page 7: 例 4-18   P71

10 进制的特点0-9,10 个数组成, 0-9 也就做基数逢 10 进一不同位上的 1 ,代表不同的数,叫权

111 3263*102+2*101+6*100

Page 8: 例 4-18   P71

常见的数制数制:指用一组固定的符号和统一的规则来表示数的方法,也称计数制。进位计数制:按进位的方法进行计数,如十进制、二进制等进位计数制包括三个要素:数位、基数、位权 ①数位:指数中各数字的位置(从右到左, 0 位开始); ②基数:指进位计数制中数字。如十进制有 0 ~ 9 共 10 个数字 ③位权:某位上数字所代表的数值大小等于该数字乘以一个固定的数,这个固定的数就是这个数位的位权。

十进制,位数比较有个性,有自己的名字 如百位 十位 个位 · 十分位 百分位 千分位102 101 100 · 10-1 10-2 10-3

1 1 1

22 21 20 · 2-1 2-2 2-3

1 1 1

=1* 102 +1*101 +1*100

=1* 22 +1*21 +1*20

Page 9: 例 4-18   P71

常见进位计数制的三要素基本情况如下十进位计数制

数位 …… 百位 十位 个位 · 十分位 百分位 千分位 ……基数 10(∵ 十进制有 0 ~ 9 共 10 个数字 )

位权 …… 102 101 100 · 10-1 10-2 10-3 ……

 

二进位计数制数位 …… 第 2 位 第 1 位第 0 位 · 第 1 位 第 2 位 第 3 位 ……基数 2(∵ 二进制有 0 ~ 1 共 2 个数字 )位权 ……22 21 20 · 2-1 2-2 2-3 ……

 

八进位计数制数位 …… 第 2 位 第 1 位 第 0 位 · 第 1 位 第 2 位 第 3 位 ……基数 8(∵ 二进制有 0 ~ 7 共 8 个数字 )位权 ……82 81 80 · 8-1 8-2 8-3 ……

 

十六进位计数制数位 …… 第 2 位 第 1 位 第 0 位 · 第 1 位 第 2 位 第 3 位 ……基数 16(∵ 十六进制有 0 ~ 9 、 A ~ F 共 16 个数字 )位权 ……162 161 160 · 16-1 16-2 16-3 ……

Page 10: 例 4-18   P71

十进制整数与 2进制整数之间的转换

逆向取余

用短除法

**=n mod 2

n:=n div 2

Page 11: 例 4-18   P71

十进制整数与 N进制整数之间的转换

Page 12: 例 4-18   P71

4-19将一个十进制正整数 n(n<=2 147 483 647) 转换成二进制

inteter     -32768..32767       longint   -2147483648..2147483647

是否知道除多少次?循环的条件是什么呢?循环体要做多少件事?如何输出?

Page 13: 例 4-18   P71

思考10 进制转换成 16 进制

要考虑超过超过 9 就应当用字母表示,如何实现?

Page 14: 例 4-18   P71

var n,i,t:longint; a:array[1..100] of integer; b:char;begin readln(n); i:=0; while n>0 do begin inc(i); a[i]:=n mod 16; n:=n div 16; end; t:=i; for i:=t downto 1 do begin if (a[i]>=0)and(a[i]<10) then write(a[i]); if a[i]=10 then write('A'); if a[i]=11 then write('B') ; if a[i]=12 then write('C') ; if a[i]=13 then write('D') ; if a[i]=14 then write('E') ; if a[i]=15 then write('F') ; end;end.

秦翔宇