Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: ActionScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Aprenda a usar arrays em ActionScript

Quantidade de visualizações: 12438 vezes


Arrays (ou matrizes) são essenciais para uma boa programação em ActionScript.

Um array fornece uma forma de agrupar dados relacionados e então organizar e processar tais dados. O conceito de array não é novidade. De fato, este conceito é usado em nosso dia-a-dia. Podemos visualizar uma lista de supermercado ou uma lista de pendências como um array. Sua agenda é um array contendo nomes, endereços e datas de aniversários. As bibliotecas gerenciam seus livros usando um sistema de indexação, ou seja, conceitualmente, cada livro se torna um elemento de um array.

Em ActionScript há dois tipos de arrays: indexadas por inteiros e associativas. Ambas agrupam dados relacionados, mas usam formas diferentes de acessar os dados armazenados.

Arrays indexadas por inteiros - Este tipo de array usa inteiros (números) como identificados únicos para cada elemento no array. Tais arrays são ordenadas por índice, iniciando do 0. Cada elemento ocupa um espaço numerado no array. Arrays indexadas por inteiros são ideais para conjuntos de dados que deverão ser acessados em ordem sequencial.

Arrays associativas - Usam chaves do tipo string para acessar cada um de seus elementos. Em algumas linguagens, arrays associativos são chamados de hash ou HashTable. Antes de usarmos um array, precisamos aprender a criar um. Há duas formas de se criar um array em ActionScript: usando a função construtora ou um literal do tipo array. Todos os arrays são membros da classe Array. Podemos usar a função construtora Array() para instanciar objetos arrays de três formas:
// Cria um array vazio
var matriz:Array = new Array();

// Cria um array com elementos undefined (sem valores)
var matriz:Array = new Array(elementos); 

// Cria um array com elementos definidos
var matriz:Array = new Array(elemento0,...elementoN);
A notação literal de array também cria um novo array, mas sem usar a função construtora. A notação literal é conveniente para especificar elementos no momento da criação do array. Veja:
var letras:Array = ["a", "b", "c"];


Link para compartilhar na Internet ou com seus amigos:

Python ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres

Exercícios Resolvidos de Python - Como retornar o código ASCII associado a um caractere em Python - Ler um caractere e retornar o código ASCII correspondente

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

Escreva um programa Python que pede para o usuário informar um caractere (letra ou número) e mostre o código ASCII correspondente.

Sua saída deverá ser parecida com:

Informe um caractere: A
Você informou o caractere: A
O código ASCII correspondente é: 65
Resposta/Solução:

Veja a resolução comentada deste exercício em Python:

# função principal do programa
def main():
  # vamos pedir para o usuário informar uma letra, símbolo ou pontuação
  caractere = input("Informe um caractere: ")
    
  # agora vamos obter o código ASCII correspondente
  codigo = ord(caractere)
......


O Código Padrão Americano para o Intercâmbio de Informação (do inglês American Standard Code for Information Interchange - ASCII, pronunciado [áski]) é um sistema de representação de letras, algarismos e sinais de pontuação e de controle, através de um sinal codificado em forma de código binário (cadeias de bits formada por vários 0 e 1), desenvolvido a partir de 1960, que representa um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, algarismos arábicos, sinais de pontuação e sinais matemáticos) e 33 sinais de controle, utilizando 7 bits para representar todos os seus símbolos.


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico

Exercícios Resolvidos de Python - Como somar o primeiro e o último dígito de um número inteiro informado pelo usuário em Python

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

Escreva um programa Python que pede para o usuário informar um número inteiro e mostre a soma do primeiro dígito com o último dígito. Atenção: você deve usar apenas os operadores matemáticos e a função log10().

Sua saída deverá ser parecida com:

Informe um número inteiro: 48763
A soma do primeiro e do último dígito é: 7
Resposta/Solução:

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

# vamos importar o módulo Math
import math

# método principal
def main():
  # vamos pedir para o usuário informar um número inteiro
  numero = int(input("Informe um número inteiro: "))
    
  # vamos obter a quantidade (-1) de dígitos no número informado
  quant = int(math.log10(numero))
  primeiro_digito = (int)(numero / pow(10, quant))
......



Delphi ::: Dicas & Truques ::: Strings e Caracteres

Como substituir todas as ocorrências de uma substring em uma string em Delphi sem considerar maiúsculas e minúsculas usando a função ReplaceText()

Quantidade de visualizações: 11558 vezes
Algumas vezes precisamos substituir todas as ocorrências de uma substring em uma string mas não queremos diferenciar letras maiúsculas de letras minúsculas. Em Delphi isso pode ser feito com o auxílio da função ReplaceText(). Esta função requer a string na qual a substituição ocorrerá, a substring a ser substituída e a nova substring. O resultado será uma nova string resultante da substituição. Veja o exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  frase: string;
begin
  frase := 'PHP? Sim, eu gosto muito de PHP';

  // vamos substituir todas as ocorrências de "PHP" por "Delphi'
......


Lembre-se de que esta função não diferencia maiúsculas e minúsculas.

Não se esqueça de adicionar a unit StrUtils no uses do seu formulário.

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.


Java ::: Tratamento de Erros ::: Erros de Tempo de Execução

Como tratar o erro IndexOutOfBoundsException do Java - A exceção IndexOutOfBoundsException da linguagem Java

Quantidade de visualizações: 16904 vezes
A exceção IndexOutOfBoundsException é uma exceção (erro) que acontece quando fornecemos um índice fora dos limites permitidos para o acesso de elementos em um vetor, matriz, string ou demais coleções. Lembre-se de que os índices em Java começam em 0 e vão até a quantidade de elementos menos 1.

Antes de vermos os exemplos, observe a posição da classe pública IndexOutOfBoundsException na hierarquia de classes da plataforma Java:

java.lang.Object
  java.lang.Throwable
    java.lang.Exception
      java.lang.RuntimeException
        java.lang.IndexOutOfBoundsException


Esta classe implementa a interface Serializable e possui duas sub-classes conhecidas: ArrayIndexOutOfBoundsException e StringIndexOutOfBoundsException.

Veja um exemplo no qual tentamos acessar um elemento de um vetor usando um índice inválido:

public class Estudos{
  public static void main(String args[]){
    // um array de quatro elementos
    int[] valores = {5, 23, 76, 3};     
......


Este código compila normalmente. Porém, ao tentarmos executá-lo, temos a seguinte mensagem de erro:

Exception in thread "main" 
java.lang.ArrayIndexOutOfBoundsException: 4
......


A forma mais adequada de corrigir este erro é fornecendo um valor de índice que realmente esteja na faixa permitida. Veja agora o mesmo trecho de código usando uma string:

public class Estudos{
  public static void main(String args[]){
    String nome = "Java";     

    // vamos fornecer um índice inválido
......


Compile este código e execute-o. Você verá a seguinte mensagem de erro:

Exception in thread "main" 
java.lang.StringIndexOutOfBoundsException: String 
index out of range: 4
......


Vamos fazer o mesmo usando uma ArrayList:

import java.util.ArrayList;

public class Estudos{
  public static void main(String[] args){
    // cria uma ArrayList que conterá strings
    ArrayList<String> nomes = new ArrayList<String>();
    
    // adiciona itens na lista
    nomes.add("Carlos");
    nomes.add("Maria");
......


Compile, execute e veja a mensagem de erro:

Exception in thread "main" 
java.lang.IndexOutOfBoundsException: Index: 4, 
Size: 4
  at java.util.ArrayList.RangeCheck(Unknown Source)
......


Veja que no caso do vetor, a exceção lançada foi ArrayIndexOutOfBoundsException, no caso da string a exceção foi StringIndexOutOfBoundsException e no caso do ArrayList tivemos IndexOutOfBoundsException. Resolvemos abordar estas três exceções em apenas uma anotação para que você perceba a semelhança entre elas.


PHP ::: Dicas & Truques ::: Programação Orientada a Objetos

Programação Orientada a Objetos em PHP - Aprenda a criar e usar métodos e classes abstratas em PHP

Quantidade de visualizações: 10302 vezes
À medida que começamos a usar programação orientada a objetos em PHP algumas situações interessantes podem surgir, tais como o uso de métodos e classes abstratas.

As classes e métodos abstratos podem ser usados por uma série de razões. Eis as que considero mais importantes:

a) - Um classe abstrata não permite que criemos novas instâncias da mesma. Veja:

<?
  // Uma classe Boleto abstrata
  abstract class Boleto{

  }
......


Ao executarmos este código teremos a seguinte mensagem de erro:

Fatal error: Cannot instantiate abstract class Boleto in ...

A vantagem de termos uma classe que não pode ser instanciada é que podemos usá-la como classe base em um código envolvendo poliformismo (no momento que escrevo este artigo não vejo como implementar polimorfismo em PHP. Me pergunto se isso é possível em linguagens de tipos dinâmicos).

b) - Qualquer classe que contenha um ou mais métodos abstratos também precisa se declarar abstrata. Como um método abstrato não pode conter implementação, ao forçar a classe a ser abstrata também, as classes derivadas terão a obrigação de implementar tal método. Veja um trecho de código no qual criamos uma classe normal contendo um método abstrato:

<?
  // Uma classe Boleto não-abstrata
  class Boleto{
    // um método abstrato
......


Ao executarmos este código teremos a seguinte mensagem de erro:

Fatal error: Class Boleto contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Boleto::imprimir) in ...

Ao marcarmos a classe como abstract esta mensagem de erro desaparecerá.

c) - Uma classe que herda de uma classe derivada deve, obrigatoriamente, fornecer implementação para todos os métodos abstratos herdados. Veja o trecho de código no qual temos uma classe Boleto e uma classe BoletoBradesco:

<?
  // Uma classe Boleto abstrata
  abstract class Boleto{
    // um método abstrato
    public abstract function imprimir($dados);
......


A mensagem de erro aqui é a mesma quando temos métodos abstratos em uma classe mas não a declaramos como abstrata. Basta fornecer a implementação para o método imprimir e a mensagem de erro desaparece:

<?
  // Uma classe Boleto abstrata
  abstract class Boleto{
    // um método abstrato
    public abstract function imprimir($dados);
  }
 
  // vamos herdar da classe Boleto
  class BoletoBradesco extends Boleto{
    public function imprimir($dados){
......


d) - Um método marcado como abstract não pode conter implementação, ou seja, a implementação será feita pelas classes derivadas. Veja:

<?
  // Uma classe Boleto abstrata
  abstract class Boleto{
    // um método abstrato que não deveria conter implementação
......


Ao tentarmos executar este trecho de código teremos a seguinte mensagem de erro:

Fatal error: Abstract function Boleto::imprimir() cannot contain body in ...

Bastará remover a implementação do método que a mensagem de erro desaparecerá.


Desafios, Exercícios e Algoritmos Resolvidos de PHP

Veja mais Dicas e truques de PHP

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á 10 usuários muito felizes estudando em nosso site.