JavaScript 动态网页实例 —— 数值处理对象

前言

Math对象用于进行数学运算。其属性是数学中一些常见的常数值,在程序中可以直接使用。Math对象的方法很多,主要完成一些常见的数学运算,如三角函数计算、乘方、开方、求对数等。在 Math 对象的方法中,除了random()之外的所有方法都需要一个或几个参数,并且其用法基本相同。本章通过两个示例介绍这些方法的使用。由于random()方法用于产生随机数,可以用在很多地方,将在其他章节举例。

4.1 求平方根

本节给出一段求平方根的示例代码,可以实现对整数、负数进行求平方根。并且,当用户输入的内容不是数值时,还可以进行验证。

要点

本节代码主要使用了Math对象的sqrt(n)和abs(n)方法,主要功能和用法如下。

  • sqrt(n)方法用于求一个非负数的平方根,参数n用于指定要进行运算的数值。
  • abs(n)方法用于求一个数值的绝对值,参数n指定要进行运算的数值。
  • 两个方法分别使用 Math.sqrt(n)和 Math.abs(n)调用。
<html>
<head>
<title>求平方根</title>
</head>
<body>
<h1>求平方根示例</h1>
<p>本程序要求用户输入一个数值,单击“确定”后求出该数的平方根。</p>
<form id="form1">
<input type="text" id="Num" name="Num" size="20" value="请在这里输入一个数!">
<input type="button" value="算一下" onclick="NumSubmit();">
</form>
<script language="JavaScript">
<!--
function NumSubmit()                 //函数,用来求出平方根
{
InputNum=form1.Num.value;            //将输入的内容存储在变量InputNum中
if(isNaN(InputNum))                  //如果输入的内容不是数值
{
alert("没有输入数值!")
}
else                                 //如果输入了数值
{
var str1="的平方根是:\n\n";         //定义一个字符串变量
var Num1,Num2;                       //定义两个变量,备用
if(InputNum>=0)                      //如果输入的是一个正数
{
Num1="+"+Math.sqrt(InputNum)+"\n\n"  //Num1存储正根
Num2="-"+Math.sqrt(InputNum)         //Num2存储负根
alert(InputNum+str1+Num1+Num2);
}
else                                 //如果输入了一个负值
{
if(InputNum==-1)                      //如果输入了-1
{
Num1="+i\n\n";                       //Num1存储正根
Num2="-i";                           //Num1存储正根
alert(InputNum+str1+Num1+Num2);
}
else                                 //如果输入了其他负值
{
var k=Math.abs(InputNum);            //使用变量k存储该输入值的绝对值
Num1="+"+Math.sqrt(k)+"i\n\n";       //Num1存储正根
Num2="-"+Math.sqrt(k)+"i";           //Num1存储正根
alert(InputNum+str1+Num1+Num2);
}
}
}
}
//-->
</script>
</body>
</html>

分析

  • (1)程序使用一个文本框输入数值,并通过一个提交按钮的onclick方法调用函数NumSubmit(),用以求出输入数值的平方根。
  • (2)在NumSubmit()函数中,首先通过文本框的value 属性调用用户的输入内容,并将其存入 InputNum 变量中;随后,对用户输入内容分多种情况进行处理:非数值、非负数、-1或其他负值。
  • (3)在分情况处理数据时,使用了if...else语句的嵌套形式,也可以使用switch 语句直接对不同情况进行处理。

4.2 求质数

本节给出一个求质数的方法,可以求出用户输入数值以内的所有质数。当用户输入的值较小或输入非数值时,可以进行验证。

要点

代码使用筛选法求质数,主要使用了NaN这一特殊的数值、isNaN()方法和Math对象的sqrt(n)方法。

  • NaN 是一个特殊值,含义是“notanumber”。NaN是惟一一个不可以和自身进行比较的值。使用 isNaN()方法或让某个值与其自身相比较,可以确定一个值是否是NaN。isNaN()方法的结果是一个逻辑值,因此,可以直接在条件语句中使用,在本例中,使用该方法判断数组的元素是否是数值。使用数组 Num[]存储0到指定数值的整数,这一过程通过遍历数组元素,并为其赋与下标相同的整数值来实现。
  • 在JavaScript中,数组下标从0开始。由于0和1不是质数,首先将数组的前两个元素重新赋值为 NaN。
  • 应用筛选法求质数。从2开始,由于“任何数的倍数都不是质数”,因此,从2开始到指定数的开方为止,每个数与其后所有数的乘积都不是质数&#x

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/587665.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】为了节省空间,对于特殊矩阵我们可以这样做……

特殊矩阵的压缩存储 导读一、数组与矩阵1.1 数组1.2 数组与线性表1.3 数组的存储结构1.4 矩阵在数组中的存储1.4.1 行优先存储1.4.2 列优先存储 二、特殊矩阵及其压缩存储三、对称矩阵及其存储3.1 方阵与对称矩阵3.2 对称矩阵的存储3.3 压缩存储的手动实现3.3.1 行优先存储3.3.…

修改Ubuntu远程登录欢迎提示信息

无论何时登录公司的某些生产系统&#xff0c;你都会看到一些登录消息、警告或关于你已登录服务器的信息&#xff0c;如下所示。 修改方式 1.打开ubuntu终端,进入到/etc/update-motd.d目录下面 可以发现目录中的文件都是shell脚本, 用户登录时服务器会自动加载这个目录中的文件…

大白话理解IoC和DI

引言 Spring是Java领域最受欢迎的开发框架之一&#xff0c;其核心功能之一就是Spring容器&#xff0c;也就是IoC容器。这篇文章&#xff0c;我们就来聊聊Spring的两大核心功能&#xff0c;控制反转&#xff08;IOC&#xff09;和依赖注入&#xff08;DI&#xff09;。 文章思…

Go 语言基础(二)【数组、切片、指针、map、struct】

1、数组 特别需要注意的是&#xff1a;在 Go 语言中&#xff0c;数组长度也是数组类型的一部分&#xff01;所以尽管元素类型相同但是长度不同的两个数组&#xff0c;它们的类型并不相同。 1.1、数组的初始化 1.1.1、通过初始化列表{}来设置值 var arr [3]int // int类型的数…

09_Scala函数和对象

文章目录 函数和对象1.函数也是对象 scala中声明了一个函数 等价于声明一个函数对象2.将函数当作对象来用&#xff0c;也就是访问函数&#xff0c;但是不执行函数结果3.对象拥有数据类型(函数类型)&#xff0c;对象可以进行赋值操作4.函数对象类型的省略写法&#xff0c;也就是…

SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测(Matlab)

SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测&#xff08;Matlab&#xff09; 目录 SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测&#xff08;Matlab&#xff09;预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现MFO-CNN…

常见公式的几何解释

本文旨在深入探讨常见数学公式的几何意义&#xff0c;通过直观的图形和解释&#xff0c;帮助读者更好地理解并掌握这些公式的本质。文章首先概述了公式与几何图形之间的紧密联系&#xff0c;然后选取了几个典型的数学公式&#xff0c;进行详细解析。每个公式都将配以相应的几何…

vuex的学习

首先下载vuex&#xff0c;然后建立一个目录在vueX中 接着在index。js文件夹中引入 引入后导出这个文件 在main.js文件中导入&#xff0c;这样vue就有了状态管理 接着我创建了2个组件&#xff0c;在 里边规定了一个num:0 在 打印出来就可以看见 映射函数mapState&#xff0c;必…

数据结构算法——链表带环问题——数学深度解析

前言:本节内容主要是讲解链表的两个问题 &#xff1a;1、判断链表是否带环&#xff1b; 2、一个链表有环&#xff0c; 找到环的入口点。 本节内容适合正在学习链表或者链表基础薄弱的友友们哦。 我们先将问题抛出来&#xff0c;友友们可以自己去力扣或者牛客网去找相应题目&…

基于SSM的个人博客系统(四)

目录 5.3 博客类别管理模块 5.3.1 添加博客类别 5.3.2 修改博客类别 5.3.3 删除博客类别 5.3.4 显示博客类别 5.4 评论管理模块 5.4.1 审核评论 5.4.2 删除评论 前面内容请移步 基于SSM的个人博客系统&#xff08;三&#xff09; 个人博客系统的设计与实现免费源码…

头歌:Spark GraphX—寻找社交媒体中的“影响力用户”

第1关:认识Pregel API 简介 Spark GraphX中提供了方便开发者的基于谷歌Pregel API的迭代算法,因此可以用Pregel的计算框架来处理Spark上的图数据。GraphX的Pregel API提供了一个简明的函数式算法设计,用它可以在图中方便的迭代计算,如最短路径、关键路径、n度关系等,也可以…

【C++】STL学习之优先级队列

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《C》 《Linux》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 前言一、优先级队列的使用1.1 基本功能1.2 优先级模式切换1.3 相关题目 二、模拟实现优先级…

AI赋能不应贵气:深度解读AI助力企业渡过经济寒冬以及如何落地AI的路径

AI很棒可是给人感觉“很贵”因此我不敢用 继GPT4后Dalle3、Sora、GPT4.5、GPT5的消息以及前天突然出现的GPT 2.0&#xff08;GPT二代&#xff0c;有人说这就是OPEN AI的新产品&#xff1a;Q*&#xff09;但凡涉及到AI的一系列新闻给人予很震撼的感觉。放眼望去AI正在欣欣向荣。…

洛谷 P5854:【模板】笛卡尔树

【题目来源】https://www.luogu.com.cn/problem/P5854【题目描述】 给定一个 1∼n 的排列 p&#xff0c;构建其笛卡尔树。 即构建一棵二叉树&#xff0c;满足&#xff1a; 1.每个节点的编号满足二叉搜索树的性质。← 优先级 pri 满足二叉搜索树&#xff08;BST&#xff09;的性…

强化学习(Reinforcement learning)基本概念

概念&#xff1a; 强化学习是在与环境互动中为达到一个目标而进行的学习过程 三层结构&#xff1a; 基本元素&#xff1a;agent、environment、goal agent&#xff1a;可以理解为玩家&#xff0c;即某个游戏的参与方 environment&#xff1a;环境本身&#xff0c;可以理…

Web后端开发中对三层架构解耦之控制反转与依赖注入

内聚与耦合 内聚 比如说我们刚刚书写的员工的实现类 在这里我们仅仅书写的是和员工相关的代码 而与员工无关的代码都没有放到这里 说明内聚程度较高 耦合 以后软件开发要高内聚 低耦合 提高程序灵活性 扩拓展性 分析代码 如何解耦 创建容器 提供一个容器 存储东西 存储E…

基于FPGA的数字信号处理(5)--Signed的本质和作用

前言 Verilog中的signed是一个很多人用不好&#xff0c;或者说不太愿意用的一个语法。因为不熟悉它的机制&#xff0c;所以经常会导致运算结果莫名奇妙地出错。其实了解了signed以后&#xff0c;很多时候用起来还是挺方便的。 signed的使用方法主要有两种&#xff0c;其中一种…

Android View事件分发面试问题及回答

问题 1: 请简述Android中View的事件分发机制是如何工作的&#xff1f; 答案: 在Android中&#xff0c;事件分发机制主要涉及到三个主要方法&#xff1a;dispatchTouchEvent(), onInterceptTouchEvent(), 和 onTouchEvent(). 当一个触摸事件发生时&#xff0c;首先被Activity的…

配置 Trunk,实现相同VLAN的跨交换机通信

1.实验环境 公司的员工人数已达到 100 人&#xff0c;其网络设备如图所示。现在的网络环境导致广播较多网速慢&#xff0c;并且也不安全。公司希望按照部门划分网络&#xff0c;并且能够保证一定的网络安全性。 其网络规划如下。 PC1和 PC3为财务部&#xff0c;属于VLAN 2&…

邦注科技 温控箱对企业的重要性

注塑加工是将加热的熔融塑料注入模具中形成所需产品的工艺过程。良好的注塑加工工艺需要控制好许多参数&#xff0c;其中最重要的因素之一就是模具的温度。模具温度的不稳定会导致产品尺寸大小、表面缺陷等方面的问题&#xff0c;甚至会导致生产不良品&#xff0c;加大生产成本…