82
Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civil) Aula 5 Pedro Barahona 2016 / 17

C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Informá(caparaasCiênciaseEngenhariasVersão:C

(EngenhariaCivil)Aula5

PedroBarahona2016/17

Page 2: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Sumário

•  CiclosWHILE.•  IntroduçãoàsredesdecomputadoreseàInternet.•  ObtençãodedadosdaInternetusandoMatlab.•  Strings

§  Relaçãocomosvetores.§  Funçõessobrestrings.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 2

Page 3: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

ProblemadoDiscoEstragado

•  AsnotasdaavaliaçãoconYnuadosalunosde ICEestavamguardadasnumcomputadorcujodiscoavariou.Dainformaçãoqueseconseguiurecuperarob(vemosumamatriz,emquecada linhatemonºdeumalunoeanotadeumadasprovasdaavaliaçãoconYnuarealizadapeloaluno.

•  Façaumprogramaquesinte(zeonúmerodenotasquetemosdecadaaluno. Por cada aluno que ocorra namatriz de entrada, deve obterumalinhacomonºdoalunoeonºdeprovasdaavaliaçãoconYnuadequetemosnota.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 3

Page 4: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Problema[1]

1.  Compreendertotalmenteoproblema.•  Exemplodematrizesdeentradaedesaída:

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 4

Entrada

Saída

Page 5: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Problema[2]

2.  Caracterizaroproblema.

•Problema:contaronúmerodenotasporaluno.

•Entrada: matrizMcomduascolunas.

•Saída: matrizH,comduascolunas.

Porcadanúmerodis(ntonacoluna1deM,háumalinhaemHcomessenúmeroeoseunºdeocorrênciasnacoluna1deM.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 5

Page 6: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Problema[3]

3.  Generalizaroproblema(semprequeforpossível).•  Quer-secalcularohistogramadacoluna1deM•  SejaVovetorcomacoluna1deM:V=M(:,1);

•Problema:Histogramadeelementosdeumvetor.

•Entrada: vetorV.

•Saída: MatrizH,com2colunas.Porcadaelementodis(ntodeV,háumalinhaemHcomoelementoeonºdeocorrênciasdoelementoemV.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 6

Page 7: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Algoritmo[1]

4.  Desenharoalgoritmopararesolveroproblema.a)  Conceberoalgoritmo,decompondooproblemaemsub-problemas.•  ComocalcularohistogramadeV?

§  Cria-seamatrizHcoma1ªocorrência:H=[V(1),1]§  ParacadaelementoeldeV,excetooprimeiro:

«  SejáháumalinhalinemHtalqueH(lin,1)==el,incrementa-seH(lin,2)emumaunidade;

«  Senão,

acrescenta-seumanovalinhaemHcom[el,1].

•  Problema:ProcurarelemH(:,1)

Procurar el em H(:,1)

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 7

Page 8: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Algoritmo[2]

4.  Desenharoalgoritmopararesolveroproblema.b)  Iden(ficar,caracterizaregeneralizarcadasub-problema.

•Problema:Pesquisadeumelemento(numacolunadeumamatriz).

•Entrada: matrizM,inteirocol,elementoel.

•Saída: Seeles(vernacolunacoldeM,•  asaídaéa(menor)linhalintalqueM(lin,col)contemel;

nocasocontrário,•  asaídaézero.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 8

Page 9: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Algoritmo[3]

4.  Desenharoalgoritmopararesolveroproblema.b)  Iden(ficar,caracterizaregeneralizarcadasub-problema.

•Problema:Pesquisadeumelemento(numvetor).

•Entrada: vetorV,elementoel.

•Saída: Seeles(veremV,•  asaídaéa(menor)posiçãodeVquecontemel;

nocasocontrário,•  asaídaézero.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 9

Page 10: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Algoritmo[4]

4.  Desenharoalgoritmopararesolveroproblema.c)  Conceber o algoritmo, assumindo que os sub-problemas estão

resolvidos.Histograma(V):

§  Hß[V(1),1];§  ParacadaelementoeldeV,excetooprimeiro:

linhaçPesquisaelna“coluna1deH”Selinha≥1,

H(linha,2)çH(linha,2)+1;senão,

Hç[H;el,1]%acrescentaaHumalinhacom[el,1]

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 10

Page 11: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Algoritmo[5]

5.  Paracadasub-problema,desenharoalgoritmoparaoresolver.PesquisaemVdoelementoel:•  ParadescobrirseelestáemV,ésemprenecessáriopercorrertodasas

posiçõesdeV?§  SeelestáemV,quandoéqueseconhecea(menor)posiçãodeel

emV?§  SeelnãoestáemV,quandoéqueseconcluiqueelnãoestáem

V?

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 11

Page 12: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Exemplo:Pesquisaem[3,9,5]

Exemplo:Pesquisade5queexisteem[3,9,5]•  posç1;V(pos)≠5?Sim.Con(nua...•  posç2;V(pos)≠5?Sim.Con(nua...•  posç3;V(pos)≠5?Não.Portanto,V(pos)==5.

Emgeral:•  QuandoelestáemV:

posç1EnquantoV(pos)≠elfaça-se posçpos+1

§  Nofim:decertezaqueV(pos)contemel.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 12

Page 13: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Exemplo:Pesquisaem[3,9,5]

Exemplo:Pesquisade7quenãoexisteem[3,9,5]posç1;V(pos)≠7?Sim.Con(nua...posç2;V(pos)≠7?Sim.Con(nua...posç3;V(pos)≠7?Sim.Con(nua...posç4;NãosepodeacederaV(pos);7nãoestáemV.

Emgeral:•  Quandoel“estáounãoestá”emV:

posç1Enquantopos≤length(V)&&V(pos)≠elfaça-se posçpos+1§  Nofim: sepos≤length(V),decertezaqueV(pos)contémel;

sepos>length(V),decertezaqueVnãocontémel.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 13

Page 14: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Algoritmo[6]

AlgoritmogeralparaPesquisaemV,doelementoel:posç1Enquantopos≤length(V)&&V(pos)≠elfaça-se posçpos+1Sepos≤length(V)então

%poséa(menor)posiçãodeVquetemel. resultadoçpossenão

%NenhumaposiçãodeVtemel. resultadoç0

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 14

Page 15: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Programa

6.  Para cada sub-problema (começando pelos mais simples),implementarorespe(voalgoritmoetestaro“sub-programa”.§  Pesquisa(V,el)

7.  Implementar o algoritmo que resolve o problema e testar oprogramapedido.§  Histograma(V)

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 15

Page 16: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Implementação–Quequestões?

1.  Como é que se pode executar umbloco de instruções umnúmeroarbitráriodevezes,dependendoessenúmerodaavaliação(repe(da)deumacondição?§  Noproblema:enquanto...faça-se....§  Resposta:comciclosWHILE

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 16

Page 17: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Sumário

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 17

•  CiclosWHILE.•  IntroduçãoàsredesdecomputadoreseàInternet.•  ObtençãodedadosdaInternetusandoMatlab.•  Strings

§  Relaçãocomosvetores.§  Funçõessobrestrings.

Page 18: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

CicloWHILE

Operacionalmente:1.  Acondiçãoéavaliada.

§  Se for verdadeira, executam-se as instruções e volta-se aopontodepar(da(while).

§  (Seforfalsa,nãosefazmaisnada.Terminaowhile.)

18

Sintaxe:

whilecondição instruçõesend

Exemplo:whilesemáforosestávermelhoaguardeend

Page 19: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Programa[1]

•  Podemos agora implementar a função pesquisa que resolve o sub-problemaencontrado.§  Começamospelasuadocumentação

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 19

function res = pesquisa(elemento, vetor)!% res = pesquisa(elemento, vetor)!% Se o elemento estiver no vetor,!% retorna a menor posicao do vetor que tem o elemento;!% no caso contrario, !% retorna 0 ! ... !end!

Page 20: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Programa[2]

•  Eagoraoseucódigo.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 20

function res = pesquisa(elemento, vetor)!% ...! pos = 1;

while pos <= length(vetor) && vetor(pos) ~= elemento

pos = pos + 1;

end

if pos <= length(vetor) % vetor(pos) == elemento.

res = pos;

else

res = 0; % O elemento nao ocorre no vetor.

end

end

Page 21: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Programa[3]

•  Quedevesertestado

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 21

>> V = [9 3 9 5];!>> pesquisa(3,V) % sem “;” - ecoa para o terminal !pos = 1!pos = 2!res = 2!ans = 2!>> pesquisa(7,V)!pos = 1!pos = 2!pos = 3!pos = 4!pos = 5!res = 0!ans = 0!>> p = pesquisa(9,V) % com “;” – nao ecoa para o terminal !p = 1!>>!

Page 22: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Programa[4]

•  Umavezimplementadaafunçãopesquisaqueresolveosub-problemaencontrado, passamos à função “principal” para cálculo dohistograma.§  Começamospelasuadocumentação

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 22

function hist = histograma( V )!% hist = histograma( V )!% Produz o histograma da sequencia V especificada.!% A matriz hist tem uma linha por cada elemento !% diferente de V, com o elemento na coluna 1 e !% o numero de ocorrencias do elemento em V na coluna 2.! ... !end!

Page 23: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Programa[5]

•  Eagoraoseucódigo.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 23

function hist = histograma( V ) % ...

hist = [ V(1), 1 ];

for i = 2 : length(V)

linha = pesquisa( V(i) , hist( : , 1) );

if linha >= 1 % Encontrou V(i) nesta linha.

% Incrementa o contador dessa linha.

hist(linha, 2) = hist(linha, 2) + 1;

else % V(i) ainda nao existe no histograma.

% Cria uma nova linha com o contador a 1.

hist = [ hist ; V(i), 1];

end

end end

Page 24: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Resolução–Programa[6]

•  Quedevesertestado

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 24

>> V = [50123,15.1;! 50788, 9.9;! ...! 50401,11.9];!>> h = histograma(V) % com eco / sem ; !hist = 50123 1!hist = 50123 1! 50788 1!hist = 50123 1! 50788 1! 50401 1!hist = 50123 2! 50788 1! 50401 1!...!h = 50123 4! 50788 2! 50401 3!>>!!

Page 25: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Sumário

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 25

•  CiclosWHILE.•  IntroduçãoàsredesdecomputadoreseàInternet.•  ObtençãodedadosdaInternetusandoMatlab.•  Strings

§  Relaçãocomosvetores.§  Funçõessobrestrings.

Page 26: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Rede de computadores

•  Umconjuntodecomputadoresqueestãointerligadoscomoobje(vodetrocarinformaçãoepar(lharrecursos.

Umarededecomputadoreséumainfra-estruturadetrocademensagensentreoscomputadoresquelheestãoligados,permi(ndooacessoarecursosremotoseau(lizaçãodeaplicações

distribuídas

Rede!Computador!

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 26

Page 27: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Numatransferênciaintervêmdoiscomputadoresearede

•  Doiscomputadores§  Nóemissor:produzumasequênciadebytes(mensagem).§  Nórecetoroudes(natário:recebeessasequênciadebytes.

•  Rede§  Meiosdeinterligação:cabos,atmosfera,…§  Equipamentos dedicados a assegurar que a mensagem é

transportadadonóemissoraonórecetor.

Rededecomputadores

UnidadeCentraldeProcessamento(CPU)

Memóriacentral

Eletrónicadecontrolodarede

UnidadeCentraldeProcessamento(CPU)

Memóriacentral

Eletrónicadecontrolodarede

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 27

Page 28: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Tiposderedes

•  Redelocal(LAN,LocalAreaNetwork)§  Os computadores estão ligados diretamente, i.e., cada um pode

enviarbytesdiretamenteaqualqueroutro.§  Distânciaentrecomputadores(picamentemenorque1km.

•  Rededelargaescala(WAN,WideAreaNetwork)§  O emissor e o des(natário estão em redes locais dis(ntas e é

precisoencaminharosbytesatravésdeequipamentoespecializado(routersegateways),capazdeescolheras ligaçõesquepermitemchegaraodes(no.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 28

Page 29: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Pacotes

•  Comoéqueosbytesenviadospeloemissor chegamaodes(natário,quepodeestaramuitosmilharesdeKms?

•  Cadacomputadortemumendereço.

•  A informação é dividida em pacotes (sequências de bytes) e cadapacotetemoendereçododes(natário.

•  Os pacotes são encaminhados individualmente pela rede da origematéaodes(no.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 29

Page 30: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Interligação de redes: exemplo

•  Exemplo:§  2LANsligadaspor3encaminhadores(routers)

Router

Router

Nó Nó

Rede Local 1

Nó Nó

Rede Local 2

Router

Ligação via satélite

Ligação fibra ótica

Ligação cabo

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 30

Page 31: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Interneteoencaminhamentodepacotes

•  A Internetéuma interligaçãode redes locaisdeacordocomnormaspróprias.

•  NaInternettodososcomputadores(ounós)têmumendereçoúnico(normalmente um número com 32 bits) chamado endereço IP(InternetProtocol).

•  Quandoumacomputadoremiteumpacotedes(nadoaoutro,noutraLAN,entrega-oaoroutermaispróximo(queestánasuaredelocal).

•  Osrouterspropagamopacoteatéestechegaraorouterdaredelocaldocomputadordedes(no,queentregaopacoteaodes(natário.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 31

Page 32: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Nº de máquinas na Internet

•  EstecrescimentoémuitoinfluenciadopelosucessodaWeb.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 32

Page 33: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Computadoresa(vosnaInternet:distribuiçãogeográfica

ProjectoCarnaBotnet,2012

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 33

Page 34: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Endereçosdosnós

•  EndereçoIPdonó(numérico/machinefriendly)§  Cons(tuídopor4bytes(32bits)

«  representadopor4númerosentre0e255,separadosporpontos.

§  Iden(ficaunivocamenteocomputadornaInternet.§  Usadonoencaminhamentodasmensagensnarede.§  Exemplo:193.136.122.33

•  Endereçosimbólicodonó(cadeiadecaracteres/userfriendly)§  Sãoaquelesnomesqueou(lizadorusa.§  Exemplo:www.google.com

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 34

Page 35: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Nomedonó

asc.di.fct.unl.pt

top-level domain (TLD)

organização nome da máquina

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 35

Page 36: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Domain Name System (DNS)

•  Serviço de conversão de nomes “user friendly” em nomes “machine friendly”. §  EsteserviçoresidenumnódaLAN(oudofornecedordeInternet).

•  Invocado quando um nó tenta obter o endereço IP correspondente a um dado nome simbólico.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 36

Page 37: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

TLDs do Domain Name System [1]

Top-LevelDomain U(lização biz Negócios com Comercial(EUA) edu Educação(EUA) info Informação gov Governo(EUA) mil Militar(EUA) net Rede org Semfinslucra(vos

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 37

•  NasorganizaçõesnosEstadosUnidosotop-leveldomaincaracterizaoseu(podea(vidade.

Page 38: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

TLDs do Domain Name System [2]

•  As organizações com sede fora dos Estados Unidos usam um top-leveldomainqueéocódigodopaís(com2letras).

País TLD pt Portugal uk ReinoUnido es Espanha fr França nz NovaZelândia cn China … …

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 38

Page 39: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Árvore de domínios do DNS

Domínioraiz

Top-level domains …

… edu gov com uk pt

cmu

cs

google ibm up unl

fe fct

di

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 39

Page 40: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Relaçãocliente-servidor

•  Na maioria das situações, as aplicações que usam a rede sãocons(tuídaspordoisprogramas.

•  Um servidor pode servir vários clientes em simultâneo.

Porexemplo,Browser

Porexemplo,ServidorWeb

ProgramaCliente

ProgramaServidor

1. Cliente envia pedido

3. Servidor envia a resposta

Recurso

2. Servidor processa o pedido 4. Cliente

processa a resposta

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 40

Page 41: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Exemplosdeservidores

•  ServidorWeb§  Recursos:ficheiroseprogramas.§  Serviços: obter ficheiros e gerar páginas dinâmicas executando

programasapedidodocliente.

•  ServidordeMail§  Recurso:ficheiroscommensagens.§  Serviços: armazena mensagens ou encaminha-as para outros

servidoresdeMail.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 41

Page 42: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Exemplosdeclientes

•  ClienteWeb§  Firefox,§  InternetExplorer,§  Safari,§  etc.

•  ClientedeMail§  eMClient,§  MozillaThunderbird,§  OperaMail,§  Mail,§  LiveMail,etc.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 42

Page 43: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Protocolosdeaplicação

•  Conjuntoderegrasquedefinemcomoéqueosbytesquecirculamnaredesãointerpretados.§  Oclienteeoservidortêmdeacordarpreviamenteosformatosdo

pedidoedaresposta;§  ExistemnormasparaimensosserviçosnaInternet.

•  Exemplos:§  Protocolos Internet para consultar o DNS e obter o endereço IP

paraumnome;§  Protocolosdeaplicaçõesdeemail(SMTP);§  ProtocolosdeWeb(HTTP).

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 43

Page 44: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

WWW−WorldWideWeb[1]

•  PáginaWeb§  Um documento que contém informação (dados ou referências a

outrosdados).

•  Link(hiper-ligação)§  Umaligação(referência)aoutrapáginaWeb.

•  ProtocolodaWeb§  Protocolosdeaplicaçãoquepermitematrocadeinformaçãoentre

ocliente(browser)eoservidorWeb.§  HTTP-HyperTextTransferProtocol

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 44

Page 45: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

WWW−WorldWideWeb[2]

•  SiteWeb§  Conjunto de páginas Web relacionadas umas com as outras.

Fisicamente, correspondem a ficheiros armazenados numcomputadorespecífico.

•  ServidorWeb-servidor§  Programaqueexecutanocomputadoremquea informaçãoestá

alojadaerespondeapedidosparaacessoapáginasWeb.

•  BrowserWeb-cliente§  Programa que pede páginas Web pela rede aos servidores e as

mostraaou(lizador.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 45

Page 46: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

URL−UniformResourceLocator

•  UmaformanormalizadadeespecificaralocalizaçãodeumapáginaWeb.§  Protocolo(podeseromi(do);§  Nomedocomputador;§  Página.

•  Osconteúdosiden(ficadospelosURLssãodediferentes(pos.§  Exemplos:ficheirosHTML,imagens,audioclips.

http://asc.di.fct.unl.pt/index.html

Protocolo Computador Nome DNS ou endereço IP: x.x.x.x

Página

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 46

Page 47: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

HTML

•  HyperTextMarkupLanguage(HTML)§  AlinguagemusadaparadescrevereformatarumapáginaWeb.§  Incluindocolocarimagenselinksnaspáginas

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 47

<h2id="center">Exercício1</h2><p>Recupereoscript<ahref="file_contaminacao.m">file_contaminacao.m</a>daaulaanterior,queaoserexecutadocriaavariável<b>contaminacao</b>,queregistaaconcentraçãodechumbonosoloemváriospontosequecontem:,<ol><li>naprimeiralinha,umnúmerode1a20,queiden(ficaopontodeamostragem;<li>nasegundalinha,aprofundidadedecadaamostra(emcm);e,<li>naterceiralinha,aconcentraçãodePb,empartespormilhão.</ol>

Page 48: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Sumário

•  CiclosWHILE.•  IntroduçãoàsredesdecomputadoreseàInternet.•  ObtençãodedadosdaInternetusandoMatlab.•  Strings

§  Relaçãocomosvetores.§  Funçõessobrestrings.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 48

Page 49: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Matlab–Funçãourlread

•  Como é que se pode aceder ao conteúdo associado a um URL emMatlab?

[conteúdo,sucesso]=urlread(url)

•  AfunçãourlreadacedeaoURLurleretorna:§  nastringconteúdooconteúdoob(do;§  nointeirosucessoovalortrue(1),seaoperaçãotevesucesso,ouo

valorfalse(0),seaoperaçãonãotevesucesso.

Afunçãoretornaduasen(dades.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 49

Page 50: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Matlab–Funçãourlwrite

•  Comoéquesepode,emMatlab,transferirumficheirolocalparaumficheiroassociadoaumURL?

[nomeCompl,sucesso]=urlwrite(url,fichLocal)

•  AfunçãourlwriteacedeaoURLurleguardaoconteúdoob(donumficheirolocalcomonomefichLocal.Retorna:

•  nastringnomeComplonomecompletodoficheirolocal;•  no inteiro sucessoovalor true (1), seaoperação teve sucesso,ouo

valorfalse(0),seaoperaçãonãotevesucesso.Afunçãoretornaduasen(dades.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 50

Page 51: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Exemplo

•  ResolveroproblemainicialdasnotasdeICE,masagoraasnotasestãoagoradisponíveisnumficheirodetextonumsitecomURL:

http://site.example.com/ice/notas.txt!

•  Este contém em cada linha o número de um aluno, número daavaliaçãoeanota(semelhanteàtabelainicial)

•  Dispomosdasoluçãoanterior:function hist = histograma( V )!

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 51

Page 52: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Exemplo-Algoritmo

•  Algoritmo:§  Obterasnotasdosite

«  O uso de urlread pemite atribuir o texto a uma variável donossoprograma

§  Converternumamatrizsemelhanteàdoproblemainicial«  Comoconverterotextonumamatrizdenúmeros?

§  Usarafunçãohistogramaanteriorpararesolveroproblema

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 52

Page 53: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Sumário

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 53

•  CiclosWHILE.•  IntroduçãoàsredesdecomputadoreseàInternet.•  ObtençãodedadosdaInternetusandoMatlab.•  Strings

§  Relaçãocomosvetores.§  Funçõessobrestrings.

Page 54: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Sumário

•  CiclosWHILE.•  IntroduçãoàsredesdecomputadoreseàInternet.•  ObtençãodedadosdaInternetusandoMatlab.•  Strings

§  Relaçãocomosvetores.§  Funçõessobrestrings.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 54

Page 55: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

String–sequênciadecaracteres

•  Umastringéumasequênciadecaracteres.•  EmMatlab,

§  escreve-seasequênciadecaracteresentreaspasouplicas.

•  Umcarácteré representadoporumnúmero, chamadoo códigodocarácter.

•  UmadascodificaçõesdecaracteresmaisusadaséacodificaçãoASCII(AmericanStandardCodeforInforma(onInterchange).§  Outrascodificações:ISO8859eUnicode/UTF.

>> string = “Estudante na FCT/NOVA.”

string = Estudante na FCT/NOVA.

>>

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 55

Page 56: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Codificação ASCII

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 56

Caracteres de controlo, como o LF - mudança de linha, em MATLAB ‘\n’, iniciam-se no código 01 e vão até ao código 31

Dígitos

Caracteres de pontuação

Minúsculas

Maiúsculas

Page 57: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

String–Vetordecaracteres

•  Umastringéumvetordecaracteres.•  EmMatlab,umastringéimplementadacomoumvetorde(códigos

de)caracteres.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 57

>> str = “Estudante na FCT/NOVA.” string = Estudante na FCT/NOVA. >> str(3) ans = t >> str(11:end) ans = na FCT/NOVA >> 1*str(11:end) % ???? 110   97 32 70 67 84 47 78 79 86 65 >> toascii(“n”) ans = 110 >>

Page 58: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

•  Stringspodemser“concatenadas”damesmaformaquevetores,jáquestringssãodefactovetoresdecaracteres.

•  No entanto a concatenação pode igualmente ser feita com a funçãopre-definidastrcat.

Concatenaçãodestrings[1]

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 58

>> s1 = “esta string”; >> s2 = “vai crescer”; >> [s1, s2] ans = esta stringvai crescer >> s = [s1, “ “, s2] s = esta string vai crescer >> t = strcat(s1, “ “, s2) s = esta string vai crescer >>

Page 59: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Concatenaçãodestrings[2]

Exemplo:•  Construir a sequência de 3 nomes (URLs), todos referentes a

ficheiros texto (extensão “.txt”), par(lhando a mesma base ediferindoapenasnoseu“número”§  h�p://ex.com/dados1.txt,

§  h�p://ex.com/dados2.txt,§  h�p://ex.com/dados3.txt.

>> base = ’http://ex.com/dados’; >> for num = 1:3 url = [base, num2str(num), ’.txt’] end url = http://ex.com/dados1.txt url = http://ex.com/dados2.txt url = http://ex.com/dados3.txt >> >>3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 59

Page 60: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Strings–Funçõespré-definidas[1]

•  valorLógico=strcmp(str1,str2)§  Retorna:

«  trueseasstringsstr1estr2sãoiguais;«  false,nocasocontrário.

•  valorLógico=strcmpi(str1,str2)§  Retorna:

«  true se as strings str1 e str2 são iguais, ignorando as diferençasentremaiúsculaseminúsculas;

«  false,nocasocontrário.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 60

>> strcmp(‘fct/UNL’, ‘FCT/unl’) ans = 0 >> strcmpi(‘fct/UNL’, ‘FCT/unl’) ans = 1 >>

Page 61: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Strings–Funçõespré-definidas[2]

•  str2=toupper(str1)§  str2 é ob(da de str1, subs(tuindo todas as minúsculas pelas

correspondentesmaiúsculas.•  str2=tolower(str1)

§  str2 é ob(da de str1, subs(tuindo todas as minúsculas pelascorrespondentesmaiúsculas.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 61

>> tolower(‘fct/UNL’) ans = fct/unl >> strcmp(‘fct/UNL’, ‘FCT/unl’) ans = 0 >> strcmp(toupper(‘fct/UNL’), toupper(‘FCT/unl’)) ans = 1 >> strcmp(toupper(‘fct/UNL’), toupper(‘FCT/unl’)) ans = 1 >>

Page 62: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Strings–Funçõespré-definidas[3]

Outrasfunçõespré-definidas,quesãobastanteu(lizadas•  vetor=findstr(str1,str2)

§  SejamsMaioramaislongadasstringsstr1estr2esMenoramaiscurtadasstringsstr1estr2.

§  AfunçãoretornaasposiçõesnovetorsMaioremquecomeçaumasubstringigualasMenor.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 62

>> findstr(‘Universidade’, ‘i’)) ans = [3,8] >> findstr(‘a’, ‘abababa’) ans = [1, 3, 5,7] >> findstr(‘aba’, ‘abababa’) ans = [1, 3, 5] >>

Page 63: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Strings–Funçõespré-definidas[4]

•  vetor=findstr(str1,str2,overlap)§  Seoverlap=true(≠0),

«  retornaomesmoquefindstr(str1,str2).

§  Seoverlap=false(0),«  assubstringsnãopar(lhamposiçõesemsMaior.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 63

>> findstr(‘a’, ‘abababa’, true) ans = [1, 3, 5,7] >> findstr(‘aba’, ‘abababa’, false) ans = [1, 5] >>

Page 64: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Strings–Funçõespré-definidas[5]

•  Númerose strings representandonúmeros sãoen(dadesdiferentesenãodevemserconfundidos!

•  Masexistemfunçõespré-definidasquepermitemasuaconversãonúmero = str2num( string ) string = num2str( numero )

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 64

>> n = str2num(“1.234”) % conversão para um numero “simples”!n = 1.234!>> v = str2num(“ 1 2,3, 4”) % conversão para um vetor!v = 1 2 3 4 !>> m = ‘ 1 2 3 ; 4 5 6 ‘ % conversão para uma matriz!m = 1 2 3 ! 4 5 6!>> m = “ 1 2 3 \n 4 5 6 “ % linhas separadas por \n (só com aspas)!m = 1 2 3 ! 4 5 6!>> s = num2str(2.5) ! !% conversão para uma string!s = 2.5!>> 1*s ! ! ! ! ! !% s é uma string !!!!ans = 50 46 53! !!>>!!

Page 65: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Strings–Funçõespré-definidas[6]

•  Várias funções estão predefinidas para se poder saber qual o (po decaracteresqueasstringscontêm.

•  Naturalmente, esses (pos podem ser ob(dos dos códigos ASCII doscaracteresu(lizados.§  Nota:umastringéimplementadacomoumvetorde(códigosdecaracteres)§  Asoperaçõessobrevetorespodemserusadasemstrings.

§  Mas existem algumas funções pré-definidas para obter esses (pos de umaformaindependentedocódigousado.3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 65

>> s = "Linha: 1;\n”;!s = Linha: 1!!>> k = length(s)!k = 10!>> 1*s!ans = 76 105 110 104 97 58 32 49 59 10!% L i n h a : _ 1 ; \n!>> isascii(s)!ans = 1 1 1 1 1 1 1 1 1 1!>>!

Page 66: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Strings–Funçõespré-definidas[6]

•  Exemplos:

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 66

>> s = "Linha: 1;\n”;!>> 1*s!ans = 76 105 110 104 97 58 32 49 59 10!% L i n h a : _ 1 ; \n !>> isalpha(s)!ans = 1 1 1 1 1 0 0 0 0 0!>> isupper(s)!ans = 1 0 0 0 0 0 0 0 0 0!>> islower(s)!ans = 0 1 1 1 1 0 0 0 0 0!>> isalnum(s)!ans = 1 1 1 1 1 0 0 1 0 0!>> isdigit(s)!ans = 0 0 0 0 0 0 0 1 0 0!>> ispunct(s)!ans = 0 0 0 0 0 1 0 0 1 0!>> isspace(s)!ans = 0 0 0 0 0 0 1 0 0 1!>> iscntrl(s)!ans = 0 0 0 0 0 0 0 0 0 1!>>!

Page 67: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Exemplo

•  Resolver o problema inicial das notas de ICE, mas agora as notas estãoagoradisponíveisnumficheirodetextonumsitecomURL:

http://icec.ssdi.di.fct.unl.pt/1617/teoricas/T05/tabela_notas.txt!

!

•  Algoritmo:§  Obterasnotasdosite

«  Usarurlreadparaatribuirotextoaumavariáveldonossoprograma

§  Converterotextonumamatrizsemelhanteàdoproblemainicial«  Usarafunçãostr2numparaconverterotextonumamatrizdenúmeros.

§  Usarafunçãohistogramaanteriorpararesolveroproblema

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 67

Page 68: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Exemplo-Implementação

•  Nestascondições,eassumindoqueoficheironourl temumatabeladenotasnumficheirotextoadequadamenteformatadas,oproblemaresolve-secomafunção

function sintese = notasDaRede(url) % sintese = notasDaRede( url ) % obtem o histograma das notas por aluno, % obtidas do url indicado. % Faz uso da funcao histograma anterior [texto, estado] = urlread( url );

%vamos assumir que estado == 1 notas = str2num( texto ); sintese = histograma( notas( : , 1) );

end

50123 15.150788 9.950401 12.750123 14.350123 17.050401 13.550123 10.450788 15.650401 11.9

<url>

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 68

Page 69: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Desafiopropostonº1

•  Implementar uma função que, dada uma string, devolve uma stringcomosmesmoscaracteresmaspelaordeminversa.

•  Exemplos:§  Afunçãoretorna‘ECI’quandochamadacom‘ICE’.§  Afunçãoretorna‘LNU-TCF’quandochamadacom‘FCT-UNL’

•  Nota:Sendoumastringumvetor,afunçãoqueimplementarmosdevefuncionar quer para strings quer para quaisquer outros vetores,nomeadamentenuméricos.

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 69

Page 70: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Ideiabase:•  Preencheranovastring(s2)comoscaracteresdastringoriginal(s1),com

asseguintescorrespondênciasdeíndices

•  oudeumaformagenérica,

70

1 ← n 2 ← n-1 … n-1 ← 2 n ← 1

i ← n-i+1

Inversãodeumastring

Page 71: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Inversãodeumastring

•  Uma vez compreendida a correspondência a função pode serimplementadacomumcicloFOR

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 71

function inv = inverteString( str ) % inv = inverteString(str) % Devolve uma string com os mesmos caracteres % de str mas % pela ordem inversa. inv = str; % Reserva espaco.

n = length(str); for i = 1 : n inv(i) = str(n – i + 1); end end

i ← n-i+1

Page 72: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

•  Algunstestes

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 72

>> s1 = “abcd”!s1 = abcd!>> s2 = inverteString(s2)!s2 = dcba!>> s3 = ‘esta string tem 29 caracteres’!s3 = ‘esta string tem 29 caracteres’!>> inverteString(s1)!ans = seretcarac 92 met gnirts atse!>> s4 = “”;!>> s5 = inverteString(s4)!s5 =!>> v = [1,2,3,4,5]!>> u = inverteString(v) % a funcao é generica (qualquer vetor)!u = 5 4 3 2 1!>> z = []!z = [](0x0)!>> w = inverteString(z)!w = [](0x0)!>>!!!

Inversãodeumastring

Page 73: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Desafiopropostonº2

•  Implementarumafunçãoque,dadaumastringstr,retornaumastringcomoscaracteresdis(ntosqueaparecememstr§  Nota:Eliminarosrepe(dos.

function res = diferentes( vetor )

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 73

>> diferentes(”xpto1234”)!ans = xpto1234!>> diferentes(”abcacb1551”)!ans = abc15!>> !!

Page 74: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Funçãodiferentes

function res = diferentes( vetor )Algoritmo

•  Ovetorrescomeçavazio:

•  Procurarcadacaracter,vetor(i),noresatual.§  Senãooencontra,acrescenta-o.

•  Paraprocurarumcaracteremresusarafunçãopesquisa,jádefinida.pos = pesquisa( vetor(i), res) §  Senãoencontraretornapos=0

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 74

Page 75: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

•  Oalgoritmopodeserimplementadomuito“diretamente”

Funçãodiferentes

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 75

function res = diferentes( str ) % res = diferentes( str ) % Devolve a string str sem caracteres repetidos res = []; % O vetor res começa vazio % para todos os caracteres

for i = 1 : length(str) % se o caracter ainda não apareceu em res if pesquisa(str(i), res) == 0 % acrescenta-se ao res res = [res, str(i)] end

end end

Page 76: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Desafiopropostonº3

•  DadaafunçãoF:

•  Indiqueovalordavariávelnomeapósaexecuçãodoseguintecomandono

interpretador:nome=F('hVp://www.abc.edu/geology/tectonics.html','/');

•  Resposta:‘tectonics.html’

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 76

function res = F( endereco, separador ) pos = length(endereco); while pos > 0 && endereco(pos) ~= separador pos = pos − 1; end res = endereco(pos + 1 : length(endereco)); end

Page 77: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Desafiopropostonº4

•  Implementar uma função que, dadas duas strings str1 e str2, ascomparalexicograficamente(ordenadascomo“numdicionário”)e§  retorna1seastr1forlexicograficamenteanteriorastr2§  retorna0seastr1forigualàstr2§  retorna-1seastr2forlexicograficamenteanterioràstr1

function res = strbef( str1, str2 )

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 77

>> strbef(”maria”, “rita”)!ans = 1!>> strbef(”maria”, “maria”)!ans = 0!>> strbef(”mariana”, “maria”)!ans = -1!>>!!!

Page 78: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Funçãostrbef[1]

•  Começamos pela documentação da função e da inicialização devariáveisauxiliares

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 78

function res = strbef( str1, str2 ) % res = lexico( str1, str2 ) % Retorna o valor da comparacao lexicografica % das strings str1 e str2 % 1: se str1 < str2; 0 se str1 = str2 ; -1 se str1 > str2 ...

end

Page 79: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Funçãostrbef[2]

•  Depoisverifica-seseasstringsdiferemnumcaracter§  Malseencontreessecaracteradecisãoétomada§  Sóvaleapenatestaratéaoúl(mocaracterdastringmaiscurta

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 79

function res = lexico( str1, str2 ) % ... i = 1; % i e’ o caracter que se vai comparando decidido = 0; % booleano que indica se ja’ se sabe o resultado n = min(length(str1),length(str2)); % so’ se comparam as strigs ate´ao n-e´simo caracter while ! decidido && i <= n if str1(i) < str2(i) decidido = 1; res = +1; elseif str2(i) < str1(i) decidido = 1; res = -1; end i = i + 1; end ... end

Page 80: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Funçãostrbef[3]

•  Senãosedecidiuatéaocomprimentodastringmaiscurta,então§  Astringmaiscurtaestá“antes”daoutra

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 80

function res = lexico( str1, str2 ) % ... ... % se ainda nao ha´ decisao, tem de se avaliar % nesse caso temos i = n + 1 % nesta altura i = n+1 if ! Decidido if length(str2) >= I % se str2 tem mais de n caracteres res = +1 % str1 e´ anterior elseif length(str1) >= i % se str1 tem mais de n caracteres res = -1 % str2 e´ anterior else res = 0 end end

Page 81: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

Desafiopropostonº5

•  Implementarumafunçãoque,dadasduasstrings,retorna1(true)seas strings forem iguais e retorna 0 (false) no caso contrário, masconsiderandoqueocarácter‘?’representaumcaracterqualquer.

function res = my_strcmp(str1, str2) !

•  Sugestão:Semelhante(masmaissimples)queoexemploanterior

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 81

>> my_strcmp(”xpto123”, “xpto123”)!ans = 1!>> my_strcmp(”xpto???”, “????123”)!ans = 1!>> my_strcmp(”123???”, “???45”)!ans = 0!>>!!

Page 82: C (Engenharia Civil) Aula 5 - Universidade NOVA de Lisboaicec.ssdi.di.fct.unl.pt/1617/teoricas/T05/icec_t05.pdf · 2017-04-04 · Tipos de redes • Rede local (LAN, Local Area Network)

•  PhysicalModelinginMATLAB

•  Capítulo4

•  ConsultaromanualOctave

•  Strings(3.1.1e5)

•  While(10.3)

ParaestudarestaAula

3Abril2017 5:CiclosWHILE;RedeseInternet;Strings 82