求助c语言

1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritch)和肯·汤普逊(Ken Thompson)在开发UNIX操作系统时设计了C语言。然而,C语言不完全是里奇突发奇想而来,他是在B语言(汤普逊发明)的基础上进行设计。至于 B 语言的起源,那是另一个故事。C 语言设计的初衷是将其作为程序员使用的 一种编程工具,因此,其主要目标是成为有用的语言。

1.2 选择C语言的理由

在过去40多年里,C语言已成为最重要、最流行的编程语言之一。它的成长归功于使用过的人都对它很满意。在学习C语言的过程中,会发现它的许多优点。

C是一门流行的语言,融合了计算机科学理论和实践的控制特性。C语言的设计理念让用户能轻松地完成自顶向下的规划、结构化编程和模块化设计。因此,用C语言编写的程序更易懂、更可靠。

C是高效的语言。在设计上,它充分利用了当前计算机的优势,因此 C 程序相对更紧凑,而且运行速度很快。

C是可移植的语言。这意味着,在一种系统中编写的C程序稍作修改或不修改就能在其他系统运行。如需修改,也只需简单更改主程序头文件中的少许项即可。

C语言功能强大而灵活(计算机领域经常使用这两个词)。 C语言除了编写一些解释器和编译器外,还可以用于解决物理学和工程学的问题,甚至可用于制作电影的动画特效。

C 语言是为了满足程序员的需求而设计的,程序员利用 C 可以访问硬件、操控内存中的位。C 语言有丰富的运算符,能让程序员简洁地表达自己的意图。C没有Pascal严谨,但是却C++的限制多。这样的灵活性既是优点也是缺点。优点是,许多任务用C来处理都非常简洁(如,转换数据的格式);缺点是,你可能会犯一些莫名其妙的错误,这些错误不可能在其他语言中出现。C 语言在提供更多自由的同时,也让使用者承担了更大的责任。 

另外,大多数C实现都有一个大型的库,包含众多有用的C函数。这些函数用于处理程序员经常需要解决的问题。

C语言也有一些缺点。例如,前面提到的,要享受用C语言自由编程的乐趣,就必须承担更多的责任。特别是,C语言使用指针,而涉及指针的编程错误往往难以察觉。有句话说的好:想拥有自由就必须时刻保持警惕。

1.3 C语言的应用范围

无论是软件公司、经验丰富的C程序员,还是其他用户,都能从C语言中受益。越来越多的计算机用户已转而求助C语言解决一些安全问题。不一 定非得是计算机专家也能使用C语言。

简而言之,C 语言是最重要的编程语言之一,将来也是如此。如果你想拿下一份编程的工作,被问到是否会C语言时,最好回答“是”。

1.4 计算机能做什么

在学习如何用C语言编程之前,最好先了解一下计算机的工作原理。这些知识有助于你理解用C语言编写程序和运行C程序时所发生的事情之间有什么联系。

1.4.1现代计算机构成

中央处理单元(CPU)——承担绝大部分的运算工作。

随机存取内存(RAM)——是存储程序和文件的工作区。

一些外围设备——键盘、鼠标、触摸屏等。

CPU 的工作非常简单,至少从以下简短的描述中看是这样。它从内存中获取并执行一条指令,然后再从内存中获取并执行下一条指令,诸如此类。CPU有自己的小工作区——由若干个寄存器组成,每个寄存器都可以储存一个数字。一个寄存器储存下一条指令的内存地址,CPU 使用该地址来获取和更新下一条指令。在获取指令后,CPU在另一个寄存器中储存该指令,并更新第1个寄存器储存下一条指令的地址。 CPU能理解的指令有限(这些指令的集合叫作指令集)。而且,这些指令相当具体,其中的许多指令都是用于请求计算机把一个数字从一个位置移动到另一个位置。例如,从内存移动到寄存器。

1.4.3计算机的工作原理

简而言之,如果希望计算机做某些事,就必须为其提供特殊的指令列表(程序),确切地告诉计算机要做的事以及如何做。你必须用计算机能直接明白的语言(机器语言)创建程序。

1.5 高级计算机语言和编译器

高级编程语言(如,C)以多种方式简化了编程工作。首先,不必用数字码表示指令;其次,使用的指令更贴近你如何想这个问题,而不是类似计算机那样繁琐的步骤。使用高级编程语言,可以在更抽象的层面表达你的想法,不用考虑CPU在完成任务时具体需要哪些步骤。

编译器是把高级语言程序翻译成计算机能理解的机器语言指令集的程序。程序员进行高级思维活动,而编译器则负责处理冗长乏味的细节工作。

简而言之,高级语言以更抽象的方式描述行为,不受限于特定CPU或指令集。而且,高级语言简单易学,用高级语言编程比用机器语言编程容易得多。

与大多数语言不同的是,C语言比其他语言更依赖库,因此需要一个标准库。实际上,由于缺乏官方标准,UNIX实现提供的库已成为了标准库。

2.不要妨碍程序员做需要做的事;

3.保持语言精练简单; 

4.只提供一种方法执行一项操作; 

5.让程序运行更快,即使不能保证其可移植性。 

在最后一点上,标准委员会的用意是:作为实现,应该针对目标计算机 来定义最合适的某特定操作,而不是强加一个抽象、统一的定义。在学习C 语言过程中,许多方面都反映了这一哲学思想。

国际化、弥补缺陷和提高计算的实用性,这3点是主要的修订目标。

1.7 使用C语言的7个步骤

1.7.1第1步:定义程序的目标

在动手写程序之前,要在脑中有清晰的思路。明确自己每一步要干什么。

1.7.2第2步:设计程序

对程序应该完成什么任务有概念性的认识后,就该考虑如何用程序去完成它。选择一个合适的方式表示信息可以更容易的设计程序和处理数据。

1.7.3第3步:编写代码

设计好程序后,就可编写代码来实现它。也就是说,把你设计的程序翻译成C语言,这里是真正需要使用C语言的地方。

接下来的这一步是编译源代码。编译的细节取决于编程的环境。编译器就是把源代码转换成可执行代码的程序。

1.7.5第5步:运行程序

最终生成的程序可通过单击或双击文件名或图标直接在操作系统中运行。

1.7.6第6步:测试和调试程序

在运行中,你会发现你写的程序有些错误,计算机行话叫做bug,查找并修复程序错误的过程叫做调试。

1.7.7第7步:维护和修复代码

创建完程序后,你发现程序有错,或者想拓展程序的用途,这时就要修改程序。

编程并非像描述那样是一个线性的过程。有时,要在不同的步骤之间往复。

磨刀不误砍柴工,应该养成先规划再动手编写代码的好习惯,用纸和笔记录下程序的目标和设计框架。这样在编写代码的过程中会更加得心应手、条理清晰。

生成程序的具体过程因计算机环境而异。C是可移植性语言,因此可以在许多环境中使用,但是有些产品会随着时间的推移发生演变或被取代。

1.8.1 目标代码文件、可执行文件和库

C编程的基本策略是,用程序把源代码文件转换为可执行文件(其中包含可直接运行的机器语言代码)。典型的C实现通过编译和链接两个步骤来完成这一过程。编译器把源代码转换成中间代码,链接器把中间代码和其他 代码合并,生成可执行文件。

目标代码文件缺失启动代码(startup code)。启动代码充当着程序和操作系统之间的接口。

目标代码还缺少库函数。几乎所有的C程序都要使用C标准库中的函数。

链接器的作用是,把你编写的目标代码、系统的标准启动代码和库代码 这 3 部分合并成一个文件,即可执行文件。对于库代码,链接器只会把程序中要用到的库函数代码提取出来。

由于C语言因UNIX系统而生,也因此而流行,所以我们从UNIX系统开始。

GNU项目始于1987年,是一个开发大量免费UNIX软件的集合(GNU的 意思是“GNU’s Not UNIX”,即GNU不是UNIX)。GNU编译器集合(也被称为GCC,其中包含GCC C编译器)是该项目的产品之一。

LLVM项目成为cc的另一个替代品。该项目是与编译器相关的开源软件集合。

Linux是一个开源、流行、类似于UNIX的操作系统,可在不同平台(包括PC和Mac)上运行。在Linux中准备C程序与在UNIX系统中几乎一样,不同的是要使用GNU提供的GCC公共域C编译器。

注意,在安装Linux时,可选择是否安装GCC。如果之前没有安装 GCC,则必须安装。通常,安装过程会将cc作为gcc的别名,因此可以在命令行中使用cc来代替gcc。 

C编译器不是标准Windows软件包的一部分,因此需要从别处获取并安装C编译器。

许多供应商(包括微软、Embarcadero、Digital Mars)都提供Windows下的集成开发环境,或称为IDE(目前,大多数IDE都是C和C++结合的编译器)。

许多Linux发行版都可以安装在Windows系统中,以创建双系统。一些存储器会为Linux系统预留空间,以便可以启动Windows或Linux。可以在 Windows系统中运行Linux程序,或在Linux系统中运行Windows程序。不能通 过Windows系统访问Linux文件,但是可以通过Linux系统访问Windows文档。

//u16 box[8]={0}; //用数组存放每一位段选得到的数字,0就是初始化,{}这是放着8个数,开始就显示8个0

有一个2段固定的,作用有均布载荷的等截面梁,受力如图,需要用牛顿迭代法求解图中的方程,其中l=1000mm,P=200N,E=210000N/MM,I=103000,由于是实际问题,0<=x<=1000,而且为了减少迭代次数,需要在迭代前线缩小范围,方法为:x1=0,x2=x0,(x0为一定的步长,自己设定)代入公式尝试,求出f,如果在x1,x2的情况下,求出的f如果是异号,那就是缩小后的范围。如果同号,则继续加上步长x0,然后求f,直到异号为止,然后用牛顿迭代法求在此范围中的解。PS:实际就是求解x的值。用的是c语言编程,求详细程序和注释

我要回帖

更多关于 使用c语言求解实际问题从编写程序 的文章

 

随机推荐