导航:首页 > 源码编译 > 先给出伪代码再写出源码

先给出伪代码再写出源码

发布时间:2023-05-14 04:13:24

❶ C语言求大神

看一下f函数的构造:它一共有6句,消谨整体是一个if……else……结构。
分析一下运行情况,由于没调用一次f,定义一个不同的变量t,为防止混淆,我们将按顺序称之为t1、t2……
主函数打印语句调用f(a,9)①
第一次进入f函数,n=9>1,定禅桥行义变量1,再调用t1=f(a,8)②
第二次进入f函数,n=8>1,定义变量t2,再调用t2=f(a,7)③
……
第八次 进入f函数,n=2>1,定义变量t8,再调用t8=f(a,1)④
第9次 进入f函数,n=1>1不成立,指向else,返回a[0],即元素8。
返回④,即t8=8,往下一步程序:计算并返回t8>a[1]?t8:a[1]=8>2?8:2=8(返回8与2之大数),往上返回。每一次都是返回比较大的数。
……
当然,f(a,7)返回的是贺哗9。回到③,t2=9,下一步计算t2>a[7]?因t2=9,a[7]=7,返回较大的9。
程序回到②,t1=9,下一步比较t1与a[8](=5)的大小,显然返回较大的9。此时就要把9返回主函数①处了。
回到①处,程序获得f(a,9)的值9,并打印。

❷ 伪代码与源代码如何区分

伪代码:只是一种描述算法结构的语言,只是用来说明一些问题,伪代码并不能执行。如大学课程《数据结构》。比如要描述一个流程,你可以这么写伪代码:
if
登陆成功
then
跳转页面
else
出错
这一段看像是程序,实际上只有人能看懂,真正要编程语言来实现上面的功能,你就不能那么写。
源代码:是用汇编、C、C++等编写好但还没编译成机器可执行的代码。

❸ 代码和伪代码什么区别

区别:

1,面对对象不同,伪代码是方便程序员便于理解,源代码是面对电脑,使电脑编译。

2,编译方式不同,伪代码无被电脑编译,源代码可以被电脑编译。

3,编写方式不同,在伪代码中,每一条指令占一 行,指令后不限任啊符号,源代码一条指令客栈多行,可加符号。

在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。




(3)先给出伪代码再写出源码扩展阅读:

伪代码:是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。

伪代码简单示例:输入3个数,打印输出其中最大的数。可用如下的伪代码表示:

Begin(算法开始)

输入 A,B,C

IF A>B 则 A→Max

否则 B→Max

IF C>Max 则 C→Max

Print Max

End (算法结束)

伪代码(Pseudocode)是一种算法描述语言。它不是一一种现实存在的编程语言。使用为代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal, C,java, etc) 实现。

源程序(source code)即代码是指未编译的按照一定的程序设计语言规范书写的文本文件。源代码(也称源程序),是指一系列人类可读的计算机语言指令。

❹ 什么是伪代码,它与源代码有何区别

伪代码就是写出示意性的代码,用来讨论流程或者说明问题的,不要求能编译通过。为的就是写起来方便,快。
源代码就是程序代码,原则上是能编译通过并运行的。

❺ matlab中伪代码(pseudo-code)与命令(command)怎么转换呢高分在线等

P使MATLAB变成中文版BR2006-2-17 15:57:53BRMATLAB自6.X版以来的界面都是用Java实现的。在MATLAB的安装目录下有个java文件夹,里面存着用来建立MATLAB界面的java程序包(.jar包)。用winrar等软件打开一个jar包,通过层层目录(com.mathworks....)后你会看到一个resource文件夹(不是每个jar包都有),打开这个文件夹你会发现3个以.properties为扩展名的文件。这些.properties文件就是MATLAB的“语言包”。MATLAB启动时就是根据这些.properties文件来初始化界面语言的。三个文件中一个是英文版的、一个是日文版的(文件名中包含_ja_JP.properteis)、还有一个_mw_QE(这个不知哪国语言)。MATLAB启动时,根据用户机器的区域设置选择语言包,如果没有找到计算机区区域选项所设地区对应的properties文件,MATLAB就调用英文版。因为没有与中文对应的properties文件,所以大家的MATLAB启动时都是英文版的。上面将区域选项更改后,由于有日语properties文件,所以你看到了日语版的MATLAB。 怎么将界面语言变为中文呢?这就需要制作中文版的properties文件。在Java中中文对应的后缀是_zh_CN,因此只要把英文版的properties文件中“=”后面的内容翻译成中文,将文件转换成Unicode字符,并在保存的时候在原英文版文件名后加_zh_CN.properties,然后将该文件加入到原英文版所在的目录,下次MATLAB启动时就会调用该文件,你的MATLAB就变成汉化版的了。BR里面有关于Unicode字符的转换问题,用下面的步骤做:BR名称:Unicode转换器 功能:将非Unicode字符转换成可供Java调用的Unicode字符 用法:将下面的代码保存为Html文件即可 lt;titlegt; Unicode转换器 lt;/titlegt; lt;bodygt; lt;textarea cols=100 rows=20 id=codegt; lt;/textareagt; lt;input type=button onclick=encode(code,this) value=" 编码 "gt; lt;brgt;lt;brgt;输入要转换的字符,然后按“编码”按钮即可将输入内容转换成可供Java调用的Unicode编码。lt;brgt; 按“解码”按钮可转换回原来的字符。lt;brgt;lt;brgt;-Junziyang lt;/bodygt; lt;scriptgt; var mode=" 编码 "; function encode(obj,btn){ if(mode==" 编码 "){ obj.value="/obj.value.replace(/["^\u0000-\u00FF]/g,function($0){return escape($0).replace(/(%u)(\w{4})/gi,"a\\u$2/A")});BRbtn.value=" 解码 "; mode=" 解码 "; }else{ obj.value="/unescape(obj.value.replace(/\\u/g,'%u')); btn.value="" 编码 "; mode=" 编码 "; } } lt;/scriptgt; =============================BRproperties文件在java类库里面使用的也非常多,有一个专门的类 Properties用来处理这种文件,而且还有一个工具来专门处理字符转换问题,如果装了jdk的话,不妨用这个工具来试试。翻译的时候直接输入中文,然后用 native2ascii file_zh file_unicode 转换一下就可以了,非常方便。 非常感谢junziyang的发现与共享。 native2ascii - Native-to-ASCII Converter Converts a file with native-encoded characters (characters which are non-Latin 1 and non-Unicode) to one with Unicode-encoded characters. SYNOPSIS native2ascii [options] [inputfile [outputfile]] DESCRIPTION The Java compiler and other Java tools can only process files which contain Latin-1 and/or Unicode-encoded (\udddd notation) characters. native2ascii converts files which contain other character encodings into files containing Latin-1 and/or Unicode-encoded charaters. If outputfile is omitted, standard output is used for output. If, in addition, inputfile is omitted, standard input is used for input. OPTIONS -reverse Perform the reverse operation: convert a file with Latin-1 and/or Unicode encoded characters to one with native-encoded characters.BR-encoding encoding_name Specify the encoding name which is used by the conversion procere. The default encoding is taken from System property file.encoding. The encoding_name string must be taken from the first column of the table of supported encodings in the Supported Encodings document. -Joption Pass option to the Java virtual machine, where option is one of the options described on the reference page for the java application launcher. For example, -J-Xms48m sets the startup memory to 48 megabytes. 稍作配置即可用EditPlus直接将翻译后的文件保存为_zh_CN.properties文件。配置方法如下: 1、打开EditPlus,工具/配置用户工具; 2、按“添加工具”按钮。菜单文本:Native2ascii。 3、点“命令”右边的按钮,选择JDK中native2ascii.exe文件。 4、参数:"$(FilePath)" $(FileNameNoExt)_zh_CN.properties 5、初始目录:$(FileDir)。 6、选中“捕获输出”。 以后翻译时直接打开原英文文件,翻译完后点工具菜单最下面的“Native2ascii”菜单项。你会发现在原英文文件目录下多了一个文件,该文件名为原英文文件名_zh_CN.properties. 用这种方法你必须先安装JDKBR------------------------BR用 UltraEdit 的朋友可以用下面的方法试一下~ 1、打开UltraEdit,菜单Advanced/Tool Configuration 2、单击Command Line右边的Browse按钮,浏览选中jdk里bin目录的native2ascii.exe,并且在其后追加如下参数: %F %P%N_zh_CN.properties 完成后,在我的机器上Command Line框中内容如下: E:\jdk\j2sdk1.4.2\bin\native2ascii.exe %F %P%N_zh_CN.propertiesBR3、MenuItem Name中填入: Native2Ascii 4、最好选中 Save all files first,在执行转换前先保存翻译的文档 5、单击右边的按钮insert,在点击OK就完成了。 翻译时打开原英文文件,完成后点击菜单Advanced下的Native2Ascii菜单,或者使用该菜单对应的快捷键就可以了,在同一目录下生成对应的转换后的文件。 如果要将其添加到工具栏上,需要进行如下操作: 菜单 Advanced/Configuration - ToolBar选项卡在Feature List中后面找到UserTool 1 然后点击Insert将其插入就可以了。/P

❻ 网络工程方面的程序

本节主要介绍Turbo C程序设计的基本步骤及如何编译、调试和运行源程序。并给出Turbo C的常用编辑命令。最后介绍Turbo C编译、连接和运行时的常见错误。

一、Turbo C程序设计基本步骤
程序设计方法包括三个基本步骤:
第一步: 分析问题。
第二步: 画出程序的基本轮廓。
第三步: 实现该程序。
3a. 编写程序
3b. 测试和调试程序
3c. 提供数据打印结果
下面, 我们来说明每一步的具体细节。
第一步: 分析问题
在这一步, 你必须:
a. 作为解决问题的一种方法, 确定要产生的数据(输出)。作为这一子步的一部分, 你应定义表示输出的变量。
b. 确定需产生输出的数据(称为输入), 作为这一子步的一部分, 你应定义表示输入的变量。
c. 研制一种算法, 从有限步的输入中获取输出。 这种算法定义为结构化的顺序操作, 以便在有限步内解决问题。就数字问题而言, 这种算法包括获取输出的计算, 但对非数字问题来说, 这种算法包括许多文本和图象处理作。

第二步: 画出程序的基本轮廓
在这一步, 你要用一些句子(伪代码)来画出程序的基本轮廓。每个句子对应一个简单的程序操作。对一个简单的程序来说, 通过列出程序顺序执行的动作,便可直接产生伪代码。然而, 对复杂一些的程序来说, 则需要将大致过程有条理地进行组织。对此, 应使用自上而下的设计方法。
当使用自上而下的设计方法时, 你要把程序分割成几段来完成。列出每段要实现的任务, 程序的轮廓也就有了, 这称之为主模块。当一项任务列在主模块时,仅用其名加以标识, 并未指出该任务将如何完成。这方面的内容留给程序设计的下一阶段来讨论。将程序分为几项任务只是对程序的初步设计。整个程序设计归结为下图所示的流程图1.。
┏━━━━━━━━━━━━━━━┓
┃ 主模块 ┃
┏━━━━━━━┓ ┃ 输入数据 ┃
┃ 主模块 ┃ ┃ 计算购房所需的金额 ┃
┃ ┃ ┃ 计算装修所需的金额 ┃
┃ 任务1 ┃ ┃ 计算总金额 ┃
┃ 任务2 ┃ ┃ 输出计算结果 ┃
┃ 任务3 ┃ ┃ ┃
┃ 任务4 ┃ ┗━━━━━━━┳━━━━━━━┛
┃ ┃ ┏━━━━━┳━━━━━╋━━━━┳━━━━━┓
┃ ┃ ┏━━┻━┓┏━━┻━┓┏━━┻━┓┏━┻━┓┏━━┻━┓
┗━━━━━━━┛ ┃输入数据┃┃购房额..┃┃装修额..┃┃总额..┃┃输出结果┃
┗━━━━┛┗━━━━┛┗━━━━┛┗━━━┛┗━━━━┛
图1. 程序初步设计 图2. 第二级程序设计

如果把主模块的每项任务扩展成一个模块, 并根据子任务进行定义的话, 那么, 程序设计就更为详细了(见图2.)。这些模块称为主模块的子模块。程序中许多子模块之间的关系可象图2.中那样归结为一张图。这种图称为结构图。
要画出模块的轮廓, 你可不考虑细节。如果这样的话, 你必须使用子模块,将各个模块求精, 达到第三级设计。继续这一过程, 直至说明程序的全部细节。
这一级一级的设计过程称为逐步求精法。在编写程序之前, 对你的程序进行逐步求精, 对你来说, 是很好的程序设计实践, 会使你养成良好的设计习惯。
我们则才描述了程序设计中自上而下的设计方法。实际上就是说, 我们设计程序是从程序的"顶部"开始一直考虑到程序的"底部"。

第三步: 实现该程序
程序设计的最后一步是编写源码程序。 在这一步, 把模块的伪代码翻译成Turbo C语句。
对于源程序, 你应包含注释方式的文件编制, 以描述程序各个部分做何种工作。此外, 源程序还应包含调试程序段, 以测试程序的运行情况, 并允许查找编程错误。一旦程序运行情况良好, 可去掉调试程序段, 然而, 文件编制应做为源程序的固定部分保留下来, 便于你或其他人维护和修改。
二、源程序的输入、编译和运行

C语言是一种中级语言, 用户用C语言编写的程序称为源程序, 存放用C 语言所写源程序文件名字最后的两个字符一般必须为".c"。计算机硬件不能直接执行源程序, 必须将源程序翻译成二进制目标程序。翻译工作是由一个程序完成的,这个程序称为编译程序, 翻译的过程称为编译, 编译的结果称为目标程序, 存放目标程序文件名字紧后的字符一般为".OBJ"或".O"。程序翻译成目标程序后, 便可进行连接。"连接"的目的是使程序变成在计算机上可以执行的最终形式。在这一阶段, 从系统程序库来的程序要与目标程序连接, 连接的结果称为执行程序,存放执行程序文件名字一般以".EXE"结尾。
在Turbo C集成开发环境中建立一个新程序通常有以下几个步骤:
(1). 在编辑器中编写源文件。
(2). 生成可执行文件。

在DOS提示符下键入TC, 即可进入Turbo C了。进入主TC屏后, 按F3键, 即可在随之出现的框中输入文件名, 文件名可以带".C"也可以不带( 此时系统会自动加上)。输入文件名后, 按回车, 即可将文件调入, 如果文件不存在, 就建立一个新文件(也可用下面例子中的方法输入文件名)。系统随之进入编辑状态。就可以输入或修改源程序了, 源程序输入或修改完毕以后, 按Ctrl+F9(同时按下Ctrl键和F9键), 则立即进行编译、连接和执行, 这三项工作是连续完成的。
下面我们试着建立一个Turbo C名为"HELLO.C"的源程序(因程序很小, 这里就不画出该程序的轮廓图了):
1. 操作步骤:
(1). 将系统置于DOS提示符下:
(2). 键入命令:
tc hello.c
使系统进入Turbo C集成开发环境, 并建立一个名为HELLO.C的文件。这时, 系统进入Turbo C编辑环境。
(3). 通过键盘输入程序, 例如:
main()
{
printf("Hello, world\n");
}
则程序进入计算机存贮器。
2. 程序存盘
为防止意外事故丢失程序, 最好将输入的程序存贮到磁盘中。在编辑窗口下,可直接按F2键或按F10键, 再按F键进入File菜单项, 再按S或W键将文件存盘。存盘时屏幕最底行会显示:
"saving edit file"
3. 编译一个程序
对源程序进行编译有两种方法: (1). 直接按Alt+F9即可。(2). 按F10 键返回主菜单, 选择Compile项, 屏幕显示Compile 下拉菜单, 从下拉菜单中选择Compile to .OBJ项, 按回车键。
进入编译状态后, 屏幕会出现一个编译窗口, 几秒钟后, 屏幕显示一闪烁信息:
Success: press any key
表示编译成功。此时可按任意键, 编译窗口消失, 光标返回主菜单。
如果编译时产生警告Warning或出错Error信息, 这些具体错误信息会显示在屏幕下部的信息窗中, 必须纠正这些错误。对源程序进行修改, 重新进行编译。
4. 运行程序
源程序经编译无误后, 可以投入运行。具体操作如下:
(1). 如果当前还在编辑状态, 可按Alt+R, 再选择RUN项即可。
(2). 按Ctrl+F9。
程序投入运行时, 屏幕会出现一个连接窗口, 显示Turbo C 正在连接和程序所需的库函数。连接完毕后, 会出现屏幕突然一闪, 后又回到TC主屏幕, 发生了什么? 让我们按Alt+F5看看, 此时屏幕被清除, 在顶部显示"Hello, world"字样。再按任意键, 即可又回到TC主屏幕。
5. 列磁盘文件目录
现在请按Alt+X退出Turbo C, 返回DOS提示符, 键入dir hello.*, 回车, 则屏幕显示:
HELLO C 42 1-09-93 10:18
HELLO OBJ 221 1-09-93 10:22
HELLO EXE 4486 1-09-93 10:25
...
第一个文件HELLO.C是源文件文本, 在DOS提示符下键入TYPE HELLO.C命令,可在屏幕上显示该文件的内容。可看到该程序只有42个字节。
第二个文件HELLO.OBJ是Turbo C编择程序产生的二进制机器指令(目标码),如果用DOS命令TYPE显示该文件, 屏幕可能会出现混乱的信息。
第三个文件HELLO.EXE是Turbo C连接程序产生的实际可执行文件。在DOS 提示符下键入HELLO并按回车, 屏幕将显示"Hello, world"。

Turbo C 常用的编辑命令
Turbo C编辑程序大约有50条命令, 用以移动光标, 按页查看正文, 查找并替换字符串等。如下表所示。

表1. Turbo C编辑程序命令
━━━┳━━━━━━━━━┳━━━━━━━━━━━━━
类别 ┃ 功能 ┃ 默认键
━━━╋━━━━━━━━━╋━━━━━━━━━━━━━
┃ 字符左 ┃ Ctrl+S或Left
基 ┃ 字符右 ┃ Ctrl+D或Right
本 ┃ 字左 ┃ Ctrl+A
光 ┃ 字右 ┃ Ctrl+F
标 ┃ 上行 ┃ Ctrl+E或Up
移 ┃ 下行 ┃ Ctrl+X或Down
动 ┃ 上滚 ┃ Ctrl+W
命 ┃ 下滚 ┃ Ctrl+Z
令 ┃ 上一页 ┃ Ctrl+R或PgUp
┃ 下一页 ┃ Ctrl+C或PgDn
━━━╋━━━━━━━━━╋━━━━━━━━━━━━━
快 ┃ 行头 ┃ Ctrl+QS或Home
速 ┃ 行尾 ┃ Ctrl+QD或End
光 ┃ 窗口头 ┃ Ctrl+QE
标 ┃ 窗口底 ┃ Ctrl+QX
移 ┃ 文件头 ┃ Ctrl+QR
动 ┃ 文件尾 ┃ Ctrl+QC
命 ┃ 块头 ┃ Ctrl+QB
令 ┃ 块尾 ┃ Ctrl+QK
┃ 上次光标位置 ┃ Ctrl+QP
━━━╋━━━━━━━━━╋━━━━━━━━━━━━━
输 ┃ 插入模式 ┃ Ctrl+V或Ins
入 ┃ 插入行 ┃ Ctrl+N
与 ┃ 删除行 ┃ Ctrl+Y
删 ┃ 删除至行尾 ┃ Ctrl+QY
除 ┃ 删除光标左边字符┃ Ctrl+H或Backspace
命 ┃ 删除光标处字符 ┃ Ctrl+G或Del
令 ┃ 删除光标右边字符┃ Ctrl+T
━━━╋━━━━━━━━━╋━━━━━━━━━━━━━
┃ 标记块首 ┃ Ctrl+KB
┃ 标记块尾 ┃ Ctrl+KK
┃ 标记单个字 ┃ Ctrl+KT
块 ┃ 复制块 ┃ Ctrl+KC
命 ┃ 删除块 ┃ Ctrl+KY
令 ┃ 块取消 ┃ Ctrl+KH
┃ 块移动 ┃ Ctrl+KV
┃ 读块 ┃ Ctrl+KR
┃ 写块 ┃ Ctrl+KW
━━━╋━━━━━━━━━╋━━━━━━━━━━━━━
┃ 异常结束操作 ┃ Ctrl+U或Ctrl+Break
┃ 制表 ┃ Ctrl+L或Tab
其 ┃ 自动缩进 ┃ Ctrl+OI
┃ 定界符配对 ┃ Ctrl+Q[或Ctrl+Q]
它 ┃ 查找 ┃ Ctrl+QF
┃ 查找并替换 ┃ Ctrl+QA
┃ 查找标记 ┃ Ctrl+QN
┃ 退出编辑 ┃ Ctrl+KQ
━━━┻━━━━━━━━━┻━━━━━━━━━━━━━

Turbo C 程序的调试

一个程序设计好了以后, 通常会有一些错误, 查找和修改程序中的错误是令人头痛的事。Turbo C集成开发环境提供了一调试装置, 使得这一个工作容易了许多, 程序调试达到了编译和运行级。

一、TC消息窗口

使用TC最好的理由之一是它允许用户修改语法错误(编译时) 和评估编译器给出的警告。TC将编译器和连接器发出的消息收集到一缓冲区中, 然后在消息窗口中显示, 这样在访问源代码的同时, 还能一下看到这些消息。
现将上面的HELLO.C制造一点语法错误, 将第一行包含语句的#去掉, 再去掉第五行printf语句中的后引号。现在程序看上去是这样的:
include <stdio.h>
main()
{
printf("Hello, world\n);
}
按CTRL+F9重新编译之。编译窗口将显示有多少错误和警告: 应为两个错误, 0个
警告。
当看见编译窗口中的Press anykey提示时, 按空格键, 消息窗口立刻被激活,亮条出现在第一个错误或警告上, 这时编辑窗口中也会有一亮条--- 它标志着编译器给出的错误或警告在源代码中的相应位置。
这时可用光标键将消息窗口中的亮条上下移动, 注意到编辑窗口中的亮条也随着跟踪源代码中错误发生的位置。如果将亮条置于"compile"上, 则编辑器显示文件的最后位置。
如果消息窗口太长看不见, 可用左、右光标水平滚动消息, 为了一次能够多看点信息, 可按F5放大消息窗口。放大后, 编辑窗口不可见了, 因此不进行错误跟踪。现在, 保持分屏模式。
为了改正错误, 将消息窗口中的亮条置于第一个错误消息上, 回车, 光标移到编辑窗口中错误产生处, 注意, 编辑器状态给出所选消息( 这在放大模式下是有用的)改正之。(将第一行拿走的#重新写上)。
当不只一个错误时, 可用两种方法来修改下一错误。
第一种方法和前面一样, 按F6回到消息窗口选择想修改的下一条消息。
第二种方法不用回到消息窗口, 只要按Alt+F8, 编译器就会将光标移至消息窗口中列的下一个错误。按Alt+F7可移至前一个错误。
这两种方法各有长短, 视情况而定。有时源代码中一个愚蠢的错误把编译弄糊涂了, 产生好多消息, 这时选择修改第一条消息就使得其余的一些错误消息没有什么意义了, 这种情况发生时, 使用方法一会方便些, 一修改完第一个错误之后回到消息窗口, 再滚动到下一个有意义的消息上, 选择之。在别的情况下, 按Alt+F8会方便得多。
记住, Alt+F7和Alt+F8是热键, TC中无论何时均起作用。因此在消息窗口中按Alt+F8得到的不是当前亮行消息, 而是下一个消息(按Enter选择当前消息)。
但如果没别的编译消息, Alt+F8就不起作用了。
注: 可以如此法选择连接消息, 但它们不跟踪源文件。在修改语法错误的过程当中, 经常需要增加、删除正文, 编辑器是记住的, 依然能正确定位错误位置。
没有必要记住行号和增加、删除的正文行。

二、Turbo C集成调试器

一旦修改好语法错误之后程序编译就没什么问题了, 但还是可能不按要求运行, 因为可能有逻辑错误(运行错误)。这种错误跟踪就无助于发现错误位置了。TC有一个集成调试器可以跟踪运行错误。通过调试器可以运行, 在断点处暂停,检查变量的值, 甚至可以改变之, 以看程序会有什么反应。
Turbo C集成调试器是源程序级的调试器, 即用同你编写程序一样的" 语言"来控制调试器。例如, 为了显示数组中的一个元素的值, 可告诉调试器显示这样的表达式的值:
Ctrl+F4 Debug/Eavluate 计算表达式, 允许修改变量的值。
Debug/Find Function 查找函数定义, 显示在编辑窗口中。 仅在调试时才有效。
Ctrl+F3 Debug/Call Stack 显示调用栈, 可显示任何函数的当前执行位置, 其方法是在调用栈中选择相应的
函数名。仅在调试时有效。
Debug/Source Debugging 控制是否允许调试: 置为On时, 集成调
试器和单独调试器均可用 ; 置为
Standalone时, 只能用单独调试器
调试, 虽然还能在TC中运行; 置为
None时, 在.EXE文件不置调试信息,
两种调试均不能调试。
Ctrl+F4 Break/Watch/Add Watch 增加一监视表达式。
Break/Watch/Delete Watch 删除一监视表达式。
Break/Watch/Edit 编辑一监视表达式。
Break/Watch/Remove All 删除所有监视表达式。
Watches
Ctrl+F8 Break/Watch/Toggle 设置或清除光标所在行的断点。
Breakpoint
Break/Watch/Clear 删除程序中所有断点。
Breakpoint
Break/Watch/Next 显示下一断点
Breakpoint
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

表3. 调试器菜单命令及其热键
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
热键 菜单命令 功能
———————————————————————————————————
F5 在整屏和分屏之间放大缩小活动窗口。
Alt+F5 将显示转到用户屏, 击任意键返回。
F6 在编辑窗口与监视窗口或消息窗口间
切换。
Alt+F6 若编辑窗口是活动的, 转到最近一次
装入编辑器的文件; 若下面窗口是活
动的, 则在监视窗口和消息窗口间切换。
Ctrl+F9 Run/Run 调试运行或不调试运行程序, 必要时
编译、连接源文件, 若编译、 连接时
Debug/Source Debuging和O/C/C/OBJ
Debug Information为On, 则运行程序
到断点或程序末尾。
Project/Remove Messages 删除消息窗口中的内容。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

判断程序是否出错或者为什么出错是编程中最有挑战意义的一方面。这里建义你进行预防性设计, 具体做法为:
(1). 将代码写清楚点, 应作适当缩进, 使用文字说明和描述性的变量名。
(2). 代码应简单, 把精力放在简单语句中的复杂表达式, 而不是一些复杂语句。Turbo C的代码优化机制将大大提高代码的效率, 而且调试、阅读、 修改
起来容易。
(3). 尽量用目的简单、好定义的函数构建程序。 这会便于编制调试程序和分析结果, 而且阅读、修改起来也要容易一些。
(4). 应尽量减少各个函数要求的数据和改变数据的元素个数。这也会便于编制测试程序和分析结果; 同样便于阅读、修改程序。并且还限制了出错函数可能造成的巨大混乱的牵涉面, 便得能在一个调试节中多运行函数几次。
(5). 要留心编写程序中的公共函数, 或者说在其它程序中可再用的函数.编写、调试一个一般性的函数通常要比编写、调试两个或更多的特殊函数要容易。

Turbo C编译、连接和运行时的常见错误
一、编译时的常见错误
1. 数据类型错误。此类错误是初学者编程时的常见现象, 下面是一些要引起注意的错误:
(1) 所有变量和常量必须要加以说明。
(2) 变量只能赋给相同类型的数据。
(3) 对scanf()语句, 用户可能输入错误类型的数据项, 这将导致运行时出错, 并报出错信息。为避免这样的错误出现, 你就提示用户输入正确类型的数据。
(4) 在执行算术运算时要注意:
a. 根据语法规则书写双精度数字。要写0.5, 而不是写.5; 要写1.0,
而不是1。尽管C语言会自动地把整型转换成双精度型, 但书写双精
度型是个好习惯。让C语言为你做强行转换这是一种效率不高的程序
设计风格。 这有可能导致转换产生错误。
b. 不要用0除。这是一个灾难性的错误, 它会导致程序失败, 不管C
语言的什么版本, 都是如此, 执行除法运算要特别小心。
c. 确保所有的双精度数(包括那些程序输入用的双精度数) 是在实数
范围之内。
d. 所有整数必须在整数允许的范围内。这适用于所有计算结果,包括中间结果。

2. 将函数后面的";"忘掉。此时错误提示色棒将停在该语句下的一行, 并显示:
Statement missing ; in function <函数名>

3. 给宏指令如#include, #define等语句尾加了";"号。

4. "{"和"}"、"("和")"、"/*"和"*/"不匹配。 引时色棒将位于错误所在的行, 并提示出有关丢掉括号的信息。

5. 没有用#include指令说明头文件, 错误信息提示有关该函数所使用的参数未定义。

6. 使用了Turbo C保留关键字作为标识符, 此时将提示定义了太多数据类型。

7. 将定义变量语句放在了执行语句后面。此时会提示语法错误。

8. 使用了未定义的变量, 此时屏幕显示:
Undefined symbol '<变量名>' in function <函数名>

9. 警告错误太多。忽略这些警告错误并不影响程序的执行和结果。编译时当警告错误数目大于某一规定值时(缺省为100)便退出编译器, 这时应改变集成开发环境Options/Compiler/Errors中的有关警告错误检查开关为off。

10. 将关系符"=="误用作赋值号"="。此时屏幕显示:
Lvalue required in function <函数名>

二、连接时的常见错误

1. 将Turbo C库函数名写错。这种情况下在连接时将会认为此函数是用户自定义函数。此时屏幕显示:
Undefined symbol '<函数名>' in <程序名>

2. 多个文件连接时, 没有在"Project/Project name中指定项目文件 (.PRJ文件), 此时出现找不到函数的错误。

3. 子函数在说明和定义时类型不一致。
4. 程序调用的子函数没有定义。

三、运行时的常见错误

1. 路径名错误。在MS-DOS中, 斜杠(\)表示一个目录名; 而在Turbo C 中斜杠是个某个字符串的一个转义字符, 这样, 在用Turbo C 字符串给出一个路径名时应考虑"\"的转义的作用。例如, 有这样一条语句: file=fopen("c:\new\tbc.dat", "rb");
目的是打开C盘中NEW目录中的TBC.DAT文件, 但做不到。这里"\"后面紧接的分别是"n"及"t", "\n"及"\t"将被分别编译为换行及tab字符, DOS将认为它是不正确的文件名而拒绝接受, 因为文件名中不能和换行或tab字符。正确的写法应为:
file=fopen("c:\\new\\tbc.dat", "rb");
2. 格式化输入输出时, 规定的类型与变量本身的类型不一致。例如:
float l;
printf("%c", l);
3. scanf()函数中将变量地址写成变量。例如:
int l;
scanf("%d", l);
4. 循环语句中, 循环控制变量在每次循环未进行修改, 使循环成为无限循
环。
5. switch语句中没有使用break语句。
6. 将赋值号"="误用作关系符"=="。
7. 多层条件语句的if和else不配对。
8. 用动态内存分配函数malloc()或calloc()分配的内存区使用完之后, 未用free()函数释放, 会导致函数前几次调用正常, 而后面调用时发生死机现象,不能返回操作系统。其原因是因为没用空间可供分配, 而占用了操作系统在内存中的某些空间。
9. 使用了动态分配内存不成功的指针, 造成系统破坏。
10. 在对文件操作时, 没有在使用完及时关闭打开的文件。

❼ c语言求大神

100以内素数

#include<stdio.h>	/*printf(),putchar()*/
#include<conio.h> /*getch()*/

/*试除法判断素数*/
/*大于1的自然数num,若其不能被2~num^1/2(num的平方根)之间的任一自然袭扰数整除,则其为素数*/
/*num是素数返回1,否则返回0*/
intisPrime(intnum){
inti;
if(num<=1)/*素数必须是大于1的自然数*/
return0;
if(num%2==0&&num!=2)/*除2之外的偶数显然不是素数*/
return0;
for(i=2;i*i<=num;i++)
if(num%i==0)
return拍轿旦0;
return1;
}

intmain(void){
inti;
for(i=2;i<=100;i++)
if(isPrime(i))
printf("%3d",i);
putchar(' ');

getch();/*屏幕暂留*/
return0;
}

❽ 求将伪代码改为源代码。数据结构

typedef struct
{
int *d;
int length;
}SQList ;
void init(SqList*sq,int n){
if(!sq)return ;
if(n<=0){sq->length=0;return;}
sq->length=n;
sq->d=(int *)malloc(sizeof(int)*n);
}
void init_byarr(SQList *sq,int a[],int n)
{
if(!sq)return ;
if(n<=0){sq->length=0;return ;
sq.length=n;
sq->d=(int *)malloc (sizeof(int)*n);
for(int i=0;i<n;I++)sq->d[i]=a[i];
}
void Destory(SQList *sq)
{
if(!sq)return;
if(sq->d) free(sq->d);
sq->length=0;
}
void MergeSQList(SQList *a,SQList *b,SQList *c)
{
int i,j,k;
if(!a && !b) return ;
if(a &&a->length==0)
{
if(!b)return ;
if( b->length==0)return;
init_byarr(c,b,b->length);
return ;
}
if(b && b->length==0)
{
if(!a)return ;
if( a->length==0)return;
init_byarr(c,a->d,a->length);
return;
}
init(c,a->length+b->length);

for(i=0,j=0,k=0;i<a->length && j<a->length;)
{
if(a->d[i]>b->d[i])c->d[k++]=a.d[i++];else c->d[k++]=b->d[j++];
}

while(i<a->length) c->d[k++]=a->d[i++];
while(j<a->length) c->d[k++]=b->d[j++];
}
}

void PrintSQList(SQList* sq)
{
int i=0;
if(!sq)return;
while(i<sq-length)printf("%d ",sq->d[i]);
printf("\n");
}
int main()
{
int a[]={3,5,8,11};
int b[]={2,6,8,9,11,15,20};
SQList LA,LB,LC;
init_byarr(&LA,a,sizeof(a)/sizeof(a[0]));
init_byarr(&LB,b,sizeof(b)/sizeof(b[0]));
printf("LA=");
PrintSqList(&LA);
printf("LB=")
PrintSQList(&LB);
printf("Merge(LA,LB)=");
MergeSQList(&LA,&LB,&LC);
PrintSQList(&LC);
Destory(&LA);
Destory(&LB);
Destory(&LC);
return 0;
}

阅读全文

与先给出伪代码再写出源码相关的资料

热点内容
程序员职场第一课2正确的沟通 浏览:675
遇到不合法app应该怎么办 浏览:90
汇编程序编译后的文件 浏览:75
大智慧均线源码 浏览:371
单片机排阻的作用 浏览:213
滴滴金融app被下架如何还款 浏览:210
jpg转换成pdf免费软件 浏览:741
范里安pdf 浏览:443
伪造pdf 浏览:75
能删除android文件夹吗 浏览:446
LINUX使用V2ray 浏览:797
找人帮忙注册app推广是什么 浏览:820
独立服务器如何恢复初始化 浏览:11
优秀到不能被忽视pdf 浏览:316
导游程序员家政 浏览:586
22乘28的快速算法 浏览:338
软通动力程序员节2021 浏览:845
安卓系统如何卸载安装包 浏览:870
短信删除助手文件夹 浏览:688
java办公自动化 浏览:343