![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: C++ Básico |
Exercício Resolvido de C++ - Como ler um número inteiro e imprimir seu sucessor e seu antecessor em C++Quantidade de visualizações: 1742 vezes |
Pergunta/Tarefa: Escreva um programa C++ para ler um número inteiro e imprimir seu sucessor e seu antecessor. O usuário poderá informar um valor positivo ou negativo. Sua saída deverá ser parecida com: Informe um número inteiro: 16 O número informado foi: 16 O antecessor é 15 O sucessor é: 17 Veja a resolução comentada deste exercício usando C++: #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema int numero, sucessor, antecessor; // vamos pedir para o usuário informar um número inteiro cout << "Informe um número inteiro: "; cin >> numero; // vamos calcular o sucessor do número informado sucessor = numero + 1; // vamos calcular o antecessor do número informado antecessor = numero - 1; // e agora mostramos os resultados cout << "O número informado foi: " << numero << endl; cout << "O antecessor é " << antecessor << endl; cout << "O sucessor é: " << sucessor << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como inverter o conteúdo de uma string C# usando as funções ToCharArray() e Reverse()Quantidade de visualizações: 16164 vezes |
Nesta dica mostrarei como podemos tirar proveito do método ToCharArray() da classe String e do método Reverse() da classe Array do C# para inverter a ordem dos caracteres de uma palavra, frase ou texto. Note que criei um método InverterString() que recebe uma string e a devolve invertida. Veja o código completo para o exemplo: using System; namespace Estudos { class Program { static void Main(string[] args) { string frase = "Gosto de C# e Java"; Console.WriteLine("String original: " + frase); // inverte o conteúdo frase = InverterString(frase); Console.WriteLine("String invertida: " + frase); Console.WriteLine("Pressione uma tecla para sair..."); Console.ReadKey(); } static string InverterString(string str) { char[] arrChar = str.ToCharArray(); Array.Reverse(arrChar); string invertida = new String(arrChar); return invertida; } } } Ao executar este código nós teremos o seguinte resultado: String original: Gosto de C# e Java String invertida: avaJ e #C ed otsoG |
Delphi ::: Dicas & Truques ::: Recursão (Recursividade) |
Como calcular fatorial em Delphi usando recursividadeQuantidade de visualizações: 13250 vezes |
O fatorial de um determinado número, representado por n! equivale a multiplicar este número por seus antecessores. Assim, o fatorial de 4 (4!) pode ser calculado da seguinte forma: 4 x 3 x 2 x 1 = 24 Sempre que falamos de recursão, o cálculo de fatorial nos auxilia na exemplicação por ser relativamente fácil de se entender todas as etapas do processo. O código abaixo mostra uma função recursiva em Delphi que calcula o fatorial de qualquer número. Tenha cuidado. Calcular o fatorial de um número maior que 10 pode tornar sua máquina extremamente lenta, além de, muitas vezes, não retornar os resultados esperados. // função recursiva para calcular o fatorial // de um determinado número function fatorial(n: Integer): Integer; begin if n = 0 then Result := 1 else Result := n * fatorial(n - 1); end; // vamos chamar a função recursiva // a partir do Click de um botão procedure TForm1.Button1Click(Sender: TObject); var res: Integer; begin // vamos calcular o fatorial de 5 res := fatorial(5); // vamos mostrar o resultado ShowMessage('O fatorial de 5 é: ' + IntToStr(res)); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Como criar diretórios usando PHP - Como usar a função mkdir() da linguagem PHP para criar diretórios - RevisadaQuantidade de visualizações: 25235 vezes |
Diretórios podem ser criados com a função mkdir() do PHP. Esta função recebe o nome do diretório a ser criado, um modo que define as permissões de acesso ao diretório e um valor boolean que define se os diretórios fornecidos no primeiro parâmetro serão criados recursivamente. O valor padrão para o modo de acesso é 0777 (todos têm permissão de leitura, escrita e execução) e false para a criação de diretórios recursivamente. Veja um trecho de código no qual criamos um diretório no diretório public_html: <? // nome do diretório $diretorio = "/site/public_html/minhas_imagens"; // cria o diretório com a permissão 0777 if(mkdir($diretorio)) echo "Diretório criado com sucesso."; else echo "Não foi possível criar o diretório."; ?> Antes de criar um diretório, é preciso que você verifique se o diretório dentro do qual o novo diretório será criado apresenta as permissões adequadas, do contrário você terá a seguinte mensagem de erro: Warning: mkdir() [function.mkdir]: Permission denied in /site/public_html/testes.php on line 8 Não foi possível criar o diretório. Veja agora como criar um diretório contendo dois sub-diretórios recursivamente: <? // cria o diretório imagens contendo o subdiretório "fotos" // e este conterá o sub-diretório // "recentes" $diretorio = "/site/public_html/imagens/fotos/recentes"; // cria o diretório com a permissão 0777 if(mkdir($diretorio, 0777, true)) echo "Diretório criado com sucesso."; else echo "Não foi possível criar o diretório."; ?> Esta dica foi revisada, atualizada e testada com o PHP 8. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercícios Resolvidos de Java - Como escrever uma função Java que recebe dois números inteiros e retorna a soma desses dois valores como um inteiroQuantidade de visualizações: 9909 vezes |
Pergunta/Tarefa: Escreva um método estático em Java chamado somar() que recebe dois números inteiros e retorna a soma desses dois valores como um inteiro. Este método deverá ter a seguinte assinatura: public static int somar(int a, int b){ // sua implementação aqui } Sua saída deverá ser parecida com: Informe o primeiro número: 4 Informe o segundo número: 3 A soma dos dois números é: 7 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) { // vamos fazer a leitura usando a classe Scanner Scanner entrada = new Scanner(System.in); // vamos pedir ao usuário que informe dois valores inteiros System.out.print("Informe o primeiro número: "); int n1 = Integer.parseInt(entrada.nextLine()); System.out.print("Informe o segundo número: "); int n2 = Integer.parseInt(entrada.nextLine()); // vamos efetuar uma chamada ao método somar() e obter seu retorno int resultado = somar(n1, n2); // finalmente mostramos o resultado System.out.println("A soma dos dois números é: " + resultado); } // método estático que recebe dois inteiros e retorna a soma como um número inteiro public static int somar(int a, int b){ int soma = a + b; // soma os dois números return soma; // retorna a soma para o método chamado } } |
AutoCAD .NET API C# ::: Dicas & Truques ::: Linha, Linhas, Comando LINE |
Como selecionar uma linha no AutoCAD e mostrar a equação da reta correspondente usando AutoCAD .NET C# APIQuantidade de visualizações: 568 vezes |
Em algumas situações nós queremos posicionar pontos ou outros desenhos em cima de uma linha, ou seja, em cima de uma reta. Uma das melhores formas de fazer isso é obtendo a equação reduzida da reta e usar as coordenadas x e y correspondentes. Nesta dica eu mostro como isso pode ser feito usando a AutoCAD .NET C# API. O primeiro passo é pedir para o usuário selecionar a linha na área de desenho do AutoCAD usando doc.Editor.GetEntity(). Em seguida nós obtemos as coordenadas iniciais e finais da linha usando as propriedades StartPoint e EndPoint do objeto AcadLine. Para finalizar nós calculamos a equação reduzida da reta e exibimos o resultado. Fique atento ao código que calcula o coeficiente angular e linear da reta. Considere o caso em que o coeficiente angular ou linear é igual a 0. Veja o código AutoCAD .NET API C# completo para o exemplo: using System; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.EditorInput; [assembly: CommandClass(typeof(PluginEstudos.Class1))] namespace PluginEstudos { public class Class1 { [CommandMethod("estudos")] public void Estudos() { // vamos obter o documento atual Document doc = Application.DocumentManager.MdiActiveDocument; // vamos obter a base de dados Database db = doc.Database; // opções da seleção PromptEntityOptions opcoes = new PromptEntityOptions("\nSelecione uma linha: "); // obtemos o resultado da seleção PromptEntityResult resultado = doc.Editor.GetEntity(opcoes); // a seleção foi feita com sucesso if (resultado.Status != PromptStatus.OK) { Application.ShowAlertDialog("Nenhum elemento selecionado."); return; } // obtemos o id do objeto selecionado ObjectId id_objeto = resultado.ObjectId; // iniciamos uma transação using (Transaction trans = db.TransactionManager.StartTransaction()) { BlockTable tabela_blocos; BlockTableRecord reg_tabela_blocos; // obtemos a entidade selecionada Entity ent = trans.GetObject(id_objeto, OpenMode.ForWrite) as Entity; // a entidade selecionada é uma linha if (ent is Line) { Line linha = ent as Line; // vamos obter o ponto inicial da linha Point3d ponto_inicial = linha.StartPoint; // vamos obter o ponto final da linha Point3d ponto_final = linha.EndPoint; string sinal = "+"; // vamos calcular o coeficiente angular da reta Double m = (ponto_final.Y - ponto_inicial.Y) / (ponto_final.X - ponto_inicial.X); // vamos calcular o coeficiente linear double n = ponto_inicial.Y - (m * ponto_inicial.X); // coeficiente linear menor que zero? O sinal será negativo if (n < 0) { sinal = "-"; n = n * -1; } // abre o model space para escrita tabela_blocos = trans.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable; reg_tabela_blocos = trans.GetObject(tabela_blocos[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord; // vamos calcular as coordenadas x e y do ponto médio que // será usado para posicionar o texto double x = (ponto_inicial.X + ponto_final.X) / 2; double y = (ponto_inicial.Y + ponto_final.Y) / 2; // criamos um novo texto DBText texto = new DBText(); texto.TextString = "y = " + m.ToString("0.00") + "x" + " " + sinal + " " + n.ToString("0.00"); texto.SetDatabaseDefaults(); texto.Height = 5; texto.Position = new Point3d(x, y - texto.Height, 0); // adicionamos o texto no desenho reg_tabela_blocos.AppendEntity(texto); trans.AddNewlyCreatedDBObject(texto, true); } else { Application.ShowAlertDialog("Você não selecionou uma linha."); } // salvamos a transação trans.Commit(); } } } } Ao executar este código AutoCAD .NET C# API e selecionar uma linha nós teremos um resultado parecido com: Selecione uma linha [Usuário seleciona a linha] [Mostra a equação reduzida da reta como um texto posicionado no ponto médio da linha] Como forma de testar ainda mais o código, defina um valor para o x e experimente plotar um ponto na área de desenho do AutoCAD. Você verá que o ponto cai exatamente em cima da linha, ou seja, da reta que a representa. |
C# ::: Dicas & Truques ::: Data e Hora |
Como retornar o dia do mês da data atual em C# usando a propriedade Day da classe DateTimeQuantidade de visualizações: 66 vezes |
Em algumas situações nós precisamos obter o dia do mês de uma determinada data em C#. Para isso nós podemos acessar a propriedade Day da estrutura DateTime. Veja em seguida um trecho de código no qual mostramos o dia do mês da data atual: using System; namespace Estudos { class Program { static void Main(string[] args) { // vamos obter a data e hora atual DateTime agora = DateTime.Now; // agora vamos obter o dia da data int dia = agora.Day; // e mostramos o resultado Console.WriteLine("O dia do mês é: {0:D}", dia); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: O dia do mês é: 16 |
Python ::: Dicas & Truques ::: Lista (List) |
Como contar quantas vezes um elemento aparece em uma lista do Python usando a função count()Quantidade de visualizações: 8350 vezes |
Em várias situações nós precisamos contar as ocorrências de um item em uma List do Python, ou seja, queremos saber quantas vezes um determinado elemento aparece na lista. Para isso nós podemos usar a função count() do objeto List. Veja um código Python completo demonstrando seu uso: # função principal do programa def main(): # cria uma lista de inteiros valores = [2, 5, 12, 2, 3, 2, 17] # vamos mostrar o conteúdo dessa lista print("Conteúdo da lista: {0}".format(valores)) # verifica a quantidade de vezes que o # valor 2 aparece print("O valor 2 aparece", valores.count(2), "vezes") if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Conteúdo da lista: [2, 5, 12, 2, 3, 2, 17] O valor 2 aparece 3 vezes |
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: 9183 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; } |
C# ::: Coleções (Collections) ::: List<T> |
Como usar a classe genérica List<T> do C# em suas aplicaçõesQuantidade de visualizações: 15751 vezes |
A classe genérica List<T> da linguagem C# representa uma lista fortemente tipada de objetos que podem ser acessados por índices. Esta classe fornece métodos para pesquisar, ordenar e manipular seus elementos. Veja sua posição na hierarquia de classes da plataforma .NET:System.Object System.Collections.Generic.List<T> System.ServiceModel.Install.Configuration. ServiceModelConfigurationSectionCollection System.ServiceModel.Install.Configuration. ServiceModelConfigurationSectionGroupCollection System.Workflow.ComponentModel.ActivityCollection System.Workflow.Activities.WorkflowRoleCollection System.Workflow.Activities.OperationParameterInfoCollection System.Workflow.ComponentModel.Design. ActivityDesignerGlyphCollection System.Workflow.Runtime.Tracking.ExtractCollection System.Workflow.Runtime.Tracking.TrackingAnnotationCollection System.Workflow.Runtime.Tracking.TrackingConditionCollection System.Workflow.Runtime.Tracking.ActivityTrackingLocationCollection System.Workflow.Runtime.Tracking.UserTrackingLocationCollection System.Workflow.Runtime.Tracking.ActivityTrackPointCollection System.Workflow.Runtime.Tracking.UserTrackPointCollection System.Workflow.Runtime.Tracking.WorkflowTrackPointCollection Esta classe implementa também as interfaces IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection e IEnumerable. A classe List<T> é a equivalente genérica da classe ArrayList. Ela implementa a interface genérica IList<T> usando um array (matriz) cujo tamanho é dinamicamente aumentado de acordo com a necessidade. Esta classe usa tanto um comparador de igualdade quanto um de ordenação. Os métodos tais como Contains(), IndexOf(), LastIndexOf() e Remove() usam um comparador de igualdade para os elementos da lista. O comparador de igualdade padrão para o tipo T é definido segundo as seguintes regras: Se o tipo T implementar a interface genérica IEquatable<T>, então o comparador de igualdade é o método Equals(T) dessa interface. Caso contrário, o comparador de igualdade padrão é Object.Equals(Object). Os métodos tais como BinarySearch() e Sort() usam um comparador de ordenação para os elementos da lista. O comparador padrão para o tipo T é definido da seguinte forma: Se o tipo T implementar a interface genérica IComparable<T>, então o comparador padrão é o método CompareTo(T) dessa interface. Caso contrário, se o tipo T implementar a interface não-genérica IComparable, então o comparador padrão é o método CompareTo(Object) dessa interface. Se o tipo T não implementar nenhuma destas duas interfaces, então não haverá comparador padrão, e um comparador ou delegate de comparação deve ser fornecido explicitamente. Uma lista List<T> não fornece garantias quanto à sua ordenação. Devemos ordená-la por conta própria antes de efetuar algumas operações (tais como BinarySearch) que exigem que a List<T> esteja ordenada. Os elementos em uma coleção do tipo List<T> podem ser acessados usando índices (que começam a partir de 0). Uma List<T> aceita o valor null como valor válido para tipos referência e aceita elementos duplicados. Em relação à performance, a documentação do .NET afirma que, embora List<T> e ArrayList possuam funcionalidade semelhante, a classe List<T> possui uma performance melhor na maioria dos casos, além de ser type safe (oferece segurança de tipos). Veja um trecho de código no qual criamos uma List<T> de inteiros, inserimos alguns valores e usamos o laço foreach para percorrer a lista e exibir os valores dos elementos: static void Main(string[] args){ // vamos criar um objeto da classe List<T> List<int> valores = new List<int>(); // vamos inserir três valores na lista valores.Add(5); valores.Add(2); valores.Add(9); // vamos usar o laço foreach para percorrer os elementos // na lista foreach(int v in valores){ Console.WriteLine(v); } // vamos pausar a execução Console.ReadKey(); } |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
JavaScript - Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em JavaScript Delphi - Como selecionar um item de uma ListBox do Delphi em tempo de execução usando a propriedade ItemIndex Excel - Como converter graus em radianos no Excel usando a função RADIANOS() - Trigonometria no Excel |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |