精华内容
下载资源
问答
  • 汇编-分支编程

    千次阅读 2017-05-02 01:59:44
    这个分支编程的实验和上个循环编程的作业一样都是5.1前后的汇编实验,同样是三个题,很简单就能搞定,不过整理起来实验报告真是一个麻烦事。实验一有 3 个字变量 x、yx、y 和 zz, 若 x>yx > y,则求 z=x−y+1z = x...

    这个分支编程的实验和上个循环编程的作业一样都是5.1前后的汇编实验,同样是三个题,很简单就能搞定,不过整理起来实验报告真是一个麻烦事。

    实验一

    有 3 个字变量 xy z
    x>y,则求 z=xy+1
    否则,求 z=x+y1

    十分基础的分支问题,只需要 cmp 判断 x y 大小,然后 jl 跳转即可,代码如下:

    描述

    接着,查看寄存器等相关信息。

    描述

    可以明确看到数据段从 076A:0 开始,查看数据段内存。

    描述

    此时我们的数据是 x 小于 y,结果应该为 2,运行完程序并再次查看数据段内存。

    描述

    结果无误,这种分支没有问题,接着我们调整数据,让 y 小于 x

    描述

    此时,结果应该为 CH ,运行完程序并再次查看内存。

    描述

    结果无误,至此,我们的两个分支都没有问题,实验一完毕。

    实验二

    有 1 个字节变量 a 和 1 个字变量 x
    a 为偶数,则把 x 中低字节清 0,高字节不变;
    a 为奇数,则把 x 中高字节清 0,低字节不变。

    和上一个实验一样,换汤不换药,利用一次右移一次左移,与原数判断即可,代码如下:

    描述

    查看寄存器等相关信息。

    描述

    如上,数据段内存起始地址为 076A:0 ,查看对应内存。

    描述

    此时, a 为偶数,如果 C4H 被覆盖则无误,运行完程序并再次查看内存。

    描述

    结果正是我们想要的,那么我们修改一下 a 为奇数。

    描述

    此时,应该被清零的是 05H,再次运行完并查看内存。

    描述

    的确是 05H 被清零了,至此,实验没毛病,实验二完成。

    实验三

    有3个字变量 xy z ,一个字节变量 f
    计算 z=xy
    z>0 ,则 f=1
    z<0 ,则 f=1
    z=0 ,则 f=0

    真是没什么可说的,直接上代码:

    描述

    查看寄存器等相关信息。

    描述

    从数据段对应内存 076A:0 起查看内存。

    描述

    此时 xy 结果应该是 1 ,所以 z FFFFH f FH 的话就是我们想要的。

    描述

    看来这个分支是没有问题的,接着调整数据。

    描述

    然后运行完程序并查看内存。

    描述

    此时, z 结果为 0,f 结果为 0,没毛病,继续调整数据,使 z 结果为正数。

    描述

    这样的话,z 的结果应该为 1H f 的值也为 1H。查看数据……

    描述

    GG,完全没有问题,至此,验证三个分支均无误,实验三完成。

    我本不想这么写报告的,实在是太慢了,无奈要求如此,要么不做,要么就好好按着要求做吧……

    展开全文
  • 本文给大家分享了 查表、多分支(80C51单片机汇编语言编程)。
  • shell 是操作系统的最外层。shell 合并编程语言以控制进程和文件,以及启动和控制其它程序。shell 通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来管理您与操作系统之间的交互。

    1.条件测试操作

    test命令
    	测试表达式是否成立,若成立返回0,否则返回其他数值
    	格式1:test 条件表达式
    	格式2:[ 条件表达式 ]			#前后有空格
    文件测试
    	[ 操作符 文件或目录 ]
    常用的测试操作符
    	-d:测试是否为目录(Directory)
    	-e:测试目录或文件是否存在(Exist)
    	-f:测试是否为文件(File)
    	-r:测试当前用户是否有权限读取(Read)
    	-w:测试当前用户是否有权限写入(Write)
    	-x:测试当前用户是否有权限执行(excute)
    
    举例:
    [root@server media]# [ -d /media ]			#存在这个文件夹
    [root@server media]# echo $?
    0
    [root@server ~]# [ -d /media/cdrom ]		#不存在这个文件夹
    [root@server ~]# echo $?
    1
    [root@server ~]# [ -d /media ] && echo "abc"	#前面为真,则输出
    abc
    [root@server ~]# [ -d /media/cdrom ] || echo "abc"	#或者的意思,不管是否成立,都会输出
    abc
    [root@server ~]# echo $[!0]
    1
    

    整数值比较

    整数值比较
    	[ 整数1 操作符 整数2 ]
    常用的测试操作符
    	-eq:等于(Equal)
    	-ne:不等于(Not Equal)
    	-gt:大于(Greater Than)
    	-lt:小于(Lesser Than)
    	-le:小于或等于(Lesser or Equal)
    	-ge:大于或等于(Greater or Equal)
    
    常用的测试操作符
    [root@server ~]# cat /etc/passwd | wc -l
    44
    [root@server ~]# [ $(cat /etc/passwd | wc -l) -gt 100 ] && echo "more than 100"
    [root@server ~]# [ $(cat /etc/passwd | wc -l) -gt 10 ] && echo "more than 10"
    more than 10
    
    [root@server ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1823         294        1100           9         428        1322
    Swap:          2047           0        2047
    [root@server ~]# freecc=$(free -m | grep "Mem:" | awk '{print $6}')
    [root@server ~]# [ $freecc -lt 1024 ] && echo "$freecc"MB
    428MB
    
    [root@server ~]# cat /etc/passwd | wc -l
    44
    [root@server ~]# [ $(cat /etc/passwd | wc -l) -gt 100 ] && echo "more than 100"
    [root@server ~]# [ $(cat /etc/passwd | wc -l) -gt 10 ] && echo "more than 10"
    more than 10
    

    字符串比较

    字符串比较
    	格式1:[ 字符串1 = 字符串2 ]
    		  [ 字符串1 != 字符串2 ]
    	格式2:[ -z 字符串 ]
    常用的测试操作符
    	=:字符串内容相同
    	!=:字符串内容不同,!号表示相反的意思
    	-z:字符串内容为空
    
    [root@server ~]# echo $LANG
    zh_CN.UTF-8
    [root@server ~]# [ $LANG != "en.US" ] && echo "not en.US"
    not en.US
    [root@server ~]# read -p "是否覆盖现有文件(yes/no)?" ACK
    是否覆盖现有文件(yes/no)?yes
    [root@server ~]# [ $ACK = "yes" ] && echo "覆盖"
    覆盖
    

    逻辑测试

    逻辑测试
    	格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...
    	格式2:命令1 操作符 命令2 ...
    常用的测试操作符
    	-a或&&:逻辑与,“而且”的意思
    	-o或||:逻辑或,“或者”的意思
    	!:逻辑否
    [root@server ~]# [ -d /etc ] && [ -r /etc ] && echo "You can"
    You can
    [root@server ~]# [ -d /etc ] || [ -d /home ] && echo "ok"
    ok
    

    2.if语句的结构

    1.单分支结构

    在这里插入图片描述

    语句应用实例

    单分支if语句

    判断挂载点目录,若不存在则自动创建
    [root@server ~]# cat chkmountdir.sh
    #!/bin/bash
    MOUNT_DIR="/media/cdrom"
    if [ ! -d $MOUNT_DIR ]			#当目录不存在时执行
    then mkdir -p $MOUNT_DIR
    fi
    
    
    [root@server ~]# vim weather.sh
    if [ $weather = 'rainning' ]
     then echo "下雨了,记得打伞"
    fi
    [root@server ~]# read -p "今天天气怎么样" weather
    今天天气怎么样rainning
    [root@server ~]# export weather
    [root@server ~]# sh weather.sh
    下雨了,记得打伞
    

    2.双分支语句

    在这里插入图片描述

    语句应用实例

    双分支if语句

    [root@server ~]# cat pinghost.sh
    #!/bin/bash
    ping -c 3 -i 0.2 -W 3 $1 &> /dev/null		
    if [ $? -eq 0 ]
     then echo "host $1 is up"
     else echo "host $1 is down"
    fi
    说明:"-c""-i""-W"选项,分别指定只发送三个测试包、间隔0.2秒、超时3秒
    	判断ping命令的检查结果,分别给出不同的提示
    
    [root@server ~]# sh pinghost.sh 192.168.100.11
    host 192.168.100.11 is up
    [root@server ~]# sh pinghost.sh 192.168.100.12
    host 192.168.100.12 is down
    

    实例2

    [root@server ~]# cat weather.sh
    if [ $weather = 'rainning' ]
     then echo "下雨了,记得打伞"
     else echo "好天气"
    fi
    
    [root@server ~]# read -p "今天天气怎样?" weather
    今天天气怎样?cloud
    [root@server ~]# sh weather.sh
    好天气
    [root@server ~]# read -p "今天天气怎样?" weather
    今天天气怎样?rainning
    [root@server ~]# sh weather.sh
    下雨了,记得打伞
    

    pgrep -x 服务和ps aux | grep 服务的区别:

    pgrep -x 某服务名称,只获取该服务进程号
    [root@server ~]# pgrep -x sshd
    1146
    99426
    
    ps aux | grep 服务是查询该服务所有的相关信息,包含端口
    [root@server ~]# ps aux | grep sshd
    root       1146  0.0  0.0 105996   440 ?        Ss   13:21   0:00 /usr/sbin/sshd -D
    root      99426  0.0  0.1 147784  5360 ?        Ss   18:05   0:00 sshd: root@pts/0
    root     100418  0.0  0.0 112680   984 pts/0    S+   19:12   0:00 grep --color=auto sshd
    

    3.多分支结构

    在这里插入图片描述

    语句应用实例

    [root@server ~]# cat chengji.sh
    #!/bin/bash
    # get student's grade
    read -p "输入考试成绩,范围0-100:" grade
    if [ $grade -ge 90 ] && [ $grade -le 100 ]
        then echo "你得了$grade分,优秀"
    elif [ $grade -ge 80 ] && [ $grade -lt 90 ]
        then echo "你得了$grade分,良好"
    elif [ $grade -ge 60 ] && [ $grade -lt 80 ]
        then echo "你得了$grade分,及格"
    elif [ $grade -ge 0 ] && [ $grade -lt 60 ]
        then echo "你得了$grade分,不及格"
    else
        echo "输入错误,请重新输入"
    fi
    
    [root@server ~]# sh chengji.sh
    输入考试成绩,范围0-100:80
    你得了80分,良好
    

    4.case多分支语句

    在这里插入图片描述

    case多分支语句

    [root@server ~]# cat hitkey.sh
    #!/bin/bash
    read -p "请输入一个字符,并按enter键确认:" key
    case "$key" in
    [a-z]|[A-Z])
            echo "你输入的是字母"
            ;;
    [0-9])
            echo "你输入的是数字"
            ;;
    *)
            echo "你输入的是空格、功能键或其他控制字符"
    esac
    
    [root@server ~]# sh hitkey.sh
    请输入一个字符,并按enter键确认:j
    你输入的是字母
    

    示例2

    编写一个名为myprog的系统服务脚本,通过位置变量$1指定的start、stop、restart、status控制参数,分别用来启动、停止、重启、sleep进程的状态。其中sleep用来暂停指定秒数的时间,这里仅用做测试,在实际中应将sleep改为相应后台服务的控制命令序列
    
    [root@server ~]# cat myprog
    #!/bin/bash
    case "$1" in
    start)
        echo -n "正在启动服务..."
        if sleep 7200 &
        then
        echo "OK"
        fi
        ;;
    stop)
        echo -n "正则停止sleep服务..."
        pkill "sleep" &> /dev/null
        echo "OK"
        ;;
    status)
        if pgrep "sleep" &> /dev/null
        then echo "sleep服务已经启动"
        else echo "sleep服务已经停止"
        fi
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "用法:$0 {start|stop|status|restart}"
    esac
    
    [root@server ~]# sh myprog start
    正在启动服务...OK
    
    展开全文
  • php编程 switch 多分支,选择跳转语句 内有运行截图,和程序源代码。可以调试整合到项目中运行
  • if多分支语句 CONTENTS 问题 多分支选择语句示例 1 2 3 4 目录 流程控制结构概述 多重条件结构 1 顺序流程: 流程控制结构概述 2 流程控制结构概述 条件判断流程: 3 流程控制结构概述 循环流程: 5 if (condition){ ...
  • 运行效果: 程序代码: Private Sub Command1_Click()  If IsNumeric(Text1.Text) Then ...3、Case分支语句后面可以使用的三种形式:“Is”,“To”,“,”。
    运行效果:
    VB编程:SelectCase多分支选择结构判断成绩优良-11

    程序代码:
    Private Sub Command1_Click()
        If IsNumeric(Text1.Text) Then
            Select Case CInt(Text1.Text)
                Case Is >= 85
                    Label2.Caption = "成绩:" & "优秀"
                Case 70 To 84
                    Label2.Caption = "成绩:" & "良好"
                Case 60, 61, 62, 63, 64, 65, 66, 67, 68, 69
                    Label2.Caption = "成绩:" & "及格"
                Case Else
                    Label2.Caption = "成绩:" & "差"
            End Select
         End If
    End Sub

    程序小结:
        1、IsNumeric()函数含义“是数字”,即判断是否为数字;
        2、CInt():强制转换为整型,小数部分四舍五入;
        3、Case分支语句后面可以使用的三种形式:“Is”,“To”,“,”。
    展开全文
  • PASCAL编程练习解析分支结构部分,信息奥赛学习的好帮手。
  • 以流水线的眼光来看,分支并不是高速公路上两个目的地的选择,如果预测失败,将是直接拐向出口处的收费站,还是不带ETC的...有很办法可以帮助我们优化分支,除了套用一个likely()/unlikely()这种熟知的方式之外,还有
  • 编程挑战:一系列不同的编程挑战。 请注意不同的分支
  • 问题及描述: /* * Copyright (c) 2014, 烟台大学计算机... * All rights reserved. * 文件名称:test.cpp * 作 者:李尚泽 * 完成日期:2014年10月21日 * 版 本 号:v1.0 ... * 问题描述:计算函数的值。...=x<...
    问题及描述:
    /*
     * Copyright (c) 2014, 烟台大学计算机学院
     * All rights reserved.
     * 文件名称:test.cpp
     * 作    者:李尚泽
     * 完成日期:2014年10月21日
     * 版 本 号:v1.0
     *
     * 问题描述:计算函数的值。当x<2时,y=x;当2<=x<6时,y=x*x+1;当6<=x<10时,y=sqrt(x+1);当x>=10时,y=1/(x+1).
     * 输入描述:一个整数x
     * 程序输出:对应的y值
     */
    #include <iostream>
    
    #include <cmath>
    
    using namespace std;
    
    int main()
    {
        double x,y;
        int t;
        cout <<"输入x的值为:";
        cin >>x;
        t=(x<2)+(x<6)+(x<10);
        switch (t)
        {
           case 3:y=x;break;
           case 2:y=x*x+1;break;
           case 1:y=sqrt(x+1);break;
           case 0:y=1/(x+1);break;
        }
        cout <<"输出的y值为:"<<y<<endl;
        return 0;
    }

    运行结果:

     

    展开全文
  • Delphi编程语句基础(分支与循环),
  • 注:每一个满足条件之后的语句都可以有条,并且在Python里面是利用缩进来确定语句的关系的 分支结构最大的特征就是进行条件判断处理 Python中针对于分支结构实现提供有三个关键字:if 、elif 、 else if 判断 ...
  • 本微信图文详细介绍了Matlab中if/elseif/…/else/end多分支条件选择语句。
  • if语句嵌套结构; if语句嵌套结构实例演示; if语句嵌套结构基本格式; if语句嵌套结构简单应用;
  • Matlab教学资料:第三章分支语句和编程设计.doc
  • 分支宏定义 分支宏定义成 #define if(condition,t,f) if-body condition为1,if-body宏展开成t condition为0,if-body宏展开成f 定义两个辅助宏 #define if_1(1,t,f) t #define if_0(1,t,f) f 实现分支的思路就是...
  • 来自Visual Studio分支的Citrus编程语言。 我们目前正在为该语言开发Visual Studio Code扩展。 安装 要求 Node.js> = 14.x NPM(特别是uglify-js包) 安装和编译 转到发布标签并下载我们编译器的最新版本 将编译器...
  • VB简单编程练习 分支循环结构的应用 求约数 素数等问题
  • C++编程实例-分支结构

    千次阅读 2009-12-16 17:37:00
    实验1 分支结构【实验目的】通过本实验,了解C语言的分支结构程序设计的方法及语法规则的正确使用。【实验内容】利用随机函数出个位数加/减法算术题#include#include#includeusing namespace std;int main(){ ...
  • cuda编程优化小技巧之分支优化

    千次阅读 2013-05-07 10:33:37
    cuda编程优化原则之一就是要减少分支 分支优化  消除分支结构的小技巧  例如: if( a>b ){ a=c; } else { a=0; }  可以替换为: a=( a>b )*c;
  • Linux Shell编程(19)——测试与分支

    千次阅读 2014-09-30 07:57:14
    但是和循环相似的是,它们也依靠在代码块的顶部或底部的条件判断来决定程序的分支.在代码块中控制程序分支case (in) / esac在shell中的case同C/C++中的switch结构是相同的.它允许通过判断来选择代码块中条路径中的...
  • 虚拟仪器-3 Labview编程的程序结构实验 Case结构和 Sequence结构 7-1Case结构 A B 顺序结构 分支结构 循环结构 7-1Case结构 ase结构是一种控制程序分支的结构,与常规文本编程 语言的语句或Swch语句类似 Case结构有一...
  • 1.4编程基础之逻辑表达式与条件分支_21苹果和虫子2
  • 1.4编程基础之逻辑表达式与条件分支(21题)--题目 有链接.pdf
  • 测试shell脚本编程时,写了如下代码:在对if-elif-else分支进行数值判断时, 发现一个奇怪的现象: 如果使用test conditon(即[ condition ])进行判定,当第一条if条件为假时, 无论代码中的elif语句条件是否为真, 都输出...
  • “Web编程技术”精品课程系列之分支板块
  • 个出度,就是分支结构; 如果有环,就是循环结构, 除此之外,没有别的可能了。并行可以视为把个状态合并起来考虑。 编译语言就是基于上面的工作原理的 ,而高级语言则是基于编译语言,所以看起来程序...
  • 本微信图文详细介绍了Matlab中if/end分支条件选择语句。
  • if条件语句---双分支/多分支

    千次阅读 2017-11-12 18:41:00
    语法: if 条件 then 指令集 else 指令集 fi if双分支中文编程语法: 如果 [你有房] 那么 我就嫁给你 否则 good bye! 果如 多分支结构: if条件 then 指令 elif 条件 then 指令 else ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 162,925
精华内容 65,170
关键字:

多分支编程