




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C++4.8.1自主講壇初二(14)班楊沛1763派遣(2012年APIO亞太地區(qū)信息學(xué)奧賽)在一個(gè)忍者的幫派里,一些忍者們被選中派遣給顧客,然后依據(jù)自己的工作獲取報(bào)償。在這個(gè)幫派里,有一名忍者被稱之為Master。除了Master以外,每名忍者都有且僅有一個(gè)上級(jí)。為保密,同時(shí)增強(qiáng)忍者們的領(lǐng)導(dǎo)力,所有與他們工作相關(guān)的指令總是由上級(jí)發(fā)送給他的直接下屬,而不允許通過其他的方式發(fā)送。1763派遣現(xiàn)在你要招募一批忍者,并把它們派遣給顧客。你需要為每個(gè)被派遣的忍者支付一定的薪水,同時(shí)使得支付的薪水總額不超過你的預(yù)算。另外,為了發(fā)送指令,你需要選擇一名忍者作為管理者,要求這個(gè)管理者可以向所有被派遣的忍者發(fā)送指令,在發(fā)送指令時(shí),任何忍者(不管是否被派遣)都可以作為消息的傳遞人。管理者自己可以被派遣,也可以不被派遣。當(dāng)然,如果管理者沒有被派遣,你就不需要支付管理者的薪水。你的目標(biāo)是在預(yù)算內(nèi)使顧客的滿意度最大。這里定義顧客的滿意度為派遣的忍者總數(shù)乘以管理者的領(lǐng)導(dǎo)力,其中每個(gè)忍者的領(lǐng)導(dǎo)力也是一定的。1763派遣寫一個(gè)程序,給定每一個(gè)忍者i的上級(jí)Bi,薪水Ci,領(lǐng)導(dǎo)力Li,以及支付給忍者們的薪水總預(yù)算M,輸出在預(yù)算內(nèi)滿足上述要求時(shí)顧客滿意度的最大值。輸入描述:第一行包含兩個(gè)整數(shù)N和M,其中N表示忍者的個(gè)數(shù),M表示薪水的總預(yù)算。接下來N行描述忍者們的上級(jí)、薪水以及領(lǐng)導(dǎo)力。其中的第i行包含三個(gè)整數(shù)Bi
,Ci
,Li分別表示第i個(gè)忍者的上級(jí),薪水以及領(lǐng)導(dǎo)力。Master滿足Bi=0,并且每一個(gè)忍者的上級(jí)的編號(hào)一定小于自己的編號(hào)Bi
<i。AuthorizedtranslationfromtheEnglishlanguageedition,EntitledC++PrimerPlus(sixedition),978-0-321-77640-2byStephenPrata,publishedbyPearsonEducation,lnc.,publishingasAddison-Wesley,Copyright?2011PearsonEducation,lnc.
Allrightsreserved.Nopartofthisbookmaybereproducedortransmittedinanyformorbyanymeans,electronicormechanical,includingphotocopying,recordingorbyanyinformationstorageretrievalsystem,withoutpermissionfromPearsonEducationlnc.CHINESESIMPLIFIEDlanguageeditionpublishedbyPEARSONEDUCATIONASIALTD.,andPOSTS&TELECOMMUNICATIONSPRESSCopyright?2012.C++PrimerPlus(sixthedition)CHINESESIMPLIFIEDlanguageISBN978-7-115-27946-0簡(jiǎn)史在過去的幾十年中,計(jì)算機(jī)技術(shù)以令人驚訝的速度發(fā)展著,當(dāng)前,筆記本電腦的計(jì)算速度和存儲(chǔ)信息的能力超過了20世紀(jì)60年代的大型機(jī)。很多程序員可能還記得,將數(shù)疊穿孔卡片提交給充斥著整個(gè)房間的大型計(jì)算機(jī)系統(tǒng)的時(shí)代,而這種系統(tǒng)只有100KB的內(nèi)存,比當(dāng)今智能手機(jī)的內(nèi)存都少得多。計(jì)算機(jī)語言也得到了發(fā)展,盡管變化可能不是天翻地覆的,但也是非常重要的。體積更大、功能更淺的計(jì)算機(jī)引出了更大、更復(fù)雜的程序,而這些程序在程序管理和維護(hù)方面帶來了新的問題。CSINCE1972C++SINCE1988百度百科C++是在C語言的基礎(chǔ)上開發(fā)的一種通用編程語言,應(yīng)用廣泛。C++支持多種編程范式--面向?qū)ο缶幊?、泛型編程和過程化編程。最新正式標(biāo)準(zhǔn)C++14于2014年8月18日公布。其編程領(lǐng)域眾廣,常用于系統(tǒng)開發(fā),引擎開發(fā)等應(yīng)用領(lǐng)域,是至今為止最受廣大受用的最強(qiáng)大編程語言之一,支持類:類、封裝、重載等!簡(jiǎn)史在20世紀(jì)70年代,C和Pascal這樣的語言引領(lǐng)人們進(jìn)入了結(jié)構(gòu)化編程的時(shí)代,這種機(jī)制把秩序和規(guī)程帶勁了迫切需要這種性質(zhì)的領(lǐng)域中。除了提供結(jié)構(gòu)化編程工具外,C還能生成簡(jiǎn)潔、快速運(yùn)行的程序,并提供了處理硬件問題的能力,如管理通信端口和磁盤驅(qū)動(dòng)器。這些因素使C語言成為20世紀(jì)80年代占統(tǒng)治地位的編程語言。同時(shí),20世紀(jì)80年代,人們也見證了一種新編程模式的成長(zhǎng):面向?qū)ο缶幊蹋∣OP)。SmallTalk和C++語言具備這種功能。面向?qū)ο蟪绦蛟O(shè)計(jì)
(ObjectOrientedProgramming)結(jié)構(gòu)化程序設(shè)計(jì)(ProcedureProgramming)匯編語言(AssemblyLanguage)機(jī)器語言(MachineLanguage)1,0簡(jiǎn)史與C語言一樣,C++也是在貝爾實(shí)驗(yàn)室誕生的,BjarneStroustrup于20世紀(jì)80年代在這里開發(fā)出這種語言。C++是C語言的加集,任何一個(gè)合格的C語言程序都是一個(gè)合格的C++程序。用他自己的話來說,“C++主要是為了我的朋友和我不必再使用匯編語言、C語言或其它現(xiàn)代高級(jí)語言來變成而設(shè)計(jì)的。它的主要更能使可以更方便地編寫出好程序,讓每個(gè)程序員更加快樂”。編程步驟源代碼編譯器目標(biāo)代碼鏈接程序可執(zhí)行代碼啟動(dòng)代碼庫代碼文件擴(kuò)展名C++實(shí)現(xiàn)源代碼文件的擴(kuò)展名UNIXC、cc、cxx、cGNUC++C、cc、cxx、cpp、c++DigitalMarscpp、cxxBorlandC++cppWatcomcppMicrosoftVisualC++cpp、cxx、ccFreestyleCodeWarriorcp、cpp、cc、cxx、c++進(jìn)入C++//hellosky.cpp–displaysamessage#include<iostream>//aPREPROCESSORdirectiveintmain()//functionheader{//startoffunctionbodyusingnamespacestd;//makedefinitionsvisible
cout<<“Hello,Sky!”;//message
cout<<endl;//startanewline
return0;//terminatemain()}//endofafunctionbody進(jìn)入C++Hello,Sky!進(jìn)入C++//hellosky.cpp–displaysamessage#include<iostream>#include<windows.h>intmain{usingnamespacestd;
cout<<“Hello,Sky!”;cout<<endl;
system(“pause”);return0;}進(jìn)入C++Hello,Sky!請(qǐng)按任意鍵繼續(xù)...進(jìn)入C++//hellosky.cpp–displaysamessage#include<iostream>#include<windows.h>intmain{usingnamespacestd;
cout<<“Hello,Sky!”cout<<endl;
system(“pause”)return0;}進(jìn)入C++//hellosky.cpp–displaysamessage#include<iostream>#include<windows.h>intmain{usingnamespacestd;
cout<<“Hello,Sky!”;
cout<<endl;
system(“pause”);return0;}進(jìn)入C++為什么要將iostream的文件內(nèi)容添加到程序中呢?答案設(shè)計(jì)程序與外部世界間的通信。iostream中的io指的是輸入(進(jìn)入程序的信息)和輸出(從程序中發(fā)送出去的信息)。C++的輸入輸出方案及iostream文件中的多個(gè)定義。為了使用cout來顯示消息,第一個(gè)程序需要這些定義。#include編譯指令導(dǎo)致iostream文件的內(nèi)容隨源代碼文件的內(nèi)容一起被發(fā)送給編譯器。像iostream這樣的文件叫做包含文件(includefile)——由于它們被包含在其他文件中;也叫頭文件(headerfile)——由于它們被包含在文件起始處。C++編譯器自帶了很多頭文件,每個(gè)頭文件都支持一組特定的工具。進(jìn)入C++//system.cpp#include<windows.h>intmain(){
system(“echoHelloSky!”);system(“echoHelloSky!”);
system(“echoHelloSky!”);
system(“pause”);
return0;}進(jìn)入C++@echooffechoHelloSky!echoHelloSky!echoHelloSky!echo.pause進(jìn)入C++Hello,Sky!Hello,Sky!Hello,Sky!請(qǐng)按任意鍵繼續(xù)...進(jìn)入C++注釋,由前綴//標(biāo)識(shí)預(yù)處理編譯指令#include函數(shù)頭:intmain()編譯指令usingnamespace函數(shù)體,用{和}括起使用C++的cout工具顯示消息的語句結(jié)束main()函數(shù)的return語句進(jìn)入C++去掉修飾后,程序hellosky.cpp的基本結(jié)構(gòu)如下:intmain(){
statements
return0;}進(jìn)入C++常見的函數(shù)頭:所有C++程序中,都必須有一個(gè)main()函數(shù)。intmain()main()intmain(void)voidmain()進(jìn)入C++在iostream中定義的用于輸出的cout變量實(shí)際上是std::cout,endl實(shí)際上是std::endl。std::cout<<“Hello,Sky!”;std::cout<<std::endl;usingstd::cout;usingstd::endl;cout<<“Hello,Sky!”;cout<<endl;usingnamespacestd;cout<<“Hello,Sky!”;cout<<endl;進(jìn)入C++cout與換行符C++11的原始字符串可以包含回車cout<<“Hello,Sky!”;cout<<endl;cout<<“Hello,Sky!”<<endl;cout<<“Hello,Sky!\n”;cout<<“Hello”<<“,Sk”<<“y!”<<endl;進(jìn)入C++//carrots.cpp–foodprocessingprogram//usesanddisplaysavariable#include<iostream>intmain(){
usingnamespacestd;
intn;n=25;
cout<<“Ihave”;
<<n<<“carrots.”<<endl;
n=n–1;
cout<<“Crunch,crunch.NowIhave”<<n<<“carrots.”;
cout<<endl;
return0;}進(jìn)入C++Ihave25carrots.Crunch,crunch.NowIhave24carrots.進(jìn)入C++為什么變量必須聲明?有些語言(最典型的是BASIC)在使用新名稱時(shí)創(chuàng)建新的變量,而不用顯示地進(jìn)行聲明。這看上去對(duì)用戶比較友好,事實(shí)上從短期上說確實(shí)如此。問題是,如果錯(cuò)誤地了變量名,將在不知情的情況下建一個(gè)新的變量。在BASIC中,程序員可能編寫如下程序:CastleDark=34...CastleDank=CastleDark+1...PRINTCastleDark進(jìn)入C++intcarrots;carrots=1;intcarrots=1;intSteinway,Baldwin,Yamaha;yamaha==Baldwin=Steinway=88;進(jìn)入C++//getinfo.cpp–inputandoutput#include<iostream>intmain(){
usingnamespacestd;
intc;
cout<<“Howmanycarrotsdoyouhave?”<<endl;
cin>>c;//C++input
cout<<“Hearareonemore.”;
c++;
cout<<“Nowyouhave”
<<c<<“carrots.”<<endl;
return0;}進(jìn)入C++Howmanycarrotsdoyouhave?12Herearetwomore.Nowyouhave14carrots.進(jìn)入C++寫出C++程序,輸入兩個(gè)數(shù),輸出它們的和。
頭文件:iostream.hwindows.h進(jìn)入C++#include<iostream>#include<windows.h>intmain(){
usingnamespacestd;
inta,b;
cin>>a>>b;
cout<<a+b<<endl;
system(“pause”);
return0;}進(jìn)入C++x=sqrt(6.25);//returnsthevalue2.5andassignsittoxintmain(){
...x=sqrt(6.25);
...}codeforsqrt().........return進(jìn)入C++#include<iostream>#include<windows.h>intminimum(inta,intb){
usingnamespacestd;
if(b>a)
{
inttemp=a;
a=b;
b=temp;
}
for(inti=b;i>0;i--)
{
if(a%i==0){
if(b%i==0)
{
returni;}
}
}}intmain(){
usingnamespacestd;
inta,b;
cin>>a>>b;
cout<<minimum(a,b);system(“pause”);
return0;}分支語句和邏輯運(yùn)算符IfyouhaveaMarcoPolocard,yougetextramiles.如果測(cè)試條件為true,則if語句將引導(dǎo)程序執(zhí)行語句或語句塊;如果條件是false,程序講跳過這條語句或語句塊。if(test-condition)
statementif(test-condition){
statement}分支語句和邏輯運(yùn)算符if語句讓程序決定是否執(zhí)行特定的語句或語句塊,而ifelse語句則讓程序決定執(zhí)行兩條語句或語句塊中的哪一條,這種語句對(duì)于選擇其中一種操作很有用。if(test-condition)
statement1else
statement2if(test-condition)
statement1elseif(test-condition)
statement2else
statement3分支語句和邏輯運(yùn)算符練習(xí):寫出程序,輸入一個(gè)分?jǐn)?shù)(0-100),使用int。100分輸出很好,90-99輸出好,80-89輸出不錯(cuò),70-79輸出還可以,60-69輸出繼續(xù)加油,0-60輸出艸,其它情況輸出什么鬼。大于小于等于大于等于小于等于不等于><==>=<=!=與或&&||分支語句和邏輯運(yùn)算符if(age>17&&age<35) √if(17<age<35) ×if(sqrt((a+b)*c-d)>1) √if(!(x>5)) √=if(x<=5) √循環(huán)和關(guān)系表達(dá)式//forloop.cpp–introducingtheforloop#include<iostream>intmain(){
usingnamespacestd;
for(inti=0;i<5;i++)
cout<<“ColorOrganizationDafaisGood!”<<endl;
return0;}循環(huán)和關(guān)系表達(dá)式//forloop.cpp–introducingtheforloop#include<iostream>intmain(){
usingnamespacestd;
inti=0;
for(;i<5;)
{
cout<<“ColorOrganizationDafaisGood!”<<endl;
i=i+1;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校文化活動(dòng)與教學(xué)結(jié)合方案計(jì)劃
- 建設(shè)共享友愛社區(qū)的個(gè)人方案計(jì)劃
- 提升人事部門服務(wù)質(zhì)量計(jì)劃
- 2025年砼空心砌塊(承重型)項(xiàng)目建議書
- 地理-河南金太陽2024-2025學(xué)年高二上學(xué)期第二次月考
- 中國(guó)科考船行業(yè)市場(chǎng)概況、投資熱點(diǎn)及未來發(fā)展趨勢(shì)分析預(yù)測(cè)報(bào)告(2025版)
- 加強(qiáng)文化產(chǎn)業(yè)發(fā)展指導(dǎo)原則
- 2025年計(jì)算機(jī)數(shù)字信號(hào)處理板卡項(xiàng)目建議書
- 豪華車租賃長(zhǎng)租合同
- 企業(yè)文化推廣致辭
- 天冬的栽培技術(shù)
- 中共一大及其意義
- 軟件測(cè)試PPT完整全套教學(xué)課件
- 興海縣索拉溝銅多金屬礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 醫(yī)療醫(yī)學(xué)品管圈PPT模版
- 新教科版五年級(jí)下冊(cè)科學(xué)全冊(cè)每節(jié)課后練習(xí)+答案(共28份)
- 輪值安全員制度
- 新型(花籃螺栓)工字鋼懸挑梁腳手架講解
- 2022年上海市高三16區(qū)高考一模卷英語聽力試題及原文帶答案(附聽力音頻獲取)合集
- 三年級(jí)道德與法治下冊(cè)全冊(cè)教案
- 冀教版七年級(jí)下冊(cè)英語課文翻譯
評(píng)論
0/150
提交評(píng)論