46
CIn.ufpe.br Computação Eletrônica Introdução à linguagem C Prof: Luciano Barbosa

Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

ComputaçãoEletrônicaIntrodução à linguagem C Prof:LucianoBarbosa

Page 2: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

CéaLinguagemAdotadanaDisciplina

•  AnteriormenteutilizavaaLinguagemPascal•  Dosemestre2013-2emdiante

–  UsodaLinguagemdeProgramaçãoC–  Adaptaçãodoconteúdopara“asengenharias”–  Exercíciosdirecionadosaocursodeengenharia

Page 3: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

PorquealinguagemC?

•  DefasagemdalinguagemPascal•  Principaislinguagensdomercado/comerciaissãobaseadasemC(C+

+,Java,C#)•  Emtermosdedesempenho(velocidadedeexecução)éimbatível•  Sistemasoperacionais(LinuxeUnix)sãoescritosemC•  Bastanteutilizada:

Page 4: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

PorquealinguagemC?

•  ConexãodedispositivosacomputadoresépossívelpormeiodesoftwaresemC

•  Velocidadedeexecução:–  Computaçãográfica

•  Ex:FilmesdaPixar

–  Softwareembutidoemdispositivo•  EmbeddedC:linguagemmaispopularparasistemasembutidosnomundo

–  MelhorlinguagemparadesenvolvimentodeGames•  Ex:QuakeIIemC;FIFAeCallofDutyemC++

•  Escolhidacomolinguagemcientífica

Page 5: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

AplicaçõesusandoC/C++

Page 6: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

AplicaçõesusandoC/C++

Page 7: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

AplicaçõesusandoC/C++

Page 8: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

AplicaçõesusandoC/C++

https://www.coursera.org/specializations/iot

Page 9: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

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

Page 10: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

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/

Page 11: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

AmbientesparaMac

•  Code::Blockshttp://www.codeblocks.org/downloads/26•  CodeLitehttp://downloads.codelite.org/

•  Xcode–  VemnoDVDqueacompanhaoMacBookoupodeserbaixadode:

https://developer.apple.com/xcode/

Page 12: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

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

Page 13: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

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/

Page 14: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

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

Page 15: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

Exercício1:Calculeumnúmeroelevadoao

cubo

15

Page 16: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

Exercício1:Calculeumnúmeroelevadoaocubo

•  Passo-a-passoparaaconstruçãodealgoritmos1.  Definirentradaesaída:

•  Entrada:n•  Saída:cubo•  cubo=f(n)

16

Page 17: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

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

Page 18: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

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

Page 19: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

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

Page 20: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

Passo-a-passoparaConstruirAlgoritmos

20

DefinirE/SProblema

Implementar Compilar

Não

Sim

Testar

Não

Sim

Fim

Erro?

Erro?

Page 21: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

Exemplo:Calculeumnúmeroelevadoaocubo–LinguagemC

•  Definindoaentradaeasaída(variáveis)

Declaraçãodavariáveldeentrada

Declaraçãodavariáveldesaída

Page 22: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

Exemplo:Cálculoumnúmeroaocubo–LinguagemC

•  Implementandoafunçãodesaída

Comandoquecalculaafunção

Page 23: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

Exemplo:Cálculoumnúmeroaocubo–LinguagemC

•  Adicionandocomandosdeimpressãoeleituraparaaentrada

Comandoparaimpressãonatela

Comandoparaleituradeentrada

Page 24: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

Exemplo:Cálculoumnúmeroaocubo–LinguagemC

•  Adicionandocomandosdeimpressãodasaída

Comandodeimpressãodasaída

Page 25: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

Exemplo:Cálculoumnúmeroaocubo–LinguagemC

Inclusãodebibliotecas

Declaraçãodevariáveis

Comandos

Funçãomain

Comentário

Page 26: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

•  Contêmfunçõescomplementares(ex:funcõesmatemáticas)•  “#include”informaaocompiladorquaisbibliotecasdevemser

anexadasaoprogramaexecutável•  Sintaxe:

BibliotecasemC

#include <nome_do_arquivo_da_biblioteca>

Page 27: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

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(...))

Page 28: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

•  Possuiasequênciadecomandosquedeveserexecutada•  Defineondecomeçaeterminaoprogramaprincipalporumpar

dechaves:“{“(abrechaves)e“}”(fechachaves).

FunçãoMain

Page 29: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

•  Declaradasnocomeçodoprograma•  Noexemploanterior,foramdeclaradasduasvariáveisdotipo

inteiro:numecubo.

DeclaraçãodeVariáveis

Declaraçãodevariáveis

Page 30: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

•  Apósadeclaraçãodasvariáveis

Comandos

Declaraçãodevariáveis

Comandos

Page 31: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

•  Detalhesadicionais:funçãomain–  Porpadrãoafunçãoprincipaldeveserdotipoint(inteiro)eretornarvalor

zeroaofinaldesuaexecução(significaqueoprogramaterminousemerros);

–  Veremosmaissobreistofuturamente.

ProgramaemC

Page 32: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

PalavrasReservadas

•  Conjuntodepalavrasquetemumsignificadoparaalinguagemdeprogramação

•  Umapalavrareservadaé,essencialmente,umcomando

autobreakcasecharconstswitchvolatilecontinue

defaultdo

doubleelse

typedefwhileenumextern

floatforgotounionifintlong

register

unsignedreturnshortsignedsizeofstaticstructvoid

Page 33: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

•  Utilizadosparadocumentaçãoparafacilitarentendimento•  Podemsercolocadosemqualquerpartedoprograma•  Compiladorignora•  Doistipos:

–  Linha://textodocomentário–  Bloco:

ComentáriosemProgramas

/*textodocomentáriotextodocomentáriotextodocomentário*/

Page 34: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

Exemplo:ProgramaCComentado

Page 35: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

CriandoumProjetonoCode::Blocks

Page 36: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

CriandoumProjetonoCode::Blocks

•  Nestecursoiremosutilizar“AplicaçõesdeConsole”comotipodeprojeto:

Page 37: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

CriandoumProjetonoCode::Blocks

•  EosprojetosserãofeitosemLinguagemC:

Page 38: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

CriandoumProjetonoCode::Blocks

•  Indiqueonomeeodiretóriodoprojeto:–  Importante:Nãoutilizeespaçosoucaracteresespeciais(ç~´`)notítulo

doprojetoounodiretório!

Page 39: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

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.

Page 40: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

ConhecendooCode::Blocks

Page 41: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

CompilandoeExecutando

Bastaclicarnestebotãoparacompilareexecutaroprograma

Sehouvererrosdesintaxeelesserãoreportadosemvermelho.Avisossão

reportadosemazul

Page 42: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

CompilandoeExecutando•  Aocorrigireexecutarnovamenteoprogramaoconsoleseabre

executandoospassosdoprograma:

Page 43: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

DepurandooCódigo-Debug•  Clicarcomodireitonalinhaparaadicionarouremover

breakpoints(pontosdeparadanaexecuçãoparainvestigação);•  Clicarnasetavermelha(Debug/Continue);•  Clicarcomodireitosobreumavariáveledepoisem“Watch...”

Bastaclicarnestebotãoparadepurarem

vezdeexecutaroprograma

Page 44: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

DepurandooCódigo•  Executaroprogramapasso-a-passoclicandonosbotões

indicadosabaixo:

Executaratéocursor

Irparaapróximalinha Entrarnafunção

Sairdafunção

Page 45: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

Exercícios

•  Calculeamédiaaritméticade3númerosdados•  Calculeoantecessoresucessordeumnúmero•  Calculeaáreadeumcírculoderaior•  ConvertadeCelsiusparaFahrenheit

45

Page 46: Introdução à linguagem C - UFPEluciano/cursos/ce/introducao_c.pdf · CIn.ufpe.br C é a Linguagem Adotada na Disciplina • Anteriormente utilizava a Linguagem Pascal • Do semestre

CIn.ufpe.br

Atividade

•  Consultaroslivros•  LivrodoJaimeEvaristo

–  Estudaroprimeirocapítuloeametadedosegundocapítulo

•  FazerodownloaddeumadasIDEs(linknoslideanterior)–  Instalar(recomendadocode::blocks)–  Reescreveroscódigosdeexemplosdosegundocapítulodolivrode

Evaristo.–  Executaredepurar(passo-a-passo)cadaumdelesparaentenderseu

funcionamento.