(程序設(shè)計(jì)語言和開發(fā)環(huán)境)課件_第1頁
(程序設(shè)計(jì)語言和開發(fā)環(huán)境)課件_第2頁
(程序設(shè)計(jì)語言和開發(fā)環(huán)境)課件_第3頁
(程序設(shè)計(jì)語言和開發(fā)環(huán)境)課件_第4頁
(程序設(shè)計(jì)語言和開發(fā)環(huán)境)課件_第5頁
已閱讀5頁,還剩99頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

ProgrammingLanguagesandDevelopmentEnvironment

(程序設(shè)計(jì)語言和開發(fā)環(huán)境)/~course/cs101/2008

HongfeiYanSchoolofEECS,PekingUniversity10/8/2008ProgrammingLanguagesandDeve2OutlineProgramminglanguagesDevelopmentenvironment2OutlineProgramminglanguages3EvolutionEvolutionofcomputerlanguages3EvolutionEvolutionofcompute4計(jì)算機(jī)語言的演化機(jī)器語言指令由0和1串組成,程序可直接執(zhí)行符號(hào)語言用符號(hào)表示不同的機(jī)器語言指令,必須被匯編(assembler)為機(jī)器語言高級(jí)語言從關(guān)注計(jì)算機(jī)轉(zhuǎn)移到關(guān)注問題本身.用語句(statement)構(gòu)造應(yīng)用邏輯.通常不能直接執(zhí)行,要編譯(compile)或解釋(interpret)執(zhí)行.4計(jì)算機(jī)語言的演化機(jī)器語言5ComputerlanguageThetermcomputerlanguageincludesalargevarietyofartificiallanguagesusedtocommunicatewithcomputers.Itisbroaderthanthemorecommonly-usedtermprogramminglanguage.Programminglanguagesareasubsetofcomputerlanguages.Forexample,HTMLisamarkuplanguageandacomputerlanguage,butitisnottraditionallyconsideredaprogramminglanguage.Machinecodeisacomputerlanguage.Itcantechnicallybeusedforprogramming,andhasbeen(e.g.theoriginalbootstrapperforAltairBASIC),thoughmostwouldnotconsideritaprogramminglanguage.5ComputerlanguageThetermcom6TypesofComputerLanguagesProgramminglanguagesaretheprimarymeansbywhichdevelopersofcomputingsystemsinstructamachinetoorganizeormanipulateinformationorcontrolphysicaldevices.Mostsoftwareiswrittenusingoneormoreprogramminglanguages.CommonexamplesincludeC,C++,Java,BASIC,assemblylanguages,andmanyothers.Scriptinglanguagesaredesignedtocontrolothersoftwareortocoordinatetheactionsofmultiplesoftwareapplications.Machinecodeanonhuman-readablebinarycomputerlanguagewhichcorrespondstotheavailableinstructionsforamicroprocessor.……6TypesofComputerLanguagesPr7Whatproblemgavebirthtoprogramminglanguages?Beforehighlevelprogramminglanguagesexisted,computerswereprogrammedoneinstructionatatimeusingbinaryorhex.atediousjobandalotoferrors.Obviously,thisjobdidnotattractmanypeople,sotherewasashortageofprogrammers.Expensivecomputerssatidleforlongperiodsoftimewhilesoftwarewasbeingdeveloped.Softwareoftencosttwotofourtimesasmuchasthecomputer.Thisledtothedevelopmentofassemblersandassemblylanguages.Programmingbecamesomewhateasier,butmanyusersstillwantedfloatingpointnumbersandarrayindexing.Sincethesecapabilitieswerenotsupportedinhardware,highlevellanguageshadtobedevelopedtosupportthem.7Whatproblemgavebirthtopr8WhatMakesaLanguageHot?EaseofuseLanguageFeaturesPerformanceCorporateSupportExperiencedProgrammersLegacyCode8WhatMakesaLanguageHot?Eas9910Evolutionofprogramminglanguages10Evolutionofprogramminglan11PASCALPascal語言是由著名瑞士計(jì)算機(jī)科學(xué)家N.Wirth(1984年圖靈獎(jiǎng)得主)設(shè)計(jì)的一種語言,1968年提出后被全世界廣泛接受,成為一種對(duì)計(jì)算機(jī)科學(xué)技術(shù)發(fā)展有巨大影響的語言。這個(gè)語言的名字是為了紀(jì)念歷史上著名的數(shù)學(xué)家和計(jì)算學(xué)科的先驅(qū)BlaisePascal(帕斯卡)。Pascal語言把許多好的東西結(jié)合在一個(gè)很簡練的語言里,被計(jì)算機(jī)教育界廣泛采用。從七十年代末往后的很長一段時(shí)間里,Pascal成為世界范圍的計(jì)算機(jī)專業(yè)教學(xué)語言。11PASCALPascal語言是由著名瑞士計(jì)算機(jī)科學(xué)家12NiklausWirthIn1984hewontheTuringAwardfor developingasequenceofinnovativecomputerlanguages.Euler,AlgolW,Pascal,Modula,Modula-2andOberon.HisarticleProgramDevelopmentbyStepwiseRefinement,abouttheteachingofprogramming,isconsideredtobeaclassictextinsoftwareengineering.In1975hewrotethebookAlgorithms+DataStructures=Programs,whichgainedwiderecognitionandisstillusefultoday.12NiklausWirthIn1984hewon13ADAAda生活在十九世紀(jì)中葉,是著名詩人拜倫的女兒設(shè)計(jì)了巴貝奇分析機(jī)上解伯努利方程的一個(gè)程序,并證明當(dāng)時(shí)的19世紀(jì)計(jì)算機(jī)狂人巴貝奇的分析器可以用于許多問題的求解。她甚至還建立了循環(huán)和子程序的概念。由于她在程序設(shè)計(jì)上的開創(chuàng)性工作,被稱為世界上第一位程序員。Ada語言開發(fā)的目的是作為新一代的美國軍用程序設(shè)計(jì)語言(1983-1995),作為所有與國防有關(guān)的程序和軟件的統(tǒng)一語言標(biāo)準(zhǔn)。Ada語言自1983年作為標(biāo)準(zhǔn)提出后,雖由美國國防部大力推行,也受到各國軍方的重視,但不像預(yù)想的那樣成功,其中一個(gè)原因是它太復(fù)雜。

13ADAAda生活在十九世紀(jì)中葉,是著名詩人拜倫的女兒14CCprogramminglanguagewasdevisedbyBellLabsofAT&TasasystemimplementationlanguageforthenascentUnixoperatingsystem.Contribution:EfficiencyCastingFlexiblearrayLibraryGoodportabilityKenThompson(left)withDennisRitchie(right)14CCprogramminglanguageKen15C語言C是由美國貝爾實(shí)驗(yàn)室的DennisRitchie在1972年設(shè)計(jì)開發(fā)的,開發(fā)目的是想成為一種編制“系統(tǒng)程序”的工具語言。Retchie等人首先用自己發(fā)明的C語言編寫了Unix操作系統(tǒng)。以后C語言逐步發(fā)展成為開發(fā)系統(tǒng)軟件的主要語言。C語言已成為最重要的軟件系統(tǒng)開發(fā)語言,由此可見C語言在計(jì)算機(jī)領(lǐng)域地位之重要。15C語言C是由美國貝爾實(shí)驗(yàn)室的DennisRitch16SIMULAAlthoughneverwidelyused,SIMULAishistoricallyimportant.Developedfrom1964-67,SIMULAwasdesignedasalanguagetoaidincreatingsimulations.SIMULAIwasintroducedin1964,itssolepurposewassystemsimulation.ImmediatelyafterSIMULAIwasfinished,thedesignersdecidedtoworkonanewlanguagewhichwouldcontainmanymorefeaturessothatitcouldbeusedformoregeneralpurposeareas.TheresultwasSIMLUA67.Tohelpmakesimulationeasier,SIMULA67introducedtheconceptofclasses,includinginstancingandcoroutine.Thiswasthebeginningofdataabstraction.16SIMULAAlthoughneverwidely17C++C++wasdesignedtoprovideSimula'sfacilitiesforprogramorganizationtogetherwithC'sefficiencyandflexibilityforsystemsprogramming.Itwasintendedtodeliverthattorealprojects.Contribution:OnelinecommentInlinefunctionMultipleinheritanceOverloadingoperatorsandfunctions17C++C++wasdesignedtoprovi18C++語言C++是在C語言基礎(chǔ)上發(fā)展出的一種“面向 對(duì)象”語言。它是由BjarneStroustrup在美國 貝爾實(shí)驗(yàn)室開發(fā)的(1979)。C++是C語言的一個(gè)擴(kuò)充,修正了C的一些弱點(diǎn)和不足,使用起來更方便可靠;以支持“面向?qū)ο蟆保∣bject-Oriented,簡稱為OO)的程序設(shè)計(jì)方法為基本目標(biāo),提供了一套支持面向?qū)ο蟪绦蛟O(shè)計(jì)的機(jī)制,如“類”(class)、“對(duì)象”(object)等等。面向?qū)ο蟮姆椒ū徽J(rèn)為是開發(fā)復(fù)雜軟件系統(tǒng)的一種有效途徑,OO程序設(shè)計(jì)語言也已經(jīng)被廣泛接受。C++是目前使用最廣泛的一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。

18C++語言C++是在C語言基礎(chǔ)上發(fā)展出的一種“面向19我們這門課程主要介紹C++語言19我們這門課程主要介紹C++語言20NotationsProgramminglanguagesAnotationfordescribingalgorithms(算法,即步驟)anddatastructure(數(shù)據(jù)結(jié)構(gòu),即數(shù)據(jù)或者是信息)ProgramAsentenceofaprogramminglanguage20NotationsProgramminglanguag21OutlineProgramminglanguagesDevelopmentenvironment命令行開發(fā)環(huán)境集成開發(fā)環(huán)境21OutlineProgramminglanguages22ThecompilationsystemTheprogramsthatperformthefourphases(preprocessor,compiler,assembler,andlinker)areknowncollectivelyasthecompilationsystem.gcc–ohellohello.c22ThecompilationsystemThepr23Buildingaprogram23Buildingaprogram24Programexecution24Programexecution25TypicalC++DevelopmentEnvironmentEditProgrammerwritesprogram(andstoressourcecodeondisk)PreprocessPerformcertainmanipulationsbeforecompilationCompileCompilertranslatesC++programsintomachinelanguagesLinkLinkobjectcodewithmissingfunctionsanddataExecuteTransferexecutableimagetomemoryExecutetheprogramoneinstructionatatime25TypicalC++DevelopmentEnvi26GNU程序設(shè)計(jì)工具集獨(dú)立開發(fā)工具:編輯、編譯、調(diào)試等是單獨(dú)的工具,通常是命令行界面編輯工具:vi編譯工具:g++調(diào)試工具:gdb26GNU程序設(shè)計(jì)工具集獨(dú)立開發(fā)工具:編輯、編譯、調(diào)試等是單27程序調(diào)試通常情況下,可執(zhí)行文件中不包含對(duì)源程序的引用信息,如變量名,函數(shù)名,行號(hào)等.g++提供了`-g`開關(guān),將源程序的信息存放在目標(biāo)文件和可執(zhí)行文件的符號(hào)表中,允許調(diào)試器(debugger)gdb

跟蹤程序的執(zhí)行當(dāng)程序崩潰的時(shí)候,檢查程序崩潰前的狀態(tài)運(yùn)行并調(diào)試$gdbprogram

27程序調(diào)試通常情況下,可執(zhí)行文件中不包含對(duì)源程序的引用信28gdb常用命令28gdb常用命令29"Hello,world!"inC++1

//HelloWorld.cpp2

#include<iostream>3

usingnamespacestd;45intmain()6

{7cout<<"Hello,world!\n";8

//cin.get();910

return0;11

}$g++-g-WallHelloWorld.cpp-oHelloWorld29"Hello,world!"inC++1//30Referencescs101courseQ&AonSept.30,2008

/~course/cs101/2008/resource/cs101_course_QA_080930.doc

MSYStutorial

/~course/cs101/2008/resource/tutorial1.doc

Linuxcommandtutorial

/~course/cs101/2008/resource/linux_command_tutorial.pdf

30Referencescs101courseQ&Ao31CodeBlocks編程環(huán)境-基本概念Project(工程):編寫程序的工作是以Project為單位。在開始一個(gè)新程序時(shí),要先建立一個(gè)Project,之后在程序編寫過程中所有與這個(gè)程序有關(guān)的文件都會(huì)包含在這個(gè)Project中。編制的程序可以有各種不同類型,編程環(huán)境為每種類型的程序準(zhǔn)備了一個(gè)模版,用來生成程序的最初框架。在門課程里只介紹編寫Console

Application類型的程序。這類程序的特點(diǎn)是:程序運(yùn)行中會(huì)打開一個(gè)類似于DOS操作系統(tǒng)的界面,所有鍵盤輸入都是通過DOS界面進(jìn)行的,而所有輸出都是輸出到DOS窗口中。31CodeBlocks編程環(huán)境-基本概念Project32SourceFile(源程序)源程序是我們用高級(jí)程序設(shè)計(jì)語言書寫的程序。源程序必須經(jīng)過編譯連接變成可執(zhí)行程序(機(jī)器代碼)才能運(yùn)行。我們主要用C++語言編寫源程序。32SourceFile(源程序)源程序是我們用高級(jí)程序設(shè)33Compile(編譯)把源程序變成機(jī)器目標(biāo)代碼的過程稱為編譯。不同的高級(jí)語言有不同的編譯器。各種高級(jí)語言都會(huì)提供一些常用的功能模塊,我們自己編寫的程序里會(huì)調(diào)用這些功能模塊。編譯并連接是把源程序編譯如果沒有錯(cuò)誤則連接,否則給出編譯錯(cuò)誤信息。Link(連接)Build(編譯并連接)33Compile(編譯)把源程序變成機(jī)器目標(biāo)代碼的過程稱為34Debug(調(diào)試)當(dāng)程序出錯(cuò)時(shí),可用調(diào)試工具發(fā)現(xiàn)錯(cuò)處的代碼,進(jìn)行改正。所謂調(diào)試是指逐條執(zhí)行或部分執(zhí)行程序代碼,并在執(zhí)行過程中查看變量的值。當(dāng)發(fā)現(xiàn)變量的值并非如我們預(yù)期或程序的執(zhí)行邏輯并非我們預(yù)期時(shí),就發(fā)現(xiàn)了錯(cuò)誤,可以進(jìn)行有針對(duì)性的改正。34Debug(調(diào)試)當(dāng)程序出錯(cuò)時(shí),可用調(diào)試工具發(fā)現(xiàn)錯(cuò)處的代35Run(運(yùn)行)啟動(dòng)一個(gè)可執(zhí)行程序使其開始執(zhí)行稱為運(yùn)行。35Run(運(yùn)行)啟動(dòng)一個(gè)可執(zhí)行程序使其開始執(zhí)行稱為運(yùn)行。36CodeBlocks編程環(huán)境–基本功能創(chuàng)建新工程編輯源程序編譯/連接運(yùn)行調(diào)試36CodeBlocks編程環(huán)境–基本功能創(chuàng)建新工程37CodeBlocks編程環(huán)境-創(chuàng)建新工程37CodeBlocks編程環(huán)境-創(chuàng)建新工程38CodeBlocks編程環(huán)境-創(chuàng)建新工程38CodeBlocks編程環(huán)境-創(chuàng)建新工程39CodeBlocks編程環(huán)境-創(chuàng)建新工程39CodeBlocks編程環(huán)境-創(chuàng)建新工程40CodeBlocks編程環(huán)境-創(chuàng)建新工程40CodeBlocks編程環(huán)境-創(chuàng)建新工程41CodeBlocks編程環(huán)境–編輯源程序41CodeBlocks編程環(huán)境–編輯源程序42CodeBlocks編程環(huán)境–編譯/連接42CodeBlocks編程環(huán)境–編譯/連接43CodeBlocks編程環(huán)境–運(yùn)行43CodeBlocks編程環(huán)境–運(yùn)行44CodeBlocks編程環(huán)境–調(diào)試,設(shè)斷點(diǎn)44CodeBlocks編程環(huán)境–調(diào)試,設(shè)斷點(diǎn)45CodeBlocks編程環(huán)境–調(diào)試,運(yùn)行45CodeBlocks編程環(huán)境–調(diào)試,運(yùn)行46CodeBlocks編程環(huán)境–調(diào)試,看變量46CodeBlocks編程環(huán)境–調(diào)試,看變量47CodeBlocks編程環(huán)境–調(diào)試,單步執(zhí)行47CodeBlocks編程環(huán)境–調(diào)試,單步執(zhí)行48程序示例P1000@POJ1//計(jì)算兩個(gè)整數(shù)a和b的和2

#include<iostream>3

usingnamespacestd;45intmain()6

{7

inta,b;89cin>>a>>b;10cout<<a+b<<endl;11

//cin.get();1213

return0;14

}48程序示例P1000@POJ1//計(jì)算兩個(gè)整數(shù)a和b49求10個(gè)數(shù)的平均值1#include<iostream>2

#include<iomanip>3

usingnamespacestd;45intmain()6

{7floatn[10]

,sum=0;8for

(int

i=0;

i<10;

i++)

{9cin>>n[i];10sum+=n[i];11

}12cout

<<

"Theaverageis"

<<fixed<<setprecision(2)

<<sum/10

<<endl;13

14return

0;15

}49求10個(gè)數(shù)的平均值1#include<iostre50 弗雷德先生想在路易斯安娜州買一塊地造房子。在調(diào)查中他了解到由于密西西比河的侵蝕,路易斯安娜州正在以每年50平方英里的速度變小。因?yàn)楦ダ椎孪壬M谒男路孔永锷钪敝两K老,所以他想知道他的房子是否會(huì)被侵蝕掉。 經(jīng)過進(jìn)一步研究,弗雷德發(fā)現(xiàn)將要被侵蝕的陸地呈半圓形。半圓是一個(gè)以(0,0)點(diǎn)為中心的圓的一半,半圓的直邊是X軸。X軸以下的部分在水中。在第一年的開始,圓的面積是0。 問題是如果給定一點(diǎn)的X,Y坐標(biāo)(Y>=0),要求出在第幾年年末,這個(gè)點(diǎn)將被侵蝕。例如:給定X,Y坐標(biāo)為(1.0,1.0),則輸出:第1年年末。x,yxy房地產(chǎn)問題50 弗雷德先生想在路易斯安娜州買一塊地造房子。在調(diào)查中他51房地產(chǎn)問題1#include<iostream>2

#include<math.h>3

usingnamespacestd;45intmain()6

{7

floatx,y;8

int

year;9cin>>x>>y;10

year=(int)ceil(3.1416*(x*x+y*y)/2/50);11cout

<<

"Becorradedafter"

<<year<<

"years.\n";12

13return

0;14

}x,yxy51房地產(chǎn)問題1#include<iostream>x演講完畢,謝謝觀看!演講完畢,謝謝觀看!ProgrammingLanguagesandDevelopmentEnvironment

(程序設(shè)計(jì)語言和開發(fā)環(huán)境)/~course/cs101/2008

HongfeiYanSchoolofEECS,PekingUniversity10/8/2008ProgrammingLanguagesandDeve54OutlineProgramminglanguagesDevelopmentenvironment2OutlineProgramminglanguages55EvolutionEvolutionofcomputerlanguages3EvolutionEvolutionofcompute56計(jì)算機(jī)語言的演化機(jī)器語言指令由0和1串組成,程序可直接執(zhí)行符號(hào)語言用符號(hào)表示不同的機(jī)器語言指令,必須被匯編(assembler)為機(jī)器語言高級(jí)語言從關(guān)注計(jì)算機(jī)轉(zhuǎn)移到關(guān)注問題本身.用語句(statement)構(gòu)造應(yīng)用邏輯.通常不能直接執(zhí)行,要編譯(compile)或解釋(interpret)執(zhí)行.4計(jì)算機(jī)語言的演化機(jī)器語言57ComputerlanguageThetermcomputerlanguageincludesalargevarietyofartificiallanguagesusedtocommunicatewithcomputers.Itisbroaderthanthemorecommonly-usedtermprogramminglanguage.Programminglanguagesareasubsetofcomputerlanguages.Forexample,HTMLisamarkuplanguageandacomputerlanguage,butitisnottraditionallyconsideredaprogramminglanguage.Machinecodeisacomputerlanguage.Itcantechnicallybeusedforprogramming,andhasbeen(e.g.theoriginalbootstrapperforAltairBASIC),thoughmostwouldnotconsideritaprogramminglanguage.5ComputerlanguageThetermcom58TypesofComputerLanguagesProgramminglanguagesaretheprimarymeansbywhichdevelopersofcomputingsystemsinstructamachinetoorganizeormanipulateinformationorcontrolphysicaldevices.Mostsoftwareiswrittenusingoneormoreprogramminglanguages.CommonexamplesincludeC,C++,Java,BASIC,assemblylanguages,andmanyothers.Scriptinglanguagesaredesignedtocontrolothersoftwareortocoordinatetheactionsofmultiplesoftwareapplications.Machinecodeanonhuman-readablebinarycomputerlanguagewhichcorrespondstotheavailableinstructionsforamicroprocessor.……6TypesofComputerLanguagesPr59Whatproblemgavebirthtoprogramminglanguages?Beforehighlevelprogramminglanguagesexisted,computerswereprogrammedoneinstructionatatimeusingbinaryorhex.atediousjobandalotoferrors.Obviously,thisjobdidnotattractmanypeople,sotherewasashortageofprogrammers.Expensivecomputerssatidleforlongperiodsoftimewhilesoftwarewasbeingdeveloped.Softwareoftencosttwotofourtimesasmuchasthecomputer.Thisledtothedevelopmentofassemblersandassemblylanguages.Programmingbecamesomewhateasier,butmanyusersstillwantedfloatingpointnumbersandarrayindexing.Sincethesecapabilitieswerenotsupportedinhardware,highlevellanguageshadtobedevelopedtosupportthem.7Whatproblemgavebirthtopr60WhatMakesaLanguageHot?EaseofuseLanguageFeaturesPerformanceCorporateSupportExperiencedProgrammersLegacyCode8WhatMakesaLanguageHot?Eas61962Evolutionofprogramminglanguages10Evolutionofprogramminglan63PASCALPascal語言是由著名瑞士計(jì)算機(jī)科學(xué)家N.Wirth(1984年圖靈獎(jiǎng)得主)設(shè)計(jì)的一種語言,1968年提出后被全世界廣泛接受,成為一種對(duì)計(jì)算機(jī)科學(xué)技術(shù)發(fā)展有巨大影響的語言。這個(gè)語言的名字是為了紀(jì)念歷史上著名的數(shù)學(xué)家和計(jì)算學(xué)科的先驅(qū)BlaisePascal(帕斯卡)。Pascal語言把許多好的東西結(jié)合在一個(gè)很簡練的語言里,被計(jì)算機(jī)教育界廣泛采用。從七十年代末往后的很長一段時(shí)間里,Pascal成為世界范圍的計(jì)算機(jī)專業(yè)教學(xué)語言。11PASCALPascal語言是由著名瑞士計(jì)算機(jī)科學(xué)家64NiklausWirthIn1984hewontheTuringAwardfor developingasequenceofinnovativecomputerlanguages.Euler,AlgolW,Pascal,Modula,Modula-2andOberon.HisarticleProgramDevelopmentbyStepwiseRefinement,abouttheteachingofprogramming,isconsideredtobeaclassictextinsoftwareengineering.In1975hewrotethebookAlgorithms+DataStructures=Programs,whichgainedwiderecognitionandisstillusefultoday.12NiklausWirthIn1984hewon65ADAAda生活在十九世紀(jì)中葉,是著名詩人拜倫的女兒設(shè)計(jì)了巴貝奇分析機(jī)上解伯努利方程的一個(gè)程序,并證明當(dāng)時(shí)的19世紀(jì)計(jì)算機(jī)狂人巴貝奇的分析器可以用于許多問題的求解。她甚至還建立了循環(huán)和子程序的概念。由于她在程序設(shè)計(jì)上的開創(chuàng)性工作,被稱為世界上第一位程序員。Ada語言開發(fā)的目的是作為新一代的美國軍用程序設(shè)計(jì)語言(1983-1995),作為所有與國防有關(guān)的程序和軟件的統(tǒng)一語言標(biāo)準(zhǔn)。Ada語言自1983年作為標(biāo)準(zhǔn)提出后,雖由美國國防部大力推行,也受到各國軍方的重視,但不像預(yù)想的那樣成功,其中一個(gè)原因是它太復(fù)雜。

13ADAAda生活在十九世紀(jì)中葉,是著名詩人拜倫的女兒66CCprogramminglanguagewasdevisedbyBellLabsofAT&TasasystemimplementationlanguageforthenascentUnixoperatingsystem.Contribution:EfficiencyCastingFlexiblearrayLibraryGoodportabilityKenThompson(left)withDennisRitchie(right)14CCprogramminglanguageKen67C語言C是由美國貝爾實(shí)驗(yàn)室的DennisRitchie在1972年設(shè)計(jì)開發(fā)的,開發(fā)目的是想成為一種編制“系統(tǒng)程序”的工具語言。Retchie等人首先用自己發(fā)明的C語言編寫了Unix操作系統(tǒng)。以后C語言逐步發(fā)展成為開發(fā)系統(tǒng)軟件的主要語言。C語言已成為最重要的軟件系統(tǒng)開發(fā)語言,由此可見C語言在計(jì)算機(jī)領(lǐng)域地位之重要。15C語言C是由美國貝爾實(shí)驗(yàn)室的DennisRitch68SIMULAAlthoughneverwidelyused,SIMULAishistoricallyimportant.Developedfrom1964-67,SIMULAwasdesignedasalanguagetoaidincreatingsimulations.SIMULAIwasintroducedin1964,itssolepurposewassystemsimulation.ImmediatelyafterSIMULAIwasfinished,thedesignersdecidedtoworkonanewlanguagewhichwouldcontainmanymorefeaturessothatitcouldbeusedformoregeneralpurposeareas.TheresultwasSIMLUA67.Tohelpmakesimulationeasier,SIMULA67introducedtheconceptofclasses,includinginstancingandcoroutine.Thiswasthebeginningofdataabstraction.16SIMULAAlthoughneverwidely69C++C++wasdesignedtoprovideSimula'sfacilitiesforprogramorganizationtogetherwithC'sefficiencyandflexibilityforsystemsprogramming.Itwasintendedtodeliverthattorealprojects.Contribution:OnelinecommentInlinefunctionMultipleinheritanceOverloadingoperatorsandfunctions17C++C++wasdesignedtoprovi70C++語言C++是在C語言基礎(chǔ)上發(fā)展出的一種“面向 對(duì)象”語言。它是由BjarneStroustrup在美國 貝爾實(shí)驗(yàn)室開發(fā)的(1979)。C++是C語言的一個(gè)擴(kuò)充,修正了C的一些弱點(diǎn)和不足,使用起來更方便可靠;以支持“面向?qū)ο蟆保∣bject-Oriented,簡稱為OO)的程序設(shè)計(jì)方法為基本目標(biāo),提供了一套支持面向?qū)ο蟪绦蛟O(shè)計(jì)的機(jī)制,如“類”(class)、“對(duì)象”(object)等等。面向?qū)ο蟮姆椒ū徽J(rèn)為是開發(fā)復(fù)雜軟件系統(tǒng)的一種有效途徑,OO程序設(shè)計(jì)語言也已經(jīng)被廣泛接受。C++是目前使用最廣泛的一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。

18C++語言C++是在C語言基礎(chǔ)上發(fā)展出的一種“面向71我們這門課程主要介紹C++語言19我們這門課程主要介紹C++語言72NotationsProgramminglanguagesAnotationfordescribingalgorithms(算法,即步驟)anddatastructure(數(shù)據(jù)結(jié)構(gòu),即數(shù)據(jù)或者是信息)ProgramAsentenceofaprogramminglanguage20NotationsProgramminglanguag73OutlineProgramminglanguagesDevelopmentenvironment命令行開發(fā)環(huán)境集成開發(fā)環(huán)境21OutlineProgramminglanguages74ThecompilationsystemTheprogramsthatperformthefourphases(preprocessor,compiler,assembler,andlinker)areknowncollectivelyasthecompilationsystem.gcc–ohellohello.c22ThecompilationsystemThepr75Buildingaprogram23Buildingaprogram76Programexecution24Programexecution77TypicalC++DevelopmentEnvironmentEditProgrammerwritesprogram(andstoressourcecodeondisk)PreprocessPerformcertainmanipulationsbeforecompilationCompileCompilertranslatesC++programsintomachinelanguagesLinkLinkobjectcodewithmissingfunctionsanddataExecuteTransferexecutableimagetomemoryExecutetheprogramoneinstructionatatime25TypicalC++DevelopmentEnvi78GNU程序設(shè)計(jì)工具集獨(dú)立開發(fā)工具:編輯、編譯、調(diào)試等是單獨(dú)的工具,通常是命令行界面編輯工具:vi編譯工具:g++調(diào)試工具:gdb26GNU程序設(shè)計(jì)工具集獨(dú)立開發(fā)工具:編輯、編譯、調(diào)試等是單79程序調(diào)試通常情況下,可執(zhí)行文件中不包含對(duì)源程序的引用信息,如變量名,函數(shù)名,行號(hào)等.g++提供了`-g`開關(guān),將源程序的信息存放在目標(biāo)文件和可執(zhí)行文件的符號(hào)表中,允許調(diào)試器(debugger)gdb

跟蹤程序的執(zhí)行當(dāng)程序崩潰的時(shí)候,檢查程序崩潰前的狀態(tài)運(yùn)行并調(diào)試$gdbprogram

27程序調(diào)試通常情況下,可執(zhí)行文件中不包含對(duì)源程序的引用信80gdb常用命令28gdb常用命令81"Hello,world!"inC++1

//HelloWorld.cpp2

#include<iostream>3

usingnamespacestd;45intmain()6

{7cout<<"Hello,world!\n";8

//cin.get();910

return0;11

}$g++-g-WallHelloWorld.cpp-oHelloWorld29"Hello,world!"inC++1//82Referencescs101courseQ&AonSept.30,2008

/~course/cs101/2008/resource/cs101_course_QA_080930.doc

MSYStutorial

/~course/cs101/2008/resource/tutorial1.doc

Linuxcommandtutorial

/~course/cs101/2008/resource/linux_command_tutorial.pdf

30Referencescs101courseQ&Ao83CodeBlocks編程環(huán)境-基本概念Project(工程):編寫程序的工作是以Project為單位。在開始一個(gè)新程序時(shí),要先建立一個(gè)Project,之后在程序編寫過程中所有與這個(gè)程序有關(guān)的文件都會(huì)包含在這個(gè)Project中。編制的程序可以有各種不同類型,編程環(huán)境為每種類型的程序準(zhǔn)備了一個(gè)模版,用來生成程序的最初框架。在門課程里只介紹編寫Console

Application類型的程序。這類程序的特點(diǎn)是:程序運(yùn)行中會(huì)打開一個(gè)類似于DOS操作系統(tǒng)的界面,所有鍵盤輸入都是通過DOS界面進(jìn)行的,而所有輸出都是輸出到DOS窗口中。31CodeBlocks編程環(huán)境-基本概念Project84SourceFile(源程序)源程序是我們用高級(jí)程序設(shè)計(jì)語言書寫的程序。源程序必須經(jīng)過編譯連接變成可執(zhí)行程序(機(jī)器代碼)才能運(yùn)行。我們主要用C++語言編寫源程序。32SourceFile(源程序)源程序是我們用高級(jí)程序設(shè)85Compile(編譯)把源程序變成機(jī)器目標(biāo)代碼的過程稱為編譯。不同的高級(jí)語言有不同的編譯器。各種高級(jí)語言都會(huì)提供一些常用的功能模塊,我們自己編寫的程序里會(huì)調(diào)用這些功能模塊。編譯并連接是把源程序編譯如果沒有錯(cuò)誤則連接,否則給出編譯錯(cuò)誤信息。Link(連接)Build(編譯并連接)33Compile(編譯)把源程序變成機(jī)器目標(biāo)代碼的過程稱為86Debug(調(diào)試)當(dāng)程序出錯(cuò)時(shí),可用調(diào)試工具發(fā)現(xiàn)錯(cuò)處的代碼,進(jìn)行改正。所謂調(diào)試是指逐條執(zhí)行或部分執(zhí)行程序代碼,并在執(zhí)行過程中查看變量的值。當(dāng)發(fā)現(xiàn)變量的值并非如我們預(yù)期或程序的執(zhí)行邏輯并非我們預(yù)期時(shí),就發(fā)現(xiàn)了錯(cuò)誤,可以進(jìn)行有針對(duì)性的改正。34Debug(調(diào)試)當(dāng)程序出錯(cuò)時(shí),可用調(diào)試工具發(fā)現(xiàn)錯(cuò)處的代87Run(運(yùn)行)啟動(dòng)一個(gè)可執(zhí)行程序使其開始執(zhí)行稱為運(yùn)行。35Run(運(yùn)行)啟動(dòng)一個(gè)可執(zhí)行程序使其開始執(zhí)行稱為運(yùn)行。88CodeBlocks

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論