Programar em C - Funções que Recebem Vetores como Argumento - Aula 36

Поделиться
HTML-код
  • Опубликовано: 6 ноя 2024
  • Quando uma função tem um vetor como parâmetro as coisas podem mudar um pouco. Nessa aula você verá funções que recebem vetores como argumento.
    Se você estiver aprendendo com as vídeo aulas não deixe de curtir e favoritar o vídeo. Isso ajuda muito o canal a crescer! Valeu!!!
    =========POSTE SUAS DÚVIDAS NO FÓRUM:========
    goo.gl/bVuG6
    ===========CONECTE-SE COM O CANAL===========
    FACEBOOK - DeAlunoParaAluno
    Blog - dealunoparaalun...
    TWITTER - AlunoParaAluno
    GOOGLE + - goo.gl/rUJzN
    =============================================
    ==============NOSSOS PARCEIROS==============
    BLOG DE CÓDIGO:
    Site - blogdecodigo.wo...
    Facebook - BlogDeCodigo
    BRASIL PENTEST
    Site - brasilpentest.com/
    Facebook - BrasilPentest
    =============================================

Комментарии • 92

  • @alvaroamitailivramentosant6801
    @alvaroamitailivramentosant6801 3 года назад +18

    Já estamos em 2021 e suas aulas quebraram um galho grande aqui com minhas atividades da faculdade! Muito obg cara! O seu trabalho atravessou quase uma década! Kkkkkkkkkkkkkkk

    • @matheusplazaCC
      @matheusplazaCC Год назад

      uma decada já , ta me salvando na mesma em 2023 kkkkk

    • @miguelramos7323
      @miguelramos7323 7 месяцев назад

      @@matheusplazaCC mais então 2024 kkkkkkkkkkkkkkkk

  • @albertofelipemonteirosena4031
    @albertofelipemonteirosena4031 2 года назад +2

    meu deus eu simplesmente nao sei como agradecer a esse cara. eu não conseguia entender muito bem essa tecnica de flag de jeito algum, mas vc clareou minha cabeça de uma forma que pqp. sei que é simples mas programação é isso: as vezes vc se perde em topicos simples. obrigado cara!

  • @Savio_Santos
    @Savio_Santos Год назад +1

    Uma década depois e seus vídeos ainda são os melhores

  • @SDC202215
    @SDC202215 10 лет назад +7

    nossa cara parabéns suas aulas tem me aberto a mento para o melhor entendimento tanto aqui na web aula quando na facul, ainda mais porque tenho uma parte em trabalho onde preciso criar uma função valeu mesmo cara ta de parabens

  • @DeAlunoParaAluno
    @DeAlunoParaAluno  12 лет назад +6

    Meu prazer em ter ajudado :D
    Caso precisa ver mais sobre comportamento de vetores e funções de uma checada nas listas de reprodução na página do canal ;)

  • @HOUPI_Games
    @HOUPI_Games 2 года назад

    Aula incrível!! estou aprendendo muito sobre a linguagem C com as suas aulas prof. Muito obrigado por compartilhar um conteúdo tão rico e acessível para todos!

  • @joaovitordemelo8209
    @joaovitordemelo8209 6 лет назад +1

    Muito bom! Eu estava tendo um pouco de confusão na hora de passar vetores como parâmetros no C, mas essa aula me ajudou muito!

  • @CleytonGoulartCorrea
    @CleytonGoulartCorrea 11 лет назад

    Gostei muito, esses vídeos ajuda muita gente a aprender a desenvolver programas de maneira simples, eficiente e objetiva. Parabéns.

  •  Год назад

    Só tem uma observação importante: Nesse contesto, vetores são os elementos do array (assumindo que os itens da lista estão arranjados em linha). Portanto, passar a variável de nome vetor como argumento significa que você está passando um array. Contudo, se fosse passado como argumento o elemento vetor[i], necessariamente seria um vetor a ser passado como argumento. Um grande exemplo de se passar um vetor genérico como argumento para uma função escrita em linguagem C seria passar um apontador.

  • @DiegoVilella
    @DiegoVilella 9 лет назад

    +RICARDO NEIVA realmente eu também aprendi a colocar o cabeçalho antes do main... Acho o correto o cabeçalho antes do Main.

  • @rhuandevops
    @rhuandevops 6 лет назад

    Parabéns pelas aulas! Creio que assim com eu, esteja ajudando muita gente!

  • @DeAlunoParaAluno
    @DeAlunoParaAluno  11 лет назад

    Valeu Lidiane!

  • @DeAlunoParaAluno
    @DeAlunoParaAluno  11 лет назад

    exatamente ;) acho que 1 ou 2 aulas a frente vou flar sobre isso

  • @DeAlunoParaAluno
    @DeAlunoParaAluno  11 лет назад

    eu vi..cara.. realmente sei código está 100%
    o pior de tudo é que executei o seu código no Xcode e no Code Blocks e funcionou perfeitamente :/

  • @lidianemonteiro277
    @lidianemonteiro277 11 лет назад

    Excelente aula! Li vários tutoriais e vídeos! este é um dos melhores! ^^
    Além do que, quanto mais a gente pesquisa e estuda, mais fácil o conteúdo vai absorvendo na nossa mente com o tempo! parabéns pelo canal, tem me ajudado bastante a entender a lógica a ser utilizada :D

  • @robertooliveira6182
    @robertooliveira6182 8 лет назад +5

    cara... vc no excel explicou o método da bolha e no código fez o método de seleção

  • @RumoANovaJerusalemOficial
    @RumoANovaJerusalemOficial 11 лет назад

    Beleza! Já postei lá no forum o meu codigo, o topico tá com o titulo de: Problema com codigo da aula 36 - Linguagem C

  • @luizeduardosilvaresende1108
    @luizeduardosilvaresende1108 6 лет назад

    Cara, muito obrigado pela ajuda. Seus vídeos são muito bons!! Tem a minha inscrição e os meus likes!!

  • @LegiaoGamerBR
    @LegiaoGamerBR 11 лет назад

    cara no segundo for esta "j

  • @DeAlunoParaAluno
    @DeAlunoParaAluno  11 лет назад

    hmm.... estranho.. tem como você postar seu código pra eu dar uma olhada.. é bem provável que tenha algo diferente haha :D
    tente postar o código aqui no RUclips.. se não der certo poste no fórum(link na descrição)

  • @gmartins-dev
    @gmartins-dev 11 лет назад +1

    aux = vetor[i];
    vetor[i] = vetor[j];
    vetor[j] = aux;
    nessa parte uma analogia interessante seria usando copos, no caso a "temporaria" (que eu chamei de aux) seria um copo vazio.

  • @linuxbashgnu6018
    @linuxbashgnu6018 8 месяцев назад

    Ola. Professor. Tem material desse curso disponível?

  • @adrianorodrigues6902
    @adrianorodrigues6902 3 года назад

    Maravilhoso

  • @thawandsonpereira6571
    @thawandsonpereira6571 9 лет назад

    Parabéns cara, excelente aula

  • @SQJOGAR
    @SQJOGAR 4 года назад

    muito bom

  • @DeAlunoParaAluno
    @DeAlunoParaAluno  11 лет назад

    aew! Parabéns cara!

  • @hagamenonmachado7324
    @hagamenonmachado7324 8 лет назад +1

    Mano gostei muito, a sua didática é excelente!!!!

  • @dasilva7744
    @dasilva7744 10 лет назад

    Parabéns pelas explicações, muito bom!! :)

  • @felipegrossi8975
    @felipegrossi8975 11 лет назад

    PAASSEI GROSSI! E PASSEI BEM AINDA! TU É O CARA!

  • @ArchieMakarov
    @ArchieMakarov 3 года назад

    boa professor

  • @lullaby743
    @lullaby743 8 лет назад +2

    Dúvida: existem duas funções neste exercício: main e ordemCrescente. A função ordemCrescente é chamada levando como um dos parâmetros o VETOR[10] = {6, 4, 1, 9, 8, 0, 5, 7, 3, 2}. Este vetor está DEFINIDO em MAIN. Como, após chamar ordemCrescente e reorganizar/alterar os valores dentro desta função, posso, dentro de MAIN, imprimir estes valores no laço for, sendo que VETOR[10] = {6, 4, 1, 9, 8, 0, 5, 7, 3, 2} não é estático? Essa estrutura (VETOR) já é estática por definição? Está implícito?

  • @will_l1p3
    @will_l1p3 6 лет назад

    só coloquei um *#define** TAM* a mais...para nao precisar criar o *int n* e facilitar nas operações

  • @DeAlunoParaAluno
    @DeAlunoParaAluno  11 лет назад

    Eu recebi algumas mensagens lá na página do Facebook pedindo pra usar Windows... Eu prefiro utilizar o Mac mas mudei apenas porque pediram pra mudar :/

  • @adrianargonyt1259
    @adrianargonyt1259 2 года назад

    E caso eu tenha uma função e queira retornar o vetor para a função principal? Como faço?

  • @Ratatabum
    @Ratatabum 10 лет назад +1

    Deu certo! :)

  • @gmartins-dev
    @gmartins-dev 11 лет назад

    Ei minha professora sempre pede pra gente gerar "randomicamente" os vetores usando a função, e outra pra mostrar o vetor, sao elas:
    void GerarVetor(int Vet[], int Tam, int Div){
    int i;
    srand(time(NULL));//gerar a semente para a função rand() 0 a 32768
    for(i=0;i

  • @wagnerfernandesmorei
    @wagnerfernandesmorei 11 лет назад

    ìtalo eu aprendi na facul ao invés de declarar a função e depois chama-lá,chamo a função normal ai protótipo ela,ou seja declara todas as funções antes da função main.

    • @jailsonathayde74
      @jailsonathayde74 4 года назад

      Também faço assim, nunca lanço os protótipos dentro de outra função.

  • @marcelosilva312
    @marcelosilva312 9 лет назад +7

    Como o vetor ordenado pela função conseguiu aparecer no main?

    • @MayconEislay
      @MayconEislay 9 лет назад

      +Marcelo Silva é pq o vetor vai por referencia

    • @felipecalatza6215
      @felipecalatza6215 Год назад

      a funçao foi chamada pelo main, ordenou o vetor, a main mostrou o vetor

  • @LauEeu
    @LauEeu 11 лет назад

    Me desculpa pela dúvida irrelevante, mas por que você parou de usar o mac ?

  • @rodfeliz
    @rodfeliz 11 лет назад

    mas porque os valores de vetores são alterados naquela função ? quando a gente envia o vetor estamos mandando o endereço de memoria do vetor ?

  • @gleysibianchi3807
    @gleysibianchi3807 3 года назад

    No meu compilador fica conflitando o i da função principal e da função ordemCrescente e ainda diz que n não tá declarado sendo que foi declarado na função principal e na própria função ainda, não entendo, talvez seja o compilador

  • @albertoalmeida503
    @albertoalmeida503 5 лет назад

    podia ter sido uma função pra ordenar palavra
    teria matado metade do meu trabalho de escola kkkkkk
    mt boa as aulas, to vendo a playlist td

  • @lidianemonteiro277
    @lidianemonteiro277 11 лет назад

    Italo, caso eu quisesse ordenar em ordem decrescente, seria necessário apenas modificar a condição do if para:
    if (vetor[i] < vetor[j]) ? eu fiz apenas essa alteração e está exibindo vetor em ordem decrescente corretamente... no entanto, estou achando estranho que no for tudo permaneça igual...

    • @HOUPI_Games
      @HOUPI_Games 2 года назад

      Sim. Esta correto dessa forma, já que ele vai fazer no sentido contrário! O for deve permanecer de mesma forma já que ele ainda vai fazer a verificação do membro a frente e então colocá-lo dessa vez na ordem decrescente.

  • @cefet-hr4hv
    @cefet-hr4hv 7 лет назад +1

    É possível retornar um vetor?

  • @RumoANovaJerusalemOficial
    @RumoANovaJerusalemOficial 11 лет назад

    o meu deu um problema esquisito, enves de aparecer os numeros em ordem crescente, como foi proposto pelo programa, o meu apareceu escrito dez vezes "&i", sem as aspas, o que deve ser isso? Eu já verifiquei o codigo, vi se tava igual ao seu, e tava, então, eu não to entendendo o que pode estar acontecendo, se puder me ajudar, eu te agradeço muito, valeu! E, até mais!

  • @joao5947
    @joao5947 9 лет назад

    Genial

  • @DeAlunoParaAluno
    @DeAlunoParaAluno  11 лет назад

    aula 38 vai responder sua pergunta ;)

  • @thiagolf4131
    @thiagolf4131 Год назад

    por que essa função nao retorna nada? não deveria retornar a variavel vetor?

  • @wendellandrade9317
    @wendellandrade9317 9 лет назад

    no segundo for acho q ta errrado, devia ser:
    for(j = i + 1; j < n+1; j++)

    • @videos12344444444
      @videos12344444444 9 лет назад +5

      Wendell Andrade Creio que não, porque o vetor vai até 9, se você coloca n+1, o for vai buscar fora do vetor.

  • @edlb10
    @edlb10 11 лет назад

    por que vc nao retorno nada na função ordem crescente?

  • @marianamirhan101
    @marianamirhan101 6 лет назад

    Alguém me tira uma dúvida? qual a diferença entra uma função int/float, pra uma função void? Sos

    • @programacaoja9679
      @programacaoja9679 6 лет назад +2

      Void=vazio. A funçao nao retorna nada. Em geral ela recebe os argumentos e os modifica sem precisar retornar. A int/float retorna valor do tipo int/float, nesse tipo de funcao ela recebe os argumentos e faz alguma coisa usando eles para "parir" um novo valor e este será retornado

  • @RumoANovaJerusalemOficial
    @RumoANovaJerusalemOficial 11 лет назад

    Bem, não deu, vou postar lá no forum mesmo

  • @xTheusGameR
    @xTheusGameR 7 лет назад

    #include
    #include
    #include
    int main(void)
    {
    //Funções
    setlocale(LC_ALL, "");
    void ordenaVetor(int vetor[]);
    //Vetor:
    int vetor[10] = {4,8,9,3,5,7,2,1,6,10};
    ordenaVetor(vetor);
    for (int i = 0; i < 10; ++i){
    printf("%i ", vetor[i]);
    }
    return 0;
    }
    //Função Ordenação de Vetores:
    void ordenaVetor(int vetor[]) {
    int suporte = 0;
    for(int i = 0; i < 10; ++i){
    for(int j = i+1; j < 10; ++j){
    if(vetor[i] > vetor[j]){
    suporte = vetor[i];
    vetor[i] = vetor[j];
    vetor[j] = suporte;
    }
    }
    }
    }

  • @reginaldoleobinojr8509
    @reginaldoleobinojr8509 4 года назад

    Essa é a técnica bubble short?

    • @HOUPI_Games
      @HOUPI_Games 2 года назад

      Sim, são bem parecidas e o conceito é o mesmo.

  • @Adestudos
    @Adestudos 6 месяцев назад

  • @jessimarques189
    @jessimarques189 7 лет назад

    Meu código ta igual, porém não ordena, não sei pq, tentei fazer sem chamar a função e nada, uso o DEV pra compilar, acho que pode ser meu programa.
    #include
    int main(){
    int vetor[10] = {6, 4, 1, 9, 8, 0, 5, 7, 3, 2};
    int i;
    void ordemCrescente(int vetor[], int n); // chamei a função
    ordemCrescente(vetor, 10); // quanto passo o vetor, posso passar apenas o nome.
    for (i = 0; i

    • @Philipe_William
      @Philipe_William 7 лет назад +1

      Você escreveu
      ```
      if (vetor[i] > vetor[i])
      ```
      E deveria ser
      ```
      if (vetor[i] > vetor[j])
      ```
      Tenta aí e dá um retorno

  • @miguelsousaviana6989
    @miguelsousaviana6989 Год назад

    Para que serve o, system("pause")

  • @brunoblackmusic
    @brunoblackmusic 11 лет назад

    Isso

  • @howtotutorials8348
    @howtotutorials8348 4 года назад

    olá!! para que criaar uma varoável temporária?

    • @jailsonathayde74
      @jailsonathayde74 4 года назад

      Economia de memoria e processamento. A variável não fica armazenada durante o programa todo, alias, o uso de variáveis globais em C aquelas que você cria lá no início, devem ser evitadas ao máximo.

    • @HOUPI_Games
      @HOUPI_Games 2 года назад

      A variável temporária nesse caso esta auxiliando na inversão dos valores, já que com apenas o vetor[i] e o vetor[j] não é possível fazer a inversão. Sendo necessário recorrer a uma nova variável para isto.

  • @ricard0neiva
    @ricard0neiva 9 лет назад +1

    maluco me confundiu cara pq eu estudo ads porem as funçoes são todas fora do main agora fiquei loko ate rasguei o exercicio e o mesmo mas ainda nao sei faze funçao

    • @brunocalhiari976
      @brunocalhiari976 8 лет назад

      +RICARDO NEIVA neste canal têm várias aulas diferentes, se você voltar na aula que fala sobre funções vai entender isso que te deixou doido.

    • @ricard0neiva
      @ricard0neiva 8 лет назад

      fmz

  • @gilmarbbomfim09
    @gilmarbbomfim09 5 лет назад

    socorro! O meu não pega e eu fiz igual ao da tela!
    #include
    int main (void){

    int vetor[10]={1,4,3,2,5,6,7,8,9};
    int i;
    void ordemCrescente(int vetor[],int n);

    ordemCrescente(vetor, 10);

    for(i=0;i

    • @jailsonathayde74
      @jailsonathayde74 4 года назад

      Tem uma chave no 2ºFOR antes do IF que não era pra estar ali..

  • @catarinagameryotuber2776
    @catarinagameryotuber2776 4 года назад

    no meu dev c++ o código system("pause") n funciona

  • @jessimarques189
    @jessimarques189 8 лет назад

    Gente eu copiei igual o código e não ta rodando:
    # include
    void ordemCrescente(int vetor[], int n){
    int i, j, temporaria;
    for (i = 0; i < n; ++i){
    for (j = i+1; j < n; ++j){
    if (vetor[i] > vetor[j]){
    temporaria = vetor[i];
    vetor[i] = vetor[j]; ]
    temporaria = vetor[i];
    }
    }
    }
    }
    int main (void){
    int vetor[10] = {2, 3, 6, 4, 5, 9, 8, 1, 0, 7};
    int i;
    ordemCrescente(vetor, 10);
    for (i=0; i

    • @marcelo152012
      @marcelo152012 7 лет назад

      nessa parte:
      temporaria = vetor[i];
      vetor[i] = vetor[j]; ]
      temporaria = vetor[i];
      vc usou temporaria 2 vezes, na terceira troca por vetor[j] = temporaria;
      q vai dar certo

    • @marcelo152012
      @marcelo152012 7 лет назад

      e na segunda linha apague o ]

    • @romilsosilva9575
      @romilsosilva9575 6 лет назад

      # include
      void ordemCrescente(int vetor[], int n){
      int i, j, temporaria;
      for (i = 0; i < n; ++i){
      for (j = i+1; j < n; ++j){
      if (vetor[i] > vetor[j]){
      temporaria = vetor[i];
      vetor[i] = vetor[j]; ]
      temporaria = vetor[i];
      }
      }
      }
      }
      int main (void){
      int vetor[10] = {2, 3, 6, 4, 5, 9, 8, 1, 0, 7};
      int i;
      ordemCrescente(vetor, 10);
      for (i=0; i vetor[j]){
      temporaria = vetor[i];
      vetor[i] = vetor[j]; ]
      temporaria = vetor[i];
      }
      }
      }
      }
      int main (void){
      int vetor[10] = {2, 3, 6, 4, 5, 9, 8, 1, 0, 7};
      int i;
      ordemCrescente(vetor, 10);
      for (i=0; i

  • @igoralexandredecastrotoled9015
    @igoralexandredecastrotoled9015 2 года назад

    volta pelo amor de Deus

  • @tiagodossantossilva
    @tiagodossantossilva 6 лет назад

    Esse simbolo [ ] não é chave e sim colchete. Isso é chave { }.

  • @lucasrafael9662
    @lucasrafael9662 10 лет назад

    alguem poderia me dizer o que deu de errado
    #include
    #include
    #include
    int main(void){
    int vetor[10] = {5, 6, 0, 2, 8, 1, 3, 9, 4, 7};
    int i;
    void ordemcrecente(int vetor[], int n);
    ordemcrecente(vetor, 10);
    for(i = 0; i < 10; ++i){
    printf("%i", vetor[i]);
    }
    getch();
    return 0;
    }
    void ordemcrecente(int vetor[], int n){
    int i, j, temporaria;
    for(i = 0; i < n; ++n){
    for(j = i + 1; j < n; ++j){
    if(vetor[i] > vetor[j]){
    temporaria = vetor[i];
    vetor[i] = vetor[j];
    vetor[j] = temporaria;
    }
    }
    }
    return 0;
    }

    • @vlogdodanilo
      @vlogdodanilo 10 лет назад +5

      Lucas tira o getch();
      e no primeiro for de ordenação vc colocou ++n
      seria ++i
      como vc deve estar usando windows antes do return 0 da função principal use o system ("pause"); e retira esse return 0; da função de ordenação
      Espero que eu tenha respondido a tempo e que tenha dado para entender
      abraço.

    • @lucasrafael9662
      @lucasrafael9662 10 лет назад

      Danilo Brito valeu

  • @natanaelsecundo5533
    @natanaelsecundo5533 5 лет назад

    Bubble Sort

  • @victorsarfag
    @victorsarfag 8 лет назад

    for(i=0;i