课件编号8489916

浙教版选修一4.3 语句 课件(21张)

日期:2024-05-01 科目:信息技术 类型:高中课件 查看:17次 大小:467539Byte 来源:二一课件通
预览图 1/9
教版,选修,语句,课件,21张
  • cover
4.3语 句 ———进制转换的程序实现 Warming up 程序的功能? 程序功能 字符串逆序(反转)输出 最先输入的字符最后输出,最后输入的字符最先输出。 Private Sub Command1_Click() Dim s as string,c as string, res as string s=text1.text res=“” for?i=1?to?len(s) ????c=mid(s,i,1) ????_①_____ Next i Text2.text=res End Sub 程序功能 字符串逆序(反转)输出 最先输入的字符最后输出,最后输入的字符最先输出。 Private Sub Command1_Click() Dim s as string,c as string, res as string s=text1.text res=“” for?i=1?to?len(s) ????c=mid(s,i,1) ????_res=c+res_____ Next i Text2.text=res End Sub 算法思想 字符串逆序(反转)输出的算法: For?i=1? to? len(s) ????c=mid(s,i,1) ????res=c+res Next i 思考:若res=res+c能实现字符串逆序,程序要怎样修改? 程序1:十进制正整数转换成二进制数 用什么算法实现? 算法描述:对十进制数x用2辗转相除获取余数r,直至商为0为止,最后将余数r从下往上输出。 主要采用哪种算法结构?(顺序,分支,循环) 需要哪些表达式? 程序1:十进制正整数转二进制 Private Sub Command1_Click() Dim x As Integer, r As Integer, res As String x = Val(Text1.Text) res = "" Text2.Text = res End Sub 虚位以待 {5C22544A-7EE6-4342-B048-85BDC9FD1C3A}样例输入 13 样例输出 1 1 0 1 算法思想 十进制数x转换成二进制的算法: res=“” do while x<>0 r=x mod 2 ‘① x=x\2 ‘② res=str(r)+res ‘③ loop 思考: 1.语句1能否与语句2调换位置? 2.若十进制数转换成十六进制,怎样修改程序? 十进制转换成十六进制 {5C22544A-7EE6-4342-B048-85BDC9FD1C3A}十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F do while x<>0 r=x mod 16 ① x=x\16 ② res=str(r)+res ③ loop else If r<10 then res=数字字符+res res=字母字符+res endif 十进制转换成十六进制算法1 Do While x <> 0 r = x Mod 16 x = x \ 16 If r < 10 Then res = + res Else res = + res End If Loop {5C22544A-7EE6-4342-B048-85BDC9FD1C3A}十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F 十进制转换成十六进制算法1 Do While x <> 0 r = x Mod 16 x = x \ 16 If r < 10 Then res = + res Else res = + res End If Loop Str(r) chr(r+55) chr(asc(“A”)+r-10) {5C22544A-7EE6-4342-B048-85BDC9FD1C3A}十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F 十进制转换成十六进制算法2 s=“0123456789ABCDEF” res=“” Do While x <> 0 r = x Mod 16 res= +res x = x \ 16 Loop 十进制转换成十六进制算法2 s=“0123456789ABCDEF” res=“” Do While x <> 0 r = x Mod 16 res= +res x = x \ 16 Loop mid(s,r+1,1) 程序2:十进制负数转换成二进制数 转换成补码的算法: 1.将对应的正数转换为8位二进制数,最高位作为符号位为1,其余不足7位时高位补0 2. 除符号位外,按位取反(1变成0,0变成1) 3. 末位加1 负数在计算机中以补码的方式存储 程序2:十进制负数转换成二进制 Private Sub Command1_Click() Dim a(1 to 8) As Integer, x As Integer, b As String x = Abs(Val(Text1.Text)) For i = 1 To 7 a(i) = x Mod 2 x = x \ 2 Next i For i = 1 To 7 ‘按位取反 ① Next i a(1) = a(1) + 1 i = 1 Do While a(i)=2 a(i) = 0 ② i = i + 1 Loop a(8)= 1 ‘符号位为1 For i = 8 To 1 Step -1 b = b + Trim(Str(a(i))) 'trim()函数去除字符前后空格 Next i Text2.Text = b End Sub {5C22544A-7E ... ...

~~ 您好,已阅读到文档的结尾了 ~~