Infos algoritmo

Embed Size (px)

Text of Infos algoritmo

  • LinguagemC:variveis,operadores,entrada/sada

    Prof.CrstonAlgoritmoseProgramao

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    LinguagemC

    Linguagemdeusogeral(qualquertipodeaplicao) Umadaslinguagensmaisutilizadas FoiutilizadaparadesenvolverosistemaUNIX(eoutros

    baseadosneste,comoLinux,FreeBSD) Disponvelemvriossistemasoperacionaise

    arquiteturas Porm,algumascaractersticaspodemdependerdaarquitetura

    (ex.:tamanhoembytesdostiposdedados) Possuivriosdialetos

    Em1988surgiuapadronizaoANSIC,queincluiutambmumabibliotecadefunesmnima.

    Nabibliotecatemosmuitosalgoritmosquepodemosreutilizar!

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    LinguagemC Relativamentebaixonvel

    Permiteenderearqualquerposiodamemria Noforneceoperaesparamanipulardiretamentetextos,conjuntos,

    listas.Ex.:comparartextos. Noforneceoperaesparaentrada/sada Maspodemosutilizarumaamplabibliotecasdefunes!

    Desvantagem:oprogramadorcometemaiserrosqueemlinguagensdemaisaltonvel Acessoindevidomemria Muitoserrosnosoavisados:assumequeoprogramadorsabeoque

    estfazendo Vantagens

    Linguagempequena(rpidoaprendizado) Eficincia(podemoscodificarpensandoemumproblemaespecfico)

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    LinguagemC

    Compilada Cdigofonte(.c)-> cdigoobjeto(.o) Linkediotransformavriosobjetosemumexecutvel(.exe) Assim,bastacompilarcdigoobjetodecdigofontemodificado

    Compiladorgcc #>mangcc #>geditprimeiro.c& #>gccprimeiro.c #>./a.out hello! #>_ ansiWallc..gccprimeiro.o

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    #include

    main(){ printf("Hello!\n"); }

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    ProgramandoemC AlinguagemCpossui32palavraschaves. Aspalavraschavesnopodemserusadasparanenhum

    outropropsito. Cdiferenciapalavrasmaisculasdeminsculas.Todas

    aspalavraschavesdevemserescritasemminsculo. Exempo:

    if(A>B) IF(a>b)

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    ProgramandoemC

    Palavrasreservadas(palavraschave) auto,break,case,char,const,continue, default,do,double,else,enum,extern, float,for,goto,if,int,long,register,return, short,signed,sizeof,static,struct,switch, typedef,union,unsigned,void,volatile,while.

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    ProgramandoemC

    TodososprogramasescritosemCconsistemdeumaoumaisfunes.

    Afunomain()sempreprecisaestarpresenteemumprograma.

    Afunomain()aprimeirafunoaserexecutadaquandooprogramaforcarregado.

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    ProgramandoemC

    FormageraldeumprogramaemC:

    declaraodevariveisglobaistipodevolvidofn(listadeparmetros){seqnciadecomandos}

    tipodevolvidomain(listadeparmetros){seqnciadecomandos}

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    Comentriosemprogramas

    Comentartrechosdocdigofonteumaformadedocumentaroprograma.

    Adocumentaoserveparaqueosprogramaspossamserusados,corrigidoseaperfeioadospeloprprioprogramadorouporoutraspessoas.

    Oscomentrionoinfluenciamemnadanaexecuodoprograma.

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    Comentriosemprogramas

    EmCcomentriossocadeiasdecaracteresdelimitadaspelassubcadeias/**/.

    OscomentriosemCpodemtambmserdeapenasumalinha,usandooscaracteres//.

    Exemplo: /*Esteprograma...*/

    //Estafunofaz...

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    #include

    /*Este programa altamente complexo escreve Hello! na tela.*/main(){ printf("Hello!\n"); // escreve Hello!}

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    Variveis

    Nomes: Qualquertamanho,masapenasos31primeiroscaracteresso

    considerados Nopodemosutilizarpalavrasreservadas Podemterletrasoudgitos Deveminiciarcomletraou_,masdevemosevitarcomearcom_,

    paranodarconflitocomfunesdabiblioteca Diferenciamaisculasdeminsculas

    (ex.:xeXsovariveisdiferentes) Prticatradicional:

    quandoavarivelnomodificaovalorduranteoalgoritmo(constante),utilizeapenasletrasmaisculas

    paraasoutrasvariveis,utilizeapenasminsculas devesugerirautilizaco:idade,altura,numero_eleitores..

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    Tiposdedados Bsicos:

    Inteiros: char1byte,permitearmazenar1caracterASCII inttamanhodependedamquinahospedeira shortpossivelmentemenorqueint longpossivelmentemaiorqueint

    Pontoflutuante(aproximaodenmerosreais): floatprecisosimples(quantidadededgitosrepresentativos) doubleprecisodupla

    Qualificadorunsignedindicaqueonmerointeironotemsinal,assimganhamos1bitnarepresentao.

    Podemosutilizarsizeof()paradeterminaronmerodebytesdecadatipo.Ex.:sizeof(char)retorna1.

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    Declaraodevariveis

    Variveisdevemserdeclaradasantesdeutilizadas Emqualquerpontodocdigo,preferencialmentenoincio

    Formato: , , ..., ; Ex.:int inicio, fim, incremento;

    Podemosinicializarumavarivelnadeclarao Ex.:int inicio = 0, fim, incremento = 1;

    Variveisnoinicializadastemvalorindefinido! Podemosutilizaroqualificadorconstparaindicarqueovalorda

    varivelnopodesermodificadonocdigo Amodificaopodegerarerrodecompilao(dependedocompilador) Inicializaonecessria Ex.:const double PI = 3.14;

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    Declaraodevariveis

    Tiposdefinidospelousurio typedefcharletra,digito; typedefinttamanho; typedeffloatpreco; Exemplo:

    precovalor; letraa,b,c;

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    Comandodeatribuio

    Ocomandodeatribuioserveparaguardar(atribuir)umavaloraumavarivel. Exemplo:

    soma=A+B fat=fatorial(x)

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    #include

    main(){ int i; // NO INICIALIZADA!! printf("%d\n", i); }

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    #include

    main(){ const int i = 0; i = 1; // TENTATIVA DE MODIFICAR VARIVEL const

    printf("%d\n", i); }

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    #include

    main(){ char c; int i; short s; long l; float f; double d; printf("%d\n", sizeof(double)); printf("%d\n", sizeof(d));}

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    Tiposdedados Tamanhosemnossasmquinas(inteirosem32bits)...

    char(sempre 8 bits), short(16 bits), int(32 bits), long(igual ao int), float(32 bits), double(64 bits)

    Maior char: 27 - 1 = 127 = 01111111 Menor char: -27 = -128 = 10000000

    Maior unsigned char: 28 - 1 = 255 = 11111111 Menor unsigned char: 0 = 00000000

    Maior short: 215 - 1 = 32.767 = 01111111 11111111 Menor short: -215 = -32.768 = 10000000 00000000

    Maior unsigned short: 2161 =65.535= 11111111 11111111 Menor unsigned short: 0= 00000000 00000000

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    Tiposdedados Tamanhosemnossasmquinas(inteirosem32bits)...

    char(sempre 8 bits), short(16 bits), int(32 bits), long(igual ao int), float(32 bits), double(64 bits)

    Maior int: 231 - 1 = 2.147.483.64701111111 11111111 11111111 11111111

    Menor int: -231 = -2.147.483.64810000000 00000000 00000000 00000000

    Maior unsigned int: 232 - 1 = 4.294.967.29511111111 11111111 11111111 11111111

    Menor unsigned int: 000000000 00000000 00000000 00000000

    Omenorvalordecadatipointeiropodeserobtidosporoverflow:omaior+1.(representaoemcomplementode2)

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    #include

    main(){ char c = 128; unsigned char uc = 128; printf("%d\n", c); printf("%d\n", uc);}

  • AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)

    Tiposdedados

    Tamanhosemnossasmquinas... char(sempre 8 bi