![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
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 - Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior delesQuantidade de visualizações: 995 vezes |
|
Pergunta/Tarefa: Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles. Esse programa deve possuir uma função para verificar qual é o maior número. Atenção: seu código deverá assegurar que os dois números informados pelo usuário sejam diferentes. Exiba uma mensagem na tela caso isso acontecer. Sua saída deverá ser parecida com: Informe o primeiro número inteiro: 6 Informe o segundo número inteiro: 3 O maior número é: 6 Veja a resolução comentada deste exercício em C:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
// protótipo da função que receberá dois números inteiros
// e retornará o maior deles
int maior_numero(int num1, int num2);
// função principal do programa
int main(int argc, char *argv[]){
setlocale(LC_ALL,""); // para acentos do português
// variáveis usadas na resolução do problema
int num1, num2, maior;
// vamos pedir para o usuário informar os dois números
printf("Informe o primeiro número inteiro: ");
scanf("%d", &num1);
printf("Informe o segundo número inteiro: ");
scanf("%d", &num2);
// os números são iguais?
if(num1 == num2){
printf("Erro. Os dois números são iguais.");
}
else{
// vamos chamar a função para obter o número maior
maior = maior_numero(num1, num2);
printf("O maior número é: %d", maior);
}
printf("\n\n");
system("PAUSE");
return 0;
}
// função que receberá dois números inteiros e retornará
// o maior deles
int maior_numero(int num1, int num2){
// o primeiro número é maior que o segundo?
if(num1 > num2){
return num1;
}
else{
return num2;
}
}
|
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes) |
Como repetir os elementos de um vetor ou matriz usando a função repeat() da NumPy do PythonQuantidade de visualizações: 1415 vezes |
|
A função repeat() da biblioteca NumPy do Python é usada quando queremos repetir os elementos de um vetor ou matriz um determinado número de vezes. Em sua forma mais simples esta função pede um array e um número inteiro indicando a quantidade de repetições. Veja o código Python completo para o exemplo:
# vamos importar a biblioteca NumPy
import numpy as np
def main():
# vamos criar um vetor contendo 5 elementos
vetor = np.array([5, 3, 9, 1, 4])
# agora vamos aplicar a função repeat() a este vetor
novo_vetor = np.repeat(vetor, 3)
# vamos mostrar o resultado
print("O vetor original é: {0}".format(vetor))
print("O novo vetor é: {0}".format(novo_vetor))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: O vetor original é: [5 3 9 1 4] O novo vetor é: [5 5 5 3 3 3 9 9 9 1 1 1 4 4 4] Veja agora o efeito desta função em uma matriz de 2 linhas por 3 colunas:
# vamos importar a biblioteca NumPy
import numpy as np
def main():
# vamos criar uma matriz de 2 linhas e 3 colunas
matriz = np.array([(1, 2, 3), (4, 5, 6)])
# agora vamos aplicar a função repeat() a esta matriz
nova_matriz = np.repeat(matriz, 3, 0)
# vamos mostrar o resultado
print("A matriz original é:\n\n{0}".format(matriz))
print("A nova matriz é:\n\n{0}".format(nova_matriz))
if __name__== "__main__":
main()
Note que informei o valor 0 para o terceiro parâmetro da função repeat(). Isso faz com que os elementos da matriz sejam repetidos no eixo x. Veja: A matriz original é: [[1 2 3] [4 5 6]] A nova matriz é: [[1 2 3] [1 2 3] [1 2 3] [4 5 6] [4 5 6] [4 5 6]] Se trocarmos o valor 0 por 1, o resultado será: A matriz original é: [[1 2 3] [4 5 6]] A nova matriz é: [[1 1 1 2 2 2 3 3 3] [4 4 4 5 5 5 6 6 6]] |
C++ ::: STL (Standard Template Library) ::: Vector C++ |
Como criar um vector de inteiros em C++ e inserir elementos usando a função push_back()Quantidade de visualizações: 8097 vezes |
|
Este exemplo mostra como declarar um objeto da classe container vector da STL (Standard Template Library), inserir alguns inteiros usando a função push_back() e percorrê-los usando um iterador. Veja o código completo:
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char *argv[]){
// um vector vazio que conterá inteiros
vector<int> valores;
// vamos inserir três elementos
valores.push_back(54);
valores.push_back(13);
valores.push_back(87);
// vamos percorrer o vector e exibir os elementos
vector<int>::iterator it;
for(it = valores.begin(); it < valores.end(); it++){
cout << *it << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: 54 13 87 |
Delphi ::: Dicas & Truques ::: Rotinas de Conversão |
Como converter uma string em um valor numérico de ponto-flutuante (com parte fracionária) em Delphi usando as funções StrToFloat(), TryStrToFloat() e StrToFloatDef()Quantidade de visualizações: 25892 vezes |
|
Em algumas situações precisamos converter strings em valores numéricos do tipo ponto-flutuante, ou seja, números que contenham uma parte fracionária. Isso acontece quando recebemos valores de caixas de texto e precisamos usuá-los em cálculos. Vamos começar com a função StrToFloat() da unit SysUtils. Esta função recebe uma string representando um valor de ponto-flutuante válido e retorna um valor de ponto-flutuante. Veja o exemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
valor1, valor2, soma: Double;
begin
// vamos receber as strings dos TEdits e converter
// seus valores para números de ponto-flutuante
// note que em Delphi, um valor de ponto-flutuante
// é informado em caixas de texto usando vírgula. Ex: 7,3
valor1 := StrToFloat(Edit1.Text);
valor2 := StrToFloat(Edit2.Text);
// vamos obter a soma dos dois valores
soma := valor1 + valor2;
// vamos exibir o resultado. Note o uso de FloatToStr() para
// converter o valor fracionário em string
ShowMessage('A soma é: ' + FloatToStr(soma));
end;
Note que, se a string sendo convertida possuir um valor de ponto-flutuante inválido, uma exceção do tipo EConvertError será lançada. Podemos evitar isso usando a função TryStrToFloat(). Esta função recebe dois argumentos: a string a ser convertida e a variável do tipo Extended, Double ou Single que receberá o valor. O resultado será true se a conversão for feita com sucesso e false em caso contrário. Veja:
procedure TForm1.Button1Click(Sender: TObject);
var
valor: Double;
begin
// vamos tentar converter o valor da caixa de texto
// em um valor de ponto-flutuante
if TryStrToFloat(Edit1.Text, valor) then
ShowMessage('Conversão efetuada com sucesso.')
else
ShowMessage('Erro na conversão');
end;
Há ainda uma terceira possibilidade: usar a função StrToFloatDef(). Esta função funciona exatamente da mesma forma que StrToFloat(), exceto que agora, se houver um erro de conversão, um valor de ponto-flutuante padrão será retornado. Veja: procedure TForm1.Button1Click(Sender: TObject); var valor: Double; begin // vamos converter o valor da caixa de texto // em um valor de ponto-flutuante. Se a conversão não puder // ser feita o valor 10,50 será atribuído à varial valor valor := StrToFloatDef(Edit1.Text, 10.50); // vamos exibir o resultado ShowMessage(FloatToStr(valor)); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
Exercício Resolvido de Java - Crie uma classe Agenda que pode armazenar 10 pessoas e que seja capaz de realizar as seguintes operaçõesQuantidade de visualizações: 6758 vezes |
|
Exercícios Resolvidos de Java - Crie uma classe Agenda que pode armazenar 10 pessoas e que seja capaz de realizar as seguintes operações Pergunta/Tarefa: Crie uma classe Agenda que pode armazenar 10 pessoas e que seja capaz de realizar as seguintes operações: void armazenaPessoa(String nome, int idade, float altura); void removePessoa(String nome); int buscaPessoa(String nome); // informa em que posição da agenda está a pessoa void imprimeAgenda(); // imprime os dados de todas as pessoas da agenda void imprimePessoa(int index); // imprime os dados da pessoa que está na posição "i" da agenda. O código deverá ser desenvolvido em Java console (modo texto) e usar um menu switch() para as operações. Sua saída deverá ser parecida com: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: Código para a classe Pessoa (Pessoa.java):
package arquivodecodigos;
public class Pessoa {
private String nome;
private int idade;
private double altura;
// construtor cheio
public Pessoa(String nome, int idade, double altura) {
this.nome = nome;
this.idade = idade;
this.altura = altura;
}
// construtor vazio
public Pessoa() {
}
// método que imprime todos os dados da pessoa
public void imprimirDados(){
System.out.println("Nome: " + nome + "\nIdade: " +
idade + "\nAltura: " + altura);
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
public double getAltura() {
return altura;
}
public void setAltura(double altura) {
this.altura = altura;
}
}
Código para a classe Agenda (Agenda.java):
package arquivodecodigos;
public class Agenda {
// vetor que guardará as pessoas
private Pessoa pessoas[];
// construtor da classe Agenda
public Agenda(int quantidade){
pessoas = new Pessoa[quantidade];
}
public void armazenaPessoa(String nome, int idade, double altura){
// ainda temos posições disponíveis na agenda?
boolean cadastrado = false;
for(int i = 0; i < pessoas.length; i++){
if(pessoas[i] == null){
// encontramos uma posição
Pessoa p = new Pessoa(nome, idade, altura); // criamos uma nova pessoa
// guardamos ela no vetor
pessoas[i] = p;
// e avisamos que o cadastro foi efetuado com sucesso
cadastrado = true;
break; // sai do laço
}
}
if(cadastrado){
System.out.println("\nCadastro efetuado com sucesso");
}
else{
System.out.println("\nNão foi possível cadastrar. Agenda cheia");
}
}
// método que permite pesquisar e excluir uma pessoa
public void removePessoa(String nome){
// vamos verificar se a exclusão foi efetuada com sucesso
boolean excluido = false;
for(int i = 0; i < pessoas.length; i++){
if(pessoas[i] != null){
// esta é a pessoa que estamos procurando?
if(pessoas[i].getNome().equals(nome)){
pessoas[i] = null; // posição disponível novamente
excluido = true;
break; // sai do laço
}
}
}
if(excluido){
System.out.println("\nPessoa removida com sucesso");
}
else{
System.out.println("\nNão foi possível remover. Pessoa não encontrada.");
}
}
// informa em que posição da agenda está a pessoa
public int buscaPessoa(String nome){
int resultado = -1;
// vamos verificar se a pessoa existe na agenda
for(int i = 0; i < pessoas.length; i++){
if(pessoas[i] != null){
// esta é a pessoa que estamos procurando?
if(pessoas[i].getNome().equals(nome)){
resultado = i;
break; // sai do laço
}
}
}
return resultado;
}
// imprime os dados de todas as pessoas da agenda
public void imprimeAgenda(){
// vamos percorrer o vetor de pessoas e imprimir cada uma
for(int i = 0; i < pessoas.length; i++){
if(pessoas[i] != null){
Pessoa p = pessoas[i];
System.out.println("\nNome: " + p.getNome());
System.out.println("Idade: " + p.getIdade());
System.out.println("Altura: " + p.getAltura());
}
}
}
// imprime os dados da pessoa que está na posição "i" da agenda
public void imprimePessoa(int index){
// este índice é válido?
if((index < 0) || (index > (pessoas.length - 1))){
System.out.println("\nÍndice inválido");
}
else{
Pessoa p = pessoas[index];
if(p == null){
System.out.println("\nNão existe pessoa nesse índice ainda.");
}
else{
System.out.println("\nNome: " + p.getNome());
System.out.println("Idade: " + p.getIdade());
System.out.println("Altura: " + p.getAltura());
}
}
}
}
Código para a classe Principal (Principal.java):
package arquivodecodigos;
import java.util.Scanner;
public class Principal {
// para fazer a leitura da entrada do usuário
static Scanner entrada = new Scanner(System.in);
public static void main(String[] args) {
// cria uma nova Agenda
Agenda agenda = new Agenda(10);
String nome; // nome da pessoa
int idade; // idade da pessoa
double altura; // altura da pessoa
// cria o menu de opções
while(true){
System.out.println("\n1. Nova Pessoa");
System.out.println("2. Excluir Pessoa");
System.out.println("3. Buscar Pessoa");
System.out.println("4. Imprimir Agenda");
System.out.println("5. Imprimir Pessoa (Índice)");
System.out.println("6. Sair");
System.out.print("Sua opção: ");
int opcao = Integer.parseInt(entrada.nextLine());
switch(opcao){
case 1:
System.out.print("\nInforme o nome: ");
nome = entrada.nextLine();
System.out.print("Informe a idade: ");
idade = Integer.parseInt(entrada.nextLine());
System.out.print("Informe a altura (use ponto em vez de vírgula): ");
altura = Double.parseDouble(entrada.nextLine());
agenda.armazenaPessoa(nome, idade, altura);
break;
case 2:
System.out.print("\nInforme o nome a ser removido: ");
nome = entrada.nextLine();
agenda.removePessoa(nome);
break;
case 3:
System.out.print("\nInforme o nome a ser pesquisado: ");
nome = entrada.nextLine();
int indice = agenda.buscaPessoa(nome);
if(indice < 0){
System.out.println("\nA pessoa não foi encontrada");
}
else{
System.out.println("\nA pessoa foi encontrada no índice: "
+ indice);
}
break;
case 4:
agenda.imprimeAgenda();
break;
case 5:
System.out.print("\nInforme o índice desejado: ");
int index = Integer.parseInt(entrada.nextLine());
agenda.imprimePessoa(index);
break;
case 6:
System.exit(0);
default:
System.out.println("\nOpção inválida\n");
break;
}
}
}
}
|
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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





