introdução à linguagem c - cin - centro de informática da...

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

Upload: others

Post on 08-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

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

Page 2: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

CéaLinguagemAdotadanaDisciplina

•  AnteriormenteutilizavaaLinguagemPascal•  Dosemestre2013-2emdiante

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

Page 3: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

AplicaçõesusandoC/C++

Page 6: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

AplicaçõesusandoC/C++

Page 7: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

AplicaçõesusandoC/C++

Page 8: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

AplicaçõesusandoC/C++

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

Page 9: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

Exercício1:Calculeumnúmeroelevadoao

cubo

15

Page 16: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

Exemplo:Calculeumnúmeroelevadoaocubo–LinguagemC

•  Definindoaentradaeasaída(variáveis)

Declaraçãodavariáveldeentrada

Declaraçãodavariáveldesaída

Page 22: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

Exemplo:Cálculoumnúmeroaocubo–LinguagemC

•  Implementandoafunçãodesaída

Comandoquecalculaafunção

Page 23: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

Exemplo:Cálculoumnúmeroaocubo–LinguagemC

•  Adicionandocomandosdeimpressãoeleituraparaaentrada

Comandoparaimpressãonatela

Comandoparaleituradeentrada

Page 24: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

Exemplo:Cálculoumnúmeroaocubo–LinguagemC

•  Adicionandocomandosdeimpressãodasaída

Comandodeimpressãodasaída

Page 25: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

Exemplo:Cálculoumnúmeroaocubo–LinguagemC

Inclusãodebibliotecas

Declaraçãodevariáveis

Comandos

Funçãomain

Comentário

Page 26: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

•  Possuiasequênciadecomandosquedeveserexecutada•  Defineondecomeçaeterminaoprogramaprincipalporumpar

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

FunçãoMain

Page 29: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

•  Declaradasnocomeçodoprograma•  Noexemploanterior,foramdeclaradasduasvariáveisdotipo

inteiro:numecubo.

DeclaraçãodeVariáveis

Declaraçãodevariáveis

Page 30: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

•  Apósadeclaraçãodasvariáveis

Comandos

Declaraçãodevariáveis

Comandos

Page 31: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

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

zeroaofinaldesuaexecução(significaqueoprogramaterminousemerros);

–  Veremosmaissobreistofuturamente.

ProgramaemC

Page 32: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

PalavrasReservadas

•  Conjuntodepalavrasquetemumsignificadoparaalinguagemdeprogramação

•  Umapalavrareservadaé,essencialmente,umcomando

autobreakcasecharconstswitchvolatilecontinue

defaultdo

doubleelse

typedefwhileenumextern

floatforgotounionifintlong

register

unsignedreturnshortsignedsizeofstaticstructvoid

Page 33: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

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

–  Linha://textodocomentário–  Bloco:

ComentáriosemProgramas

/*textodocomentáriotextodocomentáriotextodocomentário*/

Page 34: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

Exemplo:ProgramaCComentado

Page 35: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

CriandoumProjetonoCode::Blocks

Page 36: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

CriandoumProjetonoCode::Blocks

•  Nestecursoiremosutilizar“AplicaçõesdeConsole”comotipodeprojeto:

Page 37: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

CriandoumProjetonoCode::Blocks

•  EosprojetosserãofeitosemLinguagemC:

Page 38: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

CriandoumProjetonoCode::Blocks

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

doprojetoounodiretório!

Page 39: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

ConhecendooCode::Blocks

Page 41: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

CompilandoeExecutando

Bastaclicarnestebotãoparacompilareexecutaroprograma

Sehouvererrosdesintaxeelesserãoreportadosemvermelho.Avisossão

reportadosemazul

Page 42: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

CompilandoeExecutando•  Aocorrigireexecutarnovamenteoprogramaoconsoleseabre

executandoospassosdoprograma:

Page 43: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

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 - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

DepurandooCódigo•  Executaroprogramapasso-a-passoclicandonosbotões

indicadosabaixo:

Executaratéocursor

Irparaapróximalinha Entrarnafunção

Sairdafunção

Page 45: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

Exercícios

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

45

Page 46: Introdução à linguagem C - CIn - Centro de Informática da UFPEluciano/cursos/ce/introducao_c.pdf · 2018-08-12 · Introdução à linguagem C Prof: Luciano Barbosa CIn.ufpe.br

CIn.ufpe.br

Atividade

•  Consultaroslivros•  LivrodoJaimeEvaristo

–  Estudaroprimeirocapítuloeametadedosegundocapítulo

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

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

funcionamento.