• Nenhum resultado encontrado

Linguagem de programacao com Scratch

N/A
N/A
Protected

Academic year: 2021

Share "Linguagem de programacao com Scratch"

Copied!
63
0
0

Texto

(1)

Algoritmos e programa¸c˜

ao em Scratch

Brauner G Coutinho1

1Centro de Ciˆencias Humanas e Exatas UEPB

(2)

Sum´

ario

Algoritmos

Operadores aritm´eticos Vari´aveis

Comando de sa´ıda: escrever Comando de entrada: ler Coment´arios

Tipos de estruturas de um algoritmo Operadores relacionais e l´ogicos Blocos condicionais

(3)

Algoritmos - defini¸c˜

ao

I Algoritmo ´e uma sequˆencia finita de passos que devem ser seguidos para a resolu¸c˜ao de um problema, realiza¸c˜ao de uma tarefa ou para atingir um objetivo bem definido;

I Algoritmos n˜ao s˜ao novidade para n´os. Na nossa rotina di´aria, realizamos diversas tarefas em uma sequˆencia de passos:

I Escovar os dentes;

I Cozinhar um miojo

I Atravessar a rua;

I Trocar um pneu do carro, etc.

I Alguns problemas matem´aticos s˜ao solucionados por meio de uma sequˆencia de passos.

I C´alculo das ra´ızes de uma equa¸c˜ao quadr´atica;

(4)

Algoritmos - alguns exemplos

Escovar os dentes pela manh˜a:

1. Colocar creme dental na escova;

2. Escova os dentes;

3. Enxaguar a boca com ´agua;

4. Enxugar a boca. Cozinhar um miojo:

1. Colocar a panela com a ´agua no fogo;

2. Esperar ferver;

3. Colocar o macarr˜ao do pacote;

4. Cozinhar por trˆes minutos;

5. Desligar o fogo;

(5)

Algoritmos - alguns exemplos

Resolver equa¸c˜ao quadr´atica:

1. Conhecer os coeficientes da equa¸c˜ao ax2+ bx + c = 0;

2. Calcular o valor de ∆ = b2–4ac;

3. Se o valor de ∆ for negativo n˜ao existem ra´ızes reais, parar;

4. Calcular a primeira raiz como x0= −b+

√ ∆ 2a ;

5. Calcular a segunda raiz como x00 = −b−

√ ∆ 2a .

Calcular a m´edia aritm´etica entre quatro notas:

1. Perguntar as quatro notas;

2. Calcular a soma destas quatro notas;

3. Dividir o resultado desta soma por quatro;

(6)

Algoritmos - alguns exemplos

Em uma margem do rio est˜ao um pastor, um lobo, uma cabra, um repolho. Atravesse todos para a outra margem do rio sabendo que:

I O pastor s´o pode atravessar no barquinho com uma “passageiro” de cada vez;

I Um “passageiro” que “devora” o outro n˜ao podem estar na mesma margem sozinhos, sem a presen¸ca do pastor;

I O lobo devora a cabra;

I A cabra devora o repolho;

I O pastor pode levar e trazer um “passageiro” quantas vezes quiser.

(7)

Algoritmos computacionais

I O computador ´e uma m´aquina muito poderosa: capaz de realizar grandes quantidades de c´alculos de forma r´apida e precisa;

I S˜ao diferentes de outras m´aquinas pois podem ser usados para diversas finalidades: engenharia, medicina, avia¸c˜ao, arquitetura, matem´atica, etc;

I Mas porque?

(8)

Algoritmos computacionais

I Um programa de computador ´e uma sequˆencia de instru¸c˜oes ou comandos que ele ´e capaz de seguir;

I Algoritmos computacionais podem ser transformados em programas de computador desde que sejam escritos em uma determinada linguagem de programa¸c˜ao;

I Existem diversas linguagens de programa¸c˜ao: Pascal, C, Fortran, Java, Python, PHP, Scratch, Logo, etc.

I Devemos utilizar a que mais seja adequada para as nossas necessidades.

(9)

Algoritmos computacionais - linguagem Scratch

No nosso curso, utilizaremos a linguagem Scratch (MIT) que possui algumas caracter´ısticas bastante interessantes:

I Criada para fins educacionais;

I Os comandos s˜ao como blocos de encaixar, inspirados no brinquedo LEGO, evitando erros de sintaxe;

I N˜ao custa nada;

I Pode ser instalada na sua m´aquina ou usada no site;

I Funciona em diversos sistemas operacionais;

I F´acil de aprender;

I E uma linguagem moderna e bastante popular;´

(10)

Algoritmos computacionais

I O computador ´e bom para calcular mas n˜ao ´e inteligente ou criativo como n´os;

I Devemos explicar detalhadamente as instru¸c˜oes para ele, na forma de comandos, de modo que ele possa compreender e executar;

I Para programar em uma linguagem ´e necess´ario entender a l´ogica de programa¸c˜ao, ou seja, compreender claramente como os comandos s˜ao executados durante a execu¸c˜ao do programa.

(11)

Algoritmos computacionais

I A maior dificuldade ao se escrever algoritmos computacionais ´

e organizar as id´eias na forma de instru¸c˜oes simples que o computador possa executar;

I No EUA, as crian¸cas aprendem no¸c˜oes de programa¸c˜ao no ensino fundamental (linguagem logo);

I Como nunca lidamos com isso antes, devemos treinar, exercitar bastante, fazer muitos exerc´ıcios com algoritmos para poder aprender a criar programas eficientes com mais facilidade.

(12)

Algoritmos computacionais - caracter´ısticas importantes

I Deve ser composto por um n´umero finito de passos;

I A ordem dos passos importa;

I Diversos algoritmos podem resolver o mesmo problema;

I Deve ser escrito na forma de instru¸c˜oes simples capazes de serem executadas pelo computador;

I N˜ao deve permitir d´uvida na interpreta¸c˜ao;

(13)

Algoritmos computacionais - representa¸c˜

ao

I Existem v´arias formas de se representar um algoritmo;

I Vamos usar a representa¸c˜ao na forma de texto estruturado (portuguˆes estruturado ou portugol);

I Exemplo de um algoritmo em portuguˆes estruturado para c´alculo da ´area de um c´ırculo de raio igual a 10:

1. r = 10

2. pi = 3.1416

3. area = pi .r2

4. mostrar area

(14)

Operadores aritm´

eticos

I No Scratch os operadores arim´eticos ficam na Se¸c˜ao Operadores;

(15)

Operadores aritm´

eticos: express˜

oes

I Na matem´atica, ao montar express˜oes mais longas, costumamos utilizar: { }( ) [ ].

I No Scratch os operadores s˜ao encaixados em sequˆencia e as opera¸c˜oes localizadas nas pe¸cas “mais altas” s˜ao realizadas primeiro;

Ex: 3 [5 + 17(14 − 39)] seria escrito no Scratch como:

I Cuidado ao arrastar pe¸cas com express˜oes matem´aticas muito extensas.

(16)

Operadores aritm´

eticos

I E preciso aten¸c˜´ ao ao escrever uma express˜ao matem´atica;

I Existe diferen¸ca no resultado das express˜oes abaixo?

I Qual das express˜oes acima representa corretamente a seguinte express˜ao matem´atica?

5 + 6 2

I Como j´a foi dito, as opera¸c˜oes localizadas nas pe¸cas “mais altas” s˜ao realizadas primeiro.

(17)

Guardando valores em vari´

aveis

I Muitas vezes, ´e ´util guardar valores para utilizar depois;

I Em nossos programas usamos vari´aveis para guardar valores;

I No Scratch uma vari´avel ´e criada na Se¸c˜ao Vari´aveis?

I Clique no bot˜ao “Criar uma vari´avel”;

(18)

Guardando valores em vari´

aveis

I As informa¸c˜oes no computador s˜ao armazenadas na sua mem´oria principal;

I Podemos imaginar que esta mem´oria ´e um grande arquivo com v´arias caixas, contendo diferentes informa¸c˜oes;

I Imagine uma vari´avel como sendo uma dessas caixas;

I Para guardar e depois localizar algum conte´udo em uma das caixas, ´e preciso identific´a-la com uma etiqueta (o nome da vari´avel);

a

10

peso

(19)

Guardando valores em vari´

aveis

I As mesmas express˜oes aritm´eticas que criamos a partir de valores num´ericos, podemos montar utilizando vari´aveis:

I Para mudar o valor de uma vari´avel usamos os seguintes comandos:

I O primeiro muda a vari´avel para o valor especificado;

I O segundo adiciona `a vari´avel o valor especificado ap´os a v´ırgula;

(20)

Guardando valores em vari´

aveis

I Ex: Para calcular a m´edia de dois valores:

I Ap´os criar trˆes vari´aveis (x1, x2, media) pode-se usar o seguinte c´odigo;

(21)

Comando de sa´ıda

I Para mostrar alguma informa¸c˜ao na tela, usamos os comandos da Se¸c˜ao Aparˆencia abaixo:

I Qual a diferen¸ca entre os dois?

I Os comandos diga servem para mostrar todos os tipos de informa¸c˜oes:

I n´umeros;

I express˜oes;

I frases;

(22)

Comando de sa´ıda

I Para mostrar mais de uma informa¸c˜ao simultaneamente, use o seguinte operador:

I O comando junte pode unir diversas informa¸c˜oes:

I n´umeros;

I express˜oes;

I frases;

(23)

Comando de sa´ıda: escrever - print

I Um programa para calcular a ´area de um c´ırculo de raio 10 pode ser escrito como:

(24)

Comando de sa´ıda: escrever - print

I Exemplo de programa para calcular e mostrar o volume de um cilindro com raio da base igual a 3 e altura igual a 8 usando o comando diga:

(25)

Comando de entrada

I Nos casos estudados at´e agora, os valores das vari´aveis s˜ao definidos na edi¸c˜ao do programa;

I No exemplo do slide anterior, o algoritmo e o programa correspondente calculam somente o volume de um cilindro de raio 6 e altura 8;

I Esse tipo de programa ´e limitado, seria mais ´util se pudesse calcular o volume de qualquer cilindro sem necessidade de altera¸c˜ao do c´odigo;

(26)

Comando de entrada

I Para que o programa fa¸ca a pergunta, usa-se da Se¸c˜ao Sensores o seguinte comando:

I Uma diferen¸ca entre o Scratch e outras linguagens ´e que a resposta ao comando de entrada “pergunte” vai sempre para a vari´avel resposta, que tamb´em pode ser acessada na mesma Se¸c˜ao Sensores.

(27)

Comando de entrada

I E necess´´ ario tomar cuidado quando se deseja fazer mais de uma pergunta em sequˆencia;

I Supondo que a=1, b=2 e c=3, o que ´e mostrado pelos programas a seguir:

(28)

Comando de entrada

I Para evitar que o valor se perca, podemos usar guardar a resposta em vari´aveis espec´ıficas:

(29)

Comando de entrada

I O programa do exemplo para calcular o volume de um cilindro pode ser modificado para uma forma mais geral como segue:

(30)

Coment´

arios

I Imagine que vocˆe recebe um algoritmo ou programa escrito por outra pessoa;

I Se vocˆe estudou algoritmos, vocˆe pode interpretar o c´odigo para entender o que o algoritmo faz, que opera¸c˜oes ele realiza, para que serve o algoritmo/programa;

I At´e mesmo se vocˆe abre um algoritmo seu, escrito h´a muito tempo, pode ser dif´ıcil lembrar o que ele faz;

I Seria interessante escrever textos explicativos, em nossa l´ıngua, que pudessem explicar algo a respeito do programa ou algoritmo;

(31)

Coment´

arios

I E para isso que servem os coment´´ arios;

I Para adicionar um coment´ario, com o bot˜ao direito do mouse clique sobre alguma “pe¸ca” do Scratch e logo ap´os em “adicionar coment´ario”;

I O texto que vier em um coment´ario ´e ignorado durante a execu¸c˜ao do programa;

I Com coment´arios, ´e mais f´acil entender o que o programa faz;

(32)

Tipos de estruturas de um algoritmo

I Um algoritmo pode apresentar trˆes tipos de estruturas:

1. Seq¨uencial;

2. Condicional;

3. Repeti¸c˜ao;

I At´e agora estudamos o tipo seq¨uencial, ou seja, aquele em que TODOS os passos s˜ao SEMPRE executados UMA ´UNICA VEZ, sempre em seq¨uˆencia;

I A execu¸c˜ao come¸ca na primeira linha e vai avan¸cando sequencialmente, linha ap´os linha, at´e chegar no final;

I O computador executando um algoritmo com estrutura seq¨uencial pode ser comparado com um carro percorrendo uma estrada;

I O carro deve percorrer todos os quilˆometros da estrada para se chegar ao destino, um de cada vez, sempre na mesma seq¨uˆencia.

(33)

Tipos de estruturas de um algoritmo

I Antes de estudar as demais estruturas (condicional e repeti¸c˜ao), devemos estudar os operadores relacionais e l´ogicos.

(34)

Operadores relacionais

I Operadores relacionais s˜ao usados para realizar compara¸c˜oes entre dois valores;

I O resultado ´e sempre um valor l´ogico: V ou F, Verdadeiro ou Falso, true ou false (em inglˆes).

I Os valores comparados podem ser vari´aveis, n´umeros ou express˜oes aritm´eticas.

(35)

Operadores relacionais

I Verifique atrav´es do Scratch o resultados das seguintes express˜oes:

I 5 = 15

I 8 > 37

I 1 < 5

I Operadores relacionais podem vir juntos com operadores aritm´eticos;

I Tente montar as express˜oes:

I 2 * 4 = 24 / 3

I 14 / 2 < 1

(36)

Operadores l´

ogicos

I S˜ao usados para conectar duas ou mais rela¸c˜oes;

I O resultado ´e sempre um valor l´ogico: V ou F!

I Aplicam-se as mesmas regras do componente L´ogica:

e : resulta V se ambas as partes forem V.

ou : resulta V se pelo menos uma das partes ´e V.

(37)

Operadores l´

ogicos

I Tente montar no Scratch esses exemplos de express˜oes com operadores relacionais e l´ogicos:

I 3 < 5 < 10

I 3 < 10 < 5

I 3 = 4 − 1

I 2 > 5 e 6 < 10 I 2 > 5 ou 6 < 10

(38)

Operadores l´

ogicos

I Como vocˆe pode ter notado, os seguintes operadores n˜ao est˜ao dispon´ıveis no Scratch: 6=, ≥, ≤;

I Como criar essas express˜oes?

I Tente descobrir e montar as seguintes express˜oes:

I 5 ≤ 5

I 11 ≥ 5

I 12 6= 12 * 1

I Express˜oes mais complexas podem envolver, simultaneamente, diversos operadores aritm´eticos, l´ogicos e relacionais;

Ex: 5 > 4 ou (1 ≥ 0,5 e 4 6= 2)

I Aten¸c˜ao ao uso dos parˆenteses;

(39)

Blocos condicionais (se)

I As vezes surge a necessidade de colocar comandos em um` programa que s´o ser˜ao executadas caso alguma condi¸c˜ao espec´ıfica aconte¸ca;

I A condi¸c˜ao ´e sempre um resultado de uma express˜ao l´ogica (V ou F, true ou false);

I E como se o computador estivesse percorrendo uma´ estrada com duas op¸c˜oes de caminhos a seguir!

(40)
(41)

Blocos condicionais (se)

I Os dois blocos condicionais est˜ao dispon´ıveis na Se¸c˜ao Controle;

I Forma simples: h´a somente o caminho Verdadeiro (dentro do se...ent˜ao).

I Forma composta: h´a os dois caminhos: Verdadeiro (abaixo do se...ent˜ao) e Falso (abaixo do sen˜ao).

(42)

Blocos condicionais (se)

Exemplo de utiliza¸c˜ao da instru¸c˜ao se: algoritmo que recebe um n´umero e diz se ´e positivo ou negativo

(43)

Blocos condicionais (se)

Exemplo de utiliza¸c˜ao da instru¸c˜ao se: algoritmo que recebe um n´umero e diz se ´e positivo ou negativo

(44)

Algoritmos com repeti¸c˜

ao

I Em alguns algoritmos do nosso dia a dia, certas a¸c˜oes precisam ser repetidas;

I Existem dois tipos de repeti¸c˜oes:

1. Um n´umero exato de vezes:

Ex: Gire 3 vezes, dˆe 2 voltas completas, etc.

2. Um n´umero desconhecido de vezes (enquanto uma condi¸c˜ao for satisfeita ou at´e que uma condi¸c˜ao seja satisfeita):

Ex: Mexa o ovo at´e que ele cozinhe, esfregue as m˜aos enquanto elas est˜ao sujas, caminhe at´e chegar a porta, etc.

(45)

Algoritmos com repeti¸c˜

ao

I Em algoritmos computacionais, nos deparamos com situa¸c˜oes similares:

I Comandos repetidos um determinado n´umero de vezes;

I Comandos repetidos enquanto uma condi¸c˜ao for satisfeita ou at´e que uma condi¸c˜ao seja satisfeita.

I Exemplo de programa que envolve repeti¸c˜ao: fa¸ca um programa para escrever na tela a palavra “Ol´a!” trˆes vezes.

I Um programa com 3 comandos “diga” seria eficiente?

I E se fosse para repetir 100 vezes?

I Para lidar com repeti¸c˜oes em nossos programas com Scratch, temos trˆes blocos que estudaremos a seguir.

(46)

Blocos de repeti¸c˜

ao

I Os blocos de controle de repeti¸c˜ao, encontrados na Se¸c˜ao Controle, s˜ao:

(47)

Blocos de repeti¸c˜

ao

I Reproduza no Scratch o programa abaixo e veja o que ele faz:

I O comando espere segundos insere uma pausa entre uma fala e outra;

I O que ele faz?

I Altere o programa para repetir 5.

I E se vocˆe quisesse repetir 300 vezes?

I E mais eficiente para programar?´

(48)

Repetir por n vezes

I O programa do exemplo usa um dos blocos de repeti¸c˜ao que o Scratch oferece:

I Quando queremos que alguns comandos sejam executados um n´umero determinado de vezes utilizamos o comando acima;

I Utilizado para repetir uma a¸c˜ao um n´umero fixo de vezes;

I Somente deve ser utilizado quando o n´umero de repeti¸c˜oes ´e conhecido previamente, na hora de criar o programa.

(49)

Repetir por n vezes

I Essa estrutura pode ser usada para diversos problemas envolvendo n´umeros;

I Para contar de 1 at´e 3, podemos ter o seguinte programa usando vari´aveis:

(50)

Repetir por n vezes

I Analisando o programa, percebe-se que os comandos abaixo repetem-se 3 vezes:

I Uma forma de reescrever este programa de modo mais eficiente seria usando a estrutura de repeti¸c˜ao:

I Observe que o programa fica mais elegante, melhor de programar e tem a mesma funcionalidade.

(51)

Repetir por n vezes

I A combina¸c˜ao de estruturas de repeti¸c˜ao com o uso de vari´aveis permite solucionar diversos problemas como veremos.

I O programa anterior podem servir como modelo para se trabalhar com P.A.

I O programa a seguir calcula e mostra os 4 primeiros termos de uma P.A. com a1= 10 e r = 5:

I Perceba que, neste programa, inverteu-se a posi¸c˜ao dos comandos diga e adicione. Tente entender o motivo.

(52)

Repetir por n vezes

I Tamb´em usa-se a mesma estrutura de repeti¸c˜ao para problemas que envolvam repetidas perguntas;

I O programa a seguir pergunta 3 n´umeros e mostra o valor da raiz quadrada de cada um:

(53)

Repetir por n vezes

Exerc´ıcios:

1. Baseando-se no programa anterior, crie um que conte regressivamente de 5 at´e 1 (5, 4, 3, 2, 1).

2. Crie um programa que mostre os 6 primeiros n´umeros pares.

3. Crie um programa que conte de 19 at´e 25.

4. Fa¸ca um programa que pergunte dois n´umeros a e b. Pe¸ca ao usu´ario para que informar valores tais que a < b. Em seguida o programa deve contar de a at´e b, de 1 em 1.

5. Fa¸ca um programa que pergunte dois n´umeros a e b. Se a < b o programa deve contar de modo crescente de 1 em 1. Se a > b o programa deve contar de modo decrescente de a at´e b, de 1 em 1.

6. Fa¸ca um programa que mostre os 6 primeiros termos de uma P.A. com a1= 5 e r = 3.

7. Fa¸ca um programa que mostre os 10 primeiros termos de uma P.A. com a1= 100 e r = −10.

8. Fa¸ca um programa que pergunte o primeiro termo a1, a raz˜ao

r e a quantidade de termos de uma P.A. O programa deve calcular e mostrar todos termos dessa P.A.

9. Fa¸ca um programa que pergunte 3 n´umeros e, para cada valor digitado, mostre o seu quadrado.

(54)

Repetir por n vezes - Somat´

orios

I Outro problema bastante ´util que pode ser resolvido com estrutura de repeti¸c˜ao ´e o c´alculo de somas ou somat´orios;

I Nestes casos sempre uma vari´avel deve ser iniciada com valor 0 antes da repeti¸c˜ao;

I O programa abaixo pergunta 5 n´umeros e, em seguida, realiza a soma de todos os n´umeros informados:

(55)

Repetir por n vezes - Somat´

orios

I Conforme pode ser observado no programa anterior, em c´alculos de somas ou somat´orios sempre teremos os seguintes comandos;

1. Antes da repeti¸c˜ao:

2. Dentro da repeti¸c˜ao:

3. Ap´os a repeti¸c˜ao:

(56)

Repetir por n vezes - Somat´

orios

I O programa abaixo conta de 1 at´e 7, calcula a soma destes n´umeros e mostra o valor da soma no final:

(57)

Repetir por n vezes - M´

edias

I O programa abaixo conta de 1 at´e 7, calcula a soma destes n´umeros e mostra o valor da soma no final:

(58)

Repetir por n vezes - Menor valor

I Repeti¸c˜oes podem ser utilizadas para calcular o maior e o menor valor de um conjunto de v´arios n´umeros;

I O programa a seguir pergunta 3 valores e mostra, no final, o menor valor informado:

(59)

Repetir por n vezes - Menor valor

I Observe no programa anterior, que a primeira pergunta ´e feita fora da repeti¸c˜ao, e que a sua resposta vai sempre ser o menor valor no in´ıcio do programa;

I Esse racioc´ınio ´e o mesmo que fazemos ao realizar a mesma tarefa mentalmente;

Exerc´ıcios:

1. Tente modificar o programa anterior para localizar o maior valor de um conjunto de n´umeros.

2. Tente modificar o programa anterior para localizar tanto o menor como o maior valor conjunto de n´umeros.

(60)

Repetir at´

e uma condi¸c˜

ao

I Outro bloco de controle de fluxo usada no Scratch ´e:

I O comando acima realiza a repeti¸c˜ao dos comandos no interior do bloco at´e que uma condi¸c˜ao especificada seja verdadeira (true);

(61)

Repetir at´

e uma condi¸c˜

ao

I Abaixo seguem programas para contar de 1 at´e 5 usando os dois blocos de controle:

(62)

Repetir infinitamente

I Um outro bloco de controle dispon´ıvel no Scratch repete infinitamente comandos:

I Os comandos colocados no interior do bloco s˜ao repetidos infinitamente.

I Por que h´a tantas op¸c˜oes? Qual destas ´e a melhor?

(63)

Blocos de repeti¸c˜

ao - Resumo

I Quando se sabe o n´umero de vezes a repetir, usamos:

I Quando n˜ao se sabe o n´umero de vezes no momento de construir o programa, usamos:

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

O destaque é dado às palavras que abrem signi- ficados e assim são chaves para conceitos que fluem entre prática poética na obra de arte e sua reflexão em texto científico..

58 Figura 4.17: Turmalinização observada na rocha encaixante (micaxisto Seridó) junto ao contato do pegmatito Tópico. Em A) visão geral do efeito de turmalinização na

Por último, com base no exame anterior, procurarei fornecer, no terceiro capítulo: “3 A natureza formal dos corpos homogêneos e da constituição orgânica”, uma interpretação

8 o desempenho operacional de duas estações de tratamento de esgoto em operação no município de Blumenau, estado de Santa Catarina: a ETE Garcia, que opera com um reator

GERAL: Capacitar o aluno na análise, síntese e projeto de circuitos eletrônicos utilizando componentes passivos, ativos e digitais. Será adotado um modelo híbrido de Grupos

As métricas por trás do Tomatometer, os seus diversos critérios de cálculo, o selo Certified Fresh, o conceito de Top Critic, como também a possibilidade que usuários cadastrados