Você está aqui: Cards de Python |
||
|
||
|
|
||
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de C++ - Uma função C++ que recebe um valor inteiro e informa se o mesmo é um número primoQuantidade de visualizações: 9320 vezes |
|
Exercícios Resolvidos de C++ - Uma função C++ que recebe um valor inteiro e informa se o mesmo é um número primo Pergunta/Tarefa: Um inteiro é um número primo se ele for divisível somente por 1 e por ele mesmo. Assim, 2, 3, 5 e 7 são primos, enquanto 4, 6, 8 e 9 não são. Escreva uma função C++ que recebe um valor inteiro e informe se o mesmo é um número primo. Você deverá usar a seguinte assinatura para a função:
bool primo(int valor){
// implementação aqui
}
Informe um valor inteiro: 7 O numero informado é primo Veja a resolução comentada deste exercício em C++:
#include <cstdlib>
#include <iostream>
using namespace std;
// protótipo da função primo()
bool primo(int);
int main(int argc, char *argv[]){
int numero;
setlocale(LC_ALL,""); // para acentos do português
cout << "Informe um valor inteiro: ";
cin >> numero;
// vamos verificar se o valor informado é um número primo
if(primo(numero)){
cout << "O numero informado é primo\n" << endl;
}
else{
cout << "O numero informado NÃO é primo\n" << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
bool primo(int valor){
// se o valor fornecido for 7, a variável i do laço contará
// de 2 até 7 / 2 (divisão inteira), ou seja, 3. Se o
// módulo de 7 por qualquer um dos valores neste intervalo
// for igual a 0, então o número não é primo
for(int i = 2; i <= (valor / 2); i++){
if(valor % i == 0){
return false; // não é primo
}
}
return true;
}
|
Java ::: Pacote java.lang ::: String |
Como comparar strings em Java usando os métodos compareTo() e compareToIgnoreCase() da classe StringQuantidade de visualizações: 9183 vezes |
|
Em algumas situações precisamos efetuar comparação léxica de strings, ou seja, verificar se uma palavra ou frase é "igual, ""maior" ou "menor" que outra. Isso pode ser feito por meio do uso dos métodos compareTo() e compareToIgnoreCase() da classe String (definidos originalmente na interface Comparable<String>). Veja a assinatura do método compareTo(): public int compareTo(String anotherString) O retorno do método é 0 se a duas strings são iguais. O retorno será menor que 0 se a string na qual o método está sendo chamado for menor que a string passada como argumento. O retorno será maior que 0 se a string na qual o método está sendo chamado for maior que a string passada como argumento. Veja um exemplo de comparação léxica de duas strings:
public class Main {
public static void main(String[] args) {
// vamos declarar duas strings
String nome1 = "Márcio";
String nome2 = "Márcia";
// vamos comparar as duas strings lexicamente
if(nome1.compareTo(nome2) == 0){
System.out.println("As strings são iguais");
}
else if(nome1.compareTo(nome2) > 0){
System.out.println("A primeira string é maior que a segunda");
}
else{
System.out.println("A primeira string é menor que a segunda");
}
}
}
Ao executarmos este código teremos o seguinte resultado: A primeira string é maior que a segunda A funcionalidade fornecida pelo método compareToIgnoreCase() é semelhante à aquela do método compareTo(). A diferenção é que, quando usamos compareToIgnoreCase(), o método não diferencia letras maiúsculas de letras minúsculas. A comparação efetuada pelos métodos compareTo() e compareToIgnoreCase() é baseada no valor Unicode de cada caractere na string. A sequencia de caracteres representada pelo objeto String é comparada lexicamente com a sequencia de caracteres representada pela string fornecida como argumento. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
Exercício Resolvido de Java - Escreva um programa Java que pede um número inteiro e informa se o número informado é um número de ArmstrongQuantidade de visualizações: 1365 vezes |
|
Pergunta/Tarefa: Um número é chamado de número de Armstrong quando a soma de cada um dos seus dígitos, elevado à quantidade de dígitos do número, equivale ao próprio número. Por exemplo, 153 e 93084 são números de Armstrong, já que: 153 = 13 + 53 + 33 93084 = 95 + 35 + 05 + 85 + 45 Escreva um programa Java que pede para o usuário informar um número inteiro e informa se o número informado é um número de Armstrong ou não. Seu código deve usar apenas os operadores matemáticos disponíveis na linguagem Java. Sua saída deverá ser parecida com: Informe um número inteiro: 153 O número informado é um número de Armstrong Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String args[]){
// para efetuar a leitura da entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos pedir para o usuário informar um número
System.out.print("Informe um número inteiro: ");
int numero = Integer.parseInt(entrada.nextLine());
// o primeiro passo é obter a quantidade de dígitos que o número informado
// possui
int quant_digitos = 0;
int temp = numero;
while(temp != 0) {
quant_digitos = quant_digitos + 1;
temp = temp / 10;
}
// agora efetuamos o cálculo que verifica se o número é um número
// de Armstrong ou não
int resto, soma = 0;
temp = numero;
while(temp > 0){
resto = temp % 10;
soma = soma + (int)(Math.pow(resto, quant_digitos));
temp = temp / 10;
}
if(soma == numero){
System.out.println("O número informado é um número de Armstrong");
}
else{
System.out.println("O número informado não é um número de Armstrong");
}
}
}
|
Delphi ::: VCL - Visual Component Library ::: TEdit |
Como habilitar ou desabilitar um TEdit do Delphi usando a função EnableWindow() da API do WindowsQuantidade de visualizações: 12010 vezes |
|
Embora o Delphi já nos forneça as ferramentas necessárias para habilitar ou desabilitar um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função EnableWindow() com os valores true ou false. A função EnableWindow() possui a seguinte assinatura em C/C++: BOOL EnableWindow( HWND hWnd, BOOL bEnable ); No arquivo Windows.pas podemos encontrar o protótipo e corpo desta função convertidos para Object Pascal:
// Protótipo
{$EXTERNALSYM EnableWindow}
function EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL; stdcall;
// Implementação
function EnableWindow; external user32 name 'EnableWindow';
Note que precisamos informar o HWND (parâmetro hWnd) para a caixa de texto e um valor BOOL. Se fornecermos false, a caixa de texto será desabilitada. Veja:
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos desabilitar o TEdit usando a função EnableWindow()
// com o valor false
if EnableWindow(Edit1.Handle, False) = True then
begin
ShowMessage('A caixa de texto foi desabilitada com sucesso.');
end;
end;
Para habilitar a caixa de texto novamente, só precisamos fornecer o valor true para o parâmetro bEnable:
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos habilitar o TEdit usando a função EnableWindow()
// com o valor true
if EnableWindow(Edit1.Handle, True) = True then
begin
ShowMessage('A caixa de texto foi habilitada com sucesso.');
end;
end;
É importante observar que o retorno da função EnableWindow será False se tentarmos habilitar uma caixa de texto que já está habilitada ou tentarmos desabilitar uma caixa de texto que já está desabilitada. |
C ::: Dicas & Truques ::: Rotinas de Conversão |
Como converter uma string em um valor de ponto-flutuante usando a função atof() da linguagem CQuantidade de visualizações: 9422 vezes |
|
Em algumas situações, pode ser necessário converter uma string em um valor numérico de ponto-flutuante. Para isso podemos usar a função atof(). Esta função recebe uma matriz de caracteres e tenta transformá-la em um valor de ponto-flutuante. Se a conversão não for possível, o valor 0 é retornado. Os sinais "+" e "-", o ponto decimal e uma parte exponencial, representada por "e" ou "E" são válidos na string a ser convertida. Veja um exemplo:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// valor de ponto-flutuante em forma de string
char valor_str[] = "34.5";
// A linha abaixo causa um comportamento estranho
//float res = 10 + valor_str;
// temos que converter a string em um valor de ponto-flutuante válido
float res = 10 + atof(valor_str);
printf("O resultado e: %f", res);
puts("\n");
system("pause");
return 0;
}
|
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
|
Python - Exercícios Resolvidos de Python - Como testar se um número é potência de dois usando Python |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





