Você está aqui: Cards de Hidrostática |
||
|
||
|
|
||
C# ::: Threads ::: Thread |
Como usar a classe Thread para criar threads em seus programas C#Quantidade de visualizações: 12357 vezes |
A classe Thread permite criar e controlar uma thread, além de definir sua prioridade e obter seu status. Veja a posição desta classe na hierarquia de classes da plataforma .NET:
System.Object
System.Runtime.ConstrainedExecution.CriticalFinalizerObject
System.Threading.Thread
Um processo pode criar uma ou mais threads para executar parte do código do programa associado a tal processo. Usamos um delegate ThreadStart ou um delegate ParameterizedThreadStart para especificar o código do programa que será executado pela thread. O delegate ParameterizedThreadStart nos permite passar dados para as funções a serem executadas pela thread. Durante seu ciclo de vida, uma thread está sempre em um ou mais dos estados definidos pela enumeração ThreadState. Um nível de prioridade de agendamento, como definido na enumeração ThreadPriority, pode ser requisitado para a thread, mas, este comportamento nem sempre é garantido pelo sistema operacional. O método GetHashCode() fornece identificação para threads gerenciadas. Durante o ciclo de vida de uma thread, seu código de identificação não colidirá com os códigos das demais threads, independente do domínio da aplicação a partir do qual obtemos tal valor. Veja um trecho de código no qual criamos uma thread e a agendamos para execução paralela com a thread principal da aplicação. Note como os valores dos dois laços são exibidos de forma compartilhada pelas duas threads, ou seja, um thread exibe alguns valores e pára, para permitir que a outra faça parte do seu trabalho:
class Program{
static void Main(string[] args){
// using using System.Threading;
// vamos criar uma nova instância da clase Thread
// e fornecer o método que será executado
Thread thread = new Thread(contar);
// vamos agendar a thread para futura execução
thread.Start();
// agora vamos contar na thread principal
for (int i = 0; i <= 20; i++){
Console.Write("#" + Thread.CurrentThread.GetHashCode()
+ ": " + i + ", ");
}
Console.Write("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
// método que será chamado pela thread
static void contar(){
for (int i = 0; i <= 20; i++){
Console.Write("#" + Thread.CurrentThread.GetHashCode()
+ ": " + i + ", ");
}
}
}
Aqui eu usei a sintáxe de criação de objetos da classe Thread que cria uma instância de ThreadStart nos bastidores, ou seja, forneci apenas o método a ser executado pela nova thread. Note também que uma chamada ao método Start() da thread não faz com que a thread seja executada imediatamente. Este método apenas torna a thread elegível para execução, ou seja, no estado "pronta" (Running). É o sistema operacional que determina quando a mesma será executada. |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como inserir uma substring em uma string em Java usando o método insert() da classe StringBufferQuantidade de visualizações: 1 vezes |
|
Nesta dica mostrarei como podemos usar o método insert() da classe StringBuffer da linguagem Java para inserir uma substring no início, meio ou final de uma string. Este método recebe o índice no qual queremos inserir a substring e a substring a ser inserida. Veja o código Java completo para o exemplo:
package estudos;
public class Estudos {
public static void main(String args[]) {
// vamos declarar um objeto da classe StringBuffer
StringBuffer frase = new StringBuffer("Programar em é bom demais");
System.out.println("A frase original é: " + frase);
// agora vamos inserir a palavra "Java" no índice 13
frase.insert(13, "Java ");
// e agora mostramos o resultado
System.out.println("O resultado é: " + frase);
}
}
Ao executar este código Java nós teremos o seguinte resultado: A frase original é: Programar em é bom demais O resultado é: Programar em Java é bom demais |
C ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular MDC em CQuantidade de visualizações: 24286 vezes |
|
Atualmente a definição de Máximo Divisor Comum (MDC) pode ser assim formalizada: Sejam a, b e c números inteiros não nulos, dizemos que c é um divisor comum de a e b se c divide a (escrevemos c|a) e c divide b (c|b). Chamaremos D(a,b) o conjunto de todos os divisores comum de a e b. O trecho de código abaixo mostra como calcular o MDC de dois números informados:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
// função que recebe dois inteiros e retorna
// o Máximo Divisor Comum dos dois
int MDC(int a, int b){
int resto;
while(b != 0){
resto = a % b;
a = b;
b = resto;
}
return a;
}
int main(int argc, char *argv[]){
int x, y;
setlocale(LC_ALL,""); // para acentos do português
printf("Este programa permite calcular o MDC\n");
printf("Informe o primeiro número: ");
scanf("%d", &x);
printf("Informe o segundo número: ");
scanf("%d", &y);
printf("O Máximo Divisor Comum de %d e %d é %d",
x, y, MDC(x, y));
printf("\n\n");
system("pause");
return 0;
}
Ao executar este código C nós teremos o seguinte resultado: Este programa permite calcular o MDC Informe o primeiro número: 12 Informe o segundo número: 9 O Máximo Divisor Comum de 12 e 9 é 3 |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de VisuAlg - Um algoritmo em VisuAlg que testa se um triângulo é equilátero, isósceles ou escalenoQuantidade de visualizações: 1391 vezes |
|
Pergunta/Tarefa: Escreva um algoritmo que lê três valores para os lados de um triângulo. O algoritmo deve verificar se o triângulo é equilátero (todos os lados iguais), isósceles (dois lados iguais) ou escaleno (todos os lados diferentes). Sua saída deverá ser parecida com: Informe o lado 1 do triângulo: 6 Informe o lado 2 do triângulo: 8 Informe o lado 3 do triângulo: 2 O triângulo é escaleno Veja a resolução deste algoritmo em VisuAlg:
Algoritmo "Testa se um triângulo é equilátero, escaleno ou isósceles"
Var
// variáveis usadas na resolução do problema
lado1, lado2, lado3: real
Inicio
// vamos ler os lados do triângulo
escreva("Informe o lado 1 do triângulo: ")
leia(lado1)
escreva("Informe o lado 2 do triângulo: ")
leia(lado2)
escreva("Informe o lado 3 do triângulo: ")
leia(lado3)
// vamos testar se o triângulo é equilátero
// os três lados iguais
se (lado1 = lado2) e (lado2 = lado3) entao
escreval("O triângulo é equilátaro.")
senao
// vamos testar se o triângulo é escaleno
// os três lados diferentes
se (lado1 <> lado2) e (lado1 <> lado3) e (lado2 <> lado3) entao
escreval("O triângulo é escaleno")
senao
// vamos testar se o triângulo é isósceles
// dois lados iguais e um diferente
se (lado1 = lado2) ou (lado1 = lado3) ou (lado2 = lado3) entao
escreval("O triângulo é isósceles")
fimse
fimse
fimse
Fimalgoritmo
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Lendo a idade de um nadador e classificando sua categoria como infantil, juvenil, adolescente, adulto ou sêniorQuantidade de visualizações: 4427 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que solicita a idade de um nadador e classifica sua categoria de acordo com as seguintes regras: a) De 5 a 7 anos - Infantil; b) De 8 a 10 anos - Juvenil; c) De 11 a 15 anos - Adolescente; d) De 16 a 30 anos - Adulto; e) Acima de 30 anos - Sênior. Sua saída deverá ser parecida com: Informe sua idade: 19 Sua categoria é Adulto Veja a resolução comentada deste exercício usando Java console:
package estudos;
import java.util.Scanner;
public class Exercicio {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos solicitar a idade do nadador
System.out.print("Informe sua idade: ");
int idade = Integer.parseInt(entrada.nextLine());
// vamos verificar a categoria do nadador
if((idade >= 5) && (idade <= 7)){
System.out.println("Sua categoria é Infantil");
}
else if((idade >= 8) && (idade <= 10)){
System.out.println("Sua categoria é Juvenil");
}
else if((idade >= 11) && (idade <= 15)){
System.out.println("Sua categoria é Adolescente");
}
else if((idade >= 16) && (idade <= 30)){
System.out.println("Sua categoria é Adulto");
}
else if(idade > 30){
System.out.println("Sua categoria é Sênior");
}
else{
System.out.println("Não pertence a nenhuma categoria.");
}
System.out.println("\n");
}
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
|
JavaScript - Como adicionar zeros (ou outro caractere) no início de uma string usando o método padStart() da linguagem JavaScript |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





