• Nenhum resultado encontrado

Trabalho prático 2011/2012 Linguagens de programação. João Caixinha Nº5946

N/A
N/A
Protected

Academic year: 2021

Share "Trabalho prático 2011/2012 Linguagens de programação. João Caixinha Nº5946"

Copied!
9
0
0

Texto

(1)

Trabalho prático 2011/2012 Linguagens de programação

(2)

INTRODUÇÃO  ...  3

 

1.

 

CPYTHON-INTERFACE GRÁFICA  ...  3

 

1.1

 

D

ESCARGA DE REGISTOS PARA A BASE DE DADOS

 ...  3

 

1.2

 

V

ISUALIZAÇÃO DE DADOS E ESTATÍSTICAS DOS REGISTOS

 ...  3

 

1.2.1 Visualização de dados  ...  3

 

1.2.2 Visualização de Gráficos da estatística  ..  3

 

1.3

 

G

ERAR SITE A PARTIR DOS DADOS

 ...  4

 

1.4

 

C

ONTAR OS TAGS HTML NUMA PÁGINA

 ...  4

 

1.5

 

G

ERAR FICHEIRO

CSV  ...  4

 

1.5.1

 

Guardar lista  ...  4

 

1.5.1

 

Guardar estatísticas  ...  4

 

2.

 

INTERFACE GRÁFICA JYTHON  ...  4

 

N

OTAS IMPORTANTES ANTES DE UTILIZAR A APLICAÇÃO

 ...  4

 

2.1

 

D

ESCARGA DE REGISTO PARA A BASE DE DADOS

 ...  4

 

2.2

 

V

ISUALIZAÇÃO DE DADOS E ESTATÍSTICAS DOS REGISTOS

 ...  5

 

2.2.1 Visualização de dados  ...  5

 

2.3

 

G

ERAR SITE A PARTIR DOS DADOS

 ...  5

 

2.4

 

C

ONTAR OS TAGS HTML NUMA PÁGINA

 ...  5

 

2.5

 

G

ERAR FICHEIRO

CSV  ...  6

 

2.5.1

 

Guardar valores da lista  ...  6

 

2.5.2

 

Guardar estatísticas  ...  6

 

3.

 

METODOLOGIA  ...  6

 

3.1–

D

ESCARGA DE FICHEIROS

CSV

PARA A BASE DE DADOS

 ...  6

 

3.1.1-Leitura de dados do CSV  ...  6

 

3.1.1.1-CPython  ...  6

 

3.1.1.2-Jython  ...  6

 

3.1.2-Escrita dos dados para a base de dados  6

 

3.1.2.1-CPython  ...  6

 

3.1.2.2-Jython  ...  6

 

3.1.3-Esquema Dump to data base  ...  6

 

3.2

E

STATÍSTICAS

(CP

YHTON E

J

YTHON

)  ...  7

 

3.2.1 Gerar estrutura para estatística  ...  7

 

3.2.2 Encontrar dados ao longo dos anos  ...  7

 

3.2.2.1(CPython)  ...  7

 

3.2.2.1(Jython)  ...  7

 

3.2.3 Apresentação dos dados estatística  ...  7

 

3.2.3 Apresentação de dados sob forma de

gráfico (Apenas CPython)  ...  8

 

3.3

 

G

ERAÇÃO DE SITE A PARTIR DAS ESTRUTURAS DE DADOS

(CP

YTHON E

J

YTHON

)  ....  8

 

3.3.1- Procedimento  ...  8

 

3.3.2- Representação de site para estrutura de

três níveis  ...  8

 

3.3.3 Representação de site para estrutura de

quatro níveis  ...  8

 

3.4

 

R

ETIRAR INFORMAÇÃO DOS TAGS DE UMA PÁGINA

HTML

(CP

YTHON E

J

YTHON

)  ...  8

 

3.5

 

E

SCRITA DE DADOS PARA FICHEIRO

CSV  ....  8

 

3.5.1 CPython  ...  9

 

3.5.2 Jython  ...  9

 

4.

 

EM CONCLUSÃO  ...  9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(3)

Introdução

Este relatório visa demonstrar o funcionamento das aplicações desenvolvidas de acordo com os requisitos estabelecidos no trabalho pratico entregue ao aluno. Sendo este dividido em três partes:

Inicia-se por demonstrar as funcionalidades da aplicação gráfica quer na versão CPython quer na versão Jython , comprovando que estas estão de acordo com o pedido. O próximo passo será uma descrição da metodologia utilizada no funcionamento interno da aplicação, descrição das varias classes, como estas interagem para que a aplicação funcione.

Em conclusão será feita uma comparação entre a

aplicação CPython e Jython com o fim de expor os pros e contras no desenvolvimento.

1. CPython-Interface gráfica

Esta aplicação trata-se de uma interface gráfica com o utilizador, que permite o envio de registos agrupados em ficheiros CSV retirados do site

“http://www.rebides.oces.mctes.pt/Rebides09/”. para uma base de dados recorrendo á sqlite3, a aplicação apenas funciona correctamente para registos retirados de acordo com a estrutura no site. Para design da interface gráfica recorreu-se á aplicação wxGlade que permite design interactivo de interface com as bibliotecas wxPython. 1.1 Descarga de registos para a base de dados Esta funcionalidade esta disponível no menu file->Send csv to db, uma vez seleccionado é apresentado uma caixa de dialogo para escolha do ficheiro csv, de seguida é apresentada uma view formada por duas caixas de entrada de texto que permitem especificar o nome da base de dados e o nome da tabela, mais um butão com o texto “Dump to data base” o qual ao ser premido inicia o processo de descarga de registo para a base de dados, ao lado do Butão pode-se ver um texto que mostra o numero de registos criados na base de dados assim como numa wxGauge por baixo do botão.

1.2 Visualização de dados e estatísticas dos registos

1.2.1 Visualização de dados

De acordo com o que é pedido no enunciado do trabalho, o programa permite visualizar as seguintes estatísticas:

• Número de professores por estabelecimento por ano

• Número de professores por estabelecimento por categoria por ano

• Número de professores por estabelecimento por grau por ano.

Para visualização desta informação optou-se por criar uma interface com três botões, cada um representando o tipo de estatística.

De acordo com, aquele que é premido, será apresentado: • Três listas para a primeira estatística,

representando a primeira os anos, a segunda os estabelecimentos no ano seleccionado e a terceira os professores no estabelecimento no determinado ano, existe ainda por baixo das lista texto a referir o numero de anos, estabelecimentos e professores.

E ainda existe uma lista mais a baixo que permite ver o item seleccionado pelos anos.

• Quatro listas para a segunda e a terceira, representado a primeira os anos, a segunda os estabelecimentos, a terceira as categorias ou os graus conforme a opção escolhida e a quarta os professores. E ainda existe uma lista mais a baixo que permite ver o item seleccionado pelos anos.

1.2.2 Visualização de Gráficos da estatística A aplicação permite gerar gráficos para visualizar as estatísticas.

Para tal basta clicar duas vezes na lista de

estabelecimentos, categorias ou graus, sendo mostrado de seguida um gráfico de barras dos professores naquele estabelecimento pelos anos, isto na primeira opção pois se

(4)

for numa das outras duas será visualizado o numero de categorias ou graus pelos anos.

Ao clicar nas categorias ou graus será visualizado o gráfico de número de professores na categoria ou grau seleccionado, pelos anos.

1.3 Gerar site a partir dos dados

A aplicação permite gerar uma série de ficheiros html, baseados na estrutura de dados seleccionados para a estatística, sendo possível navegar através das páginas recorrendo a links obedecendo ás estruturas:

• Primeira estatística tem a estrutura Anos->Estabelecimentos->Professores

• Segunda estatística tem a estrutura Anos->Estabelecimentos->Categorias->Professores. • Terceira estatística tem a estrutura Anos->Estabelecimentos->Graus->Professores.

Esta opção esta disponível na view das listas de dados, a partir do Butão Create html site.

Uma vez seleccionada o programa gera uma série de ficheiros de acordo com a estrutura, sendo o ficheiro principal com os links dos anos o index.html, Após gerar todos os ficheiros, o programa, lança o servidor http e abre o firefox no endereço do localhost e porta do servidor para visualizar o site.

É possível lançar o servidor e abrir o browser sem gerar o site no menu file opção Start http server.

1.4 Contar os tags html numa página

O programa, tem como pedido, a funcionalidade de contar tags H1, H2, H3, DIV, P, UL, OL como pedido no enunciado, para tal no menu file a opção get html info, então é nos mostrado uma caixa de diálogo na qual se insere a url da página e de seguida é nos mostrado a contagens desses tags.

1.5 Gerar ficheiro CSV 1.5.1 Guardar lista

Como pedido no enunciando, o programa tem a

funcionalidade de enviar a lista de dados seleccionados á partir da estatística para um ficheiro CSV, para isso basta numa das vistas de estatística seleccionar dados ate á lista de professores, ai é nos mostrado um butão com o texto “Dump teachers to CSV”, após clicar é nos pedido para indicar um ficheiro de destino e de seguida a informação é enviada para o destino

1.5.1 Guardar estatísticas

Para guardar as estatísticas num ficheiro csv, ao chamar um gráfico, é nos tornado visível o botão “Send statistics to CSV”, possibilita guardar no csv, as informações disponíveis no gráfico.

2. Interface Gráfica Jython

Notas importantes antes de utilizar a aplicação A aplicação JythonApp utiliza duas bibliotecas que não vêm instaladas com o Java ,a openscsv-2.3.jar e a sqlitesjdbc-v056.jar, por isso, deve-se fazer download, neste caso da página http://www.zentus.com/sqlitejdbc/ a driver do sqlite e da página

http://opencsv.sourceforge.net/ o opencsv.

Seguidamente para que estas possam ser utilizadas no Jython, deve-se adiciona-las ao classpath do sistema, para tal efeito, uma das possibilidades será criar o ficheiro .bashrc na directoria home do sistema, colocando lá o seguinte conteúdo:

export CLASSPATH=”/caminho até o ficheiro” + “Nome da biblioteca”.jar + :$CLASSPATH

2.1 Descarga de registo para a base de dados A versão de Jython permite a descarga de registos contidos em ficheiros CSV para uma base de dados sqlite3, para tal efeito na interface gráfica existe um submenu no menu file, Send to Data Base, ao ser seleccionado pede o ficheiro de origem a partir de uma caixa de dialogo de selecção de ficheiro.

(5)

Seguidamente é pedido o nome da base de dados e o nome da tabela, o passo seguinte será clicar em Dump to Data Base para iniciar o processo de descarga.

Uma vez finalizado mostra o numero de registos inseridos na base de dados.

2.2 Visualização de dados e estatísticas dos registos

2.2.1 Visualização de dados

De acordo com o que é pedido no enunciado do trabalho, o programa permite visualizar as seguintes estatísticas: • Número de professores por estabelecimento por ano

• Número de professores por estabelecimento por categoria por ano

• Número de professores por estabelecimento por grau por ano.

Para visualização desta informação optou-se por criar uma interface com três botões, cada um representando o tipo de estatística.

De acordo o aquele que é premido será apresentado: • Três listas para a primeira estatística, representando a primeira os anos, a segunda os estabelecimentos no ano seleccionado e a terceira os professores no estabelecimento no determinado ano, existe ainda por baixo das lista texto a referir o numero de anos, estabelecimentos e professores.

• Quatro listas para a segunda e a terceira, representado a primeira os anos, a segunda os estabelecimentos, a terceira as categorias ou os graus conforme a opção escolhida e a quarta os professores.

2.3 Gerar site a partir dos dados

A aplicação permite gerar uma série de ficheiros html, baseados na estrutura de dados seleccionados para a estatística, sendo possível navegar através das páginas recorrendo a links obedecendo ás estruturas:

• Primeira estatística tem a estrutura Anos->Estabelecimentos->Professores

• Segunda estatística tem a estrutura Anos->Estabelecimentos->Categorias->Professores. • Terceira estatística tem a estrutura Anos->Estabelecimentos->Graus->Professores.

Esta opção esta disponível na view das listas de dados, a partir do Butão Create html site.

Uma vez seleccionada o programa gera uma série de ficheiros de acordo com a estrutura, sendo o ficheiro principal com os links dos anos o index.html, e por cada nível da estrutura cria uma directoria com ficheiros html sobre os dados de cada nível.

2.4 Contar os tags html numa página

O programa tem como pedido a funcionalidade de contar tags H1, H2, H3, DIV, P, UL, OL como pedido no enunciado, para tal no menu file a opção get html info, então é nos mostrado uma caixa de dialogo na qual se insere a url da página e de seguida é nos mostrado a contagens desses tags.

Na sua versão Jython foi necessário indicar o caminha para as bibliotecas standard do python, através do import sys, e utilizando o sys.path.append(‘paths do python’). Como referido no código fonte do programa.

(6)

2.5 Gerar ficheiro CSV 2.5.1 Guardar valores da lista

Como pedido no enunciando, o programa tem a

funcionalidade de enviar a lista de dados seleccionados á partir da estatística para um ficheiro csv, para isso basta numa das vistas de estatística seleccionar dados ate á lista de professores, ai é nos mostrado um butão com o texto “Dump teachers to csv”, após clicar é nos pedido para indicar um ficheiro de destino e desseguida a informação é enviada para o destino.

2.5.2 Guardar estatísticas

Ao clicarmos na lista 2 ou 3 o butao “Dump statistics to csv” fica activo, permitindo guardar num ficheiro csv, a informação de todos os anos sobre o item selecionado

3. Metodologia

Para desenvolver a aplicação CPython , criou-se o ficheiro CPythonApp.py onde foi colocado o código python e modificou-se a sua propriedade de execução através do comando unix chmod +x CPythonApp.py.

Este ficheiro foi gerado através da aplicação WXGlade, e modificado posteriormente, no qual foi adicionado métodos e atributos para dar solução aos problemas propostos.

Na aplicação Jython criou-se o ficheiro JythonApp.py para desenvolvimento da interface gráfica, recorreu-se as bibliotecas gráficas swing do Java.

3.1– Descarga de ficheiros CSV para a base de dados 3.1.1-Leitura de dados do CSV

3.1.1.1-CPython

Para ser possível a leitura do dados do ficheiro no caso do CPython recorreu-se ao modulo csv do python e criou-se um método __getData(self):, este retorna a primeira linha do ficheiro csv, contendo esta os campos a criar a tabela na base de dados e ainda uma lista de listas contendo os restantes registos.

3.1.1.2-Jython

Para ler os registo do CSV, no Jython, recorreu-se á biblioteca opencsv e á class FileReader do Java. A aplicação conta com o método __getData(self):, este

permite a leitura dos dados do csv e separa os nomes dos campos do resto dos dados, retornado ambos.

3.1.2-Escrita dos dados para a base de dados 3.1.2.1-CPython

Para lidar com a base de dados criou-se o modulo SQLConverter.py, contem a Classe Converter que utiliza o modulo sqlite3 do python, no seu construtor recebe o nome da base de dados e o nome da tabela.

Para criar a tabela na base de dados, existe o método createDB, este cria a base de dados e se a tabela não existe cria-a com os campos que lhe são passados por parâmetro, previamente a á criação da base de dados este são filtrados recorrendo ao método normalize que prepara uma String no formato do sql para que não existe erros de caracteres.

O próximo passo é a inserção dos dados na tabela , para isso desenvolveu-se o método insertDB, que recebe uma lista que representa um registo, este é normalizado pelo método __normalize(self): e é inserido na base de dados. 3.1.2.2-Jython

Para lidar com a base de dados criou-se o modulo SQLConverter.py, contem a Classe JConverter que utiliza a biblioteca sqlitejdbc-v056.jar, no seu construtor recebe o nome da base de dados e o nome da tabela.

Para criar a tabela na base de dados, existe o método createDB, este cria a base de dados e se a tabela não existe cria-a com os campos que lhe são passados por parâmetro, previamente a á criação da base de dados, este são filtrados recorrendo ao método normalize que prepara uma String no formato do sql para que não existe erros de caracteres.

O próximo passo é a inserção dos dados na tabela , para isso desenvolveu-se o método insertDB, que recebe uma lista que representa um registo, este é normalizado pelo método normalize e é inserido na base de dados. 3.1.3-Esquema Dump to data base

 

 

 

 

(7)

3.2 Estatísticas (CPyhton e Jython) 3.2.1 Gerar estrutura para estatística

Para lidar com este problema desenvolveu-se uma um modulo Statistics com uma classe Statistics, a qual recebe o total de data proveniente da base de dados e cria uma estrutura de dicionários e listas, conforme a opção escolhida :

Professores por estabelecimento por ano será a seguinte :

Três níveis

Professores por estabelecimento por categoria por ano será a seguinte :

Quatro níveis

Professores por estabelecimento por grau por ano será a seguinte :

Quatro níveis

3.2.2 Encontrar dados ao longo dos anos 3.2.2.1(CPython)

Na class Statistics, existem dois métodos, para pesquisa na estrutura por uma entidade.

• Um para criar uma lista com base numa estrutura de três níveis nominado

treeLevelsSearch(self,scool,data):, este é utilizado na primeira estrutura de estatística, criando uma lista de valores ordenados, a partir de data, representando a contagem de professores, se se tiver escolhido a primeira opção na interface gráfica, caso contrario permite contar o número de graus ou categorias numa escola, e outra lista legenda contendo anos em que existe dados dessa entidade scool seleccionada na lista2.

• Outro para operar uma estrutura de quatro níveis, nominado fourLevelsSeach(self,pcat,scool,data):,

utilizado nas outras duas, criando também uma lista da contagem de elementos no ultimo nível e respectiva lista

ordenada ,com os anos em que existe a respectiva scool seleccionada na lista 2 e nessa a categoria ou grau contido em pcat seleccionada na lista 3.

3.2.2.1(Jython)

Na class Statistics, existem dois métodos, para pesquisa na estrutura de uma entidade.

• Um para criar uma lista com base numa estrutura de três níveis nominado

JTreeLevelsSearch(self,scool,data):, este é utilizado na primeira estrutura de estatística, criando uma lista de valores a partir de data, representando a contagem de professores, se se tiver escolhido a primeira opção na interface gráfica, caso contrario permite contar o número de graus ou categorias numa escola, e outra lista legenda contendo anos em que existe dados dessa entidade scool seleccionada na lista2.

• Outro para operar uma estrutura de quatro níveis, nominado JFourLevelsSeach(self,pcat,scool,data):, utilizado nas outras duas, criando também uma lista da contagem de elementos no ultimo nível e respectiva lista com os anos em que existe a respectiva scool seleccionada na lista 2 e nessa a categoria ou grau contido em pcat seleccionada na lista 3.

3.2.3 Apresentação dos dados estatística

Para apresentar os dados na interface gráfica, optou-se por utilizar uma interface de listas que permitem seleccionar os anos, escolas nesse ano, categorias nessa escola, ou graus e visualizar os professores nessa linha.

• Funcionamento do sistema de apresentação de dados.

Ao escolher um ano da lista este procura na estrutura o que lhe corresponde e cria uma lista com as chaves do dicionário, esta por sua vez é adicionada á lista de estabelecimentos, clicando nesta é verificado qual das estatísticas foi escolhida, se for a primeira é verificado a que corresponde na estrutura e cada registo de professores na lista é transformada numa string através do método __setStringList(self): e estas são colocadas como itens na lista 4.

Se não se tratar da primeira opção significa que ainda existe um outro nivel e portanto outra lista, categorias ou graus, conforme a opção escolhida, nesse casso ainda se trata de um dicionário de dicionários, então como no nível

(8)

anterior é criada uma lista de chave e mostrada na lista 3, aí então uma seleccionada é que os registos são

transformados numa lista de strings e adicionados á lista 4.

3.2.3 Apresentação de dados sob forma de gráfico (Apenas CPython)

Para ser possível a apresentação dos dados sob a forma de gráfico, utilizou-se o modulo Matplotlib como pedido no enunciado, dos vários tipos de gráficos disponíveis no modulo, optou-se por utilizar um gráfico de barras, possibilitando a visualização do numero de professores num determinado estabelecimento, categoria ou grau, em todos os anos inseridos na base de dados e ainda permite visualizar o gráfico do numero de categorias e graus num determinado estabelecimento pelos diferentes anos. Para dar resposta a esta funcionalidade criou-se o modulo Graph que contem a Class Graph, esta recebe os

parâmetros, titulo para o gráfico, legenda lateral e legenda inferior.

Esta conta com o método:

• drawGraph(), recebe os valores (values, legend) retirados de a partir de um dos anteriores e elabora o gráfico.

3.3 Geração de site a partir das estruturas de dados (CPython e Jython)

3.3.1- Procedimento

Este procedimento consiste na leitura de uma estrutura gerada pela class Statistics nível a nível, cria-se um ficheiro html com o nome da chave do dicionário e insere-lhe links para os ficheiros criados no nível seguinte, assim sucessivamente até ao penúltimo nível no qual o ficheiro html não contem links mas sim uma tabela de professores contidos no ultimo nível da estrutura.

Cada nível esta dividido por pastas no sistema de

ficheiros, o índex.hml, ficheiro inicial do site esta junto ao CPythonApp.py, os ficheiros do nível seguinte estão contidos num directoria years criada pelo programa ao gerar o site, o próximo nível esta em establishmentes dentro de years, caso a estatística escolhida seja a primeira, dentro desta estão os ficheiros com informação dos professores, se não, ainda existira mais um nível antes desta informação, este contara mais uma directoria sendo esta com o nome catgory ou degree dependendo da opção escolhida.

(Server apenas em CPython):

Esta funcionalidade como referido anteriormente, esta disponível a partir de um butão na parte de estatística na interface gráfica, ao premir o butão o site é gerado, e também é iniciado o firefox no endereço do local host na porta 8005, o qual mostra o ficheiro índex.html.

Isto é possível pois existe um modulo HTTPServer .py criado que contem a class Server, esta permite a utilização do simpleHttpServer do python, e ainda, esta class herda da class Thread o que permite que o servidor corra noutra execução externa ao programa e o sistema não bloquei. 3.3.2- Representação de site para estrutura de três níveis

3.3.3 Representação de site para estrutura de quatro níveis

3.4 Retirar informação dos tags de uma página HTML (CPython e Jython)

A aplicação como já referido anteriormente, permite retirar informação sobre o numero de tags numa página html, isto é possível graças ao modulo HTTPRetriver que contem a class HttpRetriver, esta recebe no seu construtor o parâmetro url, sendo este o endereço da página,

recorrendo ao modulo urllib2 é possível ler a o conteúdo desse ficheiro e o guardar numa variável, para este ser processado pelo modulo BeautifulSoap, este possibilita ao ser indicado o tag pretendido, retornar uma lista desses elementos contidos no documento.

Tendo em conta estas propriedades, bastou-se cirar um método na class HttpRetriver, getTagCount(self,tag):, que recebe o tag pretendido por parâmetro e devolve o comprimento da lista retornada do BeautilfulSoap, cumprindo assim o requisito pedido, efectuando-se esta operação para todos os tags pretendidos, o ultimo passo foi mostrar essa informação ao utilizador recorrendo ao widget wx.statictext adicionado ao interface gráfico. 3.5 Escrita de dados para ficheiro CSV

 

Como pedido no enunciado, o programa permite a escrita de dados resultantes da pesquisa para um ficheiro CSV. Para este fim, registo a registo, os dados dos professores, contidos no nível 4 da estrutura de estatística, sendo cada campo separado por ‘,’ , são enviados para o ficheiro CSV.

(9)

3.5.1 CPython

Para resolver esta questão utilizou-se o modulo csv do python e criou-se o método __EVT_SEND_CSV que envia os registos o ficheiro seleccionado.

3.5.2 Jython

Utilizou-se a biblioteca opencsv e a class FileWriter do Java , e criou-se o método __teachersToCSV que envia os registos para o ficheiro seleccionado.

4. Em conclusão

Durante o desenvolvimento das aplicações notou-se que a aplicação de CPython tem disponível todos os módulos necessários ao desenvolvimento, a excepção do Beaultifulsoap, no entanto a aplicação Jython foi

necessário a instalação de sqlitejdbc-v056.jar, opencsv.jar e ainda o Beautifulsoap.

Em termos de syntax, na utilização dos módulos python, estes são de mais fácil utilização que as classes Java. Em termos de tempos de execução a aplicação python é ligeiramente mais rápida.

Em comparação de estrutura de uma aplicação para outra não existe muita diferença, apenas na diferenciação dos módulos utilizados.

Referências

Documentos relacionados

demonstraram que: 1 a superfície das amostras tratadas com o glaze pó/líquido foram as que apresentaram uma camada mais espessa de glaze, com superfícies menos rugosas; 2o grupo

Sendo assim, o programa de melhoria contínua baseado no Sistema Toyota de Produção, e realizado através de ferramentas como o Kaizen, poderá proporcionar ao

Na tentativa de avaliar a confiabilidade das medidas lineares realizadas em radiografias panorâmicas, comparando-as com imagens obtidas por meio de TC, Nishikawa et al., 2010

Leite 2005 avaliou duas hipóteses: a diferentes tempos de condicionamento com AFL não influenciariam nos valores de resistência de união entre uma cerâmica e um cimento resinoso; b

A revisão das produções sobre matriciamento em saúde mental apontou os seguintes eixos: dificuldades na articulação da rede de cuidados e fatores que dificultam o desenvolvimento

O presente estudo tem como objetivo avaliar se o uso de um munhão personalizado é capaz de facilitar a remoção do excesso de cimento após a cimentação de

Não só o crack, mas também as drogas de modo geral, e incluem-se aqui também as chamadas drogas lícitas tais como álcool e tabaco, são considerados um

Nos Estados Unidos da América EUA, elas representam cerca de 133 milhões, as quais contribuem para 7 a 10% da mortalidade a cada ano, resultam num gasto dispendido para a saúde de