第三章 程序设计基础
java程序设计基础(第3版)实验指导答案 第三章

实验10import java.util.*;public class shiyan10{public static void main(String[] args){int a=0,b=0,c=0,max=0;Scanner reader=new Scanner(System.in);System.out.println("从键盘输入第一个整数");a=reader.nextInt();System.out.println("从键盘输入第二个整数");b=reader.nextInt();System.out.println("从键盘输入第三个整数");c=reader.nextInt();if(a>b)max=a;elsemax=b;if(c>max)max=c;System.out.println("最大的数是"+max);}}//在程序中输入三个整数,比较它们的大小,输出最大的数实验11public class shiyan11{public static void main(String[] args){int s=0;for(int i=0;i<100;i++){s=s+i;i++;}System.out.println("1+3+5+···+99="+s);}}//用for循环语句求1+3+5+···+99的值实验12import java.util.*;public class shiyan12{public static void main(String[] args){int a=0,i=1,s=0;Scanner reader=new Scanner(System.in);while(a<50||a>100){System.out.println("从键盘输入一个50~100的整数");a=reader.nextInt();}System.out.println("你输入的数是"+a);while(i<=a){s=s+i;i++;}System.out.println("1+2+3+···+"+a+"="+s);}}//编写从键盘输入一个范围在50~100的整数,如果不正确,则继续输入;然后求1到输入整数的累加实验13public class shiyan13{public static void main(String[]args){int i=100,s=0;do{s=s+i;i--;}while(i>0);System.out.println("100+99+98+···+2+1="+s);}}//用do-while语句求100+99+···+2+1的值实验14import java.util.*;public class shiyan14{public static void main(String[] args)int a=-1;Scanner reader=new Scanner(System.in);System.out.println("从键盘输入0~6的整数");a=reader.nextInt();while(a<0||a>6){System.out.println("输入错误");System.out.println("从键盘输入0~6的整数");a=reader.nextInt();}switch(a){case 0:System.out.println("今天是星期日");break;case 1:System.out.println("今天是星期一");break;case 2:System.out.println("今天是星期二");break;case 3:System.out.println("今天是星期三");break;case 4:System.out.println("今天是星期四");break;case 5:System.out.println("今天是星期五");break;case 6:System.out.println("今天是星期六");break;default:System.out.println("输入错误");break;}}}//让用户通过输入一个0~6的整数,显示今天是xingqijipublic class shiyan15{public static void main(String[] args){for(int i=1;i<10;i++){if(i==6)break;System.out.println(""+i);}System.out.println("\n显示完毕");for(int i=1;i<10;i++){if(i%2==0)continue;System.out.println(""+i);}System.out.println("\n显示完毕");}}//先显示1~5各个整数,然后再显示1~10的各个奇数。
《C语言程序设计》第三章 顺序结构程序设计

第三章顺序结构程序设计3.1 基本要求z掌握C语言中使用最多的一种语句——赋值语句的使用方法。
z掌握各种类型数据的输入输出的方法,并能正确使用各种格式转换符。
z掌握文件包含预处理命令#include。
3.2 内容小结本章主要介绍了一些为编写简单程序所必须的语句及基本的输入输出方法。
它们是C语言中5类基本语句:控制语句、函数调用语句、表达式语句、空语句和复合语句。
格式输入输出函数scanf( )和printf( ):在C语言中没有专用的输入输出语句,但可通过调用输入输出函数及C系统提供的9种格式字符,进行各种类型数据、各种格式的输入输出。
单个字符的输入输出函数getchar( )和putchar( )。
文件的包含:函数是C程序的构成单元,C程序中的函数调用可分为两类,本源程序中函数的调用和非本源程序中函数的调用,如是后者需用#include 文件包含预处理命令把该函数所在的源文件包含到本源文件中来。
3.3 典型例题分析z例题1 printf( )函数的功能main( ){ int a , b;a=10;b=25;printf(“a=%d b=%d\n”,a,b);printf(“a+b=%d\na-b=%d\n”,a+b,a-b);}运行结果:a=10 b=2529a+b=35a-b=-15从上例中可以看出,转换说明符不仅规定了输出格式,而且也决定了输出项在整个输出信息中的位置。
此外,从上例也可以看出,输出项还可以是运算表达式,这时输出的是它的运算结果值。
z例题2 scanf( )函数的功能main( ){ int x, y;printf(“Enter integer x:”);scanf(“%d”,&x);printf(“Enter integer y:”);scanf(“%d”,&y);printf(“x+y=%d\n”,x+y);printf(“x-y=%d\n”,x-y);}该程序是以人机对话方式给变量x和y赋值,它的某次运行情况如下所示:Enter integer x:16〈CR〉Enter integer y:25〈CR〉x+y=41x- y=-9其中划有下横线的部分是从键盘打入的字符,其中〈CR〉表示回车键。
第三章 Fortran基础、输入输出

第三章 Fortran程序设计基础、 输入输出及声明
二、Fortran的数据类型和数学表达式 1. Fortran的数据类型 (2)浮点数(Real) 浮点数的类型又分两种,单精度型和双精度型。 在个人计算 机中占用 有效位数 可记录的 最大数值 最小数值
单精度
双精度
32bits (4bytes) 64bits (8bytes)
Fortran是不区分大小写的语言。 指变量名和执行命令不区分,字符串是区分大小写的。
第三章 Fortran程序设计基础、 输入输出及声明
一、字符集和书面格式 2. 书面格式
Free Format(自由格式)
Fortran程序代码为以*.F90为扩展名的文件
Fixed Format(固定格式) Fortran程序代码扩展名为*.F或*.FOR的文件
使用2个bytes来存放整数的意思。
若在声明时没有特别赋值长短,通常编译器会默认使用长整型。
第三章 Fortran程序设计基础、 输入输出及声明
四、声明
1. 整数类型
若声明多个整型变量时,可以写在同一行,如 integer a,b,c 在Fortran中,声明变量时要注意的几个原则: (1)变量的名称以使用英文字母为原则,可以内含下划线或数字,但前缀必须 是英文字母。 (2)变量名字的长度,在77标准中最起码支持6个字符长,90标准中最起码支 持31个字符长。也就是说在Fortran77种变量长度最好是在1~6之间,在
1. 乘幂要连用两个星号,不能像手写的时候只要把数字写成上标 就行了,例如22必须写成2**2。 2. 乘号不能省略,手写的算式中(A+B)(C+D)和(A+B)*(C+D)是一 样的,但写程序时只容许第2种写法,所以像2*A也不能写成2A。 3. 除法用计算编写时没有下面的表示方法:
第三章 数据类型、常量、变量及表达式

例如,要将文本框 的前景颜色设置为红色, 例如,要将文本框Text1的前景颜色设置为红色,可以 的前景颜色设置为红色 使用下面的语句: 使用下面的语句: Text1.ForeColor=vbRed 这里的vbRed就是系统常量。这比直接使用16进制数来 就是系统常量。这比直接使用 进制数来 这里的 就是系统常量 设置要直观得多。 设置要直观得多。 又如,窗口状态属性 可取0,1,2三个值,对应 三个值, 又如,窗口状态属性WindowsState可取 可取 三个值 三种不同状态。 三种不同状态。 在程序中使用语句 Myform.WindowsState=vbMaxmized, , 将窗口极大化,显然要比使用语句 将窗口极大化,显然要比使用语句Myform.WindowsState=2 易于阅读和理解。 易于阅读和理解。
9
5、日期常量 、
日期( 字节的浮点数来存储, 日期 ( Date) 型数据按 字节的浮点数来存储 , 表示日 ) 型数据按8字节的浮点数来存储 期范围从公元100年1月1日~9999年12月31日,而时间范围从 年 月 日 期范围从公元 年 月 日 0:00:00~23:59:59。 。 一种在字面上可被认作日期和时间的字符, 一种在字面上可被认作日期和时间的字符,只要用号码符 括起来, “#”括起来,都可以作为日期型数值常量。 括起来 都可以作为日期型数值常量。 例:#09/02/99#、#January 4,1989#,#2002-5-4 14:30:00 、 , PM#都是合法的日期型常量。 都是合法的日期型常量。 都是合法的日期型常量 说明:当以数值表示日期数据时,整数部分代表日期, 说明:当以数值表示日期数据时,整数部分代表日期, 而小数部分代表时间;例如 表示 表示1899年12月31日。大于 的 而小数部分代表时间;例如1表示 年 月 日 大于1的 整数表示该日期以后的日期, 和小于 和小于0的整数表示该日期以 整数表示该日期以后的日期,0和小于 的整数表示该日期以 前的日期。 前的日期。
计算机接口技术课件 第三章 MCS-51单片机汇编语言与程序设计基础

例2:编制一段程序,要求在端口线 :编制一段程序,要求在端口线P1.0,P1.1上分别产生周期为 , 上分别产生周期为 200us和400us的方波.设单片机的外接频率为 的方波. 和 的方波 设单片机的外接频率为12MHz. . 分析:利用定时器产生方波,将定时器设置成为工作方式 , 分析:利用定时器产生方波,将定时器设置成为工作方式3,将寄 存器T0定时 定时100us,T1定时 定时200us,达到定时时间后引起中断,在中 存器 定时 , 定时 ,达到定时时间后引起中断, 断服务程序中各自将P1.0和P1.1引脚取反. 引脚取反. 断服务程序中各自将 和 引脚取反 定时器预设值的设置: 定时器预设值的设置: 单片机的晶体振荡频率为12MHz,计时器的计时频率为1MHz,机 单片机的晶体振荡频率为 ,计时器的计时频率为 , 器周期为1us. 定时 定时100us,因此寄存器 需要计数 需要计数100次 器周期为 . T0定时 ,因此寄存器T0需要计数 次 ,其预 置值为64H+1=9CH. T1定时 定时200us,因此寄存器 需要计数 需要计数200次 置值为 . 定时 ,因此寄存器T1需要计数 次 其预置值为C8H+1=38H. ,其预置值为 . 定时器T0,T1的工作方式设置: 的工作方式设置: 定时器 的工作方式设置 T0采用工作方式 ,因此 采用工作方式3,因此TMOD寄存器的值设置为 寄存器的值设置为#22H. 采用工作方式 寄存器的值设置为 . 定时器T0,T1的控制设置: 的控制设置: 定时器 的控制设置 打开T0, ;要求TCON寄存器的值设置为 寄存器的值设置为#50H. 打开 ,T1;要求 寄存器的值设置为 .
定义存储区域的大小. 6. DS —定义存储区域的大小. 定义存储区域的大小 例: ORG 0350H DS 3
《JAVA基础教程》第三章 Java程序设计基础

第三章Java程序设计基础3.1 Java编程概况现在你可以复习一下Java语言的背景材料,它的基本结构象C/C++,但任何用面向过程语言编写过程序的人都可以了解Java语言的大部分结构.3.1.1程序结构Java语言的源程序代码由一个或多个编译单元(compilation unit)组成,每个编译单元只能包含下列内容(空格和注释除外):*一个程序包语句(package statement )*入口语句(import statements) *类的声明(class declarations)*界面声明(interface declarations) 每个Java的编译单元可包含多个类或界面,但是每个编译单元最多只能有一个类或者界面是公共的。
Java的源程序代码被编译?reg;后,便产生了Java字节代码。
Java的字节代码由一?copy;不依赖于机器的指令组成,这?copy;指令能被Java的运行系统(runtimesystem)有效地解释。
Java的运行系统工作起来如同一台虚拟机。
在当前的Java实现中,每个编译单元就是一个以.java为后缀的文件。
每个编译单元有若干个类,编译后,每个类生成一个.class文件。
.class文件是Java虚拟机能够识别的代码。
3.1.2 注释三种类型如下://注释一行/*一行或多行注释*//**文档注释**/文档注释一般放在一个变量或函数定义?reg;前,指示在任何自动生成文档系统中调入。
这?copy;注释都是声明条目的描述.。
3.1.3 标识符变量,函数,类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符。
在Java语言里,标识符以字符或_,$开头,后面可以包含数字,标识符是大小写有区别的,没有长度限制。
有效的标识符 myname ict_network Hello _sys_path $bill例子:int a_number; char _onechar; float $bill;关键词 abstract continue for new switch boolean default goto null synchronized break do if package this byte double implements private threadsafe byvalue else import protected throw case extends instanceof public transient catch false int return true char final interface shorttry class finally long static void const float native super while 其它保留词以下单词被保留使用:cast future generic inner operator outer rest var3.1.4 数据类型Java使用五种基本类型:integer(整数),floating(浮点数),point(指针),Boolean(布尔变量),Character or String(字符或字符串)。
第三章 matlab程序设计基础

3. 程序控制流 3.多分支if语句
• 多分支if语句格式为:
if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组m+1
end
3. 程序控制流
• 例 输入一个字符,若为大写字母,则输出其后继字符,若为 小写字母,则输出其前导字符,若为数字字符则输出其对应 的数值,若为其他字符则原样输出。 – 程序如下:
c=input('请输入一个字符','s'); if c>='A' & c<='Z' disp(setstr(abs(c)+1)); elseif c>='a'& c<='z' disp(setstr(abs(c)-1)); elseif c>='0'& c<='9' disp(abs(c)-abs('0')); else disp(c); end
分类:脚本文件(Script File)和函数文件(Function File)。 主要区别。
1. M文件 脚本文件
没有输入和输出 由一系列指令组成 可在命令窗口直接运行 产生的所有变量存储在workspace中。 例 test.m。
1. M文件 例 脚本M文件实例
脚本M文件实例,查找10 ~100所有素数。
1. M文件
• 函数文件examp.m: function fout=charray(a,b,c) %举例说明函数文件名与函数名不同 if nargin==1 fout=a; elseif nargin==2 fout=a+b; elseif nargin==3 fout=(a*b*c)/2; end • 命令窗口: x=[1:3];y=[1;2;3]; examp(x) examp(x,y') examp(x,y,3)
《PowerBuilder 程序设计基础》第3章:应用程序对象

应用程序对象事件-1
Open:当一个应用执行时,即触发此事件,实际上就是程序的入口,一般 处理一些公用变量,公用对象,连接数据库,打开主窗口等操作; Close:当主窗口关闭后触发此事件,如果没有打开任何窗口,则在Open事 件后直接触发此事件,一般在这个事件中断开连接,清除变量等操作; Connectiongbegin:当连接开始时触发此事件,由connect 函数直接触发此 事件 Connectionend:当连接结束后触发此事件,由disconnect函数触发。 Idle: idle(xxx second)函数触发,既当系统处于等待状态指定秒数xxx后触 发该事件,一般处理如关闭系统,提醒用户等 Systemerror:当程序运行发生任何系统错误时触发该事件,一般处理记录 错误,提醒用户等操作。 常用事件:open,close,systemerror 常用事件
事务对象
事务对象(Transaction)是PowerBuider最重要的对象之一,它不 需要用户创建。PowerBuilder应用程序,无论是使用嵌入式SQL语句还 是数据窗口访问数据库,都必须通过事务对象。事务对象与数据库建立 联系后会驻留在内存中,与变量和结构十分相似,它拥有用于连接数据 库以及从数据库中反馈数据的所有信息。
PB 应用程序
事务对象
数据库
PowerBuider默认的事务对象是SQLCA
创建应用程序对象
主要步骤如下: 主要步骤如下:
1. 为应用程序创建文件夹 2. 在PB中创建工作组 3. 在工作组中创建具体的应用对象
操作示例 为学生成绩管理系统创建一个应用程序对象
应用程序对象属性-1General 属性卡
AppName:指定应用程序对象的名字。 DisplayName:指定应用程序显示的名字。 如果没有设置该属性,则缺省使用 “AppName”的属性值。 MicroHelpDefault:指定显示的微帮助信息 (显示在多文档窗口的状态条上),缺 省值为“Ready”。 DWMessageTitle:指定程序运行时 “DataApplication”消息对话框的标题 文本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.1编程序:用getchar函数读入两个字符给c1,c2,然后分别用putchar和printf函数输出这两个字符。
并思考以下问题:(1)变量c1,c2应定义为字符型或整型?或两者皆可?(2)要求输出C1和C2值的ASCII 码,应如何处理?用putchar函数还是printf函数?(3)整型变量与字符型变量是否在任何情况下都可以互相替代?1、#include<stdio.h>main(){char c1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);p rintf(“\n”);p rintf(“%c,%c\n”,c1,c2);}运行结果:请输入两个字符C1,C2:AB用putchar语句输出结果为:AB用printf语句输出结果为:A,B回答思考问题:C1和C2定义为字符型。
在printf函数中用%d格式符输出。
即:printf(“%d,%d\n”,C1,C2);字符变量在计算机内占一个字节,而整型变量占两个字节,因此整型变量在可输出字符的范围内(ASCII 码为0-255之间的字符)是可以与字符数据互相转换的。
如果整数在此范围外,则不能代替。
3.2#include "stdio.h"main(){int hh,mm,ss;int result;printf("input the time(hh:ss:mm):");scanf("%d:%d:%d",&hh,&mm,&ss);result=hh*3600+mm*60+ss;printf("%d",result);}3.3设某职工应发工资x元,试求各种票额钞票总张数最少的付款方案。
分析:可以从最大的票额(100元)开始,算出所需的张数,然后在剩下的部分算出较小票额的张数,直到最小票额(1元)。
解法一:#include "stdio.h"main(){int x,y;scanf("%d",&x); /* x为实发工资数*/y=x/100;printf("百元:%d\n",y); /*求百元票张数并显示*/x=x-100 * y; /*求剩余款项*/y=x/50; /*求五十元票张数并显示*/printf("五十元:%d\n",y);x=x-50 * y; /*求剩余款项*/y=x/20; /*求二十元票张数并显示*/printf("二十元:%d\n",y);x=x-20 * y; /*求剩余款项*/y=x/10;printf("十元:%d\n",y);x=x-10 * y; /*求剩余款项*/y=x/5;printf("五元:%d\n",y);x=x-5*y; /*求剩余款项*/y=x/2 ; /*求二元票张数并显示*/printf("二元:%d\n",y);x=x-2*y; /*求剩余款项*/y=x; /*求一元票张数并显示*/printf("一元:%d\n",y);}解法二:#include "stdio.h"main(){int x,y;scanf("%d",&x); /* x为实发工资数*/y=x/100; /*求百元票张数并显示*/ printf("百元:%d\n",y);y=x%100/50; /*求五十元票张数并显示*/ printf("五十元:%d\n",y);y=x%50/20; /*求二十元票张数并显示*/ printf("二十元:%d\n",y);y=x%50%20/10; /*求十元票张数并显示*/ printf("十元:%d\n",y);y=x%10/5; /*求五元票张数并显示*/printf("五元:%d\n",y);y=x%5/2; /*求二元票张数并显示*/printf("二元:%d\n",y);y=x%5%2; /*求一元票张数并显示*/ printf("一元:%d\n",y);}3.6解法一:#include"stdio.h"main(){int i=0;long a=1;scanf("%ld",&a);if(a==0) i=1;while(a!=0){a/=10;i++;}printf("%d\n",i);}解法二:#include "stdio.h"main(){int n1,n2,flag=0;scanf("%d",&n2);if(n2==0) flag=1;while(n2!=0){n1=n2%10;n2=n2/10;printf("%d",n1);flag++;}printf("\nwei shu shi:%d",flag);}3.7#include "stdio.h"main(){float p, w;printf("input w(kg):");scanf("%f",&w);if (w <= 50)p = w * 0.25;else if (w <= 100)p = 50 * 0.25 + (w - 50) * 0.35;else p = 50 * 0.25 + 50 * 0.35 + (w - 100) * 0.45;printf("fei yong shi %.3f:",p);}3.8思路:数字字符的ASCII值与此数值的关系。
若设该一位十进制数为a,则数字字符a的ASCII等于48+a。
#include "stdio.h"main(){int a,i;for(i=48;i<=57;i++){printf("%c\n",i);}}3.9#include "stdio.h"main(){int n1,n2,n3,n4,min;scanf("%d%d%d%d",&n1,&n2,&n3,&n4);min=n1;if(n2<min) min=n2;if(n3<min) min=n3;if(n4<min) min=n4;printf("small is:%d",min);}3.10/*判断已经过去的月份天数和当月的天数就可以了*/#include "stdio.h"main(){int year, month, day;int i;int totaldays = 0;/*初始化年,月,日*/int daysofmonth[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; printf("input year,month,day:");scanf("%d%d%d",&year,&month,&day);/*计算今年是否是闰年*/if ((year % 100 != 0 && year % 4 == 0 ) || year % 400 == 0){/*如果是闰年,则二月为29天*/daysofmonth[2] = 29;}/*将每月的天数相加*/for (i = 1; i < month; i++ ){totaldays += daysofmonth[i];}/*再加上本月的天数*/totaldays += day;printf("the day is:%d",totaldays); /*输出所在的天数*/}3.12解法一:/* 计算1!+2!+……+10! */#define N 10#include"stdio.h"main(){int i;long n=1,sum=0;for(i=1;i<=N;i++){n*=i;sum+=n;}printf("%ld\n",sum);}解法二:#include "stdio.h"main(){int i,j;long fac,sum=0;for(i=1;i<=10;i++){{fac=1;for(j=1;j<=i;j++)fac=fac*j;} /*计算阶成*/sum=sum+fac; /*计算阶成之和*/}printf("%ld",sum);}3.13#include "stdio.h"main(){int a,n,i,j,temp;long int sum=0;printf("input a,n :");scanf("%d%d",&a,&n);for(i=1;i<=n;i++){{ /*用于计算a的n次方*/temp=1;for(j=1;j<=i;j++)temp=temp*a;}sum=sum+temp; /*用于计算总和*/ }printf("result is :%ld",sum);}3.14参考答案1:#include <stdio.h>main(){float term, result = 1;int n;for (n = 2; n <= 100; n = n + 2){term = (float)( n * n)/(( n - 1) * ( n + 1));result = result * term;}printf("result = %f\n", 2*result);}参考答案2:#include <stdio.h>main(){float result = 1,term;int n;for (n = 1; n <= 50; n++){term = (float)(2*n*2*n)/((2*n-1)*(2*n+1));result = result * term;}printf("result = %f\n", 2*result);}3.15解法一:#include"stdio.h"#include "math.h"main(){long t=1;int i,n=1;float e=1;clrscr();while(1.0/fabs(t)>=1e-5) //判断条件{t=1; //初始化阶乘变量for(i=1;i<=n;i++) //计算阶乘t=t*i;e=e+1.0/t;n++; //为计算下一个阶乘做处理}printf("e=%f\n",e);}解法二:#include "stdio.h"#include "math.h"/*自定义函数,计算n! */long fact(int n){int i;long y=1;for(i=1;i<=n;i++)y*=i;return y;}main(){float e=1.0,t=1.0;int n=1,count=0;while(fabs(t)>=1e-5){e=e+t;n=n+1;t=1.0/fact(n);count++; /*计数*/}printf("e=%f\n",e);printf("counter:%d",count); }3.16#include "stdio.h"#include "math.h"/*定义求平方根函数*/float fsqrt(float a){ float x0, x1;x1=a/2;do{x0=x1;x1=0.5*(x0+a/x0);}while(fabs(x1-x0)>0.00001); return(x1);}/*主函数*/main(){ float a;scanf("%f", &a);printf("gen hao =%f\n", fsqrt(a)); }3.17 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。