Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: JavaScript ::: Dicas & Truques ::: Miscelâneas

Como adicionar um método isPar() ao objeto Number do JavaScript que indicará se um número é par ou impar

Quantidade de visualizações: 7243 vezes
Nesta dica mostrarei como é possível adicionar uma função isPar() ao objeto Number da linguagem JavaScript por meio do objeto prototype. Nossa função aceitará um valor numérico e retornará true se o valor for par, e false em caso contrário.

Veja o código completo para o exemplo:

<html>
<head>
  <title>Estudos JavaScript</title>
</head>
 
<body>

<script type="text/javascript">
  // vamos adicionar uma nova função ao objeto Number
  Number.prototype.isPar = function(){
    // retorna true se o número for par
    return (this % 2 == 0);
  }

  // agora vamos testar a nova função isPar()
......


Ao executar este código JavaScript nós teremos o seguinte resultado:

O número informado NÃO é par.

Link para compartilhar na Internet ou com seus amigos:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios e Algorítmos Resolvidos de Java - Programa Java para somar os elementos da diagonal secundária de uma matriz

Quantidade de visualizações: 8967 vezes
Pergunta/Tarefa:

Em álgebra linear, a diagonal secundária de uma matriz A é a coleção das entradas Aij em que i + j é igual a n + 1 (onde n é a ordem da matriz). A diagonal secundária de uma matriz quadrada une o seu canto inferior esquerdo ao canto superior direito (conforme mostrado na saída do problema proposto abaixo).

Escreva um programa (algorítmo) Java que declara uma matriz 3x3 e pede ao usuário para informar seus valores. Em seguida mostre todos os valores da matriz e a soma dos elementos da diagonal secundária.

Sua saída deverá ser parecida com a imagem abaixo:

Informe o valor para a linha 0 e coluna 0: 5
Informe o valor para a linha 0 e coluna 1: 2
Informe o valor para a linha 0 e coluna 2: 7
Informe o valor para a linha 1 e coluna 0: 5
Informe o valor para a linha 1 e coluna 1: 3
Informe o valor para a linha 1 e coluna 2: 12
Informe o valor para a linha 2 e coluna 0: 4
Informe o valor para a linha 2 e coluna 1: 10
Informe o valor para a linha 2 e coluna 2: 1

    5     2     7 
    5     3    12 
    4    10     1 

A soma dos elementos da diagonal secundária é: 14
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

package exercicios;

import java.util.Scanner;

public class Exercicios {
  public static void main(String[] args) {
    // vamos fazer a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // vamos declarar e construir uma matriz de três linhas e
    // três colunas
    int matriz[][] = new int[3][3];
    int soma_diagonal = 0; // guarda a soma dos elementos na
    // diagonal secundária
    
    // vamos ler os valores para os elementos da matriz
    for(int i = 0; i < matriz.length; i++){ // linhas
      for(int j = 0; j < matriz[0].length; j++){ // colunas
        System.out.print("Informe o valor para a linha " + i 
          + " e coluna " + j + ": ");
        matriz[i][j] = Integer.parseInt(entrada.nextLine());       
      }       
    }
    
    // vamos mostrar a matriz da forma que ela foi informada
......



C# ::: Coleções (Collections) ::: List<T>

Como pesquisar um elemento em uma lista do C# usando a função Find() e um Predicate

Quantidade de visualizações: 14615 vezes
Em algumas situações gostaríamos de pesquisar e retornar o primeiro elemento de uma List<T> que obedece a algum critério de busca. Assim, poderíamos, por exemplo, pesquisar um nome que começa com uma determinada palavra ou um preço de produto maior ou igual a um determinado valor.

Para tais situações podemos usar o método Find(). Este método possui a seguinte assinatura:

public T Find(
  Predicate<T> match
......


Veja que o método pede um delegate do tipo Predicate<T> que define as condições para a pesquisa do elemento. Se o elemento for encontrado, este é retornado. Caso contrário, o valor padrão para T é retornado (null para referências).

Veja um trecho de código no qual eu mostro como usar o método Find() em combinação com um método personalizado que permite usar um delegate anônimo. Desta forma conseguimos fornecer, em tempo de execução, o argumento para o parâmetro match do Predicate:

static void Main(string[] args){
  // vamos criar um objeto da classe List<T>
  List<string> nomes = new List<string>();

  // vamos inserir quatro valores na lista
  nomes.Add("Osmar J. Silva");
  nomes.Add("Salvador Miranda de Andrade");
  nomes.Add("Dyego Fernandes de Souza");
  nomes.Add("Marcos de Paula Rocha");
  
  // vamos pesquisar um valor na lista usando um método personalizado
  // Neste exemplo vamos retornar o primeiro nome que contenha a palavra
  // "Dyego"
  string nome = encontrar(nomes, "Dyego");

  // vamos verificar se o nome foi encontrado
  if(nome != null){
    // foi encontrado....vamos retornar o resultado
    Console.WriteLine(nome);
......


O método Find() executa uma busca linear. Assim, este método é uma operação O(n), onde n é a quantidade de elementos na lista.


C ::: Dicas & Truques ::: Strings e Caracteres

Como copiar os caracteres de uma string para outra usando a função strcpy() da linguagem C

Quantidade de visualizações: 12535 vezes
Pessoas acostumadas com Delphi, Java ou PHP podem pensar que a tarefa de copiar o conteúdo de uma string para outra em C pode ser tão simples quanto o código a seguir:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[]){
  char frase1[] = "Gosto de PHP";
  char frase2[50]; // pode receber até 49 caracteres
......


Este código não funciona. No Dev-C++ (MingW) a seguinte mensagem de erro de compilação é exibida:

incompatible types in assignment 
......


Em C, a forma correta de copiar os caracteres de uma string para outra é obtendo ponteiros para a posição inicial das duas strings, percorrer todos os caracteres da primeira e atribuí-los um de cada vez nas posições de memória reservadas para a segunda string. Veja o protótipo da função strcpy(), usada para tal finalidade:

char *strcpy(char *destino, const char *origem);
......


Como podemos ver, a função copiará todos os caracteres contidos na string origem para a string destino. É importante observar que a string destino deverá ser declarada de forma que todos os caracteres a serem copiados possam ser acomodados sem que o programa corra o risco de escrever em áreas de memória reservadas a outras finalidades. Veja um exemplo completo:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[]){
  char frase1[] = "Gosto de PHP";
  char frase2[50]; // pode receber até 50 caracteres
......



C# ::: Dicas & Truques ::: Strings e Caracteres

Como transformar uma string em um array de caracteres em C# usando o método ToCharArray()

Quantidade de visualizações: 13363 vezes
O método ToCharArray() da classe String da linguagem C# permite retornar um array de char contendo todos os caracteres presente na string original. Podemos tirar proveito disso para manipular os caracteres individuais de uma palavra, frase ou texto.

Veja um código C# completo no qual demonstramos o seu uso:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto de C#";
      Console.WriteLine("String original: " + frase);

      // obtém um array de caracteres a partir da string
      char[] letras = frase.ToCharArray();
......


Ao executar este código C# nós teremos o seguinte resultado:

String original: Gosto de C#
G
o
s
t
o

d
e

C
#


Lisp ::: Dicas & Truques ::: Passos Iniciais

O que é Lisp e como escrever seu primeiro programa nessa linguagem de programação

Quantidade de visualizações: 1067 vezes
O que é Common Lisp?

A linguagem de programação ANSI Common Lisp, ou simplesmente Common Lisp, é uma implementação específica da linguagem de programação Lisp multi-paradigma que suporta programação funcional e procedural.

Sua especificação foi criada por Guy L. Steele nos anos 1980 a partir da linguagem Lisp com o intuito de combinar aspectos de diversos dialetos Lisp anteriores, incluindo Scheme. Foi proposto inicialmente o nome de "Standard Lisp" para a linguagem, mas em virtude de um dialeto Lisp já existir com este nome, se buscou um nome similar, resultando no nome "Common Lisp".

Em 1994 foi publicada no padrão ANSI Information Technology - Programming Language - Common Lisp, registro X3.226-1994 (R1999). É bem maior e semanticamente mais complexa que Scheme uma vez que foi projetada para ser uma linguagem comercial e ser compatível com os diversos dialetos Lisp dos quais derivou.

Como baixar, instalar e testar a Common Lisp no Windows?

Embora exista uma quantidade enorme de compiladores Lisp disponíveis atualmente, minha pesquisa recaiu sobre o Steel Bank Common Lisp (SBCL), que pode ser baixado no endereço http://www.sbcl.org. No meu Windows 10 eu baixei o instalador sbcl-2.2.3-x86-64-windows-binary.msi, com o tamanho de 11.7Mb.

Finalizada a instalação, vamos testar nossa distribuição do Bank Common Lisp (SBCL). Para isso, abra um janela de terminal e navegue até o diretório de instalação do SBCL:

C:\Users\Osmar>cd C:\Program Files\Steel Bank Common Lisp

Se você vir um arquivo sbcl.exe dentro deste diretório nós já temos a indicação de que tudo correu bem. Tudo que temos a fazer é chamar este arquivo na linha de comando:

C:\Program Files\Steel Bank Common Lisp>sbcL

Você verá as seguintes informações na sua tela:

This is SBCL 2.2.3, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information.
*

Note que o cursor já está esperando comandos, uma vez que estamos no modo interativo. Assim, digite o seguinte comando:

* (+ 5 (* 2 4))
......


Pressione Enter. Se você vir o valor 13, então é sinal de que o SBCL está funcionando 100% e já podemos prosseguir.

Para sair do modo interativo do SBCL, digite:

* (quit)
......


Como escrever um programa em Common List e carregá-lo no SBCL

Agora vamos ver como podemos escrever um programa Common Lisp, salvá-lo em arquivo e carregá-lo a partir do compilador Steel Bank Common Lisp (SBCL). Para isso, abra o seu editor de códigos favorito e digite a seguinte listagem:

; Este programa talvez seja um dos mais básicos
; que podem ser escritos em Common Lisp
(defun Primeiro()
  ; Vamos mostrar uma mensagem de boas-vindas
......


Para executar este programa, basta chamar o SBCL pela linha de comando, da seguinte forma:

C:\Program Files\Steel Bank Common Lisp>sbcl --script C:\estudos_common_lisp\Primeiro.lsp

Se o seu código estiver correto, sem nenhum erro de sintáxe, você verá o seguinte texto:

Bem-vindo(a) à Common Lisp

Pronto! Agora é só aproveitar as nossas dicas, truques e exercícios resolvidos de Common Lisp para aprender ainda mais. Bons estudos.


Veja mais Dicas e truques de Lisp

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 22 usuários muito felizes estudando em nosso site.