TCL语言笔记:TCL练习

一、关于随机数的练习

1.随机生成一个最大值到最小值之间的整数

 proc random {min max} {
      return [expr round(($max-$min)*rand()+$min)]
  }

2.生成num个min到max之间的不重复的随机整数

proc randomUnique {min max num} {
array set arr {}

#如果要求生成的数量超过max和min相减的个数+1
if {$num>[expr $max-$min+1]} {
return ""
}

#当生成的随机数量没有达到要求的数量,调用生成随机整数的函数
while {[array size arr]<$num} {
set x [random $min $max]
set arr($x) ""
}
return [array names arr]
}

3.随机的小写字母

proc randLow {} {
    return [format %c [random 97 122]]
}

4.随机的大写字母

proc randHigh {} {
    return [format %c [random 65 90]]
}

5.随机生成一个列表中的内容

proc randList {lst} {
    set id [random 0 [expr [llength $lst]-1]]
    return [lindex $lst $id]
}

6.生成一个随机的小写或者大写字母

proc randLH {} {
    return [rand[randList {Low High}]]
}

7.生成一个随机的大写、小写字母或数字

proc randLHN {} {
    return [rand[randList {Low High Num}]]
}

8.生成一个由小写、大写、数字构成的字符串,长度为在minLen和maxLen之间的随机值

proc randStrLHN {minLen maxLen} {
    set len [random $minLen $maxLen]
    set str ""
    for {set i 0} {$i<$len} {incr i} {
        append str [randLHN]
    }
    return $str
}
时间: 2024-10-07 16:26:58

TCL语言笔记:TCL练习的相关文章

Tcl语言笔记之二

1,表达式 1.1 操作数 TCL表达式的操作数通常是整数或实数.整数一般是十进制的, 但如果整数的第一个字符是0(zero),那么TCL将把这个整数看作八进制的,如果前两个字符是0x则这个整数被看作是十六进制的. 1.2运算符  TCL语法形式和用法跟ANSI C中很相似 1.3 函数 TCL中支持的数学函数如下 abs( x) Absolute value of x. acos( x) Arc cosine of x, in the range 0 to p. asin( x) Arc si

TCL语言笔记:TCL中的列表操作

一.介绍 列表则是具有特殊解释的字符串.Tcl 中的列表操作和其它 Tcl 命令一样具有相同的结构.列表可应用在诸如 foreach 这样的以列表为变元的循环命令中,也应于构建 eval 命令的延迟命令字符串. 二.TCL列表相关命令 命令 说明 list arg1 arg2 ... 创建一个列表 lindex list  index 返回列表 list 中的第 index 个元素(element)值 llength list 计算列表 list 元素个数 lrange list index1

TCL语言笔记:TCL中的String命令

一.介绍 字符串是 Tcl 中的基本数据类型,所以有大量的字符串操作命令.一个比较重要的问题就是模式匹配,通过模式匹配将字符串与指定的模式(格式)相匹配来进行字符串的比较.搜索等操作. 二.string命令列表 命     令 说      明 string bytelength str 返回用于存储字符串的字节数. string compare ?-nocase? ?- length len? str1 str2 根据词典顺序比较字符串.-nocase 选项表示大小写无关.-length 选项

TCL语言笔记:TCL过程控制练习

1.青蛙爬井 for {set day 1;set cur 7} {$cur<77} {incr cur 2 ;incr day } { } puts $day 2.求1加到100 proc getsum {min {max 100}} { set sum 0 for {set i $min} {$i<=$max} {incr i} { incr sum $i } return $sum } puts [getsum 1 ] 3.返回任意多个整数的平均值 proc getavg {args}

TCL语言笔记:TCL练习二

一.练习 1.二进制转十进制 proc b2d {b} { set sum 0;set len [string length $b] for {set i 0} {$i<$len} {incr i} { incr sum [expr int([string index $b $i]*pow(2,$len-$i-1))] } return $sum } 2.十进制转二进制 proc d2b {d} { set b "" while {$d!=0} { set b "[ex

C语言笔记1--类型、运算符与表达式

 C语言笔记1--类型.运算符与表达式 总论: 变量和常量是程序处理的两种基本的数据对象.声明语句说明变量的名字和类型,也可以指定变量的初值.运算符指定将要进行的操作.表达式则把变量与常量组合起来生成新的值.对象的类型决定该对象可取值的集合以及可以对该对象执行的操作. 一.变量与常量的名字 1.名字是由字母.下划线和数字组成的序列,其第一个字符必须为字母:下划线"_"被看做是字母,但一般不要以下划线"_"开头. 2.名字区分字母大小写,变量名使用小写字母.符号常量

C++语言笔记系列之十二——C++的继承

C++的继承 1.继承方式 public(公有继承) 派生类中的成员可以访问基类的public成员和protected成员,但不能访问基类的private成员. 派生类的对象只能访问基类的public成员. protected(保护继承),private(私有继承) 派生类中的成员可以访问基类的public成员和protected成员,但不能访问基类的private成员. 派生类的对象不能访问基类的任何成员. 2.例子 example 1: #include <iostream.h> clas

C语言笔记

C语言笔记 基础知识 数据类型 序号 类型与描述 1 基本类型: 它们是算术类型,包括:整数类型.浮点类型 2 枚举类型: 也是算术类型,被用来定义只能使用某些整型值的变量,使用时需要程序员先使用eumn关键字来声明定义 3 Void类型: 用于函数,指明函数的返回值或参数.作用于变量会发生编译错误 4 派生类型: 包括:指针类型.数组类型.结构类型.联合体类型.函数类型 补充:1.函数类型是指函数返回值的类型,数组类型与结构类型统称为聚会类型. 2.除了基本类型,其他的类型都是程序员使用相关关

C++语言笔记系列之十六——赋值兼容规则&amp;多继承的二义性

1.赋值兼容规则 (1)派生类对象可以给基类对象赋值,这种情况下派生类对象将从基类继承的成员的值赋值给一个基类对象:但是不允许将一个基类的对象赋值给一个派生类. (2)可以将派生类对象的地址赋给基类指针,使基类指针指向派生类对象,通过基类指针引用成员时只可以引用派生类从基类继承而来的成员,而不允许引用派生类的新成员. (3)引用与指针相同. 2.多继承 (1)一个派生类从两个以上的基类中去继承. (2)说明: class 派生类名:继承方式 基类1, 继承方式 基类2,...... {派生类成员