首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过写“猜数字”游戏学习 Fortran | Linux 中国

我一直认为 Fortran 与 BASIC 有点相似,所以每当我需要编写一个简短程序,来分析实验室数据或执行其他一些数值分析时,我都会很快想到 Fortran。...“猜数字”程序练习了编程语言中的几个概念:如何为变量赋值、如何编写语句以及如何执行条件判断和循环。这是学习新编程语言时一个很好的的实践案例。...前三行是注释块,表示程序的功能。第四行 PROGRAM GUESSNUM 将其标识为一个 程序(program),并由最后一行的 END 语句关闭。 定义变量后,程序会提示用户输入随机数种子。...Fortran 使用 RAND(0) 函数生成 0 到 0.999…… 之间的随机数。参数 0 告诉 RAND 函数生成一个随机数。...INT 函数将结果截断为整数;因此,变量 NUMBER 就是一个介于 1 到 100 之间的随机数。 程序会给出提示,然后进入一个循环。

1.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C++】命名空间

    到一块去,引发冲突,就很难受了,而命名空间就是解决这样的问题而出现; 命名函数的定义 定义命名空间需要使用关键字namespace,顾名思义,就是命名空间的意思;我们依旧一上面的代码为例,倘若我将rand...默认访问变量的顺序 我们在前面c中学过在main函数中的访问元素时,遵循局部优先,比如我定义了一个全局变量a并初始化为10,但是我在main函数中有进行了重新赋值为20,那么我打印的a的值就是20;局部要优于全局...,但不能将其完全看成全局变量,在不同的域中命名是可以形同的,并不会发生冲突。...当我们定义了多个相同的名字的命名空间的话,那么这些命名空间编译时就会发生合并,合并成一个共同的域,在同一个域中是不能出现命名相同的元素名称的。但命名空间支持嵌套。...,这样两个空间就不冲突啦,然后访问时需要进行二次::访问; 命名空间的展开 命名空间的展开等同与展开头文件(将其内容进行拷贝),而是类似与函数的声明。

    6310

    Python读书笔记18(初识自定义函数)

    本周晚些时候会分享类的使用! 那今日如何区分函数和方法! 很简单,可以单独使用的即为函数,如果需要小数点开头,依托于某个变量才能使用的为方法。 我们知道了形式上的函数和方法的区别!...三、定义多参数函数 当我们定义了多个变量的时候,必须要按照顺序输入实参,如果错误输入将来带来这样的效果! 当我们不确定顺序的时候,如何准确将参数赋值给不同的变量呢?...四、设置函数默认值 我们发现当我们在定义函数的时候做了赋值,调用函数的时候如果不对那个参数赋值,则会有默认值存在。如果重新赋值了,会存储实参中的值。...五、函数参数参数的数据类型 当我们调用函数的时候,输入分数为100,发现会提示我score必须是字符串不能是整型! 但是我们在定义函数的时候并没有说score一定是字符串哇!...我就想要定义为int型怎么啦! 函数中变量的数据类型,要看函数中首次使用这个参数的时候以什么形式! print(name + "您好!

    86790

    使用 Pyqt5 制作猜数游戏 GUI

    初始化 第一行的列表推导式,用于生成随机数的右界,并赋值给类变量 random_choice。 前两行代码用于继承父类的 __init__ 参数,并执行 self.setupUi() 函数。...其次,初始化实例变量。接着调用 self.random_num(),为以上的实例变量赋值。最后,调用 self.initUi() 函数来初始化界面。初始化的界面,会提示猜数范围。...生成随机数 init_range() 函数为提示范围的左右界赋值, _random_range() 函数随机产生随机数的右界,而 random_num() 用来产生最终的随机数以及提示范围。...其他类型字符串会提示错误,标签一提示输入不合法,标签二提示随机数的范围,并清空 lineEdit 的文本框,将 text 赋值为空字符串。 如果字符串不为空,继续执行接下来的程序。...重置游戏 reset() 函数,用来重置游戏。首先将实例变量设为 None,并执行 self.random_num(),产生随机数,并更新提示范围的左右界。接着清空标签一和标签二的文本内容。

    1.6K30

    通过编写扫雷游戏提高你的 Bash 技巧

    我在编程教学方面不是专家,但当我想更好掌握某一样东西时,会试着找出让自己乐在其中的方法。比方说,当我想在 shell 编程方面更进一步时,我决定用 Bash 编写一个扫雷游戏来加以练习。...玩家的任务就是找到那些不含雷的方格,并且在这一过程中,不能点到地雷。这个 Bash 版本的扫雷使用 10x10 的矩阵,实际逻辑则由一个简单的 Bash 数组来完成。 首先,我先生成了一些随机数字。...举个例子,玩家输入了 c3,这时 Bash 将其分成两个字符:c 和 3。为了简单起见,我跳过了如何处理无效输入的部分。...在这段代码中,单元格是否可选,是由数组里对应的值是否为点(.)决定的。如果可选,则重置单元格对应的值,并更新分数。反之,因为其对应值不为点,则设置变量 not_allowed。...= "X" ]]; then g=0 # 为了在参数扩展中使用它 room[$i]=X # 覆盖此位置原有的值,并将其赋值为

    1.2K20

    linux awk 函数定义变量赋值,Linux中的Awk定义、用法详解

    在看我这本书之前,我也是这样认为的,但是实际上有两种形式,它们分别是输入文件(file)和变量赋值()。   ...awk可以同时指定多个输入文件,如果输入文件的文件名为’-‘,表示从标准输入读取内容。   变量赋值类似-v选项,它的形式为name=value。...而当下一个元素的值为”-”时,表明从标准输入读取内容:   删除ARGV元素   删除ARGV元素和将元素的值赋值为空的效果是一样的,它们都会跳转对某个参数的处理:   删除数组元素可以用delete语句...):计算以e 为底的对数值;   sqrt(x):开平方函数;   int(x):将数值转换成整数(绝对值);   rand():返回0到1的一个随机数值,不包含1;   srand([expr]):设置随机种子...,一般与rand函数配合使用,如果参数为空,默认使用当前时间为种子;   例如,我们使用rand()函数生成一个随机数值:   但是你会发现,每次awk执行都会生成同样的随机数,但是在一次执行过程中产生的随机数又是不同的

    9.6K50

    Linux Awk用法总结

    在看我这本书之前,我也是这样认为的,但是实际上arguemnt有两种形式,它们分别是输入文件(file)和变量赋值(assignment)。...awk可以同时指定多个输入文件,如果输入文件的文件名为’-‘,表示从标准输入读取内容。 变量赋值类似-v选项,它的形式为name=value。...而当下一个元素的值为”-”时,表明从标准输入读取内容: 删除ARGV元素 删除ARGV元素和将元素的值赋值为空的效果是一样的,它们都会跳转对某个参数的处理: 删除数组元素可以用delete语句。...; sqrt(x):开平方函数; int(x):将数值转换成整数(绝对值); rand():返回0到1的一个随机数值,不包含1; srand([expr]):设置随机种子,一般与rand函数配合使用,如果参数为空...因为每次awk执行都使用了同样的种子,所以我们可以用srand()函数来设置种子: 这样每次生成的随机数就不一样了。

    6.6K40

    java常量的定义

    一旦一个数组对象被final关键字设置为常量数组之后,它只能够恒定的指向一个数组对象,无法将其改变指向另外一个对象,也无法更改数组中的值。 三是需要注意常量的命名规则。...但是,为了在编写代码时能够一目了然的判断变量与常量,最好还是能够将常量设置为大写字符。另外,在常量中,往往通过下划线来分隔不同的字符。而不想对象名或者类名那样,通过首字符大写的方式来进行分隔。...如果在建立常量时,直接赋一个固定的值,而不是通过其他对象或者函数来赋值,那么这个常量的值就是恒定不变的,即在多个对象中值也使相同的。...但是如果在给常量赋值的时候,采用的是一些函数或者对象,那么每次建立对象时其给常量的初始化值就有可能不同。这往往是人员不原意看到的。有时候人员希望建立再多的对象,其在多个对象中引用常量的值都是相同的。...一是在给常量赋值的时候,直接赋予一个固定的值,如abcd等等。而不是一个会根据环境变化的函数或者对象。像生成随机数的对象,每次运行时其结果都有可能不能。

    90730

    列文伯格算法_最短路径matlab程序

    ,我拿到这个源代码的时候只有寥寥几行英文的注释,我看了几遍后将其添加了一些中文注释,但是感觉还是不够详细,所以前两篇文章就来详细的逐行解释一下这个260行左右的代码。...*rand)用于随机生成一个位于nxn的矩阵内的一个下标,然后通过sub2ind函数,将下标值转换为索引值,以上两行代码就得到了随机生成的起始点的索引值赋给变量startposind ,终止点的索引值赋值给变量...initializeField,该函数的输入量为n和wallpercent,输出量为field, startposind, goalposind, costchart, fieldpoin ters,如下所示...0 n = length(field); %获取矩阵的长度,并赋值给变量n field(field 的随机数(也就是没有障碍物的位置处)设为0      ...、元胞数组或字符向量的详细信息       (5)将本部分内容封装成一个函数createFigure,输入参数为field,costchart, startposind,goalposind,输出参数为

    86610

    计算机初级选手的成长历程——操作符详解(1)

    我们最开始接触取地址操作符时,是在第一次使用scanf函数时。...如果我们在使用scanf函数来将输入的值存放在变量中,这时我们相当于是直接改变了变量,或者说是实参,此时我们不能直接修改实参,而需要从实参的地址中进行修改,所以这就是为什么在使用scanf时需要取地址操作符了...将其转变为真,值为1; 'sizeof'——计算操作对象所占空间大小(以字节为单位) sizeof这个操作符对咱们来说并不陌生了,它的作用是计算变量、数据类型、数组所占内存空间的大小。...这个操作符我们目前见到的还不多,不知道大家对前面的游戏编写还有没有印象,我们在使用srand函数时就使用过这个操作符,因为srand的参数是无符号整型的,我们在设置随机数起点时要先将有符号长整型的time...进行强制类型转换成无符号整型才能正常使用,所以设置随机数起点的代码为srand((unsigned int)time(NULL))。

    23410

    使用 Pyqt5 制作猜数游戏 GUI

    初始化 第一行的列表推导式,用于生成随机数的右界,并赋值给类变量 random_choice。 前两行代码用于继承父类的 __init__ 参数,并执行 self.setupUi() 函数。...其次,初始化实例变量。接着调用 self.random_num(),为以上的实例变量赋值。最后,调用 self.initUi() 函数来初始化界面。初始化的界面,会提示猜数范围。...生成随机数 init_range() 函数为提示范围的左右界赋值, _random_range() 函数随机产生随机数的右界,而 random_num() 用来产生最终的随机数以及提示范围。...其他类型字符串会提示错误,标签一提示输入不合法,标签二提示随机数的范围,并清空 lineEdit 的文本框,将 text 赋值为空字符串。 如果字符串不为空,继续执行接下来的程序。...重置游戏 reset() 函数,用来重置游戏。首先将实例变量设为 None,并执行 self.random_num(),产生随机数,并更新提示范围的左右界。接着清空标签一和标签二的文本内容。

    98830

    JavaScript 手写面试题(一)

    实际场景,有一个搜索查询的需求,用户在输入框中输入关键字去查询某一条数据,但是由于数据众多,总不能全部返回渲染,一般情况下是返回几十条进行渲染,然后用户输入的时候再去请求服务器查询数据。...秒内或当前状态为false时,不管怎么去触发都不会再次执行该事件,只有在n秒后或当前状态为true时才可再次执行。...简单点就是:我叫你去帮我买可乐,然后你一出门我就叫你回来说我要换成雪碧,然后你再出门我再就你回来说我要换成美年达 ,一直这样重复,只有当我最终决定买什么的时候,你才去执行帮我买水这件事 这就是防抖...因为当我们将对象a直接赋值给对象b时,由于对象(数组也是一个对象)是引用数据类型,所以把对象a赋值给对象b时,变量a仅仅是对这个对象的引用,它们指向同一个引用地址,所以在修改a的值时b的值也会发生变化,...,因为字符串是基本数据类型,所以可以直接赋值,然后在使用 JSON.parse 将其转成对象,由基本数据类型转成引用数据类型会在内存开辟新的空间,所以他们的引用地址就不一样了,不一样就不会相互影响了。

    30110

    基于FPGA的多路选择器设计(附代码)

    当和所有的分支都不相同时,执行default后的表达式。 verilog规定,在always语句中被赋值的变量,应该定义为“reg”类型。 ?...故采用随机数来进行测试。 $random是一个系统函数,调用时,可以返回一个随机值。注意:这个系统函数只能出现testbench中,在设计中出现是不可综合的。...“$random函数调用时返回一个32位的随机数,它是一个带符号的整形数...”。...在mux4_1_tb中,我们可以通过延迟赋值,然后再次延迟赋值,来完成赋值。因为赋值时采用随机数,所以每次编写的语句是相同的。verilog中提供了repeat语句,用来减少人工输入。 ?...图13 :两种等效的赋值方式 输入testbench后,进行综合分析。 设置testbench,运行RTL仿真。 ? 图14:RTL仿真图 经过分析,符合四选一多路选择器的设计。 ? - End -

    1.5K20

    FPGA零基础学习:基于FPGA的多路选择器设计(附代码)

    当和所有的分支都不相同时,执行default后的表达式。 verilog规定,在always语句中被赋值的变量,应该定义为“reg”类型。...故采用随机数来进行测试。 $random是一个系统函数,调用时,可以返回一个随机值。注意:这个系统函数只能出现testbench中,在设计中出现是不可综合的。...“$random函数调用时返回一个32位的随机数,它是一个带符号的整形数...”。...在mux4_1_tb中,我们可以通过延迟赋值,然后再次延迟赋值,来完成赋值。因为赋值时采用随机数,所以每次编写的语句是相同的。verilog中提供了repeat语句,用来减少人工输入。...图13 :两种等效的赋值方式 输入testbench后,进行综合分析。 设置testbench,运行RTL仿真。 图14:RTL仿真图 经过分析,符合四选一多路选择器的设计。

    1.1K00

    【笔记】《C++Primer》—— 第17章:标准库特殊设施

    match中都存有n+1个sub_match,其中位置0是整个元素的匹配式,其他的依次是子表达式的匹配结果 当我们需要在序列中替换一个正则表达式时,应该使用regex_replace函数来处理,这个函数接收待处理串...表示前面的组件时可选的 17.4 随机数 C语言中我们往往用rand函数来获取随机数,但这个方法有很多问题和局限性,例如我们通常用rand的返回值除我们想要的随机数上限来得到一个范围内的随机数,...,然后设置为static,尔后我们的随机数都从这个引擎中取数,让引擎保持状态让我们从序列中取的数至少会符合序列设计时的随机性 当我们想要从一个分布和一个范围中生成随机数时,我们应该使用随机数分布器,常用的随机数分布器就是...IO库操作,这里要再介绍一些IO库的控制方法 标准库定义了一组修改流状态的操作符,操作符是函数或者对象,在输入输出的时候将其传入可以改变接下来的格式状态,最常用的是endl操作符用来换行并刷新缓冲区 大多数操作符都是成对的...一个很常见的错误就是将get,peek之类的函数返回值赋值给char而不是int,当读取到EOF时赋值给char得到的值会与int型的EOF不同,这很容易产生一些错误的判断 一些操作可以进行多字节的未格式化

    1.1K20

    【Python】Python中的常量与变量

    在C/C++中我们有学过的赋值操作符——'='就可以将其右操作对象的值赋值给左操作对象,但是如果左操作对象为常量时,此时赋值就不能正常完成,比如我想将2的值赋值给1,于是我写了这句代码: 1 = 2;...当我们尝试着给这个常量进行赋值操作时就会出现上述报错——关键字赋值。...的值就为None,我们可以通过内建函数type()将其类型打印出来 可以看到,在Python中对于这个特殊常量None而言,其值就是None,其类型为NoneType类型; 三、变量 与常量相对应的就是变量...在C/C++中我们学过了很多关键字,这里以我们非常熟悉的if为例,如果此时我想定义一个叫if的变量,那肯定是会失败的,如下所示: 当我们创建一个if变量时,VS所报的错误为语法错误,VS优先执行的是由关键字...当我们在给变量进行命名时,我们还需要了解一下变量命名的软性规则: 给变量命名时,尽量用能够描述变量含义的单词来表示。

    8710

    【笔记】《C++Primer》—— 第四部分:高级主题(完)

    当我们想要从一个分布和一个范围中生成随机数时,我们应该使用随机数分布器,常用的随机数分布器就是uniform_int_distribution均匀整数分布器和uniform_real_distribution...标准库定义了一组修改流状态的操作符,操作符是函数或者对象,在输入输出的时候将其传入可以改变接下来的格式状态,大多数操作符都是成对的,一个设置一个复原,且操作符分为两大类,一类控制输出的数值的格式,一类控制补白等格式...当我们调用new的时候,size_t参数是要分配的对象的字节数,当我们调用new[]时,参数则是数组所有元素的字节和。...自定义new时,void *operator new(size_t, void*);函数不能被重新定义,这是标准库专用的 没有使用定位new时,默认会调用void *operator new(size_t...不可移植的特性是指那些机器相关的特性,当我们把含有这种特性的程序转移到另一台机器上时,一般需要修改程序来适配 类可以将其数据成员定义为位域(bit-field),一个位域中含有一定数量的二进制位数据,

    91310

    随机播放歌曲的算法,原来是这么做的,我一直都搞错了

    本篇文章,我将以数组为基础,探索“在线洗牌”的原理。同时,我会以多种方式编写这个原理的代码。...在这个循环中,我们将遍历数组中的每个元素,将其位置与数组中的另一个元素交换。 接着,创建一个 i 变量,将 array.lenght-1 值赋给它。...数组解构赋值 接着看到这句代码:[array[i], array[j]] = [array[j], [array[i]] 称为数组解构赋值。它允许在两个变量或数组元素之间交换值,而不需要临时变量。...Math.random() 当调用 Math.random() 时,它会生成一个伪随机数。“伪随机” 意味着生成的数字看起来是随机的,但实际上是由确定性算法确定的。...因此,在对大型数组进行洗牌时,这一点值得注意。可能值得考虑其他方法,或者将数组分块并并行运行变换,然后再将其拼凑在一起。

    23320

    Python 密码破解指南:5~9

    函数外的代码创建一个spam变量并将其设置为字符串值,然后在spam上调用该函数并打印出spam。 当你运行这个程序时,最后一行的print()调用将打印'Hello',而不是42。...当我们再次检查列表的内容时,'albert'不再包含在 ➋ 列表中。 重新赋值字符串中的字符 虽然您可以重新赋值列表中的项目,但不能重新赋值字符串值中的字符。...在通过for循环的第一次迭代中,column变量被设置为0;第二次迭代时,设置为1;然后2;诸如此类。...接下来,我们将通过一次一个字符地将加扰后的消息连接在一起来创建密文。 扩展赋值运算符 到目前为止,当我们相互连接或添加值时,我们使用了+操作符将新值添加到变量中。...伪随机数发生器开始使用的初始数字称为种子。如果您知道种子,生成器生成的其余数字是可预测的,因为当您将种子设置为某个特定数字时,相同的数字将以相同的顺序生成。这些看起来随机但可预测的数字被称为伪随机数。

    2.3K50
    领券