![]() |
|
||||
|
|||||
Você está aqui: Cards de Hidrostática |
||
|
||
|
|
||
Dart ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercício Resolvido de Dart - Escreva um programa Dart que usa o laço for para desenhar um padrão de diamante de estrelasQuantidade de visualizações: 1540 vezes |
|
Pergunta/Tarefa: Neste exercício para a prática da linguagem Dart você deverá usar o laço for para desenhar o famoso padrão de diamante de estrelas. Você pode também usar o laço while, se assim você o desejar. O programa deverá pedir que o usuário informe a quantidade de linhas que marcará a metade do diamante. Seu programa deve apresentar a seguinte saída:
Informe a quantidade de linhas: 5
*
***
*****
*******
*********
*******
*****
***
*
Veja a resolução comentada deste exercício em Dart:
// Vamos importar a biblioteca dart:io
import "dart:io";
void main(){
// variáveis que vamos usar na resolução do problema
int linhas, estrelas, espacos;
// vamos pedir a quantidade de linhas
stdout.write("Informe a quantidade de linhas: ");
// vamos ler a entrada do usuário
linhas = int.parse(stdin.readLineSync());
estrelas = 1; // começamos com uma estrela (no topo do diamante)
// se linhas for igual a 5 nós começamos com 4 espaços
espacos = linhas - 1;
// repete duas vezes a quantidade de linhas informadas
for(int i = 1; i < linhas * 2; i++){
// vamos imprimir os espaços
for(int j = 1; j <= espacos; j++){
stdout.write(" ");
}
// agora vamos imprimir estrelas
for(int j = 1; j < estrelas * 2; j++){
stdout.write("*");
}
// passamos para a próxima linha
stdout.write("\n");
if(i < linhas){ // é a parte superior do diamante
espacos--; // diminui os espaços
estrelas++; // e aumenta as estrelas
}
else{ // é a parte inferior do diamente
espacos++; // aumenta os espaços
estrelas--; // e diminui as estrelas
}
}
}
|
Portugol ::: Dicas & Truques ::: Matemática e Estatística |
Como resolver uma equação do segundo grau em Portugol - Como calcular Bhaskara em PortugolQuantidade de visualizações: 3191 vezes |
|
Como resolver uma equação do 2º grau usando Portugol Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando um algoritmo escrito na ferramenta Portugol Studio, uma das preferidas para o aprendizado de algoritmos e lógica de programação. Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a ≠ 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita. Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0. Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente. Como resolver uma equação do 2º grau Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns: a) Fórmula de Bhaskara; b) Soma e produto. O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa. Como resolver uma equação do 2º grau usando Bhaskara Como nosso algoritmo Portugol vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja: \[\Delta =b^2-4ac\] Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades: a) Se determinante > 0, então a equação possui duas soluções reais. b) Se determinante = 0, então a equação possui uma única solução real. c) Se determinante < 0, então a equação não possui solução real. Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara: \[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\] Vamos agora ao código Portugol (escrevi e testei no Portugol Webstudio). Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:
// "Como resolver uma equação do 2º grau usando Portugol
programa {
// inclui a biblioteca Matematica
inclua biblioteca Matematica --> mat
// função principal do programa
funcao inicio() {
// variáveis usadas na resolução do problema
// os coeficientes
real a, b, c
// as duas raizes, a imaginaria e o discriminante
real raiz1, raiz2, imaginaria, discriminante
// vamos pedir para o usuário informar os valores dos coeficientes
escreva("Valor do coeficiente a: ")
leia(a)
escreva("Valor do coeficiente b: ")
leia(b)
escreva("Valor do coeficiente c: ")
leia(c)
// vamos calcular o discriminante
discriminante = (b * b) - (4 * a * c)
// a equação possui duas soluções reais?
se (discriminante > 0) {
raiz1 = ((b * -1) + mat.raiz(discriminante, 2.0)) / (2 * a)
raiz2 = ((b * -1) - mat.raiz(discriminante, 2.0)) / (2 * a)
escreva("Duas raizes: x1 = ", raiz1, " e x2 = ", raiz2)
}
// a equação possui uma única solução real?
senao se (discriminante == 0){
raiz1 = (b * -1) / (2 * a)
raiz2 = (b * -1) / (2 * a)
escreva("Duas raizes iguais: x1 = ", raiz1, " e x2 = ", raiz2)
}
// a equação não possui solução real?
senao{
raiz1 = (b * -1) / (2 * a)
raiz2 = (b * -1) / (2 * a)
imaginaria = mat.raiz((discriminante * -1), 2.0) / (2 * a)
escreva("Existem duas raízes complexas: ")
escreva("x1 = ", raiz1, " + " ,imaginaria, " e x2 = ", raiz2, " - ", imaginaria)
}
}
}
Ao executar este código Portugol nós teremos o seguinte resultado: Valor do coeficiente a: 1 Valor do coeficiente b: 2 Valor do coeficiente c: -3 Existem duas raizes: x1 = 1.0 e x2 = -3.0 |
AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Alinhamento - Alignment |
Como retornar a quantidade de perfis de um alinhamento do Civil 3D usando a função GetProfileIds() da API C# do AutoCAD Civil 3DQuantidade de visualizações: 675 vezes |
|
Em algumas situações nós precisamos obter a quantidade de perfis (profiles) de um determinado alinhamento do AutoCAD Civil 3D. Para isso nós podemos usar a função GetProfileIds(), que retorna uma coleção ObjectIdCollection contendo os ids de todos os perfis pertencentes a um determinado alinhamento. Para este exemplo eu usei um alinhamento chamado "EIXO DA RODOVIA" e criei para ele um profile chamado "TN - SUPERFÍCIE NATURAL" para representar a superfície natural e outro chamado "GREIDE - PERFIL VERTICAL DA RODOVIA" para representar o alinhamento vertical. Note que, após obtermos a coleção ObjectIdCollection por meio da função GetProfileIds(), tudo que temos a fazer é acessar a sua propriedade Count. Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo:
using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.Civil.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.Civil.DatabaseServices;
namespace Estudos {
public class Class1 : IExtensionApplication {
[CommandMethod("Alinhamento")]
public void Alinhamento() {
// vamos obter uma referência ao documento atual do Civil 3D
CivilDocument doc = CivilApplication.ActiveDocument;
// obtemos o editor
Editor editor = Application.DocumentManager.MdiActiveDocument.Editor;
// vamos pesquisar o alinhamento chamado "EIXO DA RODOVIA"
string nome = "EIXO DA RODOVIA";
// vamos iniciar um nova transação
using (Transaction ts = Application.DocumentManager.MdiActiveDocument.
Database.TransactionManager.StartTransaction()) {
try {
// efetuamos uma chamada ao método GetAlignmentByName() passando
// o documento atual do AutoCAD Civil 3D e o nome do alinhamento
// que queremos encontrar
Alignment alinhamento = GetAlignmentByName(doc, nome);
// ops, o alinhamento não foi encontrado
if (alinhamento == null) {
editor.WriteMessage("\nO alinhamento não foi encontrado.");
}
else {
// encontramos o alinhamento. Vamos mostrar a quantidade de perfis
// que ele possui
ObjectIdCollection ids_perfis = alinhamento.GetProfileIds();
// e mostramos o resultado
editor.WriteMessage("\nO alinhamento possui " + ids_perfis.Count +
" perfis.\n");
}
}
catch (System.Exception e) {
// vamos tratar o erro
editor.WriteMessage("Erro: {0}", e.Message);
}
}
}
// função C# que retorna um alinhamento por nome, ou null em
// caso de não encontrar o alinhamento desejado
public Alignment GetAlignmentByName(CivilDocument doc, string nome) {
// vamos declarar um objeto da classe Alignment
Alignment alinhamento = null;
// agora vamos obter os ids de todos os alinhamentos
ObjectIdCollection alinhamentos = doc.GetAlignmentIds();
// vamos percorrer todos os ids de alinhamentos retornados
foreach (ObjectId idAlinhamento in alinhamentos) {
alinhamento = idAlinhamento.GetObject(OpenMode.ForRead) as Alignment;
// encontramos o alinhamento
if (alinhamento.Name.Equals(nome)) {
return alinhamento;
}
}
// retorna null se o alinhamento não for encontrado
return null;
}
public void Initialize() {
// pode deixar em branco
}
public void Terminate() {
// pode deixar em branco
}
}
}
Ao executar este código AutoCAD Civil 3D .NET C# nós teremos o seguinte resultado: O alinhamento possui 2 perfis. |
Python ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Python para iniciantes - Como usar a instrução break em PythonQuantidade de visualizações: 10896 vezes |
|
A instrução break da linguagem Python é usada para interromper a execução de um laço for ou while. Observe que se o laço possuir um bloco else, este não será executado se a instrução break for usada. Veja um exemplo de um laço for que é interrompido se o valor da variável de controle for 5:
# função principal do programa
def main():
for i in range(0, 21):
print(i)
if i == 5:
break
if __name__== "__main__":
main()
Ao executarmos este código nós teremos o seguinte resultado: 0 1 2 3 4 5 |
Java ::: Coleções (Collections) ::: ArrayList |
Como testar se um valor está contido em uma ArrayList do Java usando a função contains()Quantidade de visualizações: 19889 vezes |
|
Em algumas situações nós queremos verificar se um determinado valor está contido em um dos elementos da ArrayList. Para isso nós podemos usar o método contains(), que retorna true se o valor existir e false em caso contrário. Veja um exemplo de seu uso:
package estudos_java;
import java.util.ArrayList;
public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá inteiros
ArrayList<Integer> valores = new ArrayList<>();
// adiciona itens na lista
valores.add(34);
valores.add(12);
valores.add(8);
valores.add(23);
// Verifica se um determinado
if(valores.contains(12)){
System.out.println("O valor foi encontrado.");
}
else{
System.out.println("O valor não foi encontrado.");
}
System.exit(0);
}
}
Ao executar este código Java nós teremos o seguinte resultado: O valor pesquisado foi encontrado. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





