(Resolvi fazer esse resumo para o pessoal que está começando, porque vi que muitas pessoas estavam com dúvidas nos comentários; e sei que ver um código já digitado atrapalha um pouco no entendimento. Mas não estou desmerecendo o trabalho do professor Bruno, que admiro demais) :) 02:41 - Binary Search O Binary Search (Busca Binária) é um algoritmo de busca que vai dividindo uma array sempre pela metade, até encontrar o valor desejado. É como se pegássemos uma lista telefônica e a rasgássemos no meio. Desse jeito, não teríamos de procurar por um nome em toda lista, mas, sim, apenas em sua metade. O que acontece nesse método, é que ele faz isso de maneira automática para nós. Você diz em que array (vetor) quer encontrar um valor, e depois qual o valor que quer encontrar. Se o código retornar um número menor do que 0, significa que o valor procurado não foi encontrado em nenhuma posição. Se for, retornará o seu índice (sua posição na array). 03:57 - Copy O método Copy nos permite copiar os dados de uma array para outra. Para isso, dizemos qual a array que queremos copiar; para qual array queremos passar os valores copiados; e quantos elementos que queremos copiar (usando o seu Length). 05:00 - CopyTo O método CopyTo é parecido com o Copy, ou seja, também nos permite copiar as informações de uma array para a outra. Para usá-lo, temos da chamá-lo a partir da array que queremos copiar; dizer para qual array queremos passar os valores copiados; e a partir de qual posicao da array que queremos copiar). 05:42 - GetLowerBound (Não entendi muito bem em que cenário o usaríamos) O método GetLowerBound nos diz qual é o menor índice de nossa array. Pelo o que entendi, sempre retornará 0, porque não podemos ter uma array com menos elementos do que 0. 07:09 - GetUpperBound Pelo o que entendi, o método GetUpperBound é tipo o .Length. O que significa que ele nos diz até que índice vai nossa array (se tivermos 5 elementos, vai até a 4 - porque começamos a contar a partir do 0). 07:55 - GetValue O método GetValue nos diz qual é o valor presente na posição que indicamos. Por exemplo: se temos uma array do tipo string com os valores: "banana", "morango", "maça". Ao pedir o valor da posição 1, receberíamos a string "morango". 09:01 - IndexOf O método IndexOf nos diz em qual posição da array está o valor que procuramos (mas sempre pegando sua primeira aparição). Por exemplo: se temos uma array do tipo string com os valores: "banana", "morango", "banana". Ao pedirmos o índice do valor "banana", receberíamos a valor 0 (que é a sua primeira aparição na array). 09:41 - LastIndexOf O método LastIndexOf é idêntico ao IndexOf. Porém, ao invés de nos dizer onde está a primeira aparição do valor, nos diz onde está sua última. Por exemplo: se temos uma array do tipo string com os valores: "banana", "morango", "banana". Ao pedirmos o índice do valor "banana", receberíamos a valor 2 (que é a sua última aparição na array). 10:20 - Reverse O método Reverse nos permite colocar os valores de uma array na ordem contrário. Por exemplo: se temos uma array do tipo int com os valores: 3, 5, 1, 7. Ao usarmos o Reverse, teríamos uma array com os valores: 7, 1, 5, 3 (que são os mesmos que o anterior, mas ao contrário). 10:48 - SetValue O método SetValue nos permite acessar uma posição específica da array e lhe dar um novo valor. É como se fosse o: nomeDaArray[posicaoDesejada] = novoValor. Para usá-lo, temos de dizer a posição que queremos acessar, e seu novo valor. 11:46 - Sort O método Sort nos permite organizar em ordem crescente os valores de uma array. Por exemplo: se temos uma array do tipo int com os valores: 3, 5, 1, 7. Ao usarmos o Sort, teríamos uma array com os valores: 1, 3, 5, 7 (que são os mesmos que o anterior, mas na ordem correta). Muito obrigado ao professor Bruno por todas suas aulas e carinho, e a você por ter lido até aqui :)
Mesmo código do vídeo para quem quiser copiar e tiver com preguiça de digitar kkkk: int[] vetor1=new int [5]; int[] vetor2=new int [5]; int[] vetor3=new int [5]; int[,] matriz=new int [2,5]{{11,22,00,44,55},{66,77,88,99,00}}; Random random = new Random(); for(int i=0; i
@@tijolinhostt1529 Em partes eu concordo com você, mas nesse caso não tem nenhum problema, esses códigos são apenas métodos para arrays, então não tem problema copiar e colar, não é como se fosse algo difícil de entender ou algum exercício. O aprendizado vem com a prática, mas a teoria também é necessária. O código dessa aula é apenas teoria, o professor deu alguns exemplos de uso desses métodos, para explicar como cada um funciona, sendo assim não há problema em copiar e colar.
Seguinte, você que tá começando agora e tá quebrando a cabeça nessa linha de código. Bom... É fácil de entender, é pura lógica, quanto mais você quebra a cabeça nesse código e se esforça, mais duro vai ser kkkk.. Eu mesmo, passei a manhã inteira tendo problema com ele, e só consegui absorver no outro dia. Mas vai chegar um ponto que o seu cérebro vai dizer "TÁ" e você vai conseguir. Ótima didática professor, vamos está aqui apredendo até em 2030/2052.
//uma observação, estou adorando os conteúdos e replico para estudar a fundo, observei que para o método BinarySearch funcionar corretamente é preciso antes ordenar o vetor em ordem crescente, percebi isso pois vi que mesmo contendo o item indicado algumas vezes retornava um valor negativo indicando no ter localizado... estudando o método BinarySearch vi que é um algorítimo de pesquisa! ----------------------------------------------- eu escreve em Fortran algo similar, e essa pesquisa se dava assim: se verifica se o item está no inicio ou fim do bloco, dai se divide o bloco pela metade e se faz a verificação do elemento se ele esta no inicio ou final do bloco, exemplo; bloco principal =( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,15, 16) pesquisar 7 =0){ Console.WriteLine("valor {0} está no indice {1} posição {2}",procurado,pos,pos+1); }else { Console.WriteLine("valor {0} {1} nao encontrado",procurado,pos); }
Dica para quem quer entender melhor a aula e achou confusa, eu fiz o seguinte. Assisti o vídeo todo primeiro. Digitei o código inteiro, linha por linha. Cada parte do código eu lia e tentava entender como ele funciona e só depois digitava o próximo, a prática digitando msm sendo copiado ajuda a aprender. Caso alguma parte eu tinha dúvida, voltava e assistia aquela parte de novo da explicação do vídeo.
Esta aula, na minha opinião, serve para os alunos poderem começar a aprender a investigar os métodos que cada classe possui. Não é suposto existir um curso em que se explique os milhares de métodos existentes na linguagem. Agradeço por esta tentativa mal entendida de muitos dos visualizadores deste vídeo. Fiquei com uma dúvida: os métodos IndexOf e LastIndexOf permitem obter o índice composto de um valor de uma matriz?
Boa tarde essa aula caiu como uma luva para mim pois estou iniciando os estudos e estava a mais de 2 dias empacado em exercicios de array como por exemplo a união de elementos de duas matrizes de mesma dimensao, resultando em uma outra matriz de dimensão maior pois obviamente é a uniao das duas anteriores. Valeu !!!
valeu cara eu estava em duvida no meu codigo ja que eu coloquei numeros fora de ordem, dai um numero que tinha no meu array , usando o metodo BinarySearch ele me retornava -1.
Estou acompanhando seus vídeos e a dinâmica e muito boa pra quem tem vontade de aprender e tem dificuldades em gravar na mente o passo-a-passo da programação... o fato de você ter publicado este vídeo ampliado pela falta da "webcam", pra mim que acompanho pelo celular... o tamanho ficou excelente! Parabéns pelas aulas...
Concordo com alguns comentários em relação a outras funções que não foram abordadas anteriormente, por isso parece que causou a princípio, uma confusão, mas analisando o contexto, vejo que na verdade, o foco foi as funções Foreach e For juntamente com o conceito de se mostar uma estrutura um pouco mais complexa para evidênciar as possibilidades de tais comandos. Uma vez que seria necessário mesmo usar outros métodos para isto. Caso contrário, ficaria um tanto pobre e muito cru o projeto desenvolvido. Mas os demais comandos também foram explicados, então, vamos aproveitar e mescla-los com outras aulas para enriquecimento do aprendizado.
O ritmo das aulas estava ótimo, estava pegando tudo.. De repente nessa aula aparece programação toda digitada(oque não faz nos outros vídeos) e com um batalhão de informações e funções que ainda não foram abordadas e explicadas, que é novidade para leigos.. É nessa aula que aqueles que tinham esperança que C# não era essa complicação toda mudam de ideia. Estou agradecido de todo conteúdo até aqui e da sua boa vontade em disponibilizar os ricos aprendizados de forma gratuita para todos porém neste momento vou dar continuidade aos estudos em outras fontes para depois retornar a esta aula.
Ele apenas ta mostrando Metodos que existem das Arrays. Quase tudo q ele mostrou neste video é comando repetido, só muda o que faz, tipo Um inverte a ordem dos numeros que tá no vetor, outro copia o vetor passa pra outra etc...
vc mostrou Copy (origem, destino, qtde) e CopyTo(destino, a partir da posição), mas e se eu quiser um método pra copiar uma quantidade específica a partir de uma posição específica?????
Muito legal, pode parecer muito assustador ver todos esses códigos, mas após refazer eles vc percebe que quase todos métodos são somente uma linha, resto tu já sabe só não nota pq são muitas linhas kkkk.
//Métodos para Arrays using System; class Aula23 { static void Main() { int[] vetor1 = new int[5]; int[] vetor2 = new int[5]; int[] vetor3 = new int[5]; int[,] matriz = new int[2, 5] { { 11, 22, 00, 44, 55 }, { 66, 77, 88, 99, 00 } }; Random random = new Random(); for (int i = 0; i < vetor1.Length; i++) { vetor1[i] = random.Next(10); } Console.WriteLine("Elementos do vetor1"); foreach (int n in vetor1) { Console.WriteLine(n); } Console.WriteLine(); //public static int BynarySearch(array, valor); retorno -1 (negativo) indica que o elemento não foi encontrado Console.WriteLine("BinarySearch"); int procurado = 3; int posicao = Array.BinarySearch(vetor1, procurado); Console.WriteLine("Valor {0} está na posição {1}", procurado, posicao); Console.WriteLine(""); //pubic static void Copy(AR_origem, Ar_destino, qtde_elementos); Console.WriteLine("Copy"); Array.Copy(vetor1, vetor2, vetor1.Length); foreach (int n in vetor2) { Console.WriteLine(n); } Console.WriteLine(); //public void CopyTo(Ar_destino, a_partir_desta_posicao); Console.WriteLine("CopyTo"); vetor1.CopyTo(vetor3, 0); foreach (int n in vetor3) { Console.WriteLine(n); } Console.WriteLine(); //public long GetLongLenght(dimensão); Console.WriteLine("GetLongLenght"); long qtdeElementosVetor = vetor1.GetLength(0); Console.WriteLine("Quantidade de elementos {0}", qtdeElementosVetor); Console.WriteLine(); //public long GetLowerBound(dimensão); Console.WriteLine("GetLowerBound"); int MenorIndiceVetor = vetor1.GetLowerBound(0); int MenorIndiceMatriz_D0 = matriz.GetLowerBound(0); int MenorIndiceMatriz_D1 = matriz.GetLowerBound(1); Console.WriteLine("Menor índice do vetor1: {0}", MenorIndiceVetor); Console.WriteLine("Menor índice da matriz na dimensão 0: {0}", MenorIndiceMatriz_D0); Console.WriteLine("Menor índice da matriz na dimensão 1: {0}", MenorIndiceMatriz_D1); Console.WriteLine(); //public long GetUpperBound(dimensão); Console.WriteLine("GetUpperBound"); int MaiorIndiceVetor = vetor1.GetUpperBound(0); int MaiorIndiceMatriz_D0 = matriz.GetUpperBound(0); int MaiorIndiceMatriz_D1 = matriz.GetUpperBound(1); Console.WriteLine("Maior índice do vetor1: {0}", MaiorIndiceVetor); Console.WriteLine("Maior índice da matriz na dimensão 0: {0}", MaiorIndiceMatriz_D0); Console.WriteLine("Maior índice da matriz na dimensão 1: {0}", MaiorIndiceMatriz_D1); Console.WriteLine(); //public object GetValue(long índice); Console.WriteLine("GetValue"); int valor0 = Convert.ToInt32(vetor1.GetValue(3)); int valor1 = Convert.ToInt32(matriz.GetValue(1, 3)); Console.WriteLine("Valor da posição 3 do vetor1: {0}", valor0); Console.WriteLine("Valor da posição (1,3) da matriz: {0}", valor1); Console.WriteLine(); //public static int IndexOf(array, valor); Console.WriteLine("IndexOf"); int indice1 = Array.IndexOf(vetor1, 3); Console.WriteLine("Indice do primeiro valor 3: {0}", indice1); Console.WriteLine(); //public static int LastIndexOf(array, valor); Console.WriteLine("LastIndexOf"); int indice2 = Array.LastIndexOf(vetor1, 3); Console.WriteLine("Indice do último valor 3: {0}", indice2); Console.WriteLine(); //public static void Reverse(array); Console.WriteLine("Reverse Array"); Array.Reverse(vetor1); foreach (int n in vetor1) { Console.WriteLine(n); } Console.WriteLine(); //public void SetValue(object valor, long pos); Console.WriteLine("SetValue"); vetor2.SetValue(99, 0); for (int i = 0; i < vetor2.Length; i++) { vetor2.SetValue(0, i); } Console.WriteLine("Vetor 2: "); foreach (int n in vetor2) { Console.WriteLine(n); } Console.WriteLine(); //public static void Sort(array); Array.Sort(vetor1); //Ordenar em ordem crescente Array.Sort(vetor2); Array.Sort(vetor3); Console.WriteLine("Vetor1:"); foreach (int n in vetor1) { Console.WriteLine(n); } Console.WriteLine(" Vetor2:"); foreach (int n in vetor2) { Console.WriteLine(n); } Console.WriteLine(" Vetor3:"); foreach (int n in vetor3) { Console.WriteLine(n); } } }
3 ปีที่แล้ว +5
As aulas vinham num ritmo até aqui, e de repente acelerou 1000%, acho que isso explica alguns dislikes, rs...
eita não consigo aplicar a lógica de if no BinarySearch para exibir uma mensage de item não encontrado. o índice só funciona corretamente quando o programa é compilado
Essa aula foi confusa demais, nao me leve a mal, mas quando se explica um pouco de tudo, o aluno nao aprende nada, mas enfim, vou da um tempo no curso e pesquisar mais sobre essa aula em outros videos, depois eu volto.
Só alertar o professor Bruno, não contém no github o código das aulas C#, como foi afirmado, e já vi que existe grande conteúdo disponível de outras linguagens que vc ensina, talvez, não tenha percebido que os códigos não estão lá.
isso mesmo mestre! na verdade, acredito que ele confundiu. O método GetLongLenght, retorna o tamanho do vetor (no caso 5), o método GetLowerBound, retorna o menor índice de um vetor (no caso 0), e o método GetUpperBound retorna o maior índice de um vetor (no caso 4)
Olá professor, tenho ficado um pouco confuso com o seu curso nesta parte, por isso nesta par6te decidi aprender por outras fontes. Deve explicar melhor pois esta parte é um pouco dificil. Eu gosto muito do seu trabalho e isto é apenas uma critica construtiva. Bom trabalho
estudar é feito por partes passo a passo, ora fragmente o código, digite ele e analise caso a caso. isso é estudar, é preciso olhar bem, escutar bem, ler bem, escrever e re-escrever, testar, pesquisar, se aprofundar.
Esse vídeo tem muitos conceitos não aprofundados nas aulas anteriores... Fiquei muito confuso, tive que pesquisar pra entender melhor o que são classes, métodos e objetos. Tem alguma dica pra eu entender isso ? Está meio complicado :/
using System; class aula23 { static void Main() { int [] vetor1 = new int[5]; int [] vetor2 = new int[5]; int [] vetor3 = new int[5]; int [,] matriz = new int[2,5]{{11,22,00,44,55},{66,77,88,99,00}}; Random random = new Random(); for (int i = 0; i < vetor1.Length; i++){ vetor1[i] = random.Next(50); } Console.WriteLine("Elementos do vetor1."); foreach (int n in vetor1){ Console.WriteLine(n); } //public static int BinarySearch(array,valor); Console.WriteLine("BinarySearch"); int procurado = 33; int pos = Array.BinarySearch(vetor1,procurado); Console.WriteLine("Valor {0} está na posição {1}",procurado, pos); Console.WriteLine("------------------------------------------"); //public static void Copy(Ar_origem, Ar_destino, qtde_elementos); Console.WriteLine("Copy"); Array.Copy(vetor1, vetor2, vetor1.Length); foreach (int n in vetor2){ Console.WriteLine(n); } Console.WriteLine("------------------------------------------"); //public void CopyTo(Ar_destino, a_partir_desta_pos); Console.WriteLine("CopyTo"); vetor1.CopyTo(vetor3,0); foreach (int n in vetor3){ Console.WriteLine(n); } Console.WriteLine("------------------------------------------"); //public long GetLongLength(dimensão); Console.WriteLine("GetLongLength"); long qtdeElementosVetor = vetor1.GetLongLength(0); Console.WriteLine("Quantidade de elementos {0}",qtdeElementosVetor); Console.WriteLine("------------------------------------------"); //public int GetLowerBound(dimensão); Console.WriteLine("GetLowerBound"); int MenorIndiceVetor = vetor1.GetLowerBound(0); int MenorIndiceMatriz_D1 = matriz.GetLowerBound(1); Console.WriteLine("Menor indice de valor1 {0}", MenorIndiceVetor); Console.WriteLine("------------------------------------------"); //public int GetUpperBound(dimensão); Console.WriteLine("GetUpperBound"); int MaiorIndiceVetor = vetor1.GetUpperBound(0); int MaiorIndiceMatriz_D1 = matriz.GetUpperBound(1); Console.WriteLine("Maior indice de valor1 {0}", MaiorIndiceVetor); Console.WriteLine("------------------------------------------"); //public object GetValue(long indice); Console.WriteLine("GetValue"); int valor0 = Convert.ToInt32(vetor1.GetValue(3)); int valor1 = Convert.ToInt32(matriz.GetValue(1, 3)); Console.WriteLine("Valor da posição 3 do vetor1: {0}",valor0); Console.WriteLine("------------------------------------------");
//public static int IndexOf(array, valor); Console.WriteLine("IndexOf"); int indice1 = Array.IndexOf(vetor1,3); Console.WriteLine("Indice do primeiro valor 3: {0}", indice1); Console.WriteLine("------------------------------------------"); //public static int LastIndexOf(array, valor); Console.WriteLine("LastIndexOf"); int indice2 = Array.LastIndexOf(vetor1,3); Console.WriteLine("Indice do primeiro valor 33: {0}", indice2); Console.WriteLine("------------------------------------------"); //public static void Reverse(array); Array.Reverse(vetor1); foreach(int n in vetor1){ Console.WriteLine(n); } //public void SetValue(object valor, long pos); vetor2.SetValue(99,0); for (int i = 0; i < vetor2.Length; i++){ vetor2.SetValue(0,i); } Console.WriteLine("Vetor 2"); foreach(int n in vetor2){ Console.WriteLine(n); } //public static void Sort(array); Array.Sort(vetor1); Array.Sort(vetor2); Array.Sort(vetor3); Console.WriteLine("Vetor1"); foreach(int n in vetor1){ Console.WriteLine(n); } Console.WriteLine(" Vetor2"); foreach(int n in vetor1){ Console.WriteLine(n); } Console.WriteLine(" Vetor3"); foreach(int n in vetor1){ Console.WriteLine(n); } } }
(Resolvi fazer esse resumo para o pessoal que está começando, porque vi que muitas pessoas estavam com dúvidas nos comentários; e sei que ver um código já digitado atrapalha um pouco no entendimento. Mas não estou desmerecendo o trabalho do professor Bruno, que admiro demais) :)
02:41 - Binary Search
O Binary Search (Busca Binária) é um algoritmo de busca que vai dividindo uma array sempre pela metade, até encontrar o valor desejado. É como se pegássemos uma lista telefônica e a rasgássemos no meio. Desse jeito, não teríamos de procurar por um nome em toda lista, mas, sim, apenas em sua metade.
O que acontece nesse método, é que ele faz isso de maneira automática para nós.
Você diz em que array (vetor) quer encontrar um valor, e depois qual o valor que quer encontrar.
Se o código retornar um número menor do que 0, significa que o valor procurado não foi encontrado em nenhuma posição. Se for, retornará o seu índice (sua posição na array).
03:57 - Copy
O método Copy nos permite copiar os dados de uma array para outra.
Para isso, dizemos qual a array que queremos copiar; para qual array queremos passar os valores copiados; e quantos elementos que queremos copiar (usando o seu Length).
05:00 - CopyTo
O método CopyTo é parecido com o Copy, ou seja, também nos permite copiar as informações de uma array para a outra.
Para usá-lo, temos da chamá-lo a partir da array que queremos copiar; dizer para qual array queremos passar os valores copiados; e a partir de qual posicao da array que queremos copiar).
05:42 - GetLowerBound
(Não entendi muito bem em que cenário o usaríamos) O método GetLowerBound nos diz qual é o menor índice de nossa array.
Pelo o que entendi, sempre retornará 0, porque não podemos ter uma array com menos elementos do que 0.
07:09 - GetUpperBound
Pelo o que entendi, o método GetUpperBound é tipo o .Length. O que significa que ele nos diz até que índice vai nossa array (se tivermos 5 elementos, vai até a 4 - porque começamos a contar a partir do 0).
07:55 - GetValue
O método GetValue nos diz qual é o valor presente na posição que indicamos.
Por exemplo: se temos uma array do tipo string com os valores: "banana", "morango", "maça". Ao pedir o valor da posição 1, receberíamos a string "morango".
09:01 - IndexOf
O método IndexOf nos diz em qual posição da array está o valor que procuramos (mas sempre pegando sua primeira aparição).
Por exemplo: se temos uma array do tipo string com os valores: "banana", "morango", "banana". Ao pedirmos o índice do valor "banana", receberíamos a valor 0 (que é a sua primeira aparição na array).
09:41 - LastIndexOf
O método LastIndexOf é idêntico ao IndexOf. Porém, ao invés de nos dizer onde está a primeira aparição do valor, nos diz onde está sua última.
Por exemplo: se temos uma array do tipo string com os valores: "banana", "morango", "banana". Ao pedirmos o índice do valor "banana", receberíamos a valor 2 (que é a sua última aparição na array).
10:20 - Reverse
O método Reverse nos permite colocar os valores de uma array na ordem contrário.
Por exemplo: se temos uma array do tipo int com os valores: 3, 5, 1, 7. Ao usarmos o Reverse, teríamos uma array com os valores: 7, 1, 5, 3 (que são os mesmos que o anterior, mas ao contrário).
10:48 - SetValue
O método SetValue nos permite acessar uma posição específica da array e lhe dar um novo valor.
É como se fosse o: nomeDaArray[posicaoDesejada] = novoValor.
Para usá-lo, temos de dizer a posição que queremos acessar, e seu novo valor.
11:46 - Sort
O método Sort nos permite organizar em ordem crescente os valores de uma array.
Por exemplo: se temos uma array do tipo int com os valores: 3, 5, 1, 7. Ao usarmos o Sort, teríamos uma array com os valores: 1, 3, 5, 7 (que são os mesmos que o anterior, mas na ordem correta).
Muito obrigado ao professor Bruno por todas suas aulas e carinho, e a você por ter lido até aqui :)
vlww pelo resumo mn, ajudou pra caramba
Valeu pelo resumo... ajudou mto mesmo!
mto obg pelo seu comentario, ajudou mtooooooo
toopp
a diferença do GetLongLength pro GetUpperBound é q o 1º diz a quantidade índices (5) e o 2º diz qual é o último índice (4), mas muda pouca coisa msm
Mesmo código do vídeo para quem quiser copiar e tiver com preguiça de digitar kkkk:
int[] vetor1=new int [5];
int[] vetor2=new int [5];
int[] vetor3=new int [5];
int[,] matriz=new int [2,5]{{11,22,00,44,55},{66,77,88,99,00}};
Random random = new Random();
for(int i=0; i
Valeu, brother
salvou
rsrs que estouro.. vlw
nao adianta copiar, voce deve fazer o seu, senao nao vai adiantar nada !, voce nao aprende !
@@tijolinhostt1529 Em partes eu concordo com você, mas nesse caso não tem nenhum problema, esses códigos são apenas métodos para arrays, então não tem problema copiar e colar, não é como se fosse algo difícil de entender ou algum exercício.
O aprendizado vem com a prática, mas a teoria também é necessária. O código dessa aula é apenas teoria, o professor deu alguns exemplos de uso desses métodos, para explicar como cada um funciona, sendo assim não há problema em copiar e colar.
Seguinte, você que tá começando agora e tá quebrando a cabeça nessa linha de código. Bom... É fácil de entender, é pura lógica, quanto mais você quebra a cabeça nesse código e se esforça, mais duro vai ser kkkk.. Eu mesmo, passei a manhã inteira tendo problema com ele, e só consegui absorver no outro dia. Mas vai chegar um ponto que o seu cérebro vai dizer "TÁ" e você vai conseguir. Ótima didática professor, vamos está aqui apredendo até em 2030/2052.
A aula foi boa, faz muitíssimo bem nós também pesquisamos.
//uma observação, estou adorando os conteúdos e replico para estudar a fundo, observei que para o método BinarySearch funcionar corretamente é preciso antes ordenar o vetor em ordem crescente, percebi isso pois vi que mesmo contendo o item indicado algumas vezes retornava um valor negativo indicando no ter localizado... estudando o método BinarySearch vi que é um algorítimo de pesquisa!
-----------------------------------------------
eu escreve em Fortran algo similar, e essa pesquisa se dava assim: se verifica se o item está no inicio ou fim do bloco, dai se divide o bloco pela metade e se faz a verificação do elemento se ele esta no inicio ou final do bloco, exemplo; bloco principal =( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,15, 16)
pesquisar 7 =0){
Console.WriteLine("valor {0} está no indice {1} posição {2}",procurado,pos,pos+1);
}else {
Console.WriteLine("valor {0} {1} nao encontrado",procurado,pos);
}
Dica para quem quer entender melhor a aula e achou confusa, eu fiz o seguinte.
Assisti o vídeo todo primeiro.
Digitei o código inteiro, linha por linha. Cada parte do código eu lia e tentava entender como ele funciona e só depois digitava o próximo, a prática digitando msm sendo copiado ajuda a aprender.
Caso alguma parte eu tinha dúvida, voltava e assistia aquela parte de novo da explicação do vídeo.
isso mesmo, estudar é assim que se faz......
To fazendo isso tbm. kkk
Eu entendi tudo. São apenas metodos de Arrays, só saber como funciona os vetores e arrays, esses Metodos é apenas pra ajudar a organizar
Esta aula, na minha opinião, serve para os alunos poderem começar a aprender a investigar os métodos que cada classe possui. Não é suposto existir um curso em que se explique os milhares de métodos existentes na linguagem. Agradeço por esta tentativa mal entendida de muitos dos visualizadores deste vídeo.
Fiquei com uma dúvida: os métodos IndexOf e LastIndexOf permitem obter o índice composto de um valor de uma matriz?
Boa tarde essa aula caiu como uma luva para mim pois estou iniciando os estudos e estava a mais de 2 dias empacado em exercicios de array como por exemplo a união de elementos de duas matrizes de mesma dimensao, resultando em uma outra matriz de dimensão maior pois obviamente é a uniao das duas anteriores.
Valeu !!!
Muito obrigado professor por este trabalho de primeira;
essa aula foi pesada
O BinarySearch método requer que a matriz seja classificada em ordem crescente.
valeu cara eu estava em duvida no meu codigo ja que eu coloquei numeros fora de ordem, dai um numero que tinha no meu array , usando o metodo BinarySearch ele me retornava -1.
Parabéns fessor pela pontualidade e qualidade desse curso .
Parabens professor excelente aula , muito obrigado!!
Estou acompanhando seus vídeos e a dinâmica e muito boa pra quem tem vontade de aprender e tem dificuldades em gravar na mente o passo-a-passo da programação... o fato de você ter publicado este vídeo ampliado pela falta da "webcam", pra mim que acompanho pelo celular... o tamanho ficou excelente!
Parabéns pelas aulas...
Nem parece a sequencia da ultima aula meu pai, estava otimo agora confundiu tudooo
Verdade
Show de bola.
O senhor esqueceu do método GetLongLength. Ele foi pulado.
Sim
👍👍👍
Concordo com alguns comentários em relação a outras funções que não foram abordadas anteriormente, por isso parece que causou a princípio, uma confusão, mas analisando o contexto, vejo que na verdade, o foco foi as funções Foreach e For juntamente com o conceito de se mostar uma estrutura um pouco mais complexa para evidênciar as possibilidades de tais comandos. Uma vez que seria necessário mesmo usar outros métodos para isto. Caso contrário, ficaria um tanto pobre e muito cru o projeto desenvolvido. Mas os demais comandos também foram explicados, então, vamos aproveitar e mescla-los com outras aulas para enriquecimento do aprendizado.
Nossa o metodo sort no C# funciona melhor que no java script
Com a classe Random podemos fazer um programa para calcular os números da Mega-sena por exemplo.
kakaka eu fiz uma espécie de indice de métodos e joguei tudo lá na ordem fui fazendo de acordo com o vídeo, até que foi tranquilo não posso reclamar.
O ritmo das aulas estava ótimo, estava pegando tudo.. De repente nessa aula aparece programação toda digitada(oque não faz nos outros vídeos) e com um batalhão de informações e funções que ainda não foram abordadas e explicadas, que é novidade para leigos.. É nessa aula que aqueles que tinham esperança que C# não era essa complicação toda mudam de ideia. Estou agradecido de todo conteúdo até aqui e da sua boa vontade em disponibilizar os ricos aprendizados de forma gratuita para todos porém neste momento vou dar continuidade aos estudos em outras fontes para depois retornar a esta aula.
arrego
Ele apenas ta mostrando Metodos que existem das Arrays. Quase tudo q ele mostrou neste video é comando repetido, só muda o que faz, tipo Um inverte a ordem dos numeros que tá no vetor, outro copia o vetor passa pra outra etc...
Muito obg pelo vídeo ❤️
aonde esta a aula de metodos para arrays, part 2? A paz do senhor.
tem como disponibilzar o arquivo com elas escritas? perfeito o curs
vc mostrou Copy (origem, destino, qtde) e CopyTo(destino, a partir da posição), mas e se eu quiser um método pra copiar uma quantidade específica a partir de uma posição específica?????
Muito legal, pode parecer muito assustador ver todos esses códigos, mas após refazer eles vc percebe que quase todos métodos são somente uma linha, resto tu já sabe só não nota pq são muitas linhas kkkk.
A classe Array para mim não reconhece esses metodos utilizados na vídeo aula, qual a versão do C# está sendo usada na aula ?
visto
//Métodos para Arrays
using System;
class Aula23
{
static void Main()
{
int[] vetor1 = new int[5];
int[] vetor2 = new int[5];
int[] vetor3 = new int[5];
int[,] matriz = new int[2, 5] { { 11, 22, 00, 44, 55 }, { 66, 77, 88, 99, 00 } };
Random random = new Random();
for (int i = 0; i < vetor1.Length; i++)
{
vetor1[i] = random.Next(10);
}
Console.WriteLine("Elementos do vetor1");
foreach (int n in vetor1)
{
Console.WriteLine(n);
}
Console.WriteLine();
//public static int BynarySearch(array, valor); retorno -1 (negativo) indica que o elemento não foi encontrado
Console.WriteLine("BinarySearch");
int procurado = 3;
int posicao = Array.BinarySearch(vetor1, procurado);
Console.WriteLine("Valor {0} está na posição {1}", procurado, posicao);
Console.WriteLine("");
//pubic static void Copy(AR_origem, Ar_destino, qtde_elementos);
Console.WriteLine("Copy");
Array.Copy(vetor1, vetor2, vetor1.Length);
foreach (int n in vetor2)
{
Console.WriteLine(n);
}
Console.WriteLine();
//public void CopyTo(Ar_destino, a_partir_desta_posicao);
Console.WriteLine("CopyTo");
vetor1.CopyTo(vetor3, 0);
foreach (int n in vetor3)
{
Console.WriteLine(n);
}
Console.WriteLine();
//public long GetLongLenght(dimensão);
Console.WriteLine("GetLongLenght");
long qtdeElementosVetor = vetor1.GetLength(0);
Console.WriteLine("Quantidade de elementos {0}", qtdeElementosVetor);
Console.WriteLine();
//public long GetLowerBound(dimensão);
Console.WriteLine("GetLowerBound");
int MenorIndiceVetor = vetor1.GetLowerBound(0);
int MenorIndiceMatriz_D0 = matriz.GetLowerBound(0);
int MenorIndiceMatriz_D1 = matriz.GetLowerBound(1);
Console.WriteLine("Menor índice do vetor1: {0}", MenorIndiceVetor);
Console.WriteLine("Menor índice da matriz na dimensão 0: {0}", MenorIndiceMatriz_D0);
Console.WriteLine("Menor índice da matriz na dimensão 1: {0}", MenorIndiceMatriz_D1);
Console.WriteLine();
//public long GetUpperBound(dimensão);
Console.WriteLine("GetUpperBound");
int MaiorIndiceVetor = vetor1.GetUpperBound(0);
int MaiorIndiceMatriz_D0 = matriz.GetUpperBound(0);
int MaiorIndiceMatriz_D1 = matriz.GetUpperBound(1);
Console.WriteLine("Maior índice do vetor1: {0}", MaiorIndiceVetor);
Console.WriteLine("Maior índice da matriz na dimensão 0: {0}", MaiorIndiceMatriz_D0);
Console.WriteLine("Maior índice da matriz na dimensão 1: {0}", MaiorIndiceMatriz_D1);
Console.WriteLine();
//public object GetValue(long índice);
Console.WriteLine("GetValue");
int valor0 = Convert.ToInt32(vetor1.GetValue(3));
int valor1 = Convert.ToInt32(matriz.GetValue(1, 3));
Console.WriteLine("Valor da posição 3 do vetor1: {0}", valor0);
Console.WriteLine("Valor da posição (1,3) da matriz: {0}", valor1);
Console.WriteLine();
//public static int IndexOf(array, valor);
Console.WriteLine("IndexOf");
int indice1 = Array.IndexOf(vetor1, 3);
Console.WriteLine("Indice do primeiro valor 3: {0}", indice1);
Console.WriteLine();
//public static int LastIndexOf(array, valor);
Console.WriteLine("LastIndexOf");
int indice2 = Array.LastIndexOf(vetor1, 3);
Console.WriteLine("Indice do último valor 3: {0}", indice2);
Console.WriteLine();
//public static void Reverse(array);
Console.WriteLine("Reverse Array");
Array.Reverse(vetor1);
foreach (int n in vetor1)
{
Console.WriteLine(n);
}
Console.WriteLine();
//public void SetValue(object valor, long pos);
Console.WriteLine("SetValue");
vetor2.SetValue(99, 0);
for (int i = 0; i < vetor2.Length; i++)
{
vetor2.SetValue(0, i);
}
Console.WriteLine("Vetor 2: ");
foreach (int n in vetor2)
{
Console.WriteLine(n);
}
Console.WriteLine();
//public static void Sort(array);
Array.Sort(vetor1); //Ordenar em ordem crescente
Array.Sort(vetor2);
Array.Sort(vetor3);
Console.WriteLine("Vetor1:");
foreach (int n in vetor1)
{
Console.WriteLine(n);
}
Console.WriteLine("
Vetor2:");
foreach (int n in vetor2)
{
Console.WriteLine(n);
}
Console.WriteLine("
Vetor3:");
foreach (int n in vetor3)
{
Console.WriteLine(n);
}
}
}
As aulas vinham num ritmo até aqui, e de repente acelerou 1000%, acho que isso explica alguns dislikes, rs...
Vai estudar
eita não consigo aplicar a lógica de if no BinarySearch para exibir uma mensage de item não encontrado. o índice só funciona corretamente quando o programa é compilado
Como que faz uma aula instanciando um objeto antes de explicar classe?
Ficou meio atropelado mesmo :(
Essa aula foi confusa demais, nao me leve a mal, mas quando se explica um pouco de tudo, o aluno nao aprende nada, mas enfim, vou da um tempo no curso e pesquisar mais sobre essa aula em outros videos, depois eu volto.
estudar é pesquisar e analisar, ler, escrever, re-escrever, testar, pensar...
Pesquisa em Google ...
Pesquisa em Google: getUpperBound, toInt32, getLongLength, ...
concordo totalmente, ele tentou resumir tudo mas não tem como, vai demorar até entender todos eles separadamente
Concordo, muito bom mas essa aula foi um resumo, poderia ter aprofundado cada função como uma aula
E se eu quiser embaralhar esses array, em Java tem o Shuffle, em C# qual seria ?
tabom mas, oq são classes?
acho q um vídeo curto pra cada um seria melhor, pode parecer uma bobeira, mas quando junta confunde muito, vou gastar horas pra entender todos eles
using System;
namespace Aula23
{
class Program
{
static void Main()
{
int[] vetor1=new int[5];
int[] vetor2=new int[5];
int[] vetor3=new int[5];
int[,] matriz=new int[2,5] {{11,22,00,44,55},{66,77,88,99,00}};
Random random=new Random();
for(int i=0; i
VC É UM DEUSSSS!!!!
Nem todo herói usa capa
Boa tarde professor, estou acompanhando e escrevendo junto, porém esta vídeo aula não se encontra no github
Qual o git dele?
Só alertar o professor Bruno, não contém no github o código das aulas C#, como foi afirmado, e já vi que existe grande conteúdo disponível de outras linguagens que vc ensina, talvez, não tenha percebido que os códigos não estão lá.
qual o git dele?
O menor índice de uma array não será sempre 0?
pior ne
pois é, por enquanto ainda não entendi de fato a utilidade desse método GetLowerBound
isso mesmo mestre! na verdade, acredito que ele confundiu. O método GetLongLenght, retorna o tamanho do vetor (no caso 5), o método GetLowerBound, retorna o menor índice de um vetor (no caso 0), e o método GetUpperBound retorna o maior índice de um vetor (no caso 4)
Muito melhor sem WebCam ;)
Olá professor, tenho ficado um pouco confuso com o seu curso nesta parte, por isso nesta par6te decidi aprender por outras fontes. Deve explicar melhor pois esta parte é um pouco dificil. Eu gosto muito do seu trabalho e isto é apenas uma critica construtiva. Bom trabalho
Obrigado pelo feedback
estudar é feito por partes passo a passo, ora fragmente o código, digite ele e analise caso a caso. isso é estudar, é preciso olhar bem, escutar bem, ler bem, escrever e re-escrever, testar, pesquisar, se aprofundar.
dizer que não sabe como destrinchar um problema para estudar e dizer que é um critica construtiva não demonstra bom raciocínio lógico
@@bartsilva5513 que comentario b0sta
Esse vídeo tem muitos conceitos não aprofundados nas aulas anteriores... Fiquei muito confuso, tive que pesquisar pra entender melhor o que são classes, métodos e objetos.
Tem alguma dica pra eu entender isso ? Está meio complicado :/
Procure por livros e videoaulas sobre Programação Orientada a Objetos (POO)
@@sickmundus2675 Sic Mundus Creatus Est
Erit Lux
D A R K
using System;
class aula23
{
static void Main()
{
int [] vetor1 = new int[5];
int [] vetor2 = new int[5];
int [] vetor3 = new int[5];
int [,] matriz = new int[2,5]{{11,22,00,44,55},{66,77,88,99,00}};
Random random = new Random();
for (int i = 0; i < vetor1.Length; i++){
vetor1[i] = random.Next(50);
}
Console.WriteLine("Elementos do vetor1.");
foreach (int n in vetor1){
Console.WriteLine(n);
}
//public static int BinarySearch(array,valor);
Console.WriteLine("BinarySearch");
int procurado = 33;
int pos = Array.BinarySearch(vetor1,procurado);
Console.WriteLine("Valor {0} está na posição {1}",procurado, pos);
Console.WriteLine("------------------------------------------");
//public static void Copy(Ar_origem, Ar_destino, qtde_elementos);
Console.WriteLine("Copy");
Array.Copy(vetor1, vetor2, vetor1.Length);
foreach (int n in vetor2){
Console.WriteLine(n);
}
Console.WriteLine("------------------------------------------");
//public void CopyTo(Ar_destino, a_partir_desta_pos);
Console.WriteLine("CopyTo");
vetor1.CopyTo(vetor3,0);
foreach (int n in vetor3){
Console.WriteLine(n);
}
Console.WriteLine("------------------------------------------");
//public long GetLongLength(dimensão);
Console.WriteLine("GetLongLength");
long qtdeElementosVetor = vetor1.GetLongLength(0);
Console.WriteLine("Quantidade de elementos {0}",qtdeElementosVetor);
Console.WriteLine("------------------------------------------");
//public int GetLowerBound(dimensão);
Console.WriteLine("GetLowerBound");
int MenorIndiceVetor = vetor1.GetLowerBound(0);
int MenorIndiceMatriz_D1 = matriz.GetLowerBound(1);
Console.WriteLine("Menor indice de valor1 {0}", MenorIndiceVetor);
Console.WriteLine("------------------------------------------");
//public int GetUpperBound(dimensão);
Console.WriteLine("GetUpperBound");
int MaiorIndiceVetor = vetor1.GetUpperBound(0);
int MaiorIndiceMatriz_D1 = matriz.GetUpperBound(1);
Console.WriteLine("Maior indice de valor1 {0}", MaiorIndiceVetor);
Console.WriteLine("------------------------------------------");
//public object GetValue(long indice);
Console.WriteLine("GetValue");
int valor0 = Convert.ToInt32(vetor1.GetValue(3));
int valor1 = Convert.ToInt32(matriz.GetValue(1, 3));
Console.WriteLine("Valor da posição 3 do vetor1: {0}",valor0);
Console.WriteLine("------------------------------------------");
//public static int IndexOf(array, valor);
Console.WriteLine("IndexOf");
int indice1 = Array.IndexOf(vetor1,3);
Console.WriteLine("Indice do primeiro valor 3: {0}", indice1);
Console.WriteLine("------------------------------------------");
//public static int LastIndexOf(array, valor);
Console.WriteLine("LastIndexOf");
int indice2 = Array.LastIndexOf(vetor1,3);
Console.WriteLine("Indice do primeiro valor 33: {0}", indice2);
Console.WriteLine("------------------------------------------");
//public static void Reverse(array);
Array.Reverse(vetor1);
foreach(int n in vetor1){
Console.WriteLine(n);
}
//public void SetValue(object valor, long pos);
vetor2.SetValue(99,0);
for (int i = 0; i < vetor2.Length; i++){
vetor2.SetValue(0,i);
}
Console.WriteLine("Vetor 2");
foreach(int n in vetor2){
Console.WriteLine(n);
}
//public static void Sort(array);
Array.Sort(vetor1);
Array.Sort(vetor2);
Array.Sort(vetor3);
Console.WriteLine("Vetor1");
foreach(int n in vetor1){
Console.WriteLine(n);
}
Console.WriteLine("
Vetor2");
foreach(int n in vetor1){
Console.WriteLine(n);
}
Console.WriteLine("
Vetor3");
foreach(int n in vetor1){
Console.WriteLine(n);
}
}
}
Cara alguém que já copiou tudo podia postar aqui
o BinarySearch não funciona muito bem
Pra funcionar, os elementos do vetor têm que estar em ordem crescente. Use o método Array.Sort(nome do seu vetor);
Muito confusa essa aula... :/
Ficou muito confuso esse Video
OBRIGADO pelo curso, mas essa foi a pior aula, você falou sobre várias coisas que nunca havia comentado. Mas é de graça né nem da pra reclamar.
essa aula e cansativa de ver
muito...
mano eu to com muita dificuldade de entender conceitos e métodos, classes, etc. Tem alguma dica ?
de mais kkkk