C语言进行实验:通过程序实现线算图取值【支持VC++ 6.0编辑器环境运行】

背景:

一、实验目的和要求

1、能描述数据基本类型及其常量的表示方法;

2、会对变量进行定义及初始化;

3、能使用运算符与表达式对变量赋值;

4、会描述C语句的概念及种类、C语言常用的输入/出方式;

5、会设计顺序结构程序;

6、能分析if … else …的三种语法的区别,会描述switch与break语句的作用;

7、能使用while循环、do-while循环和for循环的结构设计程序,能使用常见的循环嵌套,会描述break语句和continue语句的作用;

8、会定义、使用数组。

二、实验内容

1将工程中线算图人工查图方式改为程序取值。

对下图所示线算图设计算法,编写代码,实现通过输入横坐标参数获取纵坐标参数功能。

三、实验仪器、设备

计算机(装有VC++ 6.0或visual studio 2010);

四、实验原理

1、在工程中,线算图中的曲线,可近似为由n段线段构成,n的取值取决于曲线斜率变化的剧烈程度;

2、用数组存储线段的特征参数;

3、用选择语句判断输入参数是否越界;

4、用循环语句判断输入参数所处区间,选择合适的线段;

5、用表达式,根据输入参数,在选中的线段上取值,获得输出参数。 

五、实验步骤

1、已知线段起点坐标(x0,y0)和终点坐标(x1,y1),要求根据横坐标参数x求其对应线段上的纵坐标参数y。x∈(x0,x1)。

2、已知线段起点坐标(x0,y0)和终点坐标(x1,y1),要求根据横坐标参数x求其对应线段上的纵坐标参数y。(要求使用条件语句判断是否越界)

3、已知两个线段坐标。其中一个线段起点坐标为(x0,y0),终点坐标为(x1,y1);另一个线段起点坐标为(x1,y1),终点坐标为(x2,y2)。要求根据横坐标参数x求其对应线段上的纵坐标参数y。(要求综合利用数组、循环和条件知识)

4、对图1所示曲线,绘制程序流程图,编写代码,撰写实验报告。

、实验注意事项

1、当需要用比较复杂的逻辑表达式时,要避免发生优先级上的错误,可以使用最高优先级的运算符()将其括起来,这样既增加可读性,又不会出现不必要的错误。

2、输入和输出函数的使用过程中在格式控制的地方可能会出现错误。要严格按照格式控制的形式输入和输出数据。

3、if-else语句书写时应采用分层缩进的格式。

4、while语句的句法格式及用法。

5、for语句的正确使用方法。注意它的初始值、终止条件及步长的确定。

6、当循环不能停止(出现死循环),应该用Ctrl+break中断程序的运行。

7、在C语言中,定义数组时,其长度必须指定且必须用常量表示。

程序效果展示:

要求一(英文版,中文版此处不演示):

用户输入两个坐标,函数关系为y=nx,计算,这里不校验x取值范围

要求二(中文版加英文版演示)

用户输入两个坐标,函数关系为y=nx,计算,这里校验x取值范围

要求三(中文版加英文版演示)

用户输入三个坐标,函数关系为y=n1x,y=n2x,输入x,判断y处于哪个线段!!

VC++6.0编辑器运行效果:

主要代码:

这里一共写了三个程序,来完成对应的需求

//联系请加V:zew1040994588    //要求一代码
// 输入起点和终点的坐标printf("Please enter the horizontal coordinate of the starting point:");scanf("%f", &x0);printf("Please enter the ordinate of the starting point:");scanf("%f", &y0);printf("Please enter the horizontal coordinate of the end point:");scanf("%f", &x1);printf("Please enter the ordinate of the end point:");scanf("%f", &y1);
//联系请加V:zew1040994588//要求三代码
// 输入第二个线段的终点坐标以及已知的x1和y1printf("请输入第二个线段的终点坐标(x2, y2):");scanf("%d %d", &x2, &y2);// 计算第二个线段的斜率if (x2 - x1 != 0) {//n2 = (float)(y2 - y1) / (float)(x2 - x1);n2 = (y2 - y1) / (x2 - x1);//printf("x1值为%d\n",x1);//printf("y1值为%d\n",x1);//printf("x2值为%d\n",x2);	       //printf("y2值为%d\n",y2);//printf("x2 - x1 值为%d\n",x2 - x1);//printf("y2 - y1 值为%d\n",y2 - y1);//printf("计算n2值为%d\n",y2 - y1 / x2 - x1);//printf("n2值为%d\n",n2);} else {printf("Error: 第二个线段的斜率不存在");return 0;}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS盒子模型的详细解析

03-盒子模型 作用:布局网页,摆放盒子和内容。 盒子模型-组成 内容区域 – width & height 内边距 – padding(出现在内容与盒子边缘之间) 边框线 – border 外边距 – margin(出现在盒子外面) d…

【Git】bad signature 0x00000000 index file corrupt. fatal: index file corrupt

问题描述 电脑写代码时蓝屏。重启后 git commit 出错。 error: bad signature 0x00000000 fatal: index file corrupt原因分析 当电脑发生蓝屏或异常关机时,Git 的索引文件可能损坏。 解决方案 删除损坏的索引文件。 rm -Force .git/index回退到上一个可用的版…

第十九章 文件操作

程序运行时产生的数据都属于临时数据&#xff0c;程序一旦运行结束都会被释放 通过文件可以将数据持久化 C中对文件操作需要包含头文件 < fstream > 文件类型分为两种&#xff1a; 文本文件 - 文件以文本的ASCII码形式存储在计算机中 二进制文件 - 文件以文本的二进制…

C语言 内存

内存分配 内存分配的类型 C/C中内存分为5个区&#xff0c;分别为栈区、堆区、全局/静态存储区、常量存储区、代码区 静态内存分配&#xff1a;编译时分配&#xff0c;包括全局、静态全局、静态局部三种变量。 动态内存分配&#xff1a;运行时分配&#xff0c;包括栈&#x…

图论相关算法

一、迪杰斯特拉(Dijkstra)算法 迪杰斯特拉算法使用类似广度优先搜索的方法解决了带权图的单源最短路径问题。这是一个贪心算法。 1.核心思想 &#xff08;1&#xff09;每次选中一个点&#xff0c;这个点满足两个条件&#xff1a; 未被选过距离最短 &#xff08;2&#xf…

一些前端面试思考

回流和重绘 先牢记这句话&#xff0c;回流必将引起重绘&#xff0c;而重绘不一定会引起回流。回流的代价要远大于重绘。 当你给一个元素更换颜色&#xff0c;这样的行为是不会影响页面布局的&#xff0c;DOM树不会变化&#xff0c;但颜色变了&#xff0c;渲染树得重新渲染页面&…

Linux系统管理:虚拟机OpenEuler安装

目录 一、理论 1.OpenEuler 二、实验 1.虚拟机OpenEuler安装准备阶段 2.安装OpenEuler 3.进入系统 一、理论 1.OpenEuler &#xff08;1&#xff09;简介 欧拉&#xff08;Euler&#xff09;是数字基础设施的开源操作系统&#xff0c;可广泛部署于服务器、云计算、边缘…

如何利用PHP快速抓取音频数据?

以下是一个使用Dusk库和PHP编写的爬虫程序&#xff0c;用于爬取海量的音频数据。这个程序使用了https://www.duoip.cn/get_proxy的代码。 <?php // 引入Dusk库 require Dusk.php;// 创建Dusk对象 $dusk new Dusk();// 设置代理 $dusk->setProxy(127.0.0.1, 8080);// 使…

Unity2023, Unity2022, Unity2021的性能对比(帧率)

最近由于需要用到Unity最新版的一些功能&#xff0c;比如Spline&#xff0c;比如Foward渲染&#xff0c;新项目用了Unity2022.3.5版本&#xff0c;但是出包之后&#xff0c;感觉帧率很低。本着好奇的态度&#xff0c;专门写了一个测试场景&#xff0c;分别在Unity2023.1.15&…

vue3+koa+axios实现前后端通信

vue3koaaxios实现前后端通信 写了一个小demo来实现前后端通信,涉及跨域问题&#xff0c;非常简单可以给大家平时开发的时候参考 服务端&#xff1a; 目录结构如下&#xff1a; router index.js // router的入口文件 // 引入路由 const Router require("koa-router&quo…

记一次mysql事务并发优化

记一次mysql事务并发优化 背景 事情的情况大致是这样的。一个扣减库存的业务上线以后&#xff0c;隔几天会报一次错&#xff0c;错误内容如下&#xff1a; ERROR - exception: UncategorizedSQLException,"detail":"org.springframework.jdbc.UncategorizedSQ…

Spring framework Day22:Aware接口

前言 在Spring框架中&#xff0c;有许多接口和类都有一个非常重要的作用——让我们能够更方便地构建应用程序和管理组件。其中&#xff0c;Aware接口就是其中一个非常重要的接口之一。通过实现该接口&#xff0c;我们可以让Spring容器感知到特定的组件和资源&#xff0c;并进行…

讲解 CSS 过渡和动画 — transition/animation (很全面)

前言 由于用户越来越注重 Web应用 的使用体验&#xff0c;随之而来的是 Web应用 需要提供了更加完善的 Web 动画 效果来实现以平滑的状态贯穿于用户的整个使用过程中。现在&#xff0c;这已经是司空见惯了&#xff0c;用户潜意识是希望可以获得更快的反馈响应和更友好的用户界…

Elasticsearch系列组件:Beats高效的日志收集和传输解决方案

Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎&#xff0c;设计用于云计算环境中&#xff0c;能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性&#xff0c;可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个…

接口自动化测试持续集成,Soapui接口功能测试参数化

按照自动化测试分层实现的原理&#xff0c;每一层的脚本实现都要进行参数化&#xff0c;自动化的目标就是要实现脚本代码与测试数据分离。当测试数据进行调整的时候不会对脚本的实现带来震荡&#xff0c;从而提高脚本的稳定性与灵活度&#xff0c;降低脚本的维护成本。Soapui最…

C#,数值计算——KMeans分类的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// K-Means classification /// </summary> public class Kmeans { private int nn { get; set; } private int mm { get; set; } private …

优维低代码实践:片段

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…

5.12.webrtc接口调用过程

嗨&#xff0c;大家好&#xff0c;我是李超&#xff0c;在上节课中呢&#xff0c;我向你介绍了外接口的设计以及我们红接口展开之后的样子&#xff0c;对吧&#xff1f;那今天呢&#xff1f;我们再来看看整个接口调用过程。那整个这个调用过程啊&#xff0c;非常的复杂&#xf…

QCustomPlot实现曲线拖拽

本文内容目录 需求场景&#xff1a;一、选择控件二、将QCustomPlot库整合到你的Qt项目中1、下载源代码2、创建.pri 三、鼠标框选&#xff0c;实现坐标缩放四、曲线拖动1、定位曲线2、移动时改变曲线 五、问题的产生与解决1、查看源码2、修改本项目代码 需求场景&#xff1a; 曲…

excel 日期与时间戳的相互转换

1、日期转时间戳&#xff1a;B1INT((A1-70*365-19)*86400-8*3600)*1000 2、时间戳转日期&#xff1a;A1TEXT((B1/10008*3600)/8640070*36519,"yyyy-mm-dd hh:mm:ss") 以上为精确到毫秒&#xff0c;只精确到秒不需要乘或除1000。 使用以上方法可以进行excel中日期…