introdução à linguagem c - cin - centro de informática da...
TRANSCRIPT
CIn.ufpe.br
ComputaçãoEletrônicaIntrodução à linguagem C Prof:LucianoBarbosa
CIn.ufpe.br
CéaLinguagemAdotadanaDisciplina
• AnteriormenteutilizavaaLinguagemPascal• Dosemestre2013-2emdiante
– UsodaLinguagemdeProgramaçãoC– Adaptaçãodoconteúdopara“asengenharias”– Exercíciosdirecionadosaocursodeengenharia
CIn.ufpe.br
PorquealinguagemC?
• DefasagemdalinguagemPascal• Principaislinguagensdomercado/comerciaissãobaseadasemC(C+
+,Java,C#)• Emtermosdedesempenho(velocidadedeexecução)éimbatível• Sistemasoperacionais(LinuxeUnix)sãoescritosemC• Bastanteutilizada:
CIn.ufpe.br
PorquealinguagemC?
• ConexãodedispositivosacomputadoresépossívelpormeiodesoftwaresemC
• Velocidadedeexecução:– Computaçãográfica
• Ex:FilmesdaPixar
– Softwareembutidoemdispositivo• EmbeddedC:linguagemmaispopularparasistemasembutidosnomundo
– MelhorlinguagemparadesenvolvimentodeGames• Ex:QuakeIIemC;FIFAeCallofDutyemC++
• Escolhidacomolinguagemcientífica
CIn.ufpe.br
AplicaçõesusandoC/C++
CIn.ufpe.br
AplicaçõesusandoC/C++
CIn.ufpe.br
AplicaçõesusandoC/C++
CIn.ufpe.br
AplicaçõesusandoC/C++
https://www.coursera.org/specializations/iot
CIn.ufpe.br
AmbientesdeDesenvolvimento
• OuIDE(IntegratedDevelopmentEnvironment):• Normalmenteincluem:
1. Umeditordetextoparacódigos-fonte• Complementaçãoautomáticadecódigo(codecompletion),• Destacamentodesintaxeatravésdecores(syntaxhighlighting)
2. Umcompilador(compiler)3. Umdepurador(debugger):permiteexecutaroprogramapasso-a-
passo
CIn.ufpe.br
AmbientesdeDesenvolvimento
• IDEsgratuitasparaC/C++recomendadasparaocurso:– Code::Blocks-http://www.codeblocks.org/– DevC++-http://sourceforge.net/projects/dev-cpp/– MinGW-http://www.mingw.org/
• OutrasIDEsmaisprofissionaisetambémgratuitas:– Eclipse-https://www.eclipse.org/– Netbeans-https://netbeans.org/downloads/
CIn.ufpe.br
AmbientesparaMac
• Code::Blockshttp://www.codeblocks.org/downloads/26• CodeLitehttp://downloads.codelite.org/
• Xcode– VemnoDVDqueacompanhaoMacBookoupodeserbaixadode:
https://developer.apple.com/xcode/
CIn.ufpe.br
IDEsparaiOS
• ParaiPadeiPhone– CProgrammingLanguage
• https://itunes.apple.com/br/artist/dmitry-kovba/id499545921?l=en
– CodeToGo• https://itunes.apple.com/br/app/codetogo/id382677229?l=en&mt=8
– Gusto-CodeEditor• https://itunes.apple.com/us/app/gusto/id364906873?mt=8
CIn.ufpe.br
IDEsparaAndroid
• DroidEdit– https://play.google.com/store/apps/details?
id=com.aor.droidedit&hl=en
• CppDroid-C/C++IDE– https://play.google.com/store/apps/details?
id=name.antonsmirnov.android.cppdroid
• +15appsforprogrammingonAndroid– http://android.appstorm.net/roundups/developer/15-apps-for-
programming-on-android/
CIn.ufpe.br
IDEsparaWindowsphone
• TouchC– http://www.windowsphone.com/en-us/store/app/touch-c/
3fb34f3f-83e9-4199-a70e-d05a47172794
• Cforbeginners– http://www.windowsphone.com/en-us/store/app/c-for-beginners/
d8fc45de-1c6d-45f0-b34b-83296444e11b
• PrograminC– http://www.windowsphone.com/en-us/store/app/program-in-c/
4536bd55-276c-4c09-8383-4ea1621ee61d
CIn.ufpe.br
Exercício1:Calculeumnúmeroelevadoao
cubo
15
CIn.ufpe.br
Exercício1:Calculeumnúmeroelevadoaocubo
• Passo-a-passoparaaconstruçãodealgoritmos1. Definirentradaesaída:
• Entrada:n• Saída:cubo• cubo=f(n)
16
CIn.ufpe.br
Exercício1:Calculeumnúmeroelevadoaocubo
• Passo-a-passoparaaconstruçãodealgoritmos1. Definirentradaesaída:
• Entrada:n• Saída:cubo• cubo=f(n)
2. Implementarafunçãodesaída:Númeroelevadoaocubo• f(n)=n*n*n• ou• cubo=n*n*n
17
CIn.ufpe.br
Exercício1:Calculeumnúmeroelevadoaocubo
• Passo-a-passoparaaconstruçãodealgoritmos1. Definirentradaesaída2. Implementarafunçãodesaída:Númeroelevadoaocubo
18
ncubo=n*n*n
FunçãoInput Output
cubo
CIn.ufpe.br
Exercício1:Calculeumnúmeroelevadoaocubo
• Passo-a-passoparaaconstruçãodealgoritmos1. Definirentradaesaída2. Implementarfunção3. Compilarocódigo4. Seok,executarocódigo.Senão,voltarparaopasso25. Testarocódigo6. Seok,FIM.Senão,voltaparaopasso2
19
CIn.ufpe.br
Passo-a-passoparaConstruirAlgoritmos
20
DefinirE/SProblema
Implementar Compilar
Não
Sim
Testar
Não
Sim
Fim
Erro?
Erro?
CIn.ufpe.br
Exemplo:Calculeumnúmeroelevadoaocubo–LinguagemC
• Definindoaentradaeasaída(variáveis)
Declaraçãodavariáveldeentrada
Declaraçãodavariáveldesaída
CIn.ufpe.br
Exemplo:Cálculoumnúmeroaocubo–LinguagemC
• Implementandoafunçãodesaída
Comandoquecalculaafunção
CIn.ufpe.br
Exemplo:Cálculoumnúmeroaocubo–LinguagemC
• Adicionandocomandosdeimpressãoeleituraparaaentrada
Comandoparaimpressãonatela
Comandoparaleituradeentrada
CIn.ufpe.br
Exemplo:Cálculoumnúmeroaocubo–LinguagemC
• Adicionandocomandosdeimpressãodasaída
Comandodeimpressãodasaída
CIn.ufpe.br
Exemplo:Cálculoumnúmeroaocubo–LinguagemC
Inclusãodebibliotecas
Declaraçãodevariáveis
Comandos
Funçãomain
Comentário
CIn.ufpe.br
• Contêmfunçõescomplementares(ex:funcõesmatemáticas)• “#include”informaaocompiladorquaisbibliotecasdevemser
anexadasaoprogramaexecutável• Sintaxe:
BibliotecasemC
#include <nome_do_arquivo_da_biblioteca>
CIn.ufpe.br
stdio.h• Bibliotecapadrão• “std”éabreviaçãodestandard(padrão)• “io”éabreviaçãodeinput/output(entrada/saída)• Funçõesparaimpressão
detextonatela(printf(...))eleituradaentradadoteclado(scanf(...))
CIn.ufpe.br
• Possuiasequênciadecomandosquedeveserexecutada• Defineondecomeçaeterminaoprogramaprincipalporumpar
dechaves:“{“(abrechaves)e“}”(fechachaves).
FunçãoMain
CIn.ufpe.br
• Declaradasnocomeçodoprograma• Noexemploanterior,foramdeclaradasduasvariáveisdotipo
inteiro:numecubo.
DeclaraçãodeVariáveis
Declaraçãodevariáveis
CIn.ufpe.br
• Apósadeclaraçãodasvariáveis
Comandos
Declaraçãodevariáveis
Comandos
CIn.ufpe.br
• Detalhesadicionais:funçãomain– Porpadrãoafunçãoprincipaldeveserdotipoint(inteiro)eretornarvalor
zeroaofinaldesuaexecução(significaqueoprogramaterminousemerros);
– Veremosmaissobreistofuturamente.
ProgramaemC
CIn.ufpe.br
PalavrasReservadas
• Conjuntodepalavrasquetemumsignificadoparaalinguagemdeprogramação
• Umapalavrareservadaé,essencialmente,umcomando
autobreakcasecharconstswitchvolatilecontinue
defaultdo
doubleelse
typedefwhileenumextern
floatforgotounionifintlong
register
unsignedreturnshortsignedsizeofstaticstructvoid
CIn.ufpe.br
• Utilizadosparadocumentaçãoparafacilitarentendimento• Podemsercolocadosemqualquerpartedoprograma• Compiladorignora• Doistipos:
– Linha://textodocomentário– Bloco:
ComentáriosemProgramas
/*textodocomentáriotextodocomentáriotextodocomentário*/
CIn.ufpe.br
Exemplo:ProgramaCComentado
CIn.ufpe.br
CriandoumProjetonoCode::Blocks
CIn.ufpe.br
CriandoumProjetonoCode::Blocks
• Nestecursoiremosutilizar“AplicaçõesdeConsole”comotipodeprojeto:
CIn.ufpe.br
CriandoumProjetonoCode::Blocks
• EosprojetosserãofeitosemLinguagemC:
CIn.ufpe.br
CriandoumProjetonoCode::Blocks
• Indiqueonomeeodiretóriodoprojeto:– Importante:Nãoutilizeespaçosoucaracteresespeciais(ç~´`)notítulo
doprojetoounodiretório!
CIn.ufpe.br
OsFundamentosdoAmbienteC
• NoCode::Blocks,apósacompilação,oprogramaexecutável“.exe”éarmazenadonodiretório“bin\Debug”,dentrododiretórioprojeto;
• Oscódigosfonte(.c–sourcefile)ecabeçalhos(.h–headerfiles)ficamarmazenadosnapastaprincipaldoprojeto.
• Oarquivodoprogramaexecutávelnãopodesereditado,oquenóspodemoseditarsãoosarquivosdocódigofonte.
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.
CIn.ufpe.br
ConhecendooCode::Blocks
CIn.ufpe.br
CompilandoeExecutando
Bastaclicarnestebotãoparacompilareexecutaroprograma
Sehouvererrosdesintaxeelesserãoreportadosemvermelho.Avisossão
reportadosemazul
CIn.ufpe.br
CompilandoeExecutando• Aocorrigireexecutarnovamenteoprogramaoconsoleseabre
executandoospassosdoprograma:
CIn.ufpe.br
DepurandooCódigo-Debug• Clicarcomodireitonalinhaparaadicionarouremover
breakpoints(pontosdeparadanaexecuçãoparainvestigação);• Clicarnasetavermelha(Debug/Continue);• Clicarcomodireitosobreumavariáveledepoisem“Watch...”
Bastaclicarnestebotãoparadepurarem
vezdeexecutaroprograma
CIn.ufpe.br
DepurandooCódigo• Executaroprogramapasso-a-passoclicandonosbotões
indicadosabaixo:
Executaratéocursor
Irparaapróximalinha Entrarnafunção
Sairdafunção
CIn.ufpe.br
Exercícios
• Calculeamédiaaritméticade3númerosdados• Calculeoantecessoresucessordeumnúmero• Calculeaáreadeumcírculoderaior• ConvertadeCelsiusparaFahrenheit
45
CIn.ufpe.br
Atividade
• Consultaroslivros• LivrodoJaimeEvaristo
– Estudaroprimeirocapítuloeametadedosegundocapítulo
• FazerodownloaddeumadasIDEs(linknoslideanterior)– Instalar(recomendadocode::blocks)– Reescreveroscódigosdeexemplosdosegundocapítulodolivrode
Evaristo.– Executaredepurar(passo-a-passo)cadaumdelesparaentenderseu
funcionamento.