当前位置:首页 » 编程软件 » 慧编程题目

慧编程题目

发布时间: 2022-04-12 22:50:20

A. 2008年小学奥林匹克竞赛答案

要多复习这些题!

牛吃草问题,简便计算,工程问题,浓度问题,植树问题,图形题,盈亏问题,行程问题,倒推法解题,比的应用题,逻辑推理,流水行船问题,找规律,平均数问题,差倍问题,算式谜,周期问题,还原问题,假设法解题等等。

你还可以买本奥数书看,在网上找试卷来做。

最后祝你考个好成绩!
一、整数处理(100分)(存盘程序名:T1)

电脑老师让小慧编程做一道题:输入一个正整数A(A≤100000000),如果A的个位数字是5,则统计A能被5整除多少次?否则,统计A当中含有多少个“0”?你能做吗?

例如:输入:125 输入:305160

输出:3 输出:2

程序:

program cs200801;

var

a:longint;{根据A的取值范围,采用长整型}

n:integer;

begin

readln(a);

n:=0;

if a mod 10=5 then

repeat

a:=a div 5;

n:=n+1;

until a mod 5<>0{统计A能被5带除多少次}

else begin

repeat

if a mod 10=0 then n:=n+1;

a:=a div 10;

until a<10;{统计A当中含有多少个0}

end;{采用if……then……else……结构,以符合题目的逻辑关系}

writeln(n);

readln

end.

二、新年同庆(100分)(存盘程序名:T2)

过年了,小慧与邻居邻居的小伙伴共n人相约一起放花炮:他们同时放响了第一个,随后n个人分别以a1、a2、a3、……、an秒的间隔继续放花炮,每人都放了b个。问:总共可听到多少声花炮响?

输入:n(n≤10)

a1 a2 …… an(每个数≤100,以空格相隔)

b(b≤100)

输出:一个整数(听到的花炮响声数)

例如:输入:3 输出:7

1 2 3

4

解题思路:

用数组的下标表示时间,元素的值不为0表示听到花炮响。用同一个数组来标示所有人放花炮的过程,同时响的花炮在数组中会被记录在同一元素中。最后统计数组中有数据的元素个数,就能得出共听到了多少声花炮响。这一方法还可以求出在某一时刻,同时有多少个花炮一起响。

程序:

program CS200802;

var

n,b,i,j,k,s:integer;

a:array[1..100] of integer;

c:array[1..10000] of integer;{用于记录花炮响。最多100个,间隔最大100,下标范围到10000可满足条件}

begin

readln(n);

for i:=1 to n do read(a[i]);{为保证输入格式,此处用read(),不用readln()}

readln(b);

c[1]:=n;{第一个花炮同时放响}

for i:=1 to n do begin{1至n代表放花炮的每个人}

k:=1;{第一个花炮响的时间}

for j:=2 to b do begin{2至b代表从第2个到第b个花炮}

k:=k+a[i];{依次得到花炮响的时间}

c[k]:=c[k]+1;{将花炮响时间记录到数组c中}

end;

end;

s:=0;

for i:=1 to 10000 do if c[i]<>0 then s:=s+1;{求一共听到多少次花炮响}

writeln(s);

{for i:=1 to 10000 do if c[i]<>0 then write(i:3);

writeln;

for i:=1 to 10000 do if c[i]<>0 then write(c[i]:3);}{输出所有花炮响的时刻及有多少花炮同时响}

readln

end.

三、文档编辑(100分)(存盘程序名:T3)

暑假当中,妈妈让小慧帮忙修改英文资料,英文中还有一些统计数据(统计数据都是正整数,而且其前、后都有空格)。妈妈说:如果文档结尾处有“end”,则应当删除,文中所有的统计数据都要加上一个正整数m。你能编程序完成小慧的任务吗?

输入:m

待修改的文档(字符串)

输出:修改后的文档(字符串)

例如:输入:13

There are 45 students in 32class.end

输出:There are 58 students in 32class.

解题思路:

这个题目由两个问题构成,一个是处理文档结尾处的“end”。一个是处理统计数据。

处理文档结尾处的“end”,需要判断出文档最后三个字母是不是“end”。先用length函数求出文档的长度,再函数截取文档最后三个字母和“end”进行比较。

处理统计数据关键在于获取空格的位置。利用pos函数可以取得空格的位置。

在处理整个文档时,先处理文档结尾处的“end”,然后一个一个单词进行处理。处理完一个单词就输出一个单词并从字符串中删除此单词及其后的空格。遇到统计数据则按题目要求处理。

需要注意的是,依题意,文档开头和结尾的数据不作统计数据处理。

程序:

program CS200803;

var

m,n:longint;

l,i,c,k:integer;

s,s1:string;

begin

readln(m);

readln(s);

l:=length(s);

if (s,l-2,3)='end' then delete(s,l-2,3);{删除文档结尾的'end'}

k:=pos(' ',s);{查找第一个空格的位置}

for i:=1 to k do write(s[i]);

delete(s,1,k);{输出并删除文档第一个单词。这一步主要是为了解决第一个单词是数据的情况,依题意,因前面没有空格,不做统计数据处理}

repeat

if (char(s[1])>=char('0')) and (char(s[1])<=char('9')) then{单词第一个字母是数字,则可能是统计数据}

begin

k:=pos(' ',s);

s1:=(s,1,k-1);

val(s1,n,c);{将此单词转换为数值}

if c=0 then{c=0则意味着转换过程中没有出错,单词完全由数字组成}

begin

write(n+m,' ');

delete(s,1,k);

end else begin

for i:=1 to k do write(s[i]);

delete(s,1,k);

end;

end else begin;{c<>0,意味着转换过程出错,单词不是统计数据}

k:=pos(' ',s);

for i:=1 to k do write(s[i]);

delete(s,1,k);

end;

until pos(' ',s)=0;{处理到最后一个空格为此,后面的不可能再为统计数据,因后面没有空格了}

write(s);{输出文档的剩余部分}

readln

end.

四、智力冲浪(100分)(存盘程序名:T4)

小慧准备参加湖南电视台举办的智力冲浪节目。规则如下:

冲浪者首先拥有m个快乐金球。冲浪当中设有n个游戏项目,每个游戏项目都必须在整分钟时开始,限时1分钟,而且都规定了最后完成期限(即:冲浪开始t分钟内必须完成)。如果一个游戏项目没按规定完成,则从冲浪者的快乐金球中扣掉一部分,不同游戏项目扣掉的金球数也不同。游戏项目的顺序自己安排。最终,赢得快乐金球数最多的选手胜出。

小慧非常想夺得冠军,请你计算出小慧最多能赢得多少个快乐金球?

输入:m n(m≤10000,n≤50)

n个整数(以空格相隔),分别表示每个游戏项目规定的完成期限(≤n)

n个整数(以空格相隔),分别表示每个游戏项目未完成时扣掉的金球数

输出:一个整数(最多能赢得快乐金球的个数)

例如:输入:10000 7

4 2 4 3 1 4 6

20 60 70 40 30 50 10

输出:9950

程序:

program CS200804;

var

m,n,i,j,t,time,s:integer;

a,b,c:array[1..50] of integer;

flag:boolean;

begin

readln(m,n);

for i:=1 to n do read(a[i]);

for i:=1 to n do read(b[i]);

for i:=1 to n do m:=m-b[i];

for i:=1 to n do

for j:=i+1 to n do begin

if a[i]>a[j] then begin

t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t;

end;end;{按照完成期限由短至长排序}

for i:=1 to n do

for j:=i+1 to n do begin

if (a[i]=a[j]) and (b[i]<b[j]) then begin

t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t;

end;end;{相同完成期限的按从大到小排序}

{for i:=1 to n do write(a[i]:3);writeln;

for i:=1 to n do write(b[i]:3);writeln;}{测试用,查看排序结果}

for i:=1 to n do

for j:=i to n do if (a[j]=i) and (b[j]>c[i]) then begin

c[i]:=b[j];a[j]:=0;b[j]:=0;

end;{将每一完成期限的第一个值,即金球数最多的值填入数组c,数组c的下标对应完成期限}

{for i:=1 to n do write(a[i]:3);writeln;

for i:=1 to n do write(b[i]:3);writeln;

for i:=1 to n do write(c[i]:3);writeln;}{测试用}

for i:=1 to n do

for j:=i+1 to n do begin

if (b[i]<b[j]) then begin

t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t;

end;end;{将剩余的数据从大到小排序}

for i:=1 to n do

for j:=i to n do if (a[j]>i) and (c[i]=0) then begin

c[i]:=b[j];a[j]:=0;b[j]:=0;

end;{将数据按照完成期限填入到数组C的空位中}

for i:=1 to n do

for j:=i+1 to n do begin

if a[i]>a[j] then begin

t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t;

end;end;{将剩余的数据按完成期限从短到长排序}

for i:=1 to n do

for j:=i to n do if (a[j]>i) and (b[j]>c[i]) then begin

c[i]:=b[j];a[j]:=0;b[j]:=0;

end;{用剩余的数据替换完成期限比它短,数值比它小的数}

{for i:=1 to n do write(a[i]:3);writeln;

for i:=1 to n do write(b[i]:3);writeln;

for i:=1 to n do write(c[i]:3);writeln;}{测试用}

for i:=1 to n do m:=m+c[i];

writeln(m);

readln;readln

end.

绩!

B. 关于python编程的一个问题,集体智慧编程

改成这样,就可以了 应该

frommathimportsqrt
defsim_distance(prefs,personal1,personal2):
si={}
foriteminprefs[personal1]:
ifiteminprefs[personal2]:
si[item]=1
iflen(si)==0:return0//这一句有问题!!
sum_of_squares=sum([pow(prefs[personal1][item]-prefs[personal2][item],2)
foriteminprefs[personal1]ifiteminprefs[personal2]])
return1/(1+sqrt(sum_of_squares))

reload未定义说明要么这个变量你木有声明,要么这个模块你木有导入

C. 大智慧编程DRAWTEXT(COND,PRICE,TEXT)问题

DRAWTEXT(A=1,REF(H,5),'5'),COLORYELLOW,ALIGN1;

D. 编程算法题:将两个数组a、b中相同的元素提取出来,保存在数组c中,不考虑空间复杂度。

有nlogn的,先对两个数组进行排序,然后再拿其中的一个数字去另一个数字中二分查找.

E. 编程该怎么学

0.引言

在ChinaITLAB导师制辅导中,笔者发现问得最多的问题莫过于"如何学习编程?Java该如何学习?"。类似的问题回答多了,难免会感觉厌烦,就萌生了写下本文的想法。到时候再有人问起类似的问题,我可以告诉他(她),请你去看看《Java学习之路》。拜读过台湾蔡学镛先生的《Java夜未眠》,有些文章如《Java学习之道》等让我们确实有共鸣,本文题目也由此而来。

软件开发之路是充满荆棘与挑战之路,也是充满希望之路。Java学习也是如此,没有捷径可走。梦想象《天龙八部》中虚竹一样被无崖子醍醐灌顶而轻松获得一甲子功力,是很不现实的。每天仰天大叫"天神啊,请赐给我一本葵花宝典吧",殊不知即使你获得了葵花宝典,除了受自宫其身之苦外,你也不一定成得了"东方不败",倒是成"西方失败"的几率高一点。

"不走弯路,就是捷径",佛经说的不无道理。

1.如何学习程序设计?

Java是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于Java,对C++等其他程序设计语言也一样管用。有编程高手认为,Java也好C也好没什么分别,拿来就用。为什么他们能达到如此境界?我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通。如何学习程序设计理所当然也有许多共通的地方。

1.1 培养兴趣

兴趣是能够让你坚持下去的动力。如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了。多关心一些行业趣事,多想想盖茨。不是提倡天天做白日梦,但人要是没有了梦想,你觉得有味道吗?可能像许多深圳本地农民一样,打打麻将,喝喝功夫茶,拜拜财神爷;每个月就有几万十几万甚至更多的进帐,凭空多出个"食利阶层"。你认为,这样有味道吗?有空多到一些程序员论坛转转,你会发现,他们其实很乐观幽默,时不时会冒出智慧的火花。

1.2 慎选程序设计语言

男怕入错行,女怕嫁错郎。初学者选择程序设计语言需要谨慎对待。软件开发不仅仅是掌握一门编程语言了事,它还需要其他很多方面的背景知识。软件开发也不仅仅局限于某几个领域,而是已经渗透到了各行各业几乎每一个角落。

如果你对硬件比较感兴趣,你可以学习C语言/汇编语言,进入硬件开发领域。如果你对电信的行业知识及网络比较熟悉,你可以在C/C++等之上多花时间,以期进入电信软件开发领域。如果你对操作系统比较熟悉,你可以学习C/Linux等等,为Linux内核开发/驱动程序开发/嵌入式开发打基础。

如果你想介入到应用范围最广泛的应用软件开发(包括电子商务电子政务系统)的话,你可以选择J2EE或.NET,甚至LAMP组合。每个领域要求的背景知识不一样。做应用软件需要对数据库等很熟悉。总之,你需要根据自己的特点来选择合适你的编程语言。

1.3 要脚踏实地,快餐式的学习不可取

先分享一个故事。

有一个小朋友,他很喜欢研究生物学,很想知道那些蝴蝶如何从蛹壳里出来,变成蝴蝶便会飞。有一次,他走到草原上面看见一个蛹,便取了回家,然后看着,过了几天以后,这个蛹出了一条裂痕,看见里面的蝴蝶开始挣扎,想抓破蛹壳飞出来。 这个过程达数小时之久,蝴蝶在蛹里面很辛苦地拼命挣扎,怎么也没法子走出来。这个小孩看着看着不忍心,就想不如让我帮帮它吧,便随手拿起剪刀在蛹上剪开,使蝴蝶破蛹而出。 但蝴蝶出来以后,因为翅膀不够力,变得很臃肿,飞不起来。

这个故事给我们的启示是:欲速则不达。

浮躁是现代人最普遍的心态,能怪谁?也许是贫穷落后了这么多年的缘故,就像当年的大跃进一样,都想大步跨入共产主义社会。现在的软件公司、客户、政府、学校、培训机构等等到处弥漫着浮躁之气。就拿笔者比较熟悉的深圳IT培训行业来说吧,居然有的打广告宣称"参加培训,100%就业",居然报名的学生不少,简直是藐视天下程序员。社会环境如是,我们不能改变,只能改变自己,闹市中的安宁,弥足珍贵。许多初学者C++/Java没开始学,立马使用VC/JBuilder,会使用VC/JBuilder开发一个Hello World程序,就忙不迭的向世界宣告,"我会软件开发了",简历上也大言不惭地写上"精通VC/Java"。结果到软件公司面试时要么被三两下打发走了,要么被驳的体无完肤,无地自容。到处碰壁之后才知道捧起《C++编程思想》《Java编程思想》仔细钻研,早知如此何必当初呀。

"你现在讲究简单方便,你以后的路就长了",好象也是佛经中的劝戒。

1.4 多实践,快实践

彭端淑的《为学一首示子侄》中有穷和尚与富和尚的故事。

从前,四川边境有两个和尚,一个贫穷,一个有钱。一天,穷和尚对富和尚说:"我打算去南海朝圣,你看怎么样?"富和尚说:"这里离南海有几千里远,你靠什么去呢?"穷和尚说:"我只要一个水钵,一个饭碗就够了。"富和尚为难地说:"几年前我就打算买条船去南海,可至今没去成,你还是别去吧!" 一年以后,富和尚还在为租赁船只筹钱,穷和尚却已经从南海朝圣回来了。

这个故事可解读为:任何事情,一旦考虑好了,就要马上上路,不要等到准备周全之后,再去干事情。假如事情准备考虑周全了再上路的话,别人恐怕捷足先登了。软件开发是一门工程学科,注重的就是实践,"君子动口不动手"对软件开发人员来讲根本就是错误的,他们提倡"动手至上",但别害怕,他们大多温文尔雅,没有暴力倾向,虽然有时候蓬头垢面的一副"比尔盖茨"样。有前辈高人认为,学习编程的秘诀是:编程、编程、再编程,笔者深表赞同。不仅要多实践,而且要快实践。我们在看书的时候,不要等到你完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让你更快更牢固的掌握知识点。

1.5 多参考程序代码

程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。许多人被《仙剑奇侠传》中凄美的爱情故事感动,悲剧的结局更有一种缺憾美。为什么要以悲剧结尾?据说是因为写《仙剑奇侠传》的程序员失恋而安排了这样的结局,他把自己的感觉融入到游戏中,却让众多的仙剑迷扼腕叹息。

多多参考代码例子,对Java而言有参考文献[4.3],有API类的源代码(JDK安装目录下的src.zip文件),也可以研究一些开源的软件或框架。

1.6 加强英文阅读能力

对学习编程来说,不要求英语, 但不能一点不会,。最起码像Java API文档(参考文献[4.4])这些东西还是要能看懂的,连猜带懵都可以;旁边再开启一个"金山词霸"。看多了就会越来越熟练。在学Java的同时学习英文,一箭双雕多好。另外好多软件需要到英文网站下载,你要能够找到它们,这些是最基本的要求。英语好对你学习有很大的帮助。口语好的话更有机会进入管理层,进而可以成为剥削程序员的"周扒皮"。

1.7 万不得已才请教别人

笔者在ChinaITLab网校的在线辅导系统中解决学生问题时发现,大部分的问题学生稍做思考就可以解决。请教别人之前,你应该先回答如下几个问题。

你是否在google中搜索了问题的解决办法?

你是否查看了Java API文档?

你是否查找过相关书籍?

你是否写代码测试过?

如果回答都是"是"的话,而且还没有找到解决办法,再问别人不迟。要知道独立思考的能力对你很重要。要知道程序员的时间是很宝贵的。

1.8 多读好书

书中自有颜如玉。比尔?盖茨是一个饱读群书的人。虽然没有读完大学,但九岁的时候比尔?盖茨就已经读完了所有的网络全书,所以他精通天文、历史、地理等等各类学科,可以说比尔?盖茨不仅是当今世界上金钱的首富,而且也可以称得上是知识的巨富。

笔者在给学生上课的时候经常会给他们推荐书籍,到后来学生实在忍无可忍开始抱怨,"天呐,这么多书到什么时候才能看完了","学软件开发,感觉上了贼船"。这时候,我的回答一般是,"别着急,什么时候带你们去看看我的书房,到现在每月花在技术书籍上的钱400元,这在软件开发人员之中还只能够算是中等的",学生当场晕倒。(注:这一部分学生是刚学软件开发的)

对于在Java开发领域的好书在笔者另外一篇文章中会专门点评。该文章可作为本文的姊妹篇。
1.9 使用合适的工具

工欲善其事必先利其器。软件开发包含各种各样的活动,需求收集分析、建立用例模型、建立分析设计模型、编程实现、调试程序、自动化测试、持续集成等等,没有工具帮忙可以说是寸步难行。工具可以提高开发效率,使软件的质量更高BUG更少。组合称手的武器。到飞花摘叶皆可伤人的境界就很高了,无招胜有招,手中无剑心中有剑这样的境界几乎不可企及。在笔者另外一篇文章中会专门阐述如何选择合适的工具(该文章也可作为本文的姊妹篇)。

2.软件开发学习路线

两千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒进也不保守并非中庸之道,而是找寻学习软件开发的正确路线与规律。

从软件开发人员的生涯规划来讲,我们可以大致分为三个阶段,软件工程师→软件设计师→架构设计师或项目管理师。不想当元帅的士兵不是好士兵,不想当架构设计师或项目管理师的程序员也不是好的程序员。我们应该努力往上走。让我们先整理一下开发应用软件需要学习的主要技术。

A.基础理论知识,如操作系统、编译原理、数据结构与算法、计算机原理等,它们并非不重要。如不想成为计算机科学家的话,可以采取"用到的时候再来学"的原则。

B.一门编程语言,现在基本上都是面向对象的语言,Java/C++/C#等等。如果做WEB开发的话还要学习HTML/JavaScript等等。

C.一种方法学或者说思想,现在基本都是面向对象思想(OOA/OOD/设计模式)。由此而衍生的基于组件开发CBD/面向方面编程AOP等等。

D.一种关系型数据库,ORACLE/SqlServer/DB2/MySQL等等

E.一种提高生产率的IDE集成开发环境JBuilder/Eclipse/VS.NET等。

F.一种UML建模工具,用ROSE/VISIO/钢笔进行建模。

G.一种软件过程,RUP/XP/CMM等等,通过软件过程来组织软件开发的众多活动,使开发流程专业化规范化。当然还有其他的一些软件工程知识。

H.项目管理、体系结构、框架知识。

正确的路线应该是:B→C→E→F→G→H。

还需要补充几点:

1).对于A与C要补充的是,我们应该在实践中逐步领悟编程理论与编程思想。新技术虽然不断涌现,更新速度令人眼花燎乱雾里看花;但万变不离其宗,编程理论与编程思想的变化却很慢。掌握了编程理论与编程思想你就会有拨云见日之感。面向对象的思想在目前来讲是相当关键的,是强势技术之一,在上面需要多投入时间,给你的回报也会让你惊喜。

2).对于数据库来说是独立学习的,这个时机就由你来决定吧。

3).编程语言作为学习软件开发的主线,而其余的作为辅线。

4).软件工程师着重于B、C、E、D;软件设计师着重于B、C、E、D、F;架构设计师着重于C、F、H。

3.如何学习Java?

3.1 Java学习路线

3.1.1 基础语法及Java原理

基础语法和Java原理是地基,地基不牢靠,犹如沙地上建摩天大厦,是相当危险的。学习Java也是如此,必须要有扎实的基础,你才能在J2EE、J2ME领域游刃有余。参加SCJP(SUN公司认证的Java程序员)考试不失为一个好方法,原因之一是为了对得起你交的1200大洋考试费,你会更努力学习,原因之二是SCJP考试能够让你把基础打得很牢靠,它要求你跟JDK一样熟悉Java基础知识;但是你千万不要认为考过了SCJP就有多了不起,就能够获得软件公司的青睐,就能够获取高薪,这样的想法也是很危险的。获得"真正"的SCJP只能证明你的基础还过得去,但离实际开发还有很长的一段路要走。
3.1.2 OO思想的领悟

掌握了基础语法和Java程序运行原理后,我们就可以用Java语言实现面向对象的思想了。面向对象,是一种方法学;是独立于语言之外的编程思想;是CBD基于组件开发的基础;属于强势技术之一。当以后因工作需要转到别的面向对象语言的时候,你会感到特别的熟悉亲切,学起来像喝凉水这么简单。

使用面向对象的思想进行开发的基本过程是:

●调查收集需求。

●建立用例模型。

●从用例模型中识别分析类及类与类之间的静态动态关系,从而建立分析模型。

●细化分析模型到设计模型。

●用具体的技术去实现。

●测试、部署、总结。

3.1.3 基本API的学习

进行软件开发的时候,并不是什么功能都需要我们去实现,也就是经典名言所说的"不需要重新发明轮子"。我们可以利用现成的类、组件、框架来搭建我们的应用,如SUN公司编写好了众多类实现一些底层功能,以及我们下载过来的JAR文件中包含的类,我们可以调用类中的方法来完成某些功能或继承它。那么这些类中究竟提供了哪些方法给我们使用?方法的参数个数及类型是?类的构造器需不需要参数?总不可能SUN公司的工程师打国际长途甚至飘洋过海来告诉你他编写的类该如何使用吧。他们只能提供文档给我们查看,Java DOC文档(参考文献4.4)就是这样的文档,它可以说是程序员与程序员交流的文档。

基本API指的是实现了一些底层功能的类,通用性较强的API,如字符串处理/输入输出等等。我们又把它成为类库。熟悉API的方法一是多查Java DOC文档(参考文献4.4),二是使用JBuilder/Eclipse等IDE的代码提示功能。

3.1.4 特定API的学习

Java介入的领域很广泛,不同的领域有不同的API,没有人熟悉所有的API,对一般人而言只是熟悉工作中要用到的API。如果你做界面开发,那么你需要学习Swing/AWT/SWT等API;如果你进行网络游戏开发,你需要深入了解网络API/多媒体API/2D3D等;如果你做WEB开发,就需要熟悉Servlet等API啦。总之,需要根据工作的需要或你的兴趣发展方向去选择学习特定的API。

3.1.5 开发工具的用法

在学习基础语法与基本的面向对象概念时,从锻炼语言熟练程度的角度考虑,我们推荐使用的工具是Editplus/JCreator+JDK,这时候不要急于上手JBuilder/Eclipse等集成开发环境,以免过于关注IDE的强大功能而分散对Java技术本身的注意力。过了这一阶段你就可以开始熟悉IDE了。

程序员日常工作包括很多活动,编辑、编译及构建、调试、单元测试、版本控制、维持模型与代码同步、文档的更新等等,几乎每一项活动都有专门的工具,如果独立使用这些工具的话,你将会很痛苦,你需要在堆满工具的任务栏上不断的切换,效率很低下,也很容易出错。在JBuilder、Eclipse等IDE中已经自动集成编辑器、编译器、调试器、单元测试工具JUnit、自动构建工具ANT、版本控制工具CVS、DOC文档生成与更新等等,甚至可以把UML建模工具也集成进去,又提供了丰富的向导帮助生成框架代码,让我们的开发变得更轻松。应该说IDE发展的趋势就是集成软件开发中要用到的几乎所有工具。

从开发效率的角度考虑,使用IDE是必经之路,也是从一个学生到一个职业程序员转变的里程碑。

Java开发使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等几种;而Eclipse、JBuilder占有的市场份额是最大的。JBuilder在近几年来一直是Java集成开发环境中的霸主,它是由备受程序员尊敬的Borland公司开发,在硝烟弥漫的Java IDE大战中,以其快速的版本更新击败IBM的Visual Age for Java等而成就一番伟业。IBM在Visual Age for Java上已经无利可图之下,干脆将之贡献给开源社区,成为Eclipse的前身,真所谓"柳暗花明又一村"。浴火重生的Eclipse以其开放式的插件扩展机制、免费开源获得广大程序员(包括几乎所有的骨灰级程序员)的青睐,极具发展潜力。

3.1.6 学习软件工程

对小型项目而言,你可能认为软件工程没太大的必要。随着项目的复杂性越来越高,软件工程的必要性才会体现出来。参见"软件开发学习路线"小节。

3.2学习要点

确立的学习路线之后,我们还需要总结一下Java的学习要点,这些要点在前文多多少少提到过,只是笔者觉得这些地方特别要注意才对它们进行汇总,不要嫌我婆婆妈妈啊。

3.2.1勤查API文档

当程序员编写好某些类,觉得很有成就感,想把它贡献给各位苦难的同行。这时候你要使用"Javadoc"工具(包含在JDK中)生成标准的Java DOC文档,供同行使用。J2SE/J2EE/J2ME的DOC文档是程序员与程序员交流的工具,几乎人手一份,除了菜鸟之外。J2SE DOC文档官方下载地址:http://Java.sun.com/j2se/1.5.0/download.jsp,你可以到google搜索CHM版本下载。也可以在线查看:http://Java.sun.com/j2se/1.5.0/docs/api/index.html。

对待DOC文档要像毛主席语录,早上起床念一遍,吃饭睡觉前念一遍。

当需要某项功能的时候,你应该先查相应的DOC文档看看有没有现成的实现,有的话就不必劳神费心了直接用就可以了,找不到的时候才考虑自己实现。使用步骤一般如下:

●找特定的包,包一般根据功能组织。

●找需要使用类,类命名规范的话我们由类的名字可猜出一二。

●选择构造器,大多数使用类的方式是创建对象。

●选择你需要的方法。

3.2.2 查书/google->写代码测试->查看源代码->请教别人

当我们遇到问题的时候该如何解决?

这时候不要急着问别人,太简单的问题,没经过思考的问题,别人会因此而瞧不起你。可以先找找书,到google中搜一下看看,绝大部分问题基本就解决了。而像"某些类/方法如何使用的问题",DOC文档就是答案。对某些知识点有疑惑是,写代码测试一下,会给你留下深刻的印象。而有的问题,你可能需要直接看API的源代码验证你的想法。万不得已才去请教别人。

3.2.3学习开源软件的设计思想

Java领域有许多源代码开放的工具、组件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive论坛、PetStore宠物店等等多如牛毛。这些可是前辈给我们留下的瑰宝呀。入宝山而空手归,你心甘吗?对这些工具、框架进行分析,领会其中的设计思想,有朝一日说不定你也能写一个XXX框架什么的,风光一把。分析开源软件其实是你提高技术、提高实战能力的便捷方法。

3.2.4 规范的重要性

没有规矩,不成方圆。这里的规范有两层含义。第一层含义是技术规范,多到http://www.jcp.org下载JSRXXX规范,多读规范,这是最权威准确最新的教材。第二层含义是编程规范,如果你使用了大量的独特算法,富有个性的变量及方法的命名方式;同时,没给程序作注释,以显示你的编程功底是多么的深厚。这样的代码别人看起来像天书,要理解谈何容易,更不用说维护了,必然会被无情地扫入垃圾堆。Java编码规范到此查看或下载http://Java.sun.com/docs/codeconv/ ,中文的也有,啊,还要问我在哪,请参考3.2.2节。

3.2.5 不局限于Java

很不幸,很幸运,要学习的东西还有很多。不幸的是因为要学的东西太多且多变,没时间陪老婆家人或女朋友,导致身心疲惫,严重者甚至导致抑郁症。幸运的是别人要抢你饭碗绝非易事,他们或她们需要付出很多才能达成心愿。

Java不要孤立地去学习,需要综合学习数据结构、OOP、软件工程、UML、网络编程、数据库技术等知识,用横向纵向的比较联想的方式去学习会更有效。如学习Java集合的时候找数据结构的书看看;学JDBC的时候复习数据库技术;采取的依然是"需要的时候再学"的原则。

4.结束语

需要强调的是,学习软件开发确实有一定的难度,也很辛苦,需要付出很多努力,但千万不要半途而废。本文如果能对一直徘徊在Java神殿之外的朋友有所帮助的话,笔者也欣慰了。哈哈,怎么听起来老气横秋呀?没办法,在电脑的长期辐射之下,都快变成小老头了。最后奉劝各位程序员尤其是MM程序员,完成工作后赶快远离电脑,据《胡播乱报》报道,电脑辐射会在白皙的皮肤上面点缀一些小黑点,看起来鲜艳无比……

F. 请教大智慧编程的问题: 条件:1、前半小时价格有80%的时间在均价线之上;2、开盘价在-1%—2%之间;

这不是编程,只是编选股公式。
个人觉得大智慧对公式的适应性太差,通达信其次,同花顺最好。比如我把同样十个公式,放在大智慧中选股可能全都没有用;放到通达信中也许有五六个公式生效能正常选股;如果输入到同花顺里面,只要编写正确,十个公式十个都能用,全都能正常选股。大智慧的优势只是在信息及软件自动分析上面。

我现在用两个软件:中信建投通达信分析技术行情,长城通达信公式选股。技术分析嘛,不需要用大智慧。

当前的公式还不能分析日分时数据,只能以日价格及交易量的变化来选股, 是无法根据当天内分时价格变化来选股的。 以前我也同样的想法,找过有多人请教,结果都一样。或许真的要找编程人员才能解决了。

G. 人工智能的编程和一般的计算机编程有什么不同

人工智能编程语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言。能够用它来编写程序求解非数值计算、知识处理、推理、规划、决策等具有智能的各种复杂问题。

人工智能编程语言有一个共同的特点,那就是这些语言都是面向所要解决的问题、结合知识表示、完全脱离当代计算机的诺依曼结构特性而独立设计的;它们又处于比面向过程的高级编程语言更高的抽象层次。因此,用这些语言编写的程序,在现代计算机环境中,无论是解释或编译执行,往往效率很低。尤其当程序规模很大、很复杂时,将浪费大量系统资源(主要指处理机占用时间和存储空间占用量),使系统性能下降到难以容忍的地步。

H. 全国大学生无人机大赛的题目有那些

全国大学生无人机大赛的题目有个人赛、团体赛、团体接力赛、第一视角穿越赛、编程挑战赛、空中格斗赛等。

全国青少年无人机大赛由中国航空学会主办,是青少年教育无人机领域的领先的全国性比赛。活动旨在传承航空精神,培养航空创新后备人才,激发青少年探索航空未来的创造力与想象力,从而实现中国梦、航空梦。

作为全国青少年无人机及航模STEAM创客教育体系的重要组成部分,从2017年起,由中国航空学会联合有关单位每年举办大赛,并设立分站赛和地区选拔赛。在此基础上,将联合有关国家举办国际青少年无人机大赛。获奖学生将获得相应人才积分。

大赛面自2017年举办首届比赛以来,至今已经举办四届,规模和质量都逐届稳定提高。共有来自全国26个省、自治区、直辖市的超过3500人次参赛。

加上各地省赛、市赛,总参与人次上万人次。通过四年四届的辛勤耕耘,全国青少年无人机大赛成为我国青少年无人机教育领域的一面旗帜,也是国际上首个覆盖小学、初中、高中、大学全学龄段的无人机专业赛事。

中国航空学会紧盯国家政策导向,在教育部大力推广人工智能时代编程教育的大背景下,及时添加赛事内容,加入了大量机器人编程相关的人工智能的比赛内容,使整个大赛体系更智慧,更创意、更有趣,受到了广大师生的热烈欢迎。

全国青少年无人机大赛将以梦为马,砥砺前行。在致力打造知名赛事活动的同时,更加注重提升青少年自主创新能力和培养青少年团队协作精神,引导更多青少年关注科学、热爱科学、走近科学,成为青少年在探索科学道路上的一盏明灯。



I. 怎么学编程啊

如何学习编程,主要有自学和报班两种途径,至于需不需要报班,可以结合自己的实际情况来进行判断,这里简单介绍下。

学编程的注意点:

1、要确定好自己一定能学下去,不能是三分钟的热度,只是学个热闹,这样永远没有办法学的会。

2、一定要打好基础,刚开始学习编程的时候可能会很慢,感觉自己没学会啥,这可能是因为正处于打基础的阶段,只有把基础打好,未来才可以学得更好。

3、要注意实践操作,理论知识学得再多,如果不能实际的运用,还是等于0的。

自学还是报班:

1、如果你可以规划好自己的学习过程,坚持一步步向前走,那么自学当然是很好的。

2、如果你没人监督就学不进去,也没有自己的学习规划,那么还是建议你报班,可以少走冤枉路。

不管是自学还是报班,学编程的要注意的点是相差不大的,希望我的回答对你有帮助!

J. 已知三角形三边 求面积

根据海伦公式求:

已知三角形的三边分别是a、b、c,求面积。

先算出周长的一半p=1/2(a+b+c),然后根据公式,代入数值即可。


热点内容
苹果存储空在哪里 发布:2024-05-08 10:37:16 浏览:641
python获取系统时间 发布:2024-05-08 10:32:24 浏览:634
浏览器上传文件 发布:2024-05-08 10:31:17 浏览:90
编程强度高 发布:2024-05-08 10:24:59 浏览:279
电脑如何查看型号和配置 发布:2024-05-08 10:19:56 浏览:421
大地电子保单pdf密码多少 发布:2024-05-08 09:54:21 浏览:860
ftp扫描免费主机 发布:2024-05-08 09:50:05 浏览:339
听说ftpmp4 发布:2024-05-08 09:39:51 浏览:475
退货上传图片 发布:2024-05-08 09:38:38 浏览:79
linux命令安装rpm 发布:2024-05-08 09:37:37 浏览:643