![]() |
|||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
|
PHP ::: Fundamentos da Linguagem ::: Estruturas de Controle |
PHP para iniciantes - Como usar a usar o laço do...while em PHP - Como usar o laço do...while da linguagem PHPQuantidade de visualizações: 14457 vezes |
O laço do...while, ou loop do...while (faça...enquanto) da linguagem PHP é bem parecido com o laço while (enquanto). A diferença é que no do...while, a condição é testada no final da primeira iteração, o que garante que o laço será executado no mínimo uma vez. Veja um exemplo de seu uso:<? $valor = 1; do{ echo $valor . "<br>"; $valor++; }while($valor <= 10); ?> Este laço exibirá o seguinte resultado: 1 2 3 4 5 6 7 8 9 10 Lembre-se que o teste de continuidade do laço do...while ocorre no final da primeira iteração, enquanto no laço while(), o teste de continuidade ocorre antes da primeira iteração. Dica revisada, atualizada e testada no PHP 8. |
Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens |
Como converter uma imagem colorida para tons de cinza em Java usando o filtro GrayFilter - Processamento de imagens em JavaQuantidade de visualizações: 11559 vezes |
O exemplo abaixo mostra como usar a classe GrayFilter para converter uma imagem JPG colorida em uma imagem com tons de cinza. Veja que o segundo argumento no construtor da classe GrayFilter que usamos permite definir o nível de cinza (em porcentagem) que será aplicado:import java.awt.*; import java.io.*; import java.awt.image.*; import java.awt.event.*; import javax.swing.*; import javax.imageio.*; public class Estudos extends JFrame{ private BufferedImage imagem; private BufferedImage imagemCinza; AreaImagem areaImagem; public Estudos(){ super("Estudos Java"); Container c = getContentPane(); c.setLayout(new BorderLayout()); JButton btn = new JButton("Carregar Imagem"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ JFileChooser fc = new JFileChooser(); int res = fc.showOpenDialog(null); if(res == JFileChooser.APPROVE_OPTION){ File arquivo = fc.getSelectedFile(); imagem = null; try{ imagem = ImageIO.read(arquivo); } catch(IOException exc){ JOptionPane.showMessageDialog(null, "Erro ao carregar a imagem: " + exc.getMessage()); } if(imagem != null){ areaImagem.imagem = imagem; areaImagem.repaint(); } } } } ); JButton btn2 = new JButton("Converter Escala Cinza"); btn2.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ converterEscalaCinza(); } } ); JPanel painel = new JPanel(); painel.setLayout(new FlowLayout()); painel.add(btn); painel.add(btn2); c.add(painel, BorderLayout.SOUTH); // Cria a área de exibição da imagem areaImagem = new AreaImagem(); c.add(areaImagem, BorderLayout.CENTER); setSize(400, 300); setVisible(true); } public void converterEscalaCinza(){ ImageFilter filter = new GrayFilter(true, 30); ImageProducer producer = new FilteredImageSource( imagem.getSource(), filter); Image imagemTemp = this.createImage(producer); // precisamos converter Image para BufferedImage imagemCinza = new BufferedImage(imagem.getWidth(), imagem.getHeight(), BufferedImage.TYPE_INT_RGB); Graphics g = imagemCinza.getGraphics(); g.drawImage(imagemTemp, 0, 0, null); g.dispose(); areaImagem.imagem = imagemCinza; areaImagem.repaint(); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } // Sub-classe de JPanel para exibir a imagem class AreaImagem extends JPanel{ public BufferedImage imagem; public void paintComponent(Graphics g){ super.paintComponent(g); // desenha a imagem no JPanel g.drawImage(imagem, 0, 0, this); } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de Java - Como converter minutos em segundos em Java usando uma funçãoQuantidade de visualizações: 906 vezes |
Pergunta/Tarefa: Escreva um programa Java para converter minutos em segundos. Você deverá criar uma função converter() que receberá, como argumento, um número inteiro representando os minutos e retornará, também como um inteiro, os segundos correspondentes. Os minutos deverão ser informados pelo usuário. Sua saída deverá ser parecida com: Informe os minutos: 15 A quantidade de segundos é: 900 Veja a resolução comentada deste exercício em Java: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar os minutos System.out.print("Informe os minutos: "); int minutos = Integer.parseInt(entrada.nextLine()); // agora vamos chamar a função converter() para converter // os minutos em segundos int segundos = converter(minutos); // e mostramos o resultado System.out.println("A quantidade de segundos é: " + segundos); } // função usada para converter minutos em segundos public static int converter(int minutos){ int segundos = minutos * 60; return segundos; } } |
VB.NET ::: Dicas & Truques ::: Strings e Caracteres |
Como obter uma substring em uma string VB.NET usando o método Substring() da classe StringQuantidade de visualizações: 12154 vezes |
Nesta dica mostrarei como podemos usar o método Substring() da classe String do VB.NET para retornar parte de uma palavra, frase ou texto, ou seja, uma substring em uma string. Este método recebe o índice do caractere inícial da substring a ser obtida e a quantidade total de caracteres. O retorno é uma nova string. Veja o código completo para o exemplo: Imports System Module Program Sub Main(args As String()) Dim frase As String = "Gosto muito de VB.NET" ' vamos mostrar a frase original Console.WriteLine("Frase original: " & frase) ' vamos obter a substring "VB.NET" Dim substring As String = frase.Substring(15, 6) ' exibe o resultado Console.WriteLine("A substring é: " & substring) Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executar este código VB.NET nós teremos o seguinte resultado: Frase original: Gosto muito de VB.NET A substring é: VB.NET |
Python ::: Python para Engenharia ::: Engenharia Civil - Concreto, Concreto Armado e Concretos Especiais |
Como calcular a Resistência à Tração do Concreto usando Python - Python para Engenharia Civil e Cálculo EstruturalQuantidade de visualizações: 277 vezes |
A resistência à tração do concreto é a capacidade máxima de tensão de tração que o material pode suportar antes de se romper. Ela é menor que a resistência à compressão do concreto, podendo representar cerca de 10% dela. O concreto pode falhar rapidamente quando submetido a força de tração, como dobramento ou alongamento. Isso acontece porque o concreto é composto por agregados e pasta de cimento, e sua estrutura nunca é completamente homogênea. A resistência à tração direta do concreto é muito útil na determinação da armadura de tração mínima em uma viga de concreto armado, e usada também nos cálculos estruturais em geral (ABNT NBR 6118). Assim, a resistência à tração média do concreto pode ser calculada pela seguinte fórmula: \[f_\text{ctk,m} = 0,3 \cdot \sqrt[3]{{f_\text{ck}}^2}\] Onde: fctk,m é a resistência à tração média do concreto em Mpa; fck é a resistência à compressão do concreto em Mpa. Note que, uma vez obtida a resistência à tração média do concreto (que é um método estatístico), podemos obter seus limites inferior e superior usando as seguintes fórmulas: \[f_\text{ctk,inf} = 0,7 \cdot f_\text{ctk,m}\]\[f_\text{ctk,sup} = 1,3 \cdot f_\text{ctk,m}\] Veja agora o código Python que pede para o usuário informar o FCK do concreto e calcula o fctk,m, fctk,inf e fctk,sup: # vamos importar o módulo Math import math # função principal do programa def main(): # vamos pedir para o usuário informar o FCK do concreto fck = float(input("Informe o FCK do concreto em Mpa: ")) # agora vamos calcular a resistência à tração média # do concreto fctk_m = 0.3 * math.pow(fck, 2.0 / 3.0) # vamos calcular o limite inferior fctk_inf = 0.7 * fctk_m # vamos calcular o limite superior fctk_sup = 1.3 * fctk_m # e mostramos os resultados print("\nO fctk,m é: {0} Mpa ({1} kN/cm2)".format(round(fctk_m, 5), round(fctk_m / 10.0, 5))) print("O fctk,inf é: {0} Mpa ({1} kN/cm2)".format(round(fctk_inf, 5), round(fctk_inf / 10.0, 5))) print("O fctk,sup é: {0} Mpa ({1} kN/cm2)".format(round(fctk_sup, 5), round(fctk_sup / 10.0, 5))) if __name__ == "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe o FCK do concreto em Mpa: 30 O fctk,m é: 2.89647 Mpa (0.28965 kN/cm2) O fctk,inf é: 2.02753 Mpa (0.20275 kN/cm2) O fctk,sup é: 3.76541 Mpa (0.37654 kN/cm2) |
Laravel ::: Artigos e Tutorias ::: CRUD - CREATE, READ, UPDATE, DELETE |
Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 2Quantidade de visualizações: 3213 vezes |
Na parte 1 deste tutorial sobre CRUD em Laravel usando PHP e MySQL (MariaDB) nós criamos a base de dados MySQL para a nossa aplicação biblioteca, criamos a aplicação Laravel, fizemos a migração e rodamos a migração, o que resultou na criação de uma tabela MySQL chamada livros. Nessa segunda parte nós vamos iniciar criando a rota de redirecionamento das ações do CRUD. Vamos criar também o controller e as primeiras views. Criando a rota de redirecionamento - routes/web.php Vá até o diretório C:\xampp\htdocs\biblioteca\routes e abra o arquivo web.php. Você verá que ele possui o seguinte conteúdo: <?php use Illuminate\Support\Facades\Route; /* |-------------------------------------- | Web Routes |-------------------------------------- | | Here is where you can register web routes | for your application. These routes are loaded | by the RouteServiceProvider within a group | which contains the "web" middleware group. | Now create something great! | */ Route::get('/', function () { return view('welcome'); }); ?> Vamos alterar o seu conteúdo para a versão abaixo: <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\LivroController; Route::resource('livros', LivroController::class); ?> Veja que criamos uma rota para um recurso, que neste caso será o controller LivroController. Passamos o nome livros para esta rota, de forma que a URL http://localhost/biblioteca/public/livros/create abrirá a view para cadastrar um novo livro. Hora de criar o controller e o model - a parte controle e modelo do MVC Com a rota de direcionamento devidamente criada, vamos partir para o controller. Abra uma janela de terminal e digite o comando abaixo: C:\xampp\htdocs\biblioteca>php artisan make:controller LivroController --resource --model=Livro O Artisan nos perguntará se queremos criar o modelo também. Informe "yes" e pressione Enter. A App\Models\Livro model does not exist. Do you want to generate it? (yes/no) [yes]: > yes Se tudo correr bem, você verá a seguinte mensagem: Model created successfully. Controller created successfully. Vá até o diretório C:\xampp\htdocs\biblioteca\app\Http\Controllers e localize o arquivo LivroController.php. Abra-o e note que temos os métodos index(), create(), store(), show(), edit(), update() e destroy(). Cada um destes métodos corresponde a uma ação que podemos executar na tabela de livros. Vamos começar com o método create(). Limpe todo o conteúdo deste controller e deixe apenas o código abaixo: <?php namespace App\Http\Controllers; use App\Models\Livro; use Illuminate\Http\Request; class LivroController extends Controller{ // mostra a view para cadastrar um novo livro public function create(){ return view('livros.create'); } } ?> O método create() apenas exibirá a página (view) que nos permitirá cadastrar um novo livro. Porém, antes de criar a primeira view, vá no diretório C:\xampp\htdocs\biblioteca\app\Models, localize e abra o arquivo Livro.php. Vamos modificá-lo para o código abaixo: <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Livro extends Model{ use HasFactory; protected $fillable = [ 'titulo', 'autor', 'paginas' ]; } ?> Veja que informamos, no model Livro, os campos da tabela que serão preenchidos com as nossas informações. Os campos id, created_at e updated_at serão gerenciados pelo Laravel. A view para cadastrar um novo livro Chegou o grande momento. Vamos criar a página que nos permitirá cadastrar os livros. Para manter as coisas simples, escreveremos um view bem simples, sem muita formatação. Mas você poderá deixá-la mais bonita mais tarde. O importante aqui é entender a funcionalidade. Veja o código completo para a view create.blade.php: <html> <head> <meta charset="utf-8"> <title>Biblioteca</title> </head> <body> <h1>Novo Livro</h1> @if($status = Session::get('mensagem')) <h2>{{ $status }}</h2> @endif @if($errors->any()) <h2>Houve alguns erros ao processar o formulário</h2> <ul> @foreach($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> @endif <form action="{{ route('livros.store') }}" method="post"> @csrf <table width="200" border="0" cellspacing="3" cellpadding="3"> <tr> <td>Título:</td> <td><input type="text" name="titulo" id="titulo" placeholder="Título"></td> </tr> <tr> <td>Autor:</td> <td><input type="text" name="autor" id="autor" placeholder="Autor"></td> </tr> <tr> <td>Páginas</td> <td><input type="text" size="10" name="paginas" id="paginas" placeholder="Quant. Páginas"></td> </tr> <tr> <td> </td> <td><button type="submit">Gravar</button></td> </tr> </table> </form> </body> </html> Aqui nós criamos um formulário com a action apontando para {{route('livros.store')}}, e a forma de envio é POST. Temos também três elementos HTML do tipo input text, cada um com a propriedade name contendo o mesmo nome do campo na tabela livros. Salve esta view no diretório C:\xampp\htdocs\biblioteca\resources\views\livros. Agora abra o seu navegador no endereço http://localhost/biblioteca/public/livros/create e teremos o seguinte resultado: ![]() Agora só precisamos obter as informações do formulário e salvá-las no banco de dados. Gravando o novo livro na tabela do banco de dados Vamos ver agora como obter os dados do formulário, passá-los para o controller, instanciar o model e finalmente persistir no banco de dados MySQL. Você viu que os dados do form são enviados para o método store() do controller livros. Assim, abra o LivroController.php e adicione o código abaixo: <?php namespace App\Http\Controllers; use App\Models\Livro; use Illuminate\Http\Request; class LivroController extends Controller{ // mostra a view para cadastrar um novo livro public function create(){ return view('livros.create'); } // recebe as informações do formulário e as grava // no banco de dados public function store(Request $request){ // valida o formulário $request->validate([ 'titulo' => 'required', 'autor' => 'required', 'paginas' => 'required']); // obtém os valores do form Livro::create($request->all()); // direciona para página cadastro novamente, // com uma mensagem de sucesso return redirect()->route('livros.create') ->with('mensagem', 'Livro salvo com sucesso.'); } } ?> Pronto! A parte CREATE do CRUD já está completa. Experimente cadastrar um novo livro e veja o resultado na tabela do banco de dados. Observe que temos também a validação dos dados do formulário (mensagens indicando quais campos não foram preenchidos) e também uma mensagem de sucesso indicando que os dados foram gravados com sucesso. Na parte 3 deste tutorial veremos como listar os livros cadastrados e a opção de excluir e editar os livros. Até lá. Leia a parte 3 aqui: Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 3 |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular raiz quadrada em Java usando a função sqrt() da classe MathQuantidade de visualizações: 8361 vezes |
A raiz quadrada de um algarismo é dada por um número positivo n, que ao ser elevado ao quadrado (multiplicado por ele mesmo), se iguala a x. Na área da matemática, a raiz quadrada auxilia na resolução de vários problemas, entre eles as equações de segundo grau e o Teorema de Pitágoras. Relembrando que a raiz quadrada é o inverso da potenciação com expoente dois, temos que: \[\sqrt{9} = 3\] então, pela potenciação: \[3^2 = 9\] Agora veremos como calcular a raiz quadrada usando a função sqrt() da classe Math da linguagem Java. Veja o código completo: package arquivodecodigos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ Scanner entrada = new Scanner(System.in); // vamos ler o valor System.out.print("Informe o valor desejado: "); double valor = Double.parseDouble(entrada.nextLine()); // vamos calcular a raiz quadrada double raiz = Math.sqrt(valor); // e agora mostramos o resultado System.out.println("A raiz quadrada do valor informado é: " + raiz); } } Ao executar este código teremos o seguinte resultado: Informe o valor desejado: 9 A raiz quadrada do valor informado é: 3.0 É importante observar que, se fornecermos um valor negativo para a função sqrt(), o resultado será NaN (Not a Number, não é um número). Veja: Informe o valor desejado: -9 A raiz quadrada do valor informado é: NaN |
Java ::: Coleções (Collections) ::: ArrayList |
Como testar se a ArrayList do Java está vazia usando a função isEmpty() - Java ArrayList para iniciantesQuantidade de visualizações: 19034 vezes |
Neste exemplo mostrarei como usar o método isEmpty() da classe ArrayList para verificar se a lista está vazia, ou seja, não contem nenhum elemento. Este método retorna true se a ArrayList estiver vazia e false em caso contrário. Veja o exemplo a seguir: package estudos_java; import java.util.ArrayList; public class Estudos{ public static void main(String[] args){ // cria uma ArrayList que conterá strings ArrayList<String> nomes = new ArrayList<>(); // adiciona itens na lista nomes.add("Carlos"); nomes.add("Maria"); nomes.add("Fernanda"); nomes.add("Osmar"); nomes.add("Maria"); // Verifica se a ArrayList está vazia if(nomes.isEmpty()){ System.out.println("A ArrayList está vazia."); } else{ System.out.println("A ArrayList não está vazia."); } System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: A ArrayList não está vazia. |
LISP ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como converter graus em radianos em LISP - Trigonometria em LISPQuantidade de visualizações: 1030 vezes |
Quando estamos trabalhando com trigonometria na linguagem Common Lisp (e AutoLISP, para programadores AutoCAD), é importante ficarmos atentos ao fato de que todos os métodos e funções trigonométricas em Lisp recebem seus argumentos em radianos, em vez de graus. Nesta dica veremos como converter graus em radianos (sem a chatice de ficar relembrando regra de três). Veja a fórmula abaixo: \[Radianos = Graus \times \frac{\pi}{180}\] Agora veja como esta fórmula pode ser escrita em código LISP: ; programa LISP que converte graus em radianos (let((graus)(radianos)) ; valor em graus (setq graus 30) ; obtém o valor em radianos (setq radianos (* graus (/ pi 180))) ; mostra o resultado (format t "~F graus em radianos é ~F" graus radianos) ) Ao executarmos este código Common Lisp nós teremos o seguinte resultado: 30 graus convertidos para radianos é 0.5235987755982988 |
JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar se ao menos um elemento de um array satisfaz uma condição em JavaScript usando a função some()Quantidade de visualizações: 2203 vezes |
O método some(), adicionado à linguagem JavaScript por meio do ECMAScript 5 (JavaScript 5, ECMAScript 2009, ES5) pode ser usado quando queremos verificar se um ou mais elementos de um vetor satisfaz uma determinada condição. Este método nos permite fornecer uma função de callback que será chamada para cada um dos elementos do vetor. E o retorno do método some() é um valor true se ao menos um dos elementos passar no teste e false em caso contrário. Tão logo o valor true seja satisfeito, a função some() encerra sua execução imediatamente. Veja um exemplo no qual testamos se AO MENOS um elemento do array é maior que 70: <script type="text/javascript"> function testar(valor, indice, vetor){ if(valor > 70){ return true; } } var valores = new Array(21, 50, 30, 71, 12, 3); // vamos verificar se AO MENOS um valor é maior que 70 var res = valores.some(testar); window.alert("Alguns valores passaram no teste: " + res); </script> Aqui o resultado será true, pois o valor 71 passou no teste. É importante observar que, assim que a função de callback retorna true pela primeira vez, o método some() já abandona sua execução. Uma função passada para o método some() pode conter os seguintes argumentos (nessa mesma ordem): a) O valor do item; b) O índice do item (opcional); c) O vetor a partir do qual o método some() está sendo chamado (opcional). Como última observação, o método some() não modifica o array original. |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
Java - Estruturas de dados em Java - Como obter a quantidade de nós em uma árvore binária usando Java VB.NET - Como comparar strings em VB.NET usando o método Compare() da classe String do .NET Framework Delphi - Como criar chaves no registro do Windows usando o método CreateKey() da classe TRegistry do Delphi |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |