求这个图片的你爸爸作者的微博名微博名!

var sogou_ad_id=731545;
var sogou_ad_height=90;
var sogou_ad_width=980;13460人阅读
c++ & stl(29)
由于这个问题找的人还是非常多,所以今天我把它从我原来的blog上转过来,希望对大家有所帮助。
这篇文章是我去年的时候写的,那时候还没用PHP,所以闰年的计算方法没有PHP的,今天在这里补充上这段代码,$y代表年份:
第一种算法:
if($y%400==0 || ($y%4==0 && $y%100!=0)){echo "是";}else{echo "不是";}
第二种算法:
if($y%4==0 && ($y%400==0 || $y%100!=0)){echo "是";}else{echo "不是";}
重看自己写的文章,发现自己总结的两条判断条件有点模糊,可能不看程序还真看不出来,那我就再总结一下。
判断某一年是不是闰年的条件是:能被4整除且不可以被100整除,或者能被400整除。
以下是原来的文章
闰年的计算方法,一个严重的问题!
yoyo 发表于
11:22:27今天在看JAVA的一个计算闰年的程序的时候,看到下面的一句话:判断闰年的条件是“能被4整除且不能被100整除,或者能被100
整除,同时也能被400整除”。看到这个判断的方法后我懵了,主要原因是它和我记忆中的判断方法完全不一样,我记忆中的方法是“能被4整除即可”,这是我
小学时候学的,而且我已经确认,我们那个时候一起上学的都是这么被教的,更让我感到惊讶的是很多其他地方的人也这么认为,可以看出这是一个普遍现象,我感
觉可能是教科书错了或者是教科书上没有讲计算方法。如果是教科书上也这么说的话,那可是个大问题了。对于现在的很多人并没有意识到自己的计算方法是错误
的,因为2000年恰好是闰年,并且如果不是刻意的去准确的算哪一年是不是闰年并且和准确的万年历做对比也很难碰到算错的情况。因为这些特殊的年份比较
少,你可以看1900年和2100年就不是闰年。这是一个说小就小,说大就大的问题,不经常和日期时间打交道的人就认为也无所谓,毕竟有生之年也碰不到这
个错误了(2100不是闰年)。但是经常和时间打交道的人就会碰到这个问题了,而且可能会出现大错误。而且对于我这种经常写程序的人也是要碰到这个问题
的。对于这个简单的问题,到现在才纠正,我感到很遗憾……最后总结一下计算的条件:
1.能被4整除且不可以被100整除;
2.能被400整除。
满足任何一个条件都可以。[经过我在各大论坛问帖子调查,发现有一大部分人是把“能被4整除”当作判断条件的,此调查说明这个问题的普遍性]今天在CSDN上关于这个问题的讨论小有收获,有人给出的算法是0==y%4 && (0!=y%100 || 0==y%400),我不知道这个表达式对不对,但是我知道他的逻辑是对的。
现在我用VBScript写出两种算法的程序:
第一种算法:
if y mod 400 = 0 or (y mod 4=0 and y mod 100&&0) thenmsgbox "是"elsemsgbox "不是"end if
第二种算法:
if y mod 4 = 0 and (y mod 400 = 0 or y mod 100 && 0) thenmsgbox "是"elsemsgbox "不是"end if
感觉第二种算法更锻炼算法。
——————————————————————————–
最近在学习JAVA,忽然又看到了这个问题,这里补充上JAVA的代码:
import java.io.*;public class AppCharInOut{public static void main(String[] args){String s="";int n=0;try{BufferedReader in =new BufferedReader(new InputStreamReader(System.in));System.out.print("请输入一个年份:");s=in.readLine();n=Integer.parseInt(s);}catch(IOException e){}if ((n%4==0 && n%100!=0) || (n%400==0))//判断闰年的条件{System.out.println(s+"年是闰年");}else{System.out.println(s+"年不是闰年");}}}
以下是原文章的评论内容
Re:闰年的计算方法,一个严重的问题!
yoyo发表评论于 20:48:51以下引用aaa(游客)在
10:39:22发表的评论:今年是2006年,闰7月,是闰年吗?但是2006不能被4或400整除,为什么?这里说的闰年指的是公历闰年,即二月是不
是29天或者说一年是不是366天,而不是说的农历的闰年。Re:闰年的计算方法,一个严重的问题!
aaa(游客)发表评论于 10:39:22今年是2006年,闰7月,是闰年吗?但是2006不能被4或400整除,为什么?Re:闰年的计算方法,一个严重的问题!
梅子(游客)发表评论于 20:29:45
我终于从这儿学到了公历与农历对应的时间。那就是19年为一周期。谢谢。
Re:闰年的计算方法,一个严重的问题!
yoyo(游客)发表评论于 10:39:01
借用从blueidea上的回复供浏览的朋友参考:
在公历(格里历)纪年中,有闰日的年份叫闰年,一般年份365天,闰年为366天。由于地球绕太阳运行周期为365天5小时48分46秒(合
365.24219天)即一回归年,公历把一年定为365天。所余下的时间约为四年累计一天,加在二月里,所以平常年份每年365天,二月为28天,闰年
为366天,二月为29天。因此,每400年中有97个闰年,闰年在2月末增加一天,闰年366天。闰年的计算方法:公元纪年的年数可以被四整除,即为闰
年;被100整除而不能被400整除为平年;被100整除也可被400整除的为闰年。如2000年是闰年,而1900年不是。
下面是一个计算公历闰年的例子:
s = InputBox(”请输入年份:”)
n = Val(s)
If n Mod 400 = 0 Or (n Mod 4 = 0 And n Mod 100 && 0) Then
MsgBox s + “是闰年!”
中国旧历农历纪年中,有闰月的一年称为闰年。一般年份为12个月,354或355天,闰年则为13个月,383或384天。农历作为阴阳历的一种,
每月的天数依照月亏而定,一年的时间以12个月为基准;为了合上地球围绕太阳运行周期即回归年,每隔2到4年,增加一个月,增加的这个月为闰月,因此农历
的闰年为 13个月。
农历没有第十三月的称谓,闰月按照历法规则,排放在从二月到十月的过后重复同一个月,重复的这个月为闰月,如四月过后的闰月称为闰四月。
农历闰年闰月的推算,3年一闰,5年二闰,19年七闰;农历基本上19年为一周期对应于公历同一时间。如公历的日、日和日这个日子,都是闰四月初五。
公历1982年至2042年与农历闰年闰月对照表
公历所在月份 闰月(初一日) 干支年
日 闰四月小 壬戊年
日 闰十月大 甲子年
日 闰六月大 丁卯年
日 闰五月大 庚午年
日 闰三月大 癸酉年
日 闰八月大 乙亥年
日 闰五月小 戊寅年
日 闰四月大 辛巳年
日 闰二月大 甲申年
日 闰七月大 丙戊年
日 闰五月大 己丑年
日 闰四月小 壬辰年
日 闰九月小 甲午年
日 闰六月大 丁酉年
日 闰四月小 庚子年
日 闰二月大 癸卯年
日 闰六月大 己巳年
日 闰五月大 戊申年
日 闰三月大 辛亥年
日 闰七月大 癸丑年
日 闰六月小 丙辰年
日 闰五月大 己未年
日 闰二月大 壬戊年// dahuilangc//根据上面的文章自己实现了个c++的BOOL LeapYear(int nYear) { &&&& return (nYear % 4 == 0) ^ (nYear % 400 == 0) ^ (nYear % 100 == 0); } 收集于:淘宝店 饰品 *木雕系列*:檀木、黄杨木、桃木发簪 樟木壁挂 佛珠 车饰 摆件朋友,有空来看看,喜欢的朋友请收藏
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:133192次
积分:1954
积分:1954
排名:第17950名
原创:44篇
转载:91篇
评论:26条
(1)(2)(10)(11)(14)(18)(45)(11)(2)(9)(12)欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 8067 人关注过本帖
标题:判定 2000---2500 年中的每一年是否为闰年,并将结果输出
为什么结果从 ...
等 级:新手上路
&&已结贴√
&&问题点数:20&&回复次数:10&&&
判定 2000---2500 年中的每一年是否为闰年,并将结果输出
为什么结果从 2202 开始呀??
#include&stdio.h&
int main()
&&& for(y=2000;y&=2500;y++)
&&& {if((y%4==0 && y%100!=0)|| (y%400==0))
&&&&&&&&&&&&printf(&y=%d是闰年\n&,y);
&&&&&&&&else
&&&&&&&&&&&&printf(&y=%d不是闰年\n&,y);&&&
&&&&&&&&return 0;
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3505
专家分:11329
你哪里看到是从2202开始的
来 自:湖北武汉
等 级:黑侠
帖 子:204
专家分:519
等 级:新手上路
等 级:新手上路
回复 2 楼 love 云彩
运行结果是:y=2202不是闰年
&&&&&&&&&&&&y=2203不是闰年
&&&&&&&&&&&&.......
&&&&&&&&&&&&依次判断到y=2500不是闰年
等 级:新手上路
回复 4 楼 zxj
恩恩,运行好几次都是这样的结果
来 自:何方
等 级:版主
威 望:158
帖 子:6715
专家分:41591
应该是被淹没了。 运行的那块黑框框 内容过长,会把老数据淹没的
用在线编译把:http://codepad.org/
把代码考过去 submit 下,就可以看到运行结果了
[ 本帖最后由 yuccn 于
20:55 编辑 ]
我的博客:
http://blog.sina. com. cn/yuccn
来 自:何方
等 级:版主
威 望:158
帖 子:6715
专家分:41591
y=2000是闰年
y=2001不是闰年
y=2002不是闰年
y=2003不是闰年
y=2004是闰年
y=2005不是闰年
y=2006不是闰年
y=2007不是闰年
y=2008是闰年
y=2009不是闰年
y=2010不是闰年
y=2011不是闰年
y=2012是闰年
y=2013不是闰年
y=2014不是闰年
y=2015不是闰年
y=2016是闰年
y=2017不是闰年
y=2018不是闰年
y=2019不是闰年
y=2020是闰年
y=2021不是闰年
y=2022不是闰年
y=2023不是闰年
y=2024是闰年
y=2025不是闰年
y=2026不是闰年
y=2027不是闰年
y=2028是闰年
y=2029不是闰年
y=2030不是闰年
y=2031不是闰年
y=2032是闰年
y=2033不是闰年
y=2034不是闰年
y=2035不是闰年
y=2036是闰年
y=2037不是闰年
y=2038不是闰年
y=2039不是闰年
y=2040是闰年
y=2041不是闰年
y=2042不是闰年
y=2043不是闰年
y=2044是闰年
y=2045不是闰年
y=2046不是闰年
y=2047不是闰年
y=2048是闰年
y=2049不是闰年
y=2050不是闰年
y=2051不是闰年
y=2052是闰年
y=2053不是闰年
y=2054不是闰年
y=2055不是闰年
y=2056是闰年
y=2057不是闰年
y=2058不是闰年
y=2059不是闰年
y=2060是闰年
y=2061不是闰年
y=2062不是闰年
y=2063不是闰年
y=2064是闰年
y=2065不是闰年
y=2066不是闰年
y=2067不是闰年
y=2068是闰年
y=2069不是闰年
y=2070不是闰年
y=2071不是闰年
y=2072是闰年
y=2073不是闰年
y=2074不是闰年
y=2075不是闰年
y=2076是闰年
y=2077不是闰年
y=2078不是闰年
y=2079不是闰年
y=2080是闰年
y=2081不是闰年
y=2082不是闰年
y=2083不是闰年
y=2084是闰年
y=2085不是闰年
y=2086不是闰年
y=2087不是闰年
y=2088是闰年
y=2089不是闰年
y=2090不是闰年
y=2091不是闰年
y=2092是闰年
y=2093不是闰年
y=2094不是闰年
y=2095不是闰年
y=2096是闰年
y=2097不是闰年
y=2098不是闰年
y=2099不是闰年
y=2100不是闰年
y=2101不是闰年
y=2102不是闰年
y=2103不是闰年
y=2104是闰年
y=2105不是闰年
y=2106不是闰年
y=2107不是闰年
y=2108是闰年
y=2109不是闰年
y=2110不是闰年
y=2111不是闰年
y=2112是闰年
y=2113不是闰年
y=2114不是闰年
y=2115不是闰年
y=2116是闰年
y=2117不是闰年
y=2118不是闰年
y=2119不是闰年
y=2120是闰年
y=2121不是闰年
y=2122不是闰年
y=2123不是闰年
y=2124是闰年
y=2125不是闰年
y=2126不是闰年
y=2127不是闰年
y=2128是闰年
y=2129不是闰年
y=2130不是闰年
y=2131不是闰年
y=2132是闰年
y=2133不是闰年
y=2134不是闰年
y=2135不是闰年
y=2136是闰年
y=2137不是闰年
y=2138不是闰年
y=2139不是闰年
y=2140是闰年
y=2141不是闰年
y=2142不是闰年
y=2143不是闰年
y=2144是闰年
y=2145不是闰年
y=2146不是闰年
y=2147不是闰年
y=2148是闰年
y=2149不是闰年
y=2150不是闰年
y=2151不是闰年
y=2152是闰年
y=2153不是闰年
y=2154不是闰年
y=2155不是闰年
y=2156是闰年
y=2157不是闰年
y=2158不是闰年
y=2159不是闰年
y=2160是闰年
y=2161不是闰年
y=2162不是闰年
y=2163不是闰年
y=2164是闰年
y=2165不是闰年
y=2166不是闰年
y=2167不是闰年
y=2168是闰年
y=2169不是闰年
y=2170不是闰年
y=2171不是闰年
y=2172是闰年
y=2173不是闰年
y=2174不是闰年
y=2175不是闰年
y=2176是闰年
y=2177不是闰年
y=2178不是闰年
y=2179不是闰年
y=2180是闰年
y=2181不是闰年
y=2182不是闰年
y=2183不是闰年
y=2184是闰年
y=2185不是闰年
y=2186不是闰年
y=2187不是闰年
y=2188是闰年
y=2189不是闰年
y=2190不是闰年
y=2191不是闰年
y=2192是闰年
y=2193不是闰年
y=2194不是闰年
y=2195不是闰年
y=2196是闰年
y=2197不是闰年
y=2198不是闰年
y=2199不是闰年
y=2200不是闰年
y=2201不是闰年
y=2202不是闰年
y=2203不是闰年
y=2204是闰年
y=2205不是闰年
y=2206不是闰年
y=2207不是闰年
y=2208是闰年
y=2209不是闰年
y=2210不是闰年
y=2211不是闰年
y=2212是闰年
y=2213不是闰年
y=2214不是闰年
y=2215不是闰年
y=2216是闰年
y=2217不是闰年
y=2218不是闰年
y=2219不是闰年
y=2220是闰年
y=2221不是闰年
y=2222不是闰年
y=2223不是闰年
y=2224是闰年
y=2225不是闰年
y=2226不是闰年
y=2227不是闰年
y=2228是闰年
y=2229不是闰年
y=2230不是闰年
y=2231不是闰年
y=2232是闰年
y=2233不是闰年
y=2234不是闰年
y=2235不是闰年
y=2236是闰年
y=2237不是闰年
y=2238不是闰年
y=2239不是闰年
y=2240是闰年
y=2241不是闰年
y=2242不是闰年
y=2243不是闰年
y=2244是闰年
y=2245不是闰年
y=2246不是闰年
y=2247不是闰年
y=2248是闰年
y=2249不是闰年
y=2250不是闰年
y=2251不是闰年
y=2252是闰年
y=2253不是闰年
y=2254不是闰年
y=2255不是闰年
y=2256是闰年
y=2257不是闰年
y=2258不是闰年
y=2259不是闰年
y=2260是闰年
y=2261不是闰年
y=2262不是闰年
y=2263不是闰年
y=2264是闰年
y=2265不是闰年
y=2266不是闰年
y=2267不是闰年
y=2268是闰年
y=2269不是闰年
y=2270不是闰年
y=2271不是闰年
y=2272是闰年
y=2273不是闰年
y=2274不是闰年
y=2275不是闰年
y=2276是闰年
y=2277不是闰年
y=2278不是闰年
y=2279不是闰年
y=2280是闰年
y=2281不是闰年
y=2282不是闰年
y=2283不是闰年
y=2284是闰年
y=2285不是闰年
y=2286不是闰年
y=2287不是闰年
y=2288是闰年
y=2289不是闰年
y=2290不是闰年
y=2291不是闰年
y=2292是闰年
y=2293不是闰年
y=2294不是闰年
y=2295不是闰年
y=2296是闰年
y=2297不是闰年
y=2298不是闰年
y=2299不是闰年
y=2300不是闰年
y=2301不是闰年
y=2302不是闰年
y=2303不是闰年
y=2304是闰年
y=2305不是闰年
y=2306不是闰年
y=2307不是闰年
y=2308是闰年
y=2309不是闰年
y=2310不是闰年
y=2311不是闰年
y=2312是闰年
y=2313不是闰年
y=2314不是闰年
y=2315不是闰年
y=2316是闰年
y=2317不是闰年
y=2318不是闰年
y=2319不是闰年
y=2320是闰年
y=2321不是闰年
y=2322不是闰年
y=2323不是闰年
y=2324是闰年
y=2325不是闰年
y=2326不是闰年
y=2327不是闰年
y=2328是闰年
y=2329不是闰年
y=2330不是闰年
y=2331不是闰年
y=2332是闰年
y=2333不是闰年
y=2334不是闰年
y=2335不是闰年
y=2336是闰年
y=2337不是闰年
y=2338不是闰年
y=2339不是闰年
y=2340是闰年
y=2341不是闰年
y=2342不是闰年
y=2343不是闰年
y=2344是闰年
y=2345不是闰年
y=2346不是闰年
y=2347不是闰年
y=2348是闰年
y=2349不是闰年
y=2350不是闰年
y=2351不是闰年
y=2352是闰年
y=2353不是闰年
y=2354不是闰年
y=2355不是闰年
y=2356是闰年
y=2357不是闰年
y=2358不是闰年
y=2359不是闰年
y=2360是闰年
y=2361不是闰年
y=2362不是闰年
y=2363不是闰年
y=2364是闰年
y=2365不是闰年
y=2366不是闰年
y=2367不是闰年
y=2368是闰年
y=2369不是闰年
y=2370不是闰年
y=2371不是闰年
y=2372是闰年
y=2373不是闰年
y=2374不是闰年
y=2375不是闰年
y=2376是闰年
y=2377不是闰年
y=2378不是闰年
y=2379不是闰年
y=2380是闰年
y=2381不是闰年
y=2382不是闰年
y=2383不是闰年
y=2384是闰年
y=2385不是闰年
y=2386不是闰年
y=2387不是闰年
y=2388是闰年
y=2389不是闰年
y=2390不是闰年
y=2391不是闰年
y=2392是闰年
y=2393不是闰年
y=2394不是闰年
y=2395不是闰年
y=2396是闰年
y=2397不是闰年
y=2398不是闰年
y=2399不是闰年
y=2400是闰年
y=2401不是闰年
y=2402不是闰年
y=2403不是闰年
y=2404是闰年
y=2405不是闰年
y=2406不是闰年
y=2407不是闰年
y=2408是闰年
y=2409不是闰年
y=2410不是闰年
y=2411不是闰年
y=2412是闰年
y=2413不是闰年
y=2414不是闰年
y=2415不是闰年
y=2416是闰年
y=2417不是闰年
y=2418不是闰年
y=2419不是闰年
y=2420是闰年
y=2421不是闰年
y=2422不是闰年
y=2423不是闰年
y=2424是闰年
y=2425不是闰年
y=2426不是闰年
y=2427不是闰年
y=2428是闰年
y=2429不是闰年
y=2430不是闰年
y=2431不是闰年
y=2432是闰年
y=2433不是闰年
y=2434不是闰年
y=2435不是闰年
y=2436是闰年
y=2437不是闰年
y=2438不是闰年
y=2439不是闰年
y=2440是闰年
y=2441不是闰年
y=2442不是闰年
y=2443不是闰年
y=2444是闰年
y=2445不是闰年
y=2446不是闰年
y=2447不是闰年
y=2448是闰年
y=2449不是闰年
y=2450不是闰年
y=2451不是闰年
y=2452是闰年
y=2453不是闰年
y=2454不是闰年
y=2455不是闰年
y=2456是闰年
y=2457不是闰年
y=2458不是闰年
y=2459不是闰年
y=2460是闰年
y=2461不是闰年
y=2462不是闰年
y=2463不是闰年
y=2464是闰年
y=2465不是闰年
y=2466不是闰年
y=2467不是闰年
y=2468是闰年
y=2469不是闰年
y=2470不是闰年
y=2471不是闰年
y=2472是闰年
y=2473不是闰年
y=2474不是闰年
y=2475不是闰年
y=2476是闰年
y=2477不是闰年
y=2478不是闰年
y=2479不是闰年
y=2480是闰年
y=2481不是闰年
y=2482不是闰年
y=2483不是闰年
y=2484是闰年
y=2485不是闰年
y=2486不是闰年
y=2487不是闰年
y=2488是闰年
y=2489不是闰年
y=2490不是闰年
y=2491不是闰年
y=2492是闰年
y=2493不是闰年
y=2494不是闰年
y=2495不是闰年
y=2496是闰年
y=2497不是闰年
y=2498不是闰年
y=2499不是闰年
y=2500不是闰年
我的博客:
http://blog.sina. com. cn/yuccn
等 级:新手上路
回复 6 楼 huahua1992
恩恩,试过可以啦,谢谢啦~~
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3505
专家分:11329
y版的结果就可以看出是从2000开始的了
版权所有,并保留所有权利。
Powered by , Processed in 0.056285 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved一、传统流程图
&&&&& 流程图是用一些图框来表示各种操作。用图形表示算法,直观形象,易于理解。美国国家标准化协会ANSI(American National Standard Institute)规定了一些常用的流程符号(如图1),已为世界各国程序工作者普遍采用。&
图1.1.流程图符号
&&&&& 图1 中菱形框的作用是对一个给定的条件进行判断,根据给定的条件是否成立决定执行最后的操作。它有一个入口,两个出口,如图2。
图1.2.条件判断
&&&&& 连接点(小圆圈)是用于将画在不同地方的流程线连接起来。如图3 中有两个以①为标志的连接点,它表示这两个点是连接在一起的,实际上它们是一个点,只是画不下来才分开画。用连接点可以避免流程线交叉或过长,使流程图清晰。
&&&&& 一个流程图包括以下几个部分:
(1) 表示相应操作的框
(2) 带箭头的流程线
(3) 框内外必要的文字说明
&&&&&& 需要提醒的是,流程线不要忘记画箭头,因为它是反映流程先后的,如不画出箭头就难以判定各框执行的顺序。
&&&&&& 用流程图表示算法直观形象,比较清楚地显示了各个框之间的逻辑关系。但是,这种流程图占用篇幅较多,尤其当算法比较复杂时,画流程图既费时又不方便,在结构化程序设计方法推广之后,许多书刊已经用N-S结构化流程图代替这种传统的流程图,但是每一个程序员都应当熟练掌握传统流程图,会看会画。
二、三种基本结构
& & & 传统的流程图用流程线指出各框的执行顺序,对流程线没有严格的限制。因此,使用者可以不受限制地使流程转来转去,使流程图变的毫无规律,使人难以理解算法的逻辑。为了提高算法的质量,使算法的设计和阅读方便,必须限制箭头的滥用。即不允许无规律地使流程随意转向,只能顺序的进行下去。但是,算法上难免会包含一些分支和循环,而不可能全部由一个个顺序框组成。为了解决这个问题,人们规定出几种基本结构,然后由这些基本结构按一定规律组成一个算法结构,如果能做到这一点,算法的质量就能得到保证和提高。
& & &1. 顺序结构
& & & 如图2.1所示,虚线框内是一个顺序结构。其中 A 和 B 两个框是顺序执行的。即:在执行完 A 框所指定的操作后,必然接着执行 B 框所指定的操作。顺序结构是最简单的一种基本结构。
图2.1.顺序结构
& & &2. 选择结构
& & & 如图2.2所示,虚线框内是一个选择结构。此结构中必包含一个判断框。根据给定的条件 p 是否成立而执行 A 框或者 B 框。无论条件 p 是否成立,只能执行 A 框或者 B 框之一。无论走哪一条路径,在执行完 A 或者 B 之后,都经过 b 点,然后脱离本选择结构。A 或 B 两个框中可以有一个是空的,即不执行任何操作。
图2.2.选择结构
& & &3. 循环结构
& & & (1) 当型(while型)循环结构
& & & 如图2.3(a) 所示,当型循环结构的作用是:当给定的条件 p1 成立时,执行 A 框操作,然后再判断条件 p1 是否成立,如果仍然成立,在执行 A 框,如此反复进行,直到某一次条件 p1 不成立为止,此时不再执行 A 框,直接从 b 点脱离循环结构。
& & & (2) 直到型(until型)循环结构
& & & 如图2.3(b) 所示,直到型循环结构的作用是:先执行 A 框,然后判断给定的判断条件 p2 是否成立,如果不成立,则再执行 A ,然后再对条件 p2 作判断,如果仍不成立,又执行 A && 直到给定的条件 p2成立为止,此时不再执行 A,从 b 点脱离循环。
图2.3.循环结构&
三、N-S流程图
& & & &既然用基本结构的顺序组合可以表示任何复杂的算法结构,那么,基本结构之间的流程线就显得多余了。1973年,美国学者 I.Nassi 和 B.Shneiderman 提出了一种新的流程图形式。在这种流程图中,完全去掉了带箭头的流程线。全部算法写在一个矩形框内,在该框内还可以包含从其他从属于它的框。或者说,由一些基本的框组成一个大框。这种流程图又叫 N-S 结构化流程图( N 和 S 是两位美国学者的英文姓氏首字母)。
& & & N-S流程图使用以下的流程图符号。
& & & 1. 顺序结构
图3.1.选择结构
& & & 2. 选择结构
图3.2.选择结构
& & & 3. 循环结构
图3.3.当型循环结构
图3.4.直到型循环结构
阅读(...) 评论() &

我要回帖

更多关于 英雄志作者孙晓微博 的文章

 

随机推荐