C++程序入門(iostream,if,for,函數(shù))_第1頁
C++程序入門(iostream,if,for,函數(shù))_第2頁
C++程序入門(iostream,if,for,函數(shù))_第3頁
C++程序入門(iostream,if,for,函數(shù))_第4頁
C++程序入門(iostream,if,for,函數(shù))_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

C++4.8.1自主講壇初二(14)班楊沛1763派遣(2012年APIO亞太地區(qū)信息學(xué)奧賽)在一個忍者的幫派里,一些忍者們被選中派遣給顧客,然后依據(jù)自己的工作獲取報償。在這個幫派里,有一名忍者被稱之為Master。除了Master以外,每名忍者都有且僅有一個上級。為保密,同時增強忍者們的領(lǐng)導(dǎo)力,所有與他們工作相關(guān)的指令總是由上級發(fā)送給他的直接下屬,而不允許通過其他的方式發(fā)送。1763派遣現(xiàn)在你要招募一批忍者,并把它們派遣給顧客。你需要為每個被派遣的忍者支付一定的薪水,同時使得支付的薪水總額不超過你的預(yù)算。另外,為了發(fā)送指令,你需要選擇一名忍者作為管理者,要求這個管理者可以向所有被派遣的忍者發(fā)送指令,在發(fā)送指令時,任何忍者(不管是否被派遣)都可以作為消息的傳遞人。管理者自己可以被派遣,也可以不被派遣。當(dāng)然,如果管理者沒有被派遣,你就不需要支付管理者的薪水。你的目標是在預(yù)算內(nèi)使顧客的滿意度最大。這里定義顧客的滿意度為派遣的忍者總數(shù)乘以管理者的領(lǐng)導(dǎo)力,其中每個忍者的領(lǐng)導(dǎo)力也是一定的。1763派遣寫一個程序,給定每一個忍者i的上級Bi,薪水Ci,領(lǐng)導(dǎo)力Li,以及支付給忍者們的薪水總預(yù)算M,輸出在預(yù)算內(nèi)滿足上述要求時顧客滿意度的最大值。輸入描述:第一行包含兩個整數(shù)N和M,其中N表示忍者的個數(shù),M表示薪水的總預(yù)算。接下來N行描述忍者們的上級、薪水以及領(lǐng)導(dǎo)力。其中的第i行包含三個整數(shù)Bi

,Ci

,Li分別表示第i個忍者的上級,薪水以及領(lǐng)導(dǎo)力。Master滿足Bi=0,并且每一個忍者的上級的編號一定小于自己的編號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簡史在過去的幾十年中,計算機技術(shù)以令人驚訝的速度發(fā)展著,當(dāng)前,筆記本電腦的計算速度和存儲信息的能力超過了20世紀60年代的大型機。很多程序員可能還記得,將數(shù)疊穿孔卡片提交給充斥著整個房間的大型計算機系統(tǒng)的時代,而這種系統(tǒng)只有100KB的內(nèi)存,比當(dāng)今智能手機的內(nèi)存都少得多。計算機語言也得到了發(fā)展,盡管變化可能不是天翻地覆的,但也是非常重要的。體積更大、功能更淺的計算機引出了更大、更復(fù)雜的程序,而這些程序在程序管理和維護方面帶來了新的問題。CSINCE1972C++SINCE1988百度百科C++是在C語言的基礎(chǔ)上開發(fā)的一種通用編程語言,應(yīng)用廣泛。C++支持多種編程范式--面向?qū)ο缶幊?、泛型編程和過程化編程。最新正式標準C++14于2014年8月18日公布。其編程領(lǐng)域眾廣,常用于系統(tǒng)開發(fā),引擎開發(fā)等應(yīng)用領(lǐng)域,是至今為止最受廣大受用的最強大編程語言之一,支持類:類、封裝、重載等!簡史在20世紀70年代,C和Pascal這樣的語言引領(lǐng)人們進入了結(jié)構(gòu)化編程的時代,這種機制把秩序和規(guī)程帶勁了迫切需要這種性質(zhì)的領(lǐng)域中。除了提供結(jié)構(gòu)化編程工具外,C還能生成簡潔、快速運行的程序,并提供了處理硬件問題的能力,如管理通信端口和磁盤驅(qū)動器。這些因素使C語言成為20世紀80年代占統(tǒng)治地位的編程語言。同時,20世紀80年代,人們也見證了一種新編程模式的成長:面向?qū)ο缶幊蹋∣OP)。SmallTalk和C++語言具備這種功能。面向?qū)ο蟪绦蛟O(shè)計

(ObjectOrientedProgramming)結(jié)構(gòu)化程序設(shè)計(ProcedureProgramming)匯編語言(AssemblyLanguage)機器語言(MachineLanguage)1,0簡史與C語言一樣,C++也是在貝爾實驗室誕生的,BjarneStroustrup于20世紀80年代在這里開發(fā)出這種語言。C++是C語言的加集,任何一個合格的C語言程序都是一個合格的C++程序。用他自己的話來說,“C++主要是為了我的朋友和我不必再使用匯編語言、C語言或其它現(xiàn)代高級語言來變成而設(shè)計的。它的主要更能使可以更方便地編寫出好程序,讓每個程序員更加快樂”。編程步驟源代碼編譯器目標代碼鏈接程序可執(zhí)行代碼啟動代碼庫代碼文件擴展名C++實現(xiàn)源代碼文件的擴展名UNIXC、cc、cxx、cGNUC++C、cc、cxx、cpp、c++DigitalMarscpp、cxxBorlandC++cppWatcomcppMicrosoftVisualC++cpp、cxx、ccFreestyleCodeWarriorcp、cpp、cc、cxx、c++進入C++//hellosky.cpp–displaysamessage#include<iostream>//aPREPROCESSORdirectiveintmain()//functionheader{//startoffunctionbodyusingnamespacestd;//makedefinitionsvisible

cout<<“Hello,Sky!”;//message

cout<<endl;//startanewline

return0;//terminatemain()}//endofafunctionbody進入C++Hello,Sky!進入C++//hellosky.cpp–displaysamessage#include<iostream>#include<windows.h>intmain{usingnamespacestd;

cout<<“Hello,Sky!”;cout<<endl;

system(“pause”);return0;}進入C++Hello,Sky!請按任意鍵繼續(xù)...進入C++//hellosky.cpp–displaysamessage#include<iostream>#include<windows.h>intmain{usingnamespacestd;

cout<<“Hello,Sky!”cout<<endl;

system(“pause”)return0;}進入C++//hellosky.cpp–displaysamessage#include<iostream>#include<windows.h>intmain{usingnamespacestd;

cout<<“Hello,Sky!”;

cout<<endl;

system(“pause”);return0;}進入C++為什么要將iostream的文件內(nèi)容添加到程序中呢?答案設(shè)計程序與外部世界間的通信。iostream中的io指的是輸入(進入程序的信息)和輸出(從程序中發(fā)送出去的信息)。C++的輸入輸出方案及iostream文件中的多個定義。為了使用cout來顯示消息,第一個程序需要這些定義。#include編譯指令導(dǎo)致iostream文件的內(nèi)容隨源代碼文件的內(nèi)容一起被發(fā)送給編譯器。像iostream這樣的文件叫做包含文件(includefile)——由于它們被包含在其他文件中;也叫頭文件(headerfile)——由于它們被包含在文件起始處。C++編譯器自帶了很多頭文件,每個頭文件都支持一組特定的工具。進入C++//system.cpp#include<windows.h>intmain(){

system(“echoHelloSky!”);system(“echoHelloSky!”);

system(“echoHelloSky!”);

system(“pause”);

return0;}進入C++@echooffechoHelloSky!echoHelloSky!echoHelloSky!echo.pause進入C++Hello,Sky!Hello,Sky!Hello,Sky!請按任意鍵繼續(xù)...進入C++注釋,由前綴//標識預(yù)處理編譯指令#include函數(shù)頭:intmain()編譯指令usingnamespace函數(shù)體,用{和}括起使用C++的cout工具顯示消息的語句結(jié)束main()函數(shù)的return語句進入C++去掉修飾后,程序hellosky.cpp的基本結(jié)構(gòu)如下:intmain(){

statements

return0;}進入C++常見的函數(shù)頭:所有C++程序中,都必須有一個main()函數(shù)。intmain()main()intmain(void)voidmain()進入C++在iostream中定義的用于輸出的cout變量實際上是std::cout,endl實際上是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;進入C++cout與換行符C++11的原始字符串可以包含回車cout<<“Hello,Sky!”;cout<<endl;cout<<“Hello,Sky!”<<endl;cout<<“Hello,Sky!\n”;cout<<“Hello”<<“,Sk”<<“y!”<<endl;進入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;}進入C++Ihave25carrots.Crunch,crunch.NowIhave24carrots.進入C++為什么變量必須聲明?有些語言(最典型的是BASIC)在使用新名稱時創(chuàng)建新的變量,而不用顯示地進行聲明。這看上去對用戶比較友好,事實上從短期上說確實如此。問題是,如果錯誤地了變量名,將在不知情的情況下建一個新的變量。在BASIC中,程序員可能編寫如下程序:CastleDark=34...CastleDank=CastleDark+1...PRINTCastleDark進入C++intcarrots;carrots=1;intcarrots=1;intSteinway,Baldwin,Yamaha;yamaha==Baldwin=Steinway=88;進入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;}進入C++Howmanycarrotsdoyouhave?12Herearetwomore.Nowyouhave14carrots.進入C++寫出C++程序,輸入兩個數(shù),輸出它們的和。

頭文件:iostream.hwindows.h進入C++#include<iostream>#include<windows.h>intmain(){

usingnamespacestd;

inta,b;

cin>>a>>b;

cout<<a+b<<endl;

system(“pause”);

return0;}進入C++x=sqrt(6.25);//returnsthevalue2.5andassignsittoxintmain(){

...x=sqrt(6.25);

...}codeforsqrt().........return進入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;}分支語句和邏輯運算符IfyouhaveaMarcoPolocard,yougetextramiles.如果測試條件為true,則if語句將引導(dǎo)程序執(zhí)行語句或語句塊;如果條件是false,程序講跳過這條語句或語句塊。if(test-condition)

statementif(test-condition){

statement}分支語句和邏輯運算符if語句讓程序決定是否執(zhí)行特定的語句或語句塊,而ifelse語句則讓程序決定執(zhí)行兩條語句或語句塊中的哪一條,這種語句對于選擇其中一種操作很有用。if(test-condition)

statement1else

statement2if(test-condition)

statement1elseif(test-condition)

statement2else

statement3分支語句和邏輯運算符練習(xí):寫出程序,輸入一個分數(shù)(0-100),使用int。100分輸出很好,90-99輸出好,80-89輸出不錯,70-79輸出還可以,60-69輸出繼續(xù)加油,0-60輸出艸,其它情況輸出什么鬼。大于小于等于大于等于小于等于不等于><==>=<=!=與或&&||分支語句和邏輯運算符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)系表達式//forloop.cpp–introducingtheforloop#include<iostream>intmain(){

usingnamespacestd;

for(inti=0;i<5;i++)

cout<<“ColorOrganizationDafaisGood!”<<endl;

return0;}循環(huán)和關(guān)系表達式//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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論