Você está aqui: Cards de Cards de Hidrologia |
||
|
||
|
|
||
PHP ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de PHP - Escreva um programa PHP para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no arrayQuantidade de visualizações: 1706 vezes |
|
Pergunta/Tarefa: Dado o seguinte vetor de inteiros: // vamos declarar e construir um vetor de 8 inteiros $valores = array(0, 3, 0, 5, 7, 4, 0, 9); Sua saída deverá ser parecida com: Vetor na ordem original: 0 3 0 5 7 4 0 9 Vetor com os zeros deslocados para o final: 3 5 7 4 9 0 0 0 Veja a resolução comentada deste exercício usando PHP:
<?php
// Este código PHP pode ser executado tanto na linha
// de comando quanto pelo servidor web
// vamos declarar e construir um vetor de 8 inteiros
$valores = array(0, 3, 0, 5, 7, 4, 0, 9);
// vamos mostrar o vetor na ordem original
echo("Vetor na ordem original:\n");
for($i = 0; $i < count($valores); $i++){
echo $valores[$i] . " ";
}
// vamos inicializar j como 0 para que ele aponte para
// o primeiro elemento do vetor
$j = 0;
// agora o laço for percorre todos os elementos do vetor,
// incrementanto a variável i e deixando o j em 0
for($i = 0; $i < count($valores); $i++){
// encontramos um valor que não é 0
if($valores[$i] != 0){
// fazemos a troca entre os elementos nos índices
// i e j
$temp = $valores[$i];
$valores[$i] = $valores[$j];
$valores[$j] = $temp;
// e avançamos o j para o elemento seguinte
$j++;
}
}
// agora mostramos o resultado
echo "\n\nVetor com os zeros deslocados para o final:\n";
for($i = 0; $i < count($valores); $i++){
echo $valores[$i] . " ";
}
?>
Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes. |
C# ::: Coleções (Collections) ::: List<T> |
Como retornar a quantidade de elementos que podem ser armazenados na List do C# sem redimensioná-laQuantidade de visualizações: 7603 vezes |
|
O objeto List do C# possui uma propriedade Capacity que nos retorna a quantidade de elementos que podem ser inseridos na lista antes que ela tenha que redimensionar o seu array interno. Quando o tamanho da lista excede essa capacidade, automaticamente o array interno é redimensionado de forma a acomodar esses novos itens. Nessa dica eu mostro como podemos retornar o valor dessa propriedade. Veja:
using System;
using System.Collections.Generic;
namespace Estudos {
class Principal {
static void Main(string[] args) {
List<int> valores = new List<int>();
// insere valores na lista
valores.Add(4);
valores.Add(2);
valores.Add(87);
valores.Add(23);
valores.Add(100);
// obtém a capacidade da lista
// NOTA: Capacity é o número de elementos que a lista
// pode armazenar antes de ser preciso redimensioná-la.
int capac = valores.Capacity;
Console.WriteLine("A capacidade da lista é de "
+ capac + " elementos.");
Console.WriteLine("\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código C# nós teremos o seguinte resultado: A capacidade da lista é de 8 elementos. |
JavaFX ::: Pacote javafx.scene.layout (Package javafx.scene.layout) ::: HBox (Classe HBox) |
Como definir o espaço interno do HBox do JavaFX usando o método setPadding()Quantidade de visualizações: 1075 vezes |
|
Em algumas situações nós precisamos definir o espaço interno, ou seja, o padding, do gerenciador de layout HBox. Para isso nós podemos usar o método setPadding() e fornecer a ele um objeto da classe javafx.geometry.Insets. Este método é herdado da classe javafx.scene.layout.Region. Lembre-se de que a função setPadding() define o espaço interno do VBox, ou seja, o espaço que deverá existir entre suas margens e os componentes contidos nele. Veja um trecho de código JavaFX no qual temos um gerenciador de layout HBox e três botões:
package estudosjavafx;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class EstudosJavaFX extends Application {
public static void main(String[] args){
launch(args);
}
@Override
public void start(Stage primaryStage){
// vamos criar três botões
Button btn1 = new Button("Botão 1");
Button btn2 = new Button("Botão 2");
Button btn3 = new Button("Botão 3");
// agora criamos um laytou HBox e colocamos
// os três botões nele
HBox hBox = new HBox();
hBox.getChildren().add(btn1);
hBox.getChildren().add(btn2);
hBox.getChildren().add(btn3);
// vamos definir o espaço interno do HBox usando
// um Inserts (top, direita, baixo, esquerda)
hBox.setPadding(new Insets(20, 20, 20, 20));
// criamos a cena e fornecemos o layout a ela
// e definimos a largura e altura da cena
Scene scene = new Scene(hBox, 400, 300);
// adicionamos a cena ao palco principal
primaryStage.setScene(scene);
// e mostramos o palco
primaryStage.show();
}
}
Execute este código, experimente alterar os valores do objeto Insets fornecido ao método setPadding e veja os resultados obtidos. |
LISP ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular MMC em Lisp - Como calcular o Mínimo Múltiplo Comum na linguagem LispQuantidade de visualizações: 1038 vezes |
|
O Mínimo Múltiplo Comum (MMC), ou LCM (Least Common Multiple) é um tipo de operação matemática utilizada para encontrar o menor número positivo, diferente de 0 (zero), que é múltiplo ao mesmo tempo de dois ou mais números. O MMC é utilizado, por exemplo, na soma e subtração de frações - quando é necessário um denominador comum. Nesta dica mostrarei como podemos calcular o MMC de dois números inteiros informados pelo usuário. Veja o código Common Lisp completo:
; variáveis que vamos usar no programa
(let ((num1)(num2)(maior)(mmc))
; Vamos ler o primeiro número
(princ "Informe o primeiro número: ")
; talvez o seu compilador não precise disso
(force-output)
; atribui o valor lido à variável num1
(setq num1 (read))
; Vamos ler o segundo número
(princ "Informe o segundo número: ")
; talvez o seu compilador não precise disso
(force-output)
; atribui o valor lido à variável num2
(setq num2 (read))
; agora escolhemos o maior número
(cond ((> num1 num2)(setq maior num1))
(t (setq maior num2))
)
; e entramos em um laço loop
(loop
; testa se o maior é divisível por num1 e por num2
(cond ((and (= 0 (rem maior num1))(= 0 (rem maior num2)))
; mmc recebe o maior e sai do laço
(setq mmc maior)(return)))
; incrementa o valor da variável maior
(setq maior (+ maior 1))
)
; mostra o resultado
(format t "O MMC dos dois números é ~D" mmc)
)
Ao executarmos este código Common Lisp nós teremos o seguinte resultado: Informe o primeiro número: 6 Informe o segundo número: 3 O MMC dos dois números é: 6 Note que a linguagem Common Lisp possui uma função LCM() que permite calcular o MMC de dois ou mais números. Minha intenção com essa dica foi mostrar como o cálculo do MMC é feito em Common Lisp. |
VB.NET ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o coeficiente angular de uma reta em VB.NET dados dois pontos no plano cartesianoQuantidade de visualizações: 1296 vezes |
|
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x. Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano: ![]() Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é: \[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \] Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente. Veja agora o trecho de código na linguagem VB.NET que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:
Imports System
Module Program
Sub Main(args As String())
' x e y do primeiro ponto
Console.Write("Informe a coordenada x do primeiro ponto: ")
Dim x1 As Double = Double.Parse(Console.ReadLine())
Console.Write("Informe a coordenada y do primeiro ponto: ")
Dim y1 As Double = Double.Parse(Console.ReadLine())
' x e y do segundo ponto
Console.Write("Informe a coordenada x do segundo ponto: ")
Dim x2 As Double = Double.Parse(Console.ReadLine())
Console.Write("Informe a coordenada y do segundo ponto: ")
Dim y2 As Double = Double.Parse(Console.ReadLine())
' agora vamos calcular o coeficiente angular
Dim m As Double = (y2 - y1) / (x2 - x1)
' e mostramos o resultado
Console.WriteLine("O coeficiente angular é: " & m)
Console.WriteLine("\nPressione qualquer tecla para sair...")
' pausa o programa
Console.ReadKey()
End Sub
End Module
Ao executar este código em linguagem VB.NET nós teremos o seguinte resultado: O coeficiente angular é: 0,6666666666666666 Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):
Imports System
Module Program
Sub Main(args As String())
' x e y do primeiro ponto
Console.Write("Informe a coordenada x do primeiro ponto: ")
Dim x1 As Double = Double.Parse(Console.ReadLine())
Console.Write("Informe a coordenada y do primeiro ponto: ")
Dim y1 As Double = Double.Parse(Console.ReadLine())
' x e y do segundo ponto
Console.Write("Informe a coordenada x do segundo ponto: ")
Dim x2 As Double = Double.Parse(Console.ReadLine())
Console.Write("Informe a coordenada y do segundo ponto: ")
Dim y2 As Double = Double.Parse(Console.ReadLine())
' vamos obter o comprimento do cateto oposto
Dim cateto_oposto As Double = y2 - y1
' e agora o cateto adjascente
Dim cateto_adjascente As Double = x2 - x1
' vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
' (em radianos, não se esqueça)
Dim tetha As Double = Math.Atan2(cateto_oposto, cateto_adjascente)
' e finalmente usamos a tangente desse ângulo para calcular
' o coeficiente angular
Dim tangente As Double = Math.Tan(tetha)
' e mostramos o resultado
Console.WriteLine("O coeficiente angular é: " & tangente)
Console.WriteLine("\nPressione qualquer tecla para sair...")
' pausa o programa
Console.ReadKey()
End Sub
End Module
Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta: 1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0; 2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0; 3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0). 4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe. |
Desafios, Exercícios e Algoritmos Resolvidos de VB.NET |
Veja mais Dicas e truques de VB.NET |
Dicas e truques de outras linguagens |
|
PHP - Como inserir um determinado número de zeros antes de um número em PHP usando a função sprintf() |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






