Você está aqui: Cards de Ética e Legislação Profissional |
||
|
||
|
|
||
Python ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar o laço while do Python - Python para iniciantesQuantidade de visualizações: 15742 vezes |
O laço while da linguagem Python permite executar um bloco de códigos repetidamente até que uma condição seja verdadeira. Opcionalmente, uma cláusula else pode ser usado com o while em Python (a parte else será executada mesmo que o corpo principal do laço não seja executado). Veja um exemplo:
# função principal do programa
def main():
numero = 0
while numero <= 10:
print(numero)
numero = numero + 1
else:
print("Terminei")
if __name__== "__main__":
main()
Ao executarmos este código Python nós teremos o seguinte resultado: 0 1 2 3 4 5 6 7 8 9 10 Terminei Veja um exemplo de um laço while que nunca será executado:
# função principal do programa
def main():
numero = 0
while numero > 10:
print(numero)
numero = numero + 1
if __name__== "__main__":
main()
E agora um exemplo de laço usando um valor booleano:
# função principal do programa
def main():
continuar = True
valor = 0
while continuar:
print(valor)
if valor > 5:
continuar = False
else:
valor = valor + 1
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: 0 1 2 3 4 5 6 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Contando de 1 até 20 e formatando a saída usando System.out.printf()Quantidade de visualizações: 11290 vezes |
|
Exercício Resolvido de Java - Contando de 1 até 20 e formatando a saída usando System.out.printf() Pergunta/Tarefa: Escreva um programa Java console que usa o laço for para contar de 1 até 20 e exibir estes valores no seguinte formato: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Dica: Use o operador de módulo % para determinar o momento da quebra de linha e o método System.out.printf() para formatar o valor a ser exibido de forma a adicionar a quantidade correta de espaços entre os valores. Resposta/Solução: Eis a solução para este exercício:
public static void main(String[] args){
// laço for que conta de 1 até 20
for(int i = 1; i <= 20; i++){
System.out.printf( "%2d ", i);
if(i % 5 == 0){
System.out.println();
}
}
}
O mais importante a considerar aqui é o uso do método System.out.printf() na linha: System.out.printf( "%2d ", i); Aqui nós estamos especificando a largura (width) do valor inteiro como dois dígitos. Desta forma, se o valor for menor que 10 (um dígito), um espaço extra será adicionado à esquerda. Se o valor for maior que 9 (dois dígitos) nada acontece. Finalmente, três espaços são adicionados à direita do valor. Veja agora a explicação sobre o uso do operador de módulo % para provocar a quebra de linha após o quinto valor de cada fileira: Aqui nós testamos se o valor atual da variável i é múltiplo de 5 (para ser múltiplo de 5, o resto da divisão inteira de valor por 5 deverá ser 0). Neste exemplo os valores que são múltiplos de 5 são: 5, 10, 15 e 20. Assim. logo após estes valores nós fazemos uma chamada à: System.out.println(); para provocar uma quebra de linha e iniciar uma nova fileira de valores. |
C++ ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI |
Programação MIDI usando C++ - Como usar um vetor de chars para construir uma mensagem MIDI e passá-lo para a função midiOutShortMsg() da API do WindowsQuantidade de visualizações: 2611 vezes |
|
Nas dicas dessa seção nós vimos como é possível enviar uma mensagem MIDI para o dispositivo de saída por meio da função midiOutShortMsg() da API do Windows. Essa função recebe um handle para o dispositivo de saída MIDI e um valor DWORD contendo a mensagem MIDI. Se você revisitar essas dicas, verá que na maioria delas nós informamos a mensagem MIDI diretamente no parâmetro da função (como um valor hexadecimal). Nesta dica mostrarei como é possível construir as mensagens MIDI usando seus valores individuais e, o que é melhor, usando valores decimais. Para isso nós vamos construir um vetor de char e informar os valores que compõem a mensagem. É importante observar que a função midiOutShortMsg() exige que a mensagem MIDI seja informada na ordem de bytes "little endian" ou seja, o status MIDI é informado no byte de ordem mais baixa. Isso é conseguido com um cast do vetor para um unsigned long. Veja o trecho de código: // vamos criar um vetor contendo os valores que compõem a mensagem MIDI unsigned char vetor[4]; vetor[0] = 144; // Note-on no Canal 1 vetor[1] = 40; // Nota Mi na 4ª oitava vetor[2] = 100; // Velocidade/volume da nota vetor[3] = 0; // Não é usado // e aqui é que acontece a mágica. Quando fazemos o cast do // vetor para o tipo long sem sinal, os valores são colocados em // little endian, justamente a ordem de bytes esperada pela // função midiOutShortMsg() unsigned long mensagem = *(unsigned long*)vetor; // envia a mensagem MIDI midiOutShortMsg(saida, mensagem); Note que não coloquei o código todo. Para completá-lo, veja outras dicas dessa seção. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Um método recursivo que recebe uma String e retorna a quantidade de letras maiúsculas encontradasQuantidade de visualizações: 6172 vezes |
|
Pergunta/Tarefa: Escreva um método recursivo que recebe uma palavra ou frase e retorna a quantidade de caracteres (letras) maiúsculos. Seu método deverá possuir a seguinte assinatura:
public static int contarMaiusculas(String frase){
// sua implementação aqui
}
Sua saída deverá ser parecida com: Digite uma palavra ou frase: Arquivo de Códigos A palavra ou frase contém 2 letras maiúsculas Veja a resolução comentada deste exercício usando Java console: Observação importante: Este código criará uma cadeia de chamadas recursivas. Cada chamada ao método contarMaiusculas() receberá uma cópia menor da palavra ou frase fornecida. Quando a última chamada recursiva do método receber uma string vazia, a cadeia começa a retornar. Note que os valores acumulados nas várias chamadas ao método vão sendo acumulados na variável quantidade.
package exercicio;
import java.util.Scanner;
public class Exercicio {
public static void main(String[] args) {
// cria um novo objeto da classe Scanner
Scanner entrada = new Scanner(System.in);
// solicita uma palavra ou frase ao usuário
System.out.print("Digite uma palavra ou frase: ");
// lê a palavra ou frase
String frase = entrada.nextLine();
int quantMaiusculas = contarMaiusculas(frase);
System.out.println("A palavra ou frase contém " + quantMaiusculas +
" letras maiúsculas");
}
// método recursivo que recebe uma palavra ou frase e retorna
// a quantidade de letras maiúsculas
public static int contarMaiusculas(String frase){
/* Este código criará uma cadeia de chamadas recursivas. Cada
* chamada ao método contarMaiusculas() receberá uma cópia menor
* da palavra ou frase fornecida. Quando a última chamada recursiva do
* método receber uma string vazia, a cadeia começa a retornar. Note
* que os valores acumulados nas várias chamadas ao método vão sendo
* acumulados na variável quantidade
*/
int quantidade = 0;
// o tamanho da string é maior que 0?
if(frase.length() > 0){
if(Character.isUpperCase(frase.charAt(0))){
quantidade = 1 + contarMaiusculas(frase.substring(1));
}
else{
quantidade = contarMaiusculas(frase.substring(1));
}
}
return quantidade;
}
}
|
C# ::: Dicas & Truques ::: Gráficos |
Como desenhar linhas em C# usando o método DrawLine() da classe Graphics - Computação Gráfica usando C#Quantidade de visualizações: 13556 vezes |
|
Uma das tarefas mais simples que realizamos quando estamos desenhando em C# é o desenho de linhas. Para isso usamos o método DrawLine() da classe Graphics. Este método recebe um objeto da classe Pen (representando a cor e espessura da caneta de desenho) e as coordenadas iniciais e finais da linha a ser desenhada. Veja um trecho de código no qual desenhamos uma linha na cor vermelha e com a espessura de dois pixels:
private void button1_Click(object sender, EventArgs e){
// vamos obter o Graphics do formulário
Graphics g = this.CreateGraphics();
// vamos desenhar uma linha na cor vermelha e com espessura
// de dois pixels
g.DrawLine(new Pen(Color.Red, 2), new Point(100, 150),
new Point(400, 450));
// vamos liberar o objeto Graphics
g.Dispose();
}
Execute este código e verá uma linha vermelha na vertical ser desenhada quando você clicar no botão. Aqui nós usamos dois objetos da classe Point. Um para as coordenadas iniciais (x = 100; y = 150) e outro para as coordenadas finais (x = 400; y = 450). É possível fornecer os valores das coordenadas diretamente. Veja: g.DrawLine(new Pen(Color.Red, 2), 100, 150, 400, 450); É possível também desenhar múltiplas linhas de uma só vez. Para isso podemos usar o método DrawLines(). Este método recebe um objeto da classe Pen e um array de objetos da classe Point representando as diversas coordenadas. Desta forma, todas as linhas serão conectadas. Veja um exemplo:
private void button1_Click(object sender, EventArgs e){
// vamos obter o Graphics do formulário
Graphics g = this.CreateGraphics();
// vamos criar várias coordenadas x e y
Point[] coordenadas = {new Point(15, 20), new Point(15, 300),
new Point(400, 300), new Point(400, 20), new Point(15, 20)};
// vamos desenhar todas as linhas conectadas usando a cor azul e a
// espessura de um pixel
g.DrawLines(new Pen(Color.Blue, 1), coordenadas);
// vamos liberar o objeto Graphics
g.Dispose();
}
Execute este código e clique no botão. Você verá um retângulo azul e com a espessura de 1 pixel ser desenhado no formulário. |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




