当前位置: 首页 > news >正文

C高级——shell(3)

一、shell的选择结构

        1.回顾:C语言的选择结构:if , if else if ,if else,switch (switch的执行速度最快)

        2.shell的选择结构: 单分支if 双分支 if else 多分支if elif case..in

  1.1 shell的选择结构的格式

--------C语言的格式------
单分支if(表达式){C语句    }
双分支if(表达式){C语句1    }else{C语句2    }
多分支if(表达式1){C语句1            }else if(表达式2){C语句2;    }....else{C语句n;    }
-------------------shell的格式------
单分支if 表达式thenSHELL语句fi
执行流程:如果表达式为真,则执行shell语句,否则退出
双分支if 表达式thenshell语句1elseshell语句2fi
执行流程:如果表达式为真,则执行shell语句1,否则执行shell语句2
多分支if 表达式1thenshell语句1elif 表达式2thenshell语句2....elseshell语句nfi
执行流程:如果表达式1为真,则执行shell语句1,结束如果表达式1为假,则继续判断表达式2,如果表达式2为真,则执行shell语句2,结束重复以上过程

  1.2 shell选择结构练习

        1.输入一个数,判断奇数偶数

        2.输入一个数,判断是否是水仙花

        水仙花:各个位数字立方和等于本身,是三位数

        eg: 153==1*1*1+5*5*5+3*3*3

        if ((a%2==0))

        then

        偶数

        else

        奇数

        fi

        if ((a%2==0))

        then

        偶数

        fi

        if ((a%2!=0))

        then

        奇数

        fi

        if ((a%2==0))

        then

        偶数

        elif ((a%2!=0))

        then

        奇数

        fi

#!/bin/bashread -p "please enter a:" a
if ((a%2==0))
thenecho 偶数
elseecho 奇数
firead -p "please enter  num:" numif (($num>100&&num<999))
theng=$((num%10))s=$((num/10%10))b=$((num/100))if ((g**3+s**3+b**3==num))thenecho 是水仙花else                                echo 不是水仙换fi
elseecho 不是三位数
fi

  1.3 test指令和if结合

        1.test是一个指令:必须添加空格,必须写$,必要时写双引号 man test

        2.test实现的操作:逻辑运算,关系运算,字符串,文件

        3.test指令等价于[]

    1.3.1 test和if结合的格式

格式1:if test 表达式thenshell语句fi
格式2:if [ 表达式 ]    注意[]的左右必须添加空格thenshell语句fi

    1.3.2 test的指令

        【1】逻辑运算

                格式1:if [ 表达式1 -a 表达式2 ]

                格式2:if [ 表达式1 ] && [ 表达式2 ]

                格式3:if [ 表达式1 -o 表达式2 ]

                格式4:if [ 表达式1 ] || [ 表达式2 ]

1.判断表达式为真( EXPRESSION )EXPRESSION is true判断a不为0if(a!=0) --->if(a)   --->if [ $a ]2.判断表达式为假! EXPRESSIONEXPRESSION is false判断a等于if(a==0) ---->if(!a) ---->if [ ! $a ]
3.逻辑与运算,遇假则假,全真为真    EXPRESSION1 -a EXPRESSION2both EXPRESSION1 and EXPRESSION2 are true判断a>b>cif(a>b&&b>c) ---->if [ $a -gt $b -a $b -gt $c ]--->if [ $a -gt $b ] && [ $b -gt $c ]4.逻辑或运算,遇真则真,全假为假                                       EXPRESSION1 -o EXPRESSION2either EXPRESSION1 or EXPRESSION2 is true判断成绩不合格<0  >100if(a<0 || a>100)  --->if [ $a -lt 0 -o $a -gt 100 ]--->if [ $a -lt 0 ] || [ $a -gt 100 ]  
练习:输入一个年份,判断润年润年:能被4整除,但不可以被100整除,或者可以被400整除read -p "please enter year:" yearif [ $((year%4)) -eq 0 -a $((year%100)) -ne 0 -o $((year%400)) -eq 0 ]
thenecho 是润年
elseecho 不是润年
fi判断偶数  ---》if [ a%4==0 ]  --->if [ $((a%4)) -eq 0 ]
        【2】关系运算
1.判断两个整数是否相等INTEGER1 -eq INTEGER2INTEGER1 is equal to INTEGER2判断a和b相等if test $a -eq $b   ----> if [ $a -eq $b ]2.判断整数1大于等于整数2       INTEGER1 -ge INTEGER2INTEGER1 is greater than or equal to INTEGER2判断a大于等于bif test $a -ge $b   ----> if [ $a -ge $b ]
3.判断整数1大于整数2    INTEGER1 -gt INTEGER2INTEGER1 is greater than INTEGER2
4.判断整数1小于等于整数2INTEGER1 -le INTEGER2INTEGER1 is less than or equal to INTEGER2
5.判断整数1小于整数2INTEGER1 -lt INTEGER2INTEGER1 is less than INTEGER2
6.判断两个整数不相等INTEGER1 -ne INTEGER2INTEGER1 is not equal to INTEGER2练习:输入三个数,实现升序排序a b c  要求:a存储最小值  b存储中间值   c存储最大值
#!/bin/bashread -p "please enter arr" -a arr#1.判断arr[0]  arr[1]
if [ ${arr[0]} -gt ${arr[1]} ]
thent=${arr[0]}arr[0]=${arr[1]}arr[1]=$t
fi#判断arr[1] arr[2]
if [ ${arr[1]} -gt ${arr[2]} ]
thent=${arr[1]}arr[1]=${arr[2]}arr[2]=$t
fi                                      #判断arr[0] arr[1]
if [ ${arr[0]} -gt ${arr[1]} ]
thent=${arr[0]}arr[0]=${arr[1]}arr[1]=$t
fi
echo ${arr[*]}
        【3】字符串
1.判断字符串长度不为0-n STRINGthe length of STRING is nonzeroSTRING equivalent to -n STRING判断str不为空if [ -n "$str" ]
2.判断字符串长度为0-z STRINGthe length of STRING is zero判断str为空if [ -z "$str" ]      
3.判断两个字符串是否相等STRING1 = STRING2the strings are equal判断字符串ab是否相等if [ $a = $b ]              
4.判断两个字符串不相等STRING1 != STRING2the strings are not equal判断字符串ab不相等if [ $a != $b ]     
5.判断字符串的大小关系if [ $a > $b ]    if [ $a < $b ]   练习:输入两个字符串,如果有一个为空则提示空,否则判断= >  <
read a
read b
if [ -z "$a" -o -z "$b" ]
thenecho NULL
elseif [ $a "=" $b ]thenecho  "="elif [ $a ">" $b ]            thenecho ">"elif [ $a "<" $b ]thenecho "<"fi
fi
        【4】文件

                文件类型:bcd-lsp

                参数: bcdfLSp

1.判断两个文件谁跟新(修改的时间)FILE1 -nt FILE2FILE1 is newer (modification date) than FILE2两个文件file1  file2if [ $file1 -nt $file2 ]     2.判断文件谁跟旧            FILE1 -ot FILE2FILE1 is older than FILE2两个文件file1  file2if [ $file1 -ot $file2 ]  3. 判断是否是块设备文件以及存在        -b FILEFILE exists and is block special文件file是否是块设备文件if [ -b $file ]    
4. 判断文件存在且是一个字符设备文件    -c FILEFILE exists and is character specialif [ -c $file ] 
5.判断文件存在且是一个目录               -d FILEFILE exists and is a directory6.判断文件是否存在-e FILEFILE exists
7.判断文件存在且是一个普通文件-f FILEFILE exists and is a regular file
8.判断文件存在且是一个链接文件         -h FILEFILE exists and is a symbolic link (same as -L)-L FILEFILE exists and is a symbolic link (same as -h)9.判断文件存在且是一个管道文件-p FILEFILE exists and is a named pipe
10.判断文件存在且文件大小大于0,文件不为空         -s FILEFILE exists and has a size greater than zero
11.判断文件存在且是一个套接字文件-S FILEFILE exists and is a socket12.判断文件存在且具备可读权限-r FILEFILE exists and read permission is granted
13.判断文件存在且具备写权限         -w FILEFILE exists and write permission is granted
14.判断文件存在且具备可执行权限         -x FILEFILE exists and execute (or search) permission is granted练习:终端输入文件名,输出文件对应的类型以及对应的权限

  1.4 case ..in

---------------C语言switch----
switch(表达式)
{case 常量表达式1:C语句; break;case 常量表达式2:C语句; break;case 常量表达式3:C语句; break;...default:C语句n;break;
}
----------------case..in--------
格式:
case varName in常量表达式1)shell语句;;        常量表达式2)shell语句;;            ------》不可以省略....*)shell语句;;            ----》可以省略不写                                                     esac    解析:1.varName:只是一个变量  类似switch中的表达式     2.常量表达式:2.1常见格式:hello)'hello')"hello") 2.2可以和按位或链接A|a)    --->A或a则执行Y|y|yes|YES) 2.3可以和通配符结合使用h*)  ?[]   70-89B[7-8][0-9])3.;; --->类似C语言break,退出case..in,  可有可无  4.*) 类似default  执行除上面案例的所有情况 练习:输入一个表达式,输出对应的值  +-*%       1+2       ---》3   a=1b=+c=2switch(b){case '+':printf("%d",a+b);break;case '-':printf("%d",a+b);break; case '*':printf("%d",a+b);break; case '/':printf("%d",a+b);break;case '%':printf("%d",a+b);break;default:error;break;}read a b c
case $b in+)echo $a$b$c=$((a+c));;-)echo $a$b$c=$((a-c));;"*")echo $a$b$c=$((a*c));;/)                       echo $a$b$c=$((a/c));;%)echo $a$b$c=$((a%c));;*)echo input error;;esac

二、shell循环结构

        1.回顾C语言的循环:while\ for\ do..while

        2.shell的循环: while\for\select..in

  2.1 while

------------------C语言----
while(表达式)
{C语句
}
------------------shell循环格式----
格式#while test 表达式while [ 表达式 ]         --->while [ 1 ]  死循环doshell语句done
执行流程:如果表达式为真则进入循环,表达式为假则退出循环练习:循环1--5      i=1while [ $i -le 5 ]doecho i=$i((i++))done练习:输入一个数组,使用while循环输出数组元素,计算数组元素的和
read -p "please enter arr:" -a arr
i=0
while [ $i -lt ${#arr[*]} ] 
doecho arr[$i]=${arr[$i]}  ((sum+=arr[i]))((i++))
done
echo sum=$sum        

  11.2 for

        while:属于当型循环,先判断后执行,最少执行0次,属于有条件控制(不清楚循环次数)

        for: 属于当型循环,先判断后执行,最少执行0次,属于计数控制(循环次数明确)

        do..while:属于直到型循环,先执行后判断,最少执行1次,属于条件控制(循环次数不明确)

---------------------C语言for循环格式----
for(表达式1;表达式2;表达式3)
{C语句
}
表达式1:起始值
表达式2:循环条件
表达式3:步长
-------------------shell的格式--------
格式1:类似于C语言的格式for ((表达式1;表达式2;表达式3))doshell语句done
执行流程:先表达式1,执行表达式2,如果表达式2为真则继续循环,后执行表达式3,如果表达式2为假
则结束循环
格式2:可以实现稀疏数组的循环for varName in 选项列表doshell语句done
格式3:for varName     -----》doshell语句done注意:"in 选项列表"如果不写,则默认varName的结果是终端输入的字符串也就是命令置换$1 $2 $3...
解析:
1.varName: 循环变量,类似i
2.选项列表:每个元素之间使用空格隔开2.1 选项列表为固定的字符换for i in 1 2 3 4doecho $idone2.2 选项列表的值为数组arr=(11 22 33)for i in ${arr[*]}doecho $idone2.3 选项列表可以使用seq指令格式:seq 起始值 间隔 终止值eg: seq 1 2 10   ----->1 3 5 7 9使用: `seq 起始值 间隔 终止值`      $(seq 起始值 间隔 终止值)   for i in `seq 2 2 8`   a=2 b=8for i in `seq $a 2 $b` 2.4 选项列表可以使用{1..3},起始值和终止值必须是常量{1..3} --->1 2 3           
3.执行流程:依次把选项列表的每个元素赋值给变量varName,如果选项列表的元素赋值结束,则结束循环练习:输入一个数组,计算最大值,使用for实现
练习: 打印图片**********for((i=1;i<=4;i++))
dofor((j=1;j<=i;j++))doecho -n "*" #取消换行打印doneecho   #换行
doneread -p "please enter arr:" -a arr
max=${arr[0]}
for var in ${arr[*]}
doif [ $max -lt $var ]thenmax=$varfi
done
echo max=$max

  2.3 select..in

        select..in: 增强和终端页面的交互性

格式:select varName in 选项列表doshell语句done
解析:
1.varName和选项列表:  与for循环一样
2.select..in执行流程:在#?的后面输入指定序列,如果序列号存在,则把指定对应的元素赋值给varName如果#?不输入世界回车,则重新打印页面,如果在#?的后面输入的值不在列表中,则重新输入ctrl c\  ctrl d结束循环
eg:
select var in 11 22 33 44
doecho var=$var
done                      

  2.4 select..in和case..in结合使用

练习:使用select..in和case..in实现计算器1)+2)-3)*4)/5)%#?
read a  c   #1  2
select b in + - "*" / %
docase $b in                       +)echo $a$b$c=$((a+c));;-)echo $a$b$c=$((a-c));;"*")echo $a$b$c=$((a*c));;/)                       echo $a$b$c=$((a/c));;%)echo $a$b$c=$((a%c));;*)echo input error;;esacdone

三、练习:

  3.1 使用case..in实现等级判断,输入一个成绩,判断等级

#!/bin/bashread grade
case $grade in9[0-9]|100)echo A;;8[0-9])echo B;;7[0-9])echo C;;6[0-9])echo D;;[1-5][0-9]|[0-9])echo 不及格;;*)echo error;;
esac

  3.2任意输入一个数,使用while循环计算各个位数字之和

#!/bin/bashread -p "请输入一个数:" num
sum=0
n=$num
while [ $num -gt 0 ]
dosum=$((num%10+$sum))num=$((num/10))
done
echo $n各个位数和为$sum

  3.3 输入一个字符串,使用while循环实现字符串逆置

#!/bin/bashread str
len=${#str}
echo str=$str
for i in `seq 1 1 $len`
doNewStr=$NewStr${str:0-i:1}
done
echo 逆置后:str=$NewStr

  3.4循环家目录下的所有内容,计算家目录下 目录的个数,普通文件的个数,使用for循环

#!/bin/basharr=(`ls ~`)
len=${#arr[*]}
qt=0
for i in `seq 0 1 $(($len-1))`
doif [ -d ~/${arr[$i]} ]then((qt++))fi
done
echo 家目录下目录数量为$qt
qt=0
for i in `seq 0 1 $(($len-1))`
doif [ -f ~/${arr[$i]} ]then((qt++))fi
done
echo 家目录下普通文件数量为$qt

  3.5 打印图形

        *

        ***

        *****

        *******

#!/bin/bashfor i in {1..4}
dofor ((j=4-i;j>0;j--))doecho -n " "donefor ((k=2*i-1;k>0;k--))doecho -n "*"doneecho 
done

  3.6 输入一个数组,请实现冒泡排序

#!/bin/bashread -p "请输入数组元素:" -a arr
len=${#arr[*]}
for i in `seq 1 1 $len`
dofor j in `seq 0 1 $(($len-$i-1))`doif [ ${arr[$j]} -gt ${arr[$((j+1))]} ]thentemp=${arr[$j]}arr[j]=${arr[$((j+1))]}arr[$((j+1))]=$tempfidone
doneecho ${arr[*]}

  3.7 输入一个数组,请实现插入排序

#!/bin/bashread -a arr -p "请输入数组中的元素:"
len=${#arr[*]}
sun=0
for i in `seq 1 1 $(($len-1))`
dotemp=${arr[$i]}for ((j=i-1;j>=0;j--))doif [ $temp -le ${arr[$j]} ]thenarr[$((j+1))]=${arr[$j]}elsearr[$((j+1))]=$tempj=-1fidone
done
echo ${arr[*]}

  3.8 输入用户名和密码(加密输入),实现密码的三次登录 默认用户名admin 密码1234 账户存款10000

如果登录失败,则提示

第1次登录失败,还有2次机会

第2次登录失败,还有1次机会

第3次登录失败,账户被锁定

如果登录成功,则显示银行页面

1.账户余额

2.取款

3.存款

如果选择1,则打印当前的余额

如果选择2,则输入取款金额,如果取款金额大于实际金额,则提示账户余额不足,请重新输入,如果账户余额小于等于实际金额,则提示取款成功,打印剩余金额

如果选择3,则输入存款金额,并提示 存款成功,余额的值

#!/bin/bashcount=1
balance=10000
while [ $count -le 3 ]
doread -p "请输入用户名:" nameread -p "请输入密码:" -s passwdif [ $name=="admin" -a $passwd=="1234" ]thenechoselect choice in 账户余额 取款 存款docase $choice in账户余额)echo 账户余额:$balance;;取款)read -p "请输入取款金额:" mountif [ $mount -gt $balance ]thenecho 余额不足,请重新输入elsebalance=$((balance-mount))echo 取款成功echo 账户余额:$balancefi;;存款)read -p "请输入存款金额:" mountbalance=$((balance+mount))echo 存款成功echo 账户余额:$balance;;*)echo error;;esacdoneelif [ $name!="admin" || $passwd!="1234" ]thenif [ $count -eq 3 ]thenecho 第$count次登录失败,账户被锁定elseecho "第$count次登录失败,还有$((3-$count))次机会"fi((count++))fi
done

相关文章:

C高级——shell(3)

一、shell的选择结构 1.回顾&#xff1a;C语言的选择结构:if , if else if ,if else,switch &#xff08;switch的执行速度最快&#xff09; 2.shell的选择结构&#xff1a; 单分支if 双分支 if else 多分支if elif case..in 1.1 shell的选择结构的格式 --------C语言的格式--…...

Qt 中,**信号与槽(Signals Slots)机制

在 Qt 中&#xff0c;信号与槽&#xff08;Signals & Slots&#xff09;机制 是实现对象间通信的核心模式&#xff0c;通常也被视为一种高效的“通知者模式”。它允许对象在特定事件发生时通知其他对象&#xff0c;且完全解耦。 核心概念 信号&#xff08;Signal&#xff0…...

字符串复制函数strcpy()的使用仿写strcpy()——C语言

strcpy 函数是C语言标准库中的字符串处理函数&#xff0c;用于将一个字符串复制到另一个字符串中。 char *strcpy(char *dest, const char *src); dest 是目标字符串的指针&#xff0c;用于存储复制后的字符串。 src 是源字符串的指针&#xff0c;指向要被复制的字符串。 st…...

想知道两轮差速方形底盘 URDF 咋做,ROS2 配 Rviz 咋显示吗?看这里!

视频讲解 想知道两轮差速方形底盘 URDF 咋做&#xff0c;ROS2 配 Rviz 咋显示吗&#xff1f;看这里&#xff01; 模型概述 一个方形底盘和两个差速驱动轮 URDF 代码 <?xml version"1.0" encoding"utf-8"?> <robot name"diff"> …...

什么是Ollama?什么是GGUF?二者之间有什么关系?

一、Ollama:本地化大模型运行框架 Ollama 是一款开源工具,专注于在本地环境中快速部署和运行大型语言模型(LLM)。它通过极简的命令行操作简化了模型管理流程,支持离线运行、多模型并行、私有化部署等场景。 核心特性 本地化运行:无需依赖云端API,用户可在个人电脑或服务…...

AI触手可及 | 基于函数计算玩转AI大模型

AI触手可及 | 基于函数计算玩转AI大模型 基于函数计算部署AI大模型的优势方案架构图像生成 - Stable Diffusion WebUI部署操作 释放资源部署总结体验反馈 在生成式AI技术加速迭代的浪潮下&#xff0c;百亿级参数的行业大模型正推动产业智能化范式转移。面对数字化转型竞赛&…...

VScode在Windows11中配置MSVC

因为MSVC编译器在vs当中&#xff0c;所以我们首先要安装vs的一部分组件。如果只是需要MSVC的话&#xff0c;工作负荷一个都不需要勾选&#xff0c;在单个组件里面搜索MSVC和windows11 SDK&#xff0c;其中一个是编译器&#xff0c;一个是头文件然后右下角安装即可。搜索Develop…...

基于SSM实现的bbs论坛系统功能实现四

一、前言介绍&#xff1a; 1.1 项目摘要 随着互联网技术的不断进步和普及&#xff0c;网络社区已成为人们获取信息、交流意见、分享经验的重要场所。BBS&#xff08;Bulletin Board System&#xff0c;电子公告板系统&#xff09;论坛系统作为网络社区的一种重要形式&#xf…...

Linux mount命令

Linux mount命令是经常会使用到的命令&#xff0c;它用于挂载Linux系统外的文件。 一、挂载功能介绍 挂载方法&#xff1a;mount DECE MOUNT_POINT 命令使用格式&#xff1a;mount [-fnrsvw] [-t vfstype] [-o options] device dir device&#xff1a;指明要挂载的设备&…...

【RAG生成】生成模块核心技术解密:从理论到实践的全链路优化

RAG知识系列文章 【RAG实践】手把手Python实现搭建本地知识问答系统【RAG进阶】从基础到模块化&#xff1a;深度解析RAG技术演进如何重塑AI知识边界【RAG检索】RAG技术揭秘&#xff1a;检索≠召回&#xff1f;【RAG增强】解密RAG系统排序优化&#xff1a;从基础原理到生产实践…...

JavaWeb-ServletContext应用域接口

文章目录 ServletContext接口简介获取一个ServletContext对象ServletContext接口中的相关方法获取应用域配置参数关于应用域参数的配置要求getContextPath获取项目路径getRealPath获取真实路径log系列方法添加相关日志增删查应用域属性 ServletContext接口简介 ServletContext…...

Vue3状态管理新选择:Pinia使用完全指南

一、为什么需要状态管理&#xff1f; 在Vue应用开发中&#xff0c;当我们的组件树变得复杂时&#xff0c;组件间的数据传递会成为棘手的问题。传统方案&#xff08;如props/$emit&#xff09;在多层嵌套组件中会变得笨拙&#xff0c;这时状态管理工具应运而生。Vue3带来了全新…...

权重生成图像

简介 前面提到的许多生成模型都有保存了生成器的权重,本章主要介绍如何使用训练好的权重文件通过生成器生成图像。 但是如何使用权重生成图像呢? 一、参数配置 ima_size 为图像尺寸,这个需要跟你模型训练的时候resize的时候一样。 latent_dim为噪声维度,一般的设置都是…...

【ESP32S3接入讯飞在线语音识别】

视频地址: 【ESP32S3接入讯飞在线语音识别】 1. 前言 使用Seeed XIAO ESP32S3 Sense开发板接入讯飞实现在线语音识别。自带麦克风模块用做语音输入,通过串口发送字符“1”来控制数据的采集和上传。 语音识别对比 平台api教程评分百度...

RISCV指令集解析

参考视频&#xff1a;《RISC-V入门&进阶教程》1-4-RV32I基本指令集&#xff08;1&#xff09;_哔哩哔哩_bilibili privilege是特权指令集&#xff0c;有点系统调用的感觉&#xff0c;要走内核态。unprivilege指令集有点像普通的函数调用。...

详解 c++ 中的 namespage

C 中的命名空间很特别&#xff0c;其他编程语言基本都没有。命名空间介于函数与类之间&#xff0c;兼顾了二者的一些优点。这篇博客根据 chatgpt 的回答整理。 文章目录 **1. 什么是 namespace&#xff08;命名空间&#xff09;&#xff1f;****2. 语法****3. 使用 namespace 访…...

Qt监控系统远程回放/录像文件远程下载/录像文件打上水印/批量多线程极速下载

一、前言说明 在做这个功能的时候&#xff0c;着实费了点心思&#xff0c;好在之前做ffmpeg加密解密的时候&#xff0c;已经打通了极速加密保存文件&#xff0c;主要就是之前的类中新增了进度提示信号&#xff0c;比如当前已经处理到哪个position位置&#xff0c;发个信号出来…...

Idea 和 Pycharm 快捷键

一、快捷键 二、Pycharm 中怎么切换分支 参考如下 如果在界面右下角 没有看到当前所在的分支&#xff0c;如 “Git:master” 3. 有了 4....

在 Mac mini M2 上本地部署 DeepSeek-R1:14B:使用 Ollama 和 Chatbox 的完整指南

随着人工智能技术的飞速发展&#xff0c;本地部署大型语言模型&#xff08;LLM&#xff09;已成为许多技术爱好者的热门选择。本地部署不仅能够保护隐私&#xff0c;还能提供更灵活的使用体验。本文将详细介绍如何在 Mac mini M2&#xff08;24GB 内存&#xff09;上部署 DeepS…...

2024年国赛高教杯数学建模A题板凳龙闹元宵解题全过程文档及程序

2024年国赛高教杯数学建模 A题 板凳龙闹元宵 原题再现 “板凳龙”&#xff0c;又称“盘龙”&#xff0c;是浙闽地区的传统地方民俗文化活动。人们将少则几十条&#xff0c;多则上百条的板凳首尾相连&#xff0c;形成蜿蜒曲折的板凳龙。盘龙时&#xff0c;龙头在前领头&#x…...

【R包】pathlinkR转录组数据分析和可视化利器

介绍 通常情况下&#xff0c;基因表达研究如微阵列和RNA-Seq会产生数百到数千个差异表达基因&#xff08;deg&#xff09;。理解如此庞大的数据集的生物学意义变得非常困难&#xff0c;尤其是在分析多个条件和比较的情况下。该软件包利用途径富集和蛋白-蛋白相互作用网络&…...

基于大模型的脑出血全周期预测与诊疗方案研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 1.3 研究方法与数据来源 二、大模型预测脑出血的原理与技术基础 2.1 大模型概述 2.2 脑出血相关数据收集与预处理 2.3 机器学习算法在预测模型中的应用 2.4 模型训练与优化 三、术前风险预测与准备 3.1 术前…...

高数1.1 函数

1. 定义 1.1 函数 1.2 反函数 1.2.1 求反函数例题 1.3 基本初等函数和初等函数 1.4 基本函数性质...

Java常见设计模式(中):结构型模式

&#x1f308; 引言&#xff1a;设计模式就像乐高积木 适配器&#xff1a;让不同形状的积木完美拼接装饰器&#xff1a;给积木添加炫酷灯光效果代理&#xff1a;遥控积木完成复杂动作组合&#xff1a;将小积木搭建成宏伟城堡 结构型模式 主要用于描述对象之间的关系&#xff…...

【Python修仙编程】(二) Python3灵源初探(3)

第一部分&#xff1a;乾坤袋的秘密与修炼之路 在修仙界&#xff0c;有一个古老的传承&#xff0c;名为《Python无极心法》&#xff0c;它蕴含着强大的力量&#xff0c;能够助修仙者突破重重境界&#xff0c;领悟宇宙天地的奥秘。而要修炼此心法&#xff0c;必须先从基础的“乾…...

Mac本地部署Deep Seek R1

Mac本地部署Deep Seek R1 1.安装本地部署大型语言模型的工具 ollama 官网&#xff1a;https://ollama.com/ 2.下载Deepseek R1模型 网址&#xff1a;https://ollama.com/library/deepseek-r1 根据电脑配置&#xff0c;选择模型。 我的电脑&#xff1a;Mac M3 24G内存。 这…...

可以免费无限次下载PPT的网站

前言 最近发现了一个超实用的网站&#xff0c;想分享给大家。 在学习和工作的过程中&#xff0c;想必做PPT是一件让大家都很头疼的一件事。 想下载一些PPT模板减少做PPT的工作量&#xff0c;但网上大多精美的PPT都是需要付费才能下载使用。 即使免费也有次数限制&#xff0…...

c++作业

练习题&#xff1a; #include <iostream> #include <cstring> using namespace std;class mystring {char* p;int len; public:mystring();mystring(const char* p);~mystring();void copy(const mystring& str);void append(const mystring& str);void sh…...

补题蓝桥杯14届JavaB组第4题

算法&#xff1a;动态规划 需要两个一维数组来进行dp 一个用来记录到当前位置的最短时间&#xff0c;另一个用来记录到达当前位置传送门的最短时间 到达传送门的时间需要进行判断&#xff0c;如果上一次传送到达传送门&#xff0c;需要判断上一次传送到这的位置在当前传送门…...

DeepSeek 15天指导手册——从入门到精通 PDF(附下载)

DeepSeek使用教程系列--DeepSeek 15天指导手册——从入门到精通pdf下载&#xff1a; https://pan.baidu.com/s/1PrIo0Xo0h5s6Plcc_smS8w?pwd1234 提取码: 1234 或 https://pan.quark.cn/s/2e8de75027d3 《DeepSeek 15天指导手册——从入门到精通》以系统化学习路径为核心&…...

【北京迅为】itop-3568 开发板openharmony鸿蒙烧写及测试-第1章 体验OpenHarmony—烧写镜像

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…...

C#开发——时间间隔类TimSpan

TimeSpan 是 C# 中的一个结构&#xff08; struct &#xff09;&#xff0c;用于表示时间间隔或持续时间。它位于 System 命名空间中&#xff0c;是处理时间相关操作时非常重要的工具&#xff0c;尤其是在计算两个日期或时间之间的差值、表示时间段或执行时间相关的运算…...

第002文-kali虚拟机安全与网络配置

1、kali系统介绍 kali是一个基于Linux kernel的操作系统&#xff0c;由BackTrack(简称BT)发展而来。BackTrack是2006年推出的一个用于渗透测试及黑客攻防的专用平台&#xff0c;基于Knoppix(linux的一个发行版)开发。BackTrack版本周期&#xff1a;2006年的起始版本BackTrack …...

【HarmonyOS Next】鸿蒙应用折叠屏设备适配方案

【HarmonyOS Next】鸿蒙应用折叠屏设备适配方案 一、前言 目前应用上架华为AGC平台&#xff0c;都会被要求适配折叠屏设备。目前华为系列的折叠屏手机&#xff0c;有华为 Mate系列&#xff08;左右折叠&#xff0c;华为 Mate XT三折叠&#xff09;&#xff0c;华为Pocket 系列…...

关于“你对 Spring Cloud 的理解”

Spring Cloud 是一个基于 Spring Boot 的微服务框架&#xff0c;旨在简化分布式系统的开发、部署和管理。它提供了一系列工具和组件&#xff0c;帮助开发者构建和管理微服务架构。以下是对 Spring Cloud 的核心理解&#xff1a; 1. 微服务架构的支持 Spring Cloud 提供了对微…...

微信小程序-二维码绘制

wxml <view bindlongtap"saveQrcode"><!-- 二维码 --><view style"position: absolute;background-color: #FFFAEC;width: 100%;height: 100vh;"><canvas canvas-id"myQrcode" style"width: 200px; height: 200px;ba…...

c++中如何打印未知类型对象的类型

在 C 中要打印未知类型对象的类型名称&#xff0c;可以通过以下方法实现&#xff1a; 目录 方法一&#xff1a;使用 typeid 和 name()&#xff08;需包含 &#xff09; 使用示例&#xff1a; 问题与改进&#xff1a; 方法二&#xff1a;编译时类型名称&#xff08;C17 起&…...

SpringBoot集成easy-captcha图片验证码框架

SpringBoot集成easy-captcha图片验证码框架 此项目已经很久未维护&#xff0c;如有更好的选择&#xff0c;建议使用更好的选择!!! 一、引言 验证码&#xff08;CAPTCHA&#xff09;是现代应用中防止机器人攻击、保护接口安全的核心手段之一。然而&#xff0c;从零开发验证码…...

Materials Studio MS2020在linux系统上的安装包下载地址 支持centos Ubuntu rocky等系统

下载地址&#xff1a;MS2020-linux官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘 Materials Studio 2020是一款功能强大的材料科学计算模拟软件&#xff0c;以下是其详细介绍&#xff1a; 核心模块功能 CASTEP模块&#xff1a;采用平面波赝势方法&#xff0c;适用于周…...

DeepSeek 开源狂欢周(二)DeepEP深度技术解析 | 解锁 MoE 模型并行加速

在大模型时代&#xff0c;Mixture-of-Experts (MoE) 模型凭借其强大的容量和高效的计算能力&#xff0c;成为研究和应用的热点。然而&#xff0c;MoE 模型的训练和推理面临着巨大的专家并行通信挑战。近日&#xff0c;DeepSeek 开源了 DeepEP 项目&#xff0c;为解决这一难题提…...

Kylin麒麟操作系统 | 系统监控

以下所使用的环境为&#xff1a; 虚拟化软件&#xff1a;VMware Workstation 17 Pro 麒麟系统版本&#xff1a;Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 一、系统状态查询工具 1. 静态显示系统进程信息ps ps命令会生成一个静态列表&#xff0c;列表中显示的进程其…...

mysql怎样优化where like ‘%字符串%‘这种模糊匹配的慢sql

一 问题描述 工作中经常遇到这种模糊匹配的慢sql&#xff1a; select * from 表名 where 字段 like %字符串%; 由于前面有%&#xff0c;导致无法走该字段上的索引。 二 解决办法 ① 给该字段创建一个全文索引 CREATE FULLTEXT INDEX 索引名 ON 表名 (字段名); ② 改写sq…...

基于 C++ Qt 的 Fluent Design 组件库 QFluentWidgets

简介 QFluentWidgets 是一个基于 Qt 的 Fluent Designer 组件库&#xff0c;内置超过 150 个开箱即用的 Fluent Designer 组件&#xff0c;支持亮暗主题无缝切换和自定义主题色。 编译示例 以 Qt5 为例&#xff08;Qt6 也支持&#xff09;&#xff0c;将 libQFluentWidgets.d…...

事件【Qt】

文章目录 事件 事件 event label.cpp #include "label.h" #include<QDebug> Label::Label( QWidget * parent):QLabel(parent) {}void Label::enterEvent(QEvent *event) {//显式地忽略 event 参数,表示函数内部不会使用 event 参数&#xff0c;也不会对其进…...

若依vue plus环境搭建

继前面文章若依系统环境搭建记录-CSDN博客 把ruoyi vue plus也摸索了下。 作者是疯狂的狮子&#xff0c;dromara/RuoYi-Vue-Plus 初始化文档&#xff1a;项目初始化&#xff0c;环境搭建的视频&#xff1a;RuoYi-Vue-Plus 5.0 搭建与运行_哔哩哔哩_bilibili 上来就列出了一…...

算法题(80):环形链表II

审题&#xff1a; 需要我们判断链表是否带环&#xff0c;若带环&#xff0c;需要我们返回进入环的第一个节点地址 思路&#xff1a; 方法一&#xff1a;set 每个节点的地址都是唯一的&#xff0c;所以我们的set存的是节点地址。 当我们遍历链表时&#xff0c; 若节点地址没有存…...

Spring Boot集成Jetty、Tomcat或Undertow及支持HTTP/2协议

目录 一、常用Web服务器 1、Tomcat 2、Jetty 3、Undertow 二、什么是HTTP/2协议 1、定义 2、特性 3、优点 4、与HTTP/1.1的区别 三、集成Web服务器并开启HTTP/2协议 1、生成证书 2、新建springboot项目 3、集成Web服务器 3.1 集成Tomcat 3.2 集成Jetty 3.3 集成…...

ISO 15118,最新版,汽车充电桩相关标准,1~22子标准

ISO 15118 是一项国际标准&#xff0c;主要规定了电动汽车&#xff08;EV&#xff09;与充电桩&#xff08;EVSE&#xff09;之间的通信协议&#xff0c;涵盖了充电过程中的信息交换、安全认证、充电控制等内容。以下是其主要内容&#xff1a; 1. 通信协议 V2G通信&#xff1a…...

信息系统项目管理师考试介绍和学习资料分享

信息系统项目管理师考试是评估考生在信息系统项目管理领域的专业知识和技能的重要考试。以下是对信息系统项目管理师考试的详细介绍&#xff1a; 拥有软考信息系统项目管理师高级证的作用&#xff1a; 提高求职竞争力‌&#xff1a; 信息系统项目管理师证书是国家级证书&#…...

基于 Spring AI 的 HIS 系统智能化改造

【Spring AI 的背景与现状】 Spring AI 是 Spring 生态里整的一个新活儿&#xff0c;专门给开发者提供搞 AI 驱动的应用的工具和框架。虽然 Spring AI 已经鼓捣了挺长时间&#xff0c;但截至现在&#xff08;2025年2月&#xff09;&#xff0c;它还没正式发布。不过&#xff0…...