Тёмный
Algoritmos
Algoritmos
Algoritmos
Подписаться
Curso de Algoritmos.
Professor Paulo Augusto Nardi.
UTFPR.

Caso você tenha assistido a uma das playlists por inteiro e ainda tenha alguma dúvida sobre o conteúdo dado, peço para que, por favor, envie sua dúvida para paulonardi@utfpr.edu.br para me ajudar. Descrevendo as suas dúvidas me ajudará a melhorar a didática e poderei criar mais vídeos ou editar algum vídeo para que outras pessoas com a mesma dúvida possam ter as respostas para o que não entenderam.
Sobrescrita, modificadores final e abstract
15:12
11 месяцев назад
Herança!
15:17
Год назад
Exercícios de Encapsulamento
18:59
Год назад
Encapsulamento
30:37
Год назад
Lendo do Teclado!
7:57
Год назад
Método Construtor
13:04
Год назад
Sobrecarga
19:06
Год назад
Instalando o Java e o Netbeans
21:32
Год назад
Introdução: por que é legal?
35:47
Год назад
Gaming Retro: Telejogo
4:47
3 года назад
Gaming: Flower
16:18
3 года назад
Gaming: World of Warcraft
41:16
3 года назад
Gaming Retro: River Raid
13:35
3 года назад
Gaming: Dark Souls 3
37:53
3 года назад
Gaming: introdução
6:25
3 года назад
Комментарии
@Sa-iz5wd
@Sa-iz5wd 3 месяца назад
Adorei o vídeo, a explicação e principalmente os brinquedos fofos do Miguel lá atrás kkkk
@paulonardi7839
@paulonardi7839 Месяц назад
Valeu!!!
@Luc4s_unu
@Luc4s_unu 3 месяца назад
Eu te amo cara
@vitoriacoghi
@vitoriacoghi 3 месяца назад
Muito bom!
@ANDREANTONIODASILVAQUEIROZ
@ANDREANTONIODASILVAQUEIROZ 6 месяцев назад
Quem também está aqui por causa de algoritmos 2? haha, show professor!
@algoritmos4470
@algoritmos4470 6 месяцев назад
😁
@isaacfritsch
@isaacfritsch 6 месяцев назад
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 void valores(int i, int *p) { 5 printf("Insira um valor inteiro:"); 6 scanf("%d",p); 7 if (i > 0) { 8 for (; i >= 0; i--) { 9 if (*p > *(p - i)) { 10 int aux = *(p - i); 11 *(p - i) = *p; 12 *p = aux; 13 } 14 } 15 } 16 } 17 18 int main() { 19 int *p = (int *)malloc(10 * sizeof(int)); 20 for (int i = 0; i < 10; i++) { 21 valores(i, p+i); 22 } 23 for (int i = 0; i < 10; i++) { 24 printf("%d ", *(p + i)); 25 } 26 free(p); 27 return 0; 28 }
@algoritmos4470
@algoritmos4470 6 месяцев назад
Achei muito legal dividir o Selection Sort em duas partes e as passagens dos argumentos! Muito Legal!
@MatheusFreitas-g3q
@MatheusFreitas-g3q 6 месяцев назад
Aula excelente, didáctica incrível
@isaacfritsch
@isaacfritsch 6 месяцев назад
No exercício 1, não deveria cria os inteiros recebidos como parâmetros? por exemplo: calcularIdade(int ano, &idade) ao meu ver embora ano já tenha sido criado dentro da main, ano é outra variável no escopo da função calcularIdade, logo deveria ser declarada como um novo espaço da memória
@algoritmos4470
@algoritmos4470 6 месяцев назад
Isso mesmo!!! Ou quase. Sinal de que você está entendendo direito!!! E isso é muito legal. Quando fazemos este tipo de passagem com ponteiros, fazemos basicamente duas ações: -Passar o endereço da variável como argumento na hora de chamar a função, por exemplo: int main(){ int a; fazAlgo(&a); // <-aqui estou passando o endereço da variável como argumento } -E receber este endereço passado, lá na função chamada, com um ponteiro como parâmetro. Exemplo: void fazAlgo(int *b){ //<-Aqui o parâmetro b recebe o endereço da variável a *b = 3; } O objetivo do exercício 1 é apenas treinar o envio do endereço da variável. No exercício 2, o objetivo vai ser treinar como receber o endereço com um ponteiro.
@isaacfritsch
@isaacfritsch 6 месяцев назад
Entendo a quantidade de endereços, mas cada endereço por ser uma sequencia de 32 digitos ( 0 ou 1) totaliza um consumo de 4 bytes da memória ou 16 GB no total somente com endereços, isso é verdade?
@algoritmos4470
@algoritmos4470 6 месяцев назад
Com 32 dígitos (que é o mesmo que 4 bytes) de 0 ou 1 eu consigo representar 4.294.967.296 valores. No caso do gerenciamento de memória, estes valores são endereços de memória que o processador consegue representar/gerenciar com 32 bits. Então, quando um processador de 32 bits precisar pegar um valor na memória, ele vai conseguir acessar o valor que estiver desde o endereço 0 até o endereço 4.294.967.295 da memória (ou, em hexadecimal, do 00000000 ao FFFFFFFF). A sua observação seguinte é verdadeira: se um endereço possui 32 dígitos binários, é o mesmo que dizer que um endereço precisa de 4 bytes para ser armazenado. Já, os 16GB necessários, não. Porque o processador não vai acessar todos os endereços ao mesmo tempo. Ele só precisa acessar um endereço por vez (ou requisitar um por vez) e ler o que está la naquele endereço e nos próximos 3 (se for um valor inteiro). Na verdade, mais do que isso, porque o processador tem vários núcleos e threads, conseguindo fazer mais de uma requisicao por vez.
@tomcosta062
@tomcosta062 6 месяцев назад
👏👏👏👏
@carlosfixo5635
@carlosfixo5635 7 месяцев назад
10 vezes melhor que a aula da minha faculdade. OBG!!!!
@alanauto
@alanauto 7 месяцев назад
Vlw!!!
@lucasmelo7365
@lucasmelo7365 7 месяцев назад
Finalmente alguém para explicar direito esse algoritmo de Fibonacci com função recursiva. Na maioria das aulas que eu assisti, os professores só jogavam o código e explicavam por cima, e eu nunca entendia direito, kk. Mas dessa vez eu consegui. Muito obrigado!
@lucasmelo7365
@lucasmelo7365 8 месяцев назад
Que explicação maravilhosa! A melhor que eu vi até hoje sobre recursividade (e olha que eu pesquisei muito já sobre isso, viu, rsrs)
@davii_vinicius
@davii_vinicius 8 месяцев назад
Quando está printando na tela a função recursiva já desempilhou internamente ou só quando fecha o programa?
@davii_vinicius
@davii_vinicius 8 месяцев назад
Grande mestre, orgulhoso de você compartilhar todo esse conhecimento conosco.
@luigirovani4380
@luigirovani4380 10 месяцев назад
Professor, queria tirar uma dúvida de PO, em relação a projeto Singleton. Existe uma forma correta de se criar uma classe Singleton que seja Singleton também para processos? Por que mesmo criando a classe como Singleton, quando eu instancio ela de processos diferentes ele cria instâncias diferentes da classe, acho que pelo fato de estarem em áreas de memória diferentes. É em python, eu consigo até contornar isso instanciando a classe dentro do processo pai (antes de criar os filhos), e passando o objeto com um manager para os filhos. Mas daí acho que não dá para chamar de Singleton, porque só funciona enquanto estiverem usando o objeto do processo pai, se um dos processos filhos tentar criar uma nova instância da classe, vai acabar criando uma nova instância. Tem uma forma correta de se fazer isso?
@rigoni3381
@rigoni3381 10 месяцев назад
os exemplos são bem medianos, mas para o brasileiro que e um analfabeto em c são razovelmente nao tão ruins. o que eu nao entendo é a burrifce do brasileiro em afirmar que um codigo de programação quer dizer algoritmo, nao são de maneira alguma sinomos pelo amor de deus parem de repetir asneiras. Um dos primeiros algorimos foi criado por aristoteles com a sua fundamental forma e conteudo que obviamente voces nem sabem que existe. Explicando uma brasileiro entender. algoritimo 1 kg de farinha 2 ovos 500mg de trigo levar ao forno durante 30 minutod -> algoritimo = bolo #include <stdio.h> #include <unistd.h> #include <sys/types.h> int main() { pid_t p = fork(); if(p<0){ perror("fork fail"); exit(1); } printf("Hello world!, process_id(pid) = %d ",getpid()); return 0; } isso é uma system call um unix para um fork(se não sabe o que é azar o seu vai ler e aprender porque eu nao baba e por nao tenho tempo e nem quero ensinar voces tem que ir atras, bom o que posso dizer é que com uma chamada dessa usando um pipe com atextic.h pode produzir estragos o que não é nada bom, mais eu sem que desperta a curiosidade de pessoas de pouco conhecimento como os brasileiros que sem duvidas apenas perdem para os portugueses em desconhecimento de programação, obvio so exite um meio de saber programar e este usando unix, bsd, solaris ou alguma distro linux recomendo fedora o resto é apenas o que o merda do windows deixa voce usar entedeu? Botoes nao existem e um program é uma palavra dificil entender para voce, pois entao eu vou complicar voce so usa internet por que consegue abriar um arquivo, sim isso mesmo, agora decifrem procurem pela api sockets do bsd 4.2 lançada em 1984 disponive gratuitamente. Enfim ja perdir muito tempo aqui so quero deixar claro nada contra o canal deixei essa mensagem porque vi que seu canal chama algoritimo e dei muita risada. Enfim c-ya
@anderson-medeiros
@anderson-medeiros 10 месяцев назад
Muito bem explicado.
@maclaurinrocha2881
@maclaurinrocha2881 10 месяцев назад
Você cria os malloc no main e usa o free no main , mas é se eu usar o free em uma função qualquer? E se eu usar o free em uma função em um arquivo diferente ?
@ramonmoura5034
@ramonmoura5034 11 месяцев назад
26/10/2023 - Aula muito útil!
@ramonmoura5034
@ramonmoura5034 11 месяцев назад
Muito bom, cara....
@matateusilvestreandre6412
@matateusilvestreandre6412 11 месяцев назад
melhor aula de alocação dinâmica que já vi
@algoritmos4470
@algoritmos4470 10 месяцев назад
Obrigado pelo elogio!!!
@joaoluislopes1076
@joaoluislopes1076 11 месяцев назад
Eu sou o inscrito 839! Obrigado professor, por dispor seu tempo para o enriquecimento das linguagens de programação, como forma de apredizagem transmitindo todo o seu conhecimento a nós iniciantes neste imenso mundo tecnologia da informação. Gratidão!😊
@algoritmos4470
@algoritmos4470 11 месяцев назад
Eu que agradeço o elogio! :)
@juliamello1615
@juliamello1615 11 месяцев назад
Parabéns pela didática e detalhamento técnico do conteúdo. [Agostinho] 25:36
@algoritmos4470
@algoritmos4470 11 месяцев назад
Obrigado!😃
@lululu997
@lululu997 11 месяцев назад
Muito bom!!!
@matheusplazaCC
@matheusplazaCC 11 месяцев назад
cara, parabéns, você tem o dom de ensinar, te desejo muito sucesso nessa vida
@maclaurinrocha2881
@maclaurinrocha2881 Год назад
super top , muito top mesmo \o/
@paulop957
@paulop957 Год назад
Sua didática é muito boa professor, consegui entender muito tranquilo
@algoritmos4470
@algoritmos4470 Год назад
Opa, obrigado!: )
@nicodemos.
@nicodemos. Год назад
Boa! Gostei muito
@b1linhares
@b1linhares Год назад
Tô ansioso pra começarmos essa playlist, professor. Mas antes devemos ter alguns pré-requisitos. Até mais!
@algoritmos4470
@algoritmos4470 Год назад
😀
@joycesilva4646
@joycesilva4646 Год назад
Obrigada, professor. O assunto não entrava na minha cabeça, mas o senhor sanou todas as dívidas sobre o assunto😊
@algoritmos4470
@algoritmos4470 Год назад
Eu que agradeço o feedback!
@b1linhares
@b1linhares Год назад
Professor, estou com um grupo de estudos e usamos as suas playlists para estudarmos. Somos do IFPA em Belém. Ultimamente estamos acompanhando as aulas de recursividades. Valeu!
@algoritmos4470
@algoritmos4470 Год назад
Opa! Show de bola! Valeu!!! Abraço para o pessoal de Belém!!!😃
@KrodrigoDev
@KrodrigoDev Год назад
Gostei bastante da sua didática !! fiz algumas implementações em java package nassau; /** * * @author Kauã Rodrigo * @since 11/09/2023 */ public class Recursividade { public static void main(String[] args) { System.out.println("Contagem crescente"); contarCrescente(1, 3); System.out.println("Contagem descrente"); contarDecrescente(3); System.out.println("Contagem falando se é par ou impar"); contarCrescenteParImpar(1, 5); System.out.println("Contar de dois em dois"); contarDoisEmDois(0, 9); } // contar de dois em dois public static void contarDoisEmDois(int inicial, int limite){ if(inicial <= limite){ System.out.println(inicial); contarDoisEmDois(inicial + 2, limite); } } // contando e falando se o número da vez é impar ou par public static void contarCrescenteParImpar(int inicial, int limite){ if(inicial <= limite){ if(inicial % 2 == 0){ System.out.println(inicial + " é par"); } else { System.out.println(inicial + " é impar"); } contarCrescenteParImpar(inicial + 1, limite); } } // contar de forma decrescente public static void contarDecrescente(int valor){ if(valor >= 0){ System.out.println(valor); contarDecrescente(valor - 1); } } // contar até o limite usando recursividade (Isso é linear) public static void contarCrescente(int inicial, int limite) { if (inicial <= limite) { System.out.println(inicial); contarCrescente(inicial + 1, limite); } } }
@ramillers
@ramillers Год назад
professor, o seu canal foi um achado e tanto! tô estudando exatamente esses assuntos na faculdade e essa playlist tá me ajudando de uma forma inimaginável!!! por favor, poste maissss! (PS: já assisti quase todas as playlists de C e também são perfeitas, o senhor é 1000!)
@algoritmos4470
@algoritmos4470 Год назад
Obrigado pelo elogio!😀
@wilsoncardoso2879
@wilsoncardoso2879 Год назад
OLA....ESSE ESPAÇO DE MEMORIA FICA ALOCADO AONDE??..NÃO ENTENDI
@algoritmos4470
@algoritmos4470 Год назад
a alocação dinâmica reserva espaço na memória principal. Acontece que para cada programa executado (na verdade, cada processo), uma quantidade de endereços de memória é reservada para este processo. Estes endereços são separados em grupos. Um desses grupos é a pilha, onde vão ser alocadas as variáveis locais. Outro desses grupos é a heap. A alocação dinâmica usa endereços deste grupo. Mas é tudo parte da memória principal. Essa separação em grupos é feito pelo compilador/SO. É uma separação "lógica", e não física.
@wilsoncardoso2879
@wilsoncardoso2879 Год назад
Obrigado irmão
@antoniodourado
@antoniodourado Год назад
Grande Nardi! Que saudade de vc!
@b1linhares
@b1linhares Год назад
Hoje, de noite, assistirei aos vídeos e exercitarei. Agora estou no intervalo do meu trampo.
@b1linhares
@b1linhares Год назад
Pow, professor! Já subiu mais um!? Bacana! Realmente tô empolgado com essa play! Pois coincide com a disciplina q esou estudando no IFPA.
@b1linhares
@b1linhares Год назад
Aí sim! Hoje mesmo vou exercitar! Obrigado, professor!
@space_isaac
@space_isaac Год назад
Professor, (se possível) volta com o gaming! Recomendo Yakuza 0 ou Shenmue (Remaster do Dreamcast)
@apertaplays
@apertaplays Год назад
eu de hj em diante vou parar com tudo o q faço e ver só coisa de programação e estudar pro enem e fazer faculdade.
@b1linhares
@b1linhares Год назад
Excelente, professor! Muito obrigado! Revelador!
@algoritmos4470
@algoritmos4470 Год назад
Valeu! 😀
@b1linhares
@b1linhares Год назад
Fala, professor! Bora pra cima! Muito boa a aula! TMJ!
@franciscomenezes4308
@franciscomenezes4308 Год назад
Obrigado Professor estava com saudades de seus vídeos...
@algoritmos4470
@algoritmos4470 Год назад
Opa! Valeu!
@b1linhares
@b1linhares Год назад
Fala, professor! Vai ter aulas de Java!? 🎉 Estou em transição profissional então teus vídeos ajudaram-me muito neste ano. Foi uma grata descoberta de encontrar-lhe aqui no RU-vid. Muito obrigado e um salve daqui do "meio do mato" ( WACK, William) 😅, Belém do Pará!
@algoritmos4470
@algoritmos4470 Год назад
Vai, sim! Puxa, que legal que ajudou! Obrigado pelo feedback! Belém do Pará! Muito legal! Boa sorte em sua jornada!
@b1linhares
@b1linhares Год назад
@@algoritmos4470 Obrigado! E aos meus amigos que estudam programação sempre q tenho oportunidade indico este canal. Sucesso!
@user-os3nt2lk6o
@user-os3nt2lk6o Год назад
Tenho prova hoje a tarde, e esse vídeo me ajudou bastante, obrigado professor!
@algoritmos4470
@algoritmos4470 Год назад
Opa, eu que agradeço o elogio!
@mrsorte7696
@mrsorte7696 Год назад
MUITO OBRIGADO PELA AULA
@Isabela-tp5xp
@Isabela-tp5xp Год назад
muito bom ! queria que tivessem me ensinado assim em pensamento computacional
@vitorhenrique2910
@vitorhenrique2910 Год назад
você e incrivel cara, me ajudo mt na facu. obrigado!!
@barbaradorneles7173
@barbaradorneles7173 Год назад
Mto bom!! Sempre voltava em recursividade com várias lacunas no aprendizado. Acho que esse vídeo preencheu todas.