Informações e links sobre o curso
Condução de calor em um termistor: elementos finitos
Eu fiz um pequeno notebook que usa o método de elementos finitos para simular a condição de calor no corpo de um termistor com cápsula de vidro. Pretendo melhorar isso mais para frente mas isso serve como exemplo.
MF-58
O MF-58 é um termistor NTC bem comum e bem barato (na China…). Eu tenho usado ele como elemento sensor em termo-anemômetros a temperatura constante.
Uma foto do MF-58 pode ser visto abaixo.

Git E Github
Todo o desenvolvimento em Julia ocorre usando o programa de controle de versão Git. Um pacote em Julia é um repositória Git em uma plataforma de desenvolvimento como Gihub ou Gitlab. Controle de versão é uma ferramenta interessante para muitas coisas. Aqui vou explicar o mínimo para usar Git e Github. Este tutorial foi escrito para o curso de programação em Python em 2022 então alguns detalhes relevantes para o Github pode ter mudado um pouco mas os princípios são os mesmos. Se você quiser aprender mais sobre o Git, existem vários tutoriais na Internet. Existe um livro “oficial” traduzido para o português https://git-scm.com/book/pt-br/v2. O livro Aprendendo Git de Anna Skoulikari é um excelente livro que procura focar em entender o que o git está fazendo.
O que é o Git
Git é uma ferramente de controle de versões. O que quer dizer isso? Basicamente ele permite que você gerencie os arquivos de um projeto de software. Dê uma lida rápida sobre a motivação no post sobre o repositório do curso.
Quando eu falo gerenciar os arquivos de um projeto de software, eu quero dizer que podemos acessar toda a história de modificação de cada arquivo. Voltar atrás em algo que não gostamos, testar alternativas diferentes e coisas do tipo.
Para começar vamos tentar trabalhar com o repositório do curso mesmo.
Uma coisa importante: aqui estamos falando de projetos de software pois este é um curso de programação e a ferramenta foi criada para este tipo de aplicação. Mas na verdade, o controle de versão pode ser usado em qualquer tipo de arquivo e aplicação. Mas a coisa funciona bem com arquivos texto. Eu uso bastante na elaboração de relatórios em LaTeX.
[]Vídeo da aula 6
Raíz quadrada, Babilônia e derivadas
Calcular raízes quadradas é algo que se sabe faz muito tempo. Faz muito tempo mesmo. Os babilônios tinham um algoritmo para calcular a raíz quadrada de um número. Hoje em dia este algoritmo pode ser obtido diretamente usando o método de Newton-Raphson.
Aproximação da raíz quadrada usando o algoritmo da Babilônia
O notebook Pluto mostra a implementação deste algoritmo. Mas este notebook mostra algumas outras coisas. Você pode baixar e rodar este notebook no teu computador. Mas este notebook tem mais algumas coisas interessantes…
[]Ambientes (environments) e como trabalhar com Julia na prática
Julia é vendida no varejo como uma linguagem onde você pode programar como Python (ou R ou Matlab) e ter desempenho de C++. Isso é verdade mas a história é mais complicada. Se você programar em Julia do jeito que você programa em Python, algumas coisas podem ser mais rápidas mas em geral o desempenho vai ser comparável. Para se conseguir o desempenho de C++, você, provavelmente, terá que fazer as coisas de um jeito diferente.
[]Solução dos exercícios do capítulo 8 - Strings
Exercício 8-1
Escreva uma função que recebe uma string como argumento e mostra as letras na ordem contrária, uma por linha
function letrasreverso(s)
i = lastindex(s)
while i > 0
println(s[i])
i = prevind(s, i)
end
end
julia> letrasreverso("paulo")
o
l
u
a
p
julia> letrasreverso("áéíóú")
ú
ó
í
é
á
Exercício 8-2
Realmente não entendi o que se quer aqui…
Exercício 8-3
str[:] é simplesmente fatiar a string do começo ao fim
julia> s = "Esta é uma string tosca"
"Esta é uma string tosca"
julia> s[1]
'E': ASCII/Unicode U+0045 (category Lu: Letter, uppercase)
julia> s[:]
"Esta é uma string tosca"
julia> s[begin:end]
"Esta é uma string tosca"
Exercício 8-4
function find(word, letter, index)
while index <= sizeof(word)
if word[index] == letter
return index
end
index = nextind(word, index)
end
return -1
end
Uso:
[]