SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
JavaScript: Arrays
Carlos Santos
LabMM 3 - NTC - DeCA - UA
Aula 10, 27-10-2011
Lembram-se do Nelo e da Idália?




                  “Resmas de gajas”
Se o Nelo tiver que armazenar o nome da esposa?

 var esposa = “Idália”;



• Limitações:

 • uma variável só permite armazenar uma unidade de informação;

 • por unidade de informação entende-se um conjunto de dados que, por si
   só, constituem uma unidade lógica. Por exemplo:

  • “Herman José” é uma string cujo conteúdo pode ser considerada uma
    unidade de informação;

  • “Herman José, Nilton, Nuno Markl, Bruno Nogueira” também é uma
    string mas o seu conteúdo não é uma unidade de informação.
Como é que o Nelo pode armazenar o nome das
resmas de gajas?

 var gaja1 = “Asdrubal”;
 var gaja2 = “Porfírio”;
 ...
 var gajaN = “Zacarias”; // Não é uma solução adequada!

• Problemas com esta solução:

  • o acesso sistemático à informação pode ser muito complexo;

  • adicionar e/ou eliminar elementos implica alterações na própria estrutura
    de dados do algoritmo;

  • por vezes, esta solução pode parecer a mais simples mas, na maioria dos
    casos, acaba por implicar problemas complexos.
Arrays em Javascript

• Um array é uma estrutura de dados complexa onde podemos armazenar
  múltiplas unidades de informação de um modo lógico e acessível.

  • um array é identificado por um nome/identificador com características
    semelhantes ao de uma variável;

  • cada unidade de informação, um elemento, é armazenada num espaço
    próprio, acessível através de um índice que indica a posição no array;

  • os elementos podem ser de qualquer tipo de dados, inclusivamente tipos
    de dados complexos;

  • o número de elementos de um array é gerido dinamicamente permitindo
    aumentar ou diminuir a sua capacidade durante a execução do algoritmo.
Arrays: estrutura
   Identificador

                    meuArray
             0       “nome”

             1        4324
    Índice                     Elementos
             2      1.54324

             3       false
Arrays: operações base: declaração

• Declaração de um array vazio (sem elementos)

 • var nomeArray = new Array();

 • var nomeArray = [];

 • var nomeArray = new Array(5); //declara um array
   inicialmente dimensionado para 5 elementos

• Declaração de um array com elementos iniciais

 • var arrayLetras = new Array(“a”, ”b”, ”c”);
                                                  “a”   5
 • var arrayNumeros = [5, 23, 13, 12];            “b”   23
                                                  “c”   13
                                                        12
Arrays: operações base: escrita

• Escrita

 • nomeArray[índice] = valor;

• Exemplos

 • arrayLetras[1] = “x”;
                           “a”
                           “x”
                           “c”

 • arrayLetras[3] = “d”;
                           “a”
                           “x”
                           “c”
                           “d”
Arrays: operações base: escrita

• Exemplos

 • arrayLetras[5] = “z”;
                              “a”
                              “x”
                              “c”
                              “d”
                           undefined

                             “z”
Arrays: operações base: leitura

• Escrita

 • var elemento = nomeArray[índice];

• Exemplos

 • var letraEscolhida = arrayLetras[1]; //??      “a”
 • alert(arrayLetras[0]); //??                    “x”
                                                  “c”
 • arrayLetras[1] = arrayLetras[2]; //??
                                                  “d”
                                               undefined

                                                  “z”
De regresso às resmas de gajas do Nelo

• Criar um array para ajudar o Nelo a guardar o nome das gajas atuais:
  Asdrubal, Porfirio e Zacarias:

 var gajasNelo = new Array(“Asdrubal”,“Porfirio”,“Zacarias”);
                                                          0    “Asdrubal”
                                                          1     “Porfirio”
                                                          2    “Zacarias”

• O Nelo chateou-se com a Asdrubal e arranjou logo a “Jair” para a substituir e
  ainda ficou com a sua amiga “Marcão”:

 gajasNelo[0] = “Jair”;
                                     0         “Jair”
 gajasNelo[3] = “Marcão”;            1       “Porfirio”
                                     2       “Zacarias”
                                     3       “Marcão”
De volta às resmas de gajas do Nelo

• O Nelo é muito esquecido e por isso temos que gerar uma mensagem de
  alerta que diga:

     • “Nelo, mulher, as tuas gajas são: ..., ..., ..., ...”


 var msg = “Nelo, mulher, as tuas gajas são: “;
 msg = msg + gajasNelo[0] + “, “;                              0     “Jair”
 msg = msg + gajasNelo[1] + “, “;                              1   “Porfirio”
 msg = msg + gajasNelo[2] + “, “;                              2   “Zacarias”
 msg = msg + gajasNelo[3];                                     3   “Marcão”
 alert (msg); //??
Sistematizar o acesso a um array

 var msg = “Nelo, mulher, as tuas gajas são: “;
 msg = msg + gajasNelo[0] + “, “;
 msg = msg + gajasNelo[1] + “, “;
 msg = msg + gajasNelo[2] + “, “;
 msg = msg + gajasNelo[3];
 alert (msg); //??


 // Versão com ciclo for
 var msg = “Nelo, mulher, as tuas gajas são: “;
 for (cont = 0; cont <=3; cont++) {
     msg = msg + gajasNelo[cont] + “, “;
 }
 alert (msg); // Será que o resultado final é exatamente igual?
Objetos
no dia-a-dia
Um objeto é uma “coisa”
definida por um conjunto de:

propriedades
- modelo
- espaçoDeArmazenamento

métodos/funções
- ligar(nr. telefone)
- play(album)
Objetos em programação (versão light)

• são também uma “coisa” definida por um conjunto de propriedades e
  métodos que podem ser reutilizados livremente na execução de um
  programa.

• as características de um objeto são definidas pela sua classe, que podem
  ser:

  • built-in

  • user defined

• a instanciação de um novo objeto é conseguida através da invocação do
  operador new.
Operador new

• Instanciação de um array

 • var nomeArray = new Array();




      classe Array()               objeto nomeArray

    propriedades Array       new
                                   propriedades Array

       métodos Array                 métodos Array
Informação e métodos úteis num Array()

• Quantos elementos tem o array neste momento?

• Como adicionar um elemento no final de um array?

• Como adicionar um elemento no início de um array?

• Como apagar um elemento qualquer do array e não deixar um espaço vazio?

• ...
JavaScript: objeto Array: propriedades

• length: devolve o número atual de elementos de um array

 // Exemplo: Versão alterada com ciclo for

    var msg = “Nelo, mulher, as tuas gajas são: “;
    for (cont = 0; cont <= gajasNelo.length - 1; cont++) {
        msg = msg + gajasNelo[cont] + “, “;
    }
    alert (msg);


    0        “Jair”
    1       “Porfirio”
                           gajasNelo.length => 4
    2      “Zacarias”
    3       “Marcão”
JavaScript: objeto Array: métodos

• Os mais comuns... mas existem mais!
    Método                                        Descrição
   concat()     Joins two or more arrays, and returns a copy of the joined arrays
    join()      Joins all elements of an array into a string
     pop()      Removes the last element of an array, and returns that element
    push()      Adds new elements to the end of an array, and returns the new length
  reverse()     Reverses the order of the elements in an array
    shift()     Removes the first element of an array, and returns that element
    slice()     Selects a part of an array, and returns the new array
    sort()      Sorts the elements of an array
    splice      Adds/Removes elements from an array
  toString()    Converts an array to a string, and returns the result
  unshift()     Adds new elements to the beginning of an array, and returns the new length
                                                     http://www.w3schools.com/jsref/jsref_obj_array.asp

Más contenido relacionado

La actualidad más candente

Bogosort e Técnicas Realmente Avançadas de Programação
Bogosort e Técnicas Realmente Avançadas de ProgramaçãoBogosort e Técnicas Realmente Avançadas de Programação
Bogosort e Técnicas Realmente Avançadas de ProgramaçãoRodolpho Eckhardt
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com javaMaurício Linhares
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Luciano Ramalho
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Luciano Ramalho
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismoMaurício Linhares
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em JavaDaniel Brandão
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Luciano Ramalho
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compactoLuciano Ramalho
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em PythonLuciano Ramalho
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etcLuciano Ramalho
 

La actualidad más candente (20)

SPL Datastructures
SPL DatastructuresSPL Datastructures
SPL Datastructures
 
Bogosort e Técnicas Realmente Avançadas de Programação
Bogosort e Técnicas Realmente Avançadas de ProgramaçãoBogosort e Técnicas Realmente Avançadas de Programação
Bogosort e Técnicas Realmente Avançadas de Programação
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)
 
Java Coleções
Java ColeçõesJava Coleções
Java Coleções
 
Grupo2
Grupo2Grupo2
Grupo2
 
PHP Básico - Parte 3
PHP Básico - Parte 3PHP Básico - Parte 3
PHP Básico - Parte 3
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismo
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em Java
 
Meta-programacao em python
Meta-programacao em pythonMeta-programacao em python
Meta-programacao em python
 
iOS 8 com swift
iOS 8 com swiftiOS 8 com swift
iOS 8 com swift
 
Iteraveis e geradores
Iteraveis e geradoresIteraveis e geradores
Iteraveis e geradores
 
Arrays em java
Arrays em javaArrays em java
Arrays em java
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
NoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETECNoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETEC
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
 
Aprendendo ruby
Aprendendo rubyAprendendo ruby
Aprendendo ruby
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etc
 

Destacado (8)

Transparencia julio, 2015
Transparencia julio, 2015Transparencia julio, 2015
Transparencia julio, 2015
 
Curso linux
Curso linuxCurso linux
Curso linux
 
Proyecto
Proyecto Proyecto
Proyecto
 
Lezione 4 scrivere una recensione gastronomica
Lezione 4 scrivere una recensione gastronomicaLezione 4 scrivere una recensione gastronomica
Lezione 4 scrivere una recensione gastronomica
 
Un parado
Un paradoUn parado
Un parado
 
Initiation à Wordpress
Initiation à Wordpress Initiation à Wordpress
Initiation à Wordpress
 
Curso certificado orientacion laboral empleo
Curso certificado orientacion laboral empleoCurso certificado orientacion laboral empleo
Curso certificado orientacion laboral empleo
 
Reformas claves para un Estado en buen estado - Guía CINCO
Reformas claves para un Estado en buen estado - Guía CINCOReformas claves para un Estado en buen estado - Guía CINCO
Reformas claves para un Estado en buen estado - Guía CINCO
 

Similar a LabMM3 - Aula teórica 10

(A13) LabMM3 - JavaScript - Arrays multidimensionais
(A13) LabMM3 - JavaScript - Arrays multidimensionais(A13) LabMM3 - JavaScript - Arrays multidimensionais
(A13) LabMM3 - JavaScript - Arrays multidimensionaisCarlos Santos
 
LabMM4 (T14 - 12/13) - Arrays
LabMM4 (T14 - 12/13) - ArraysLabMM4 (T14 - 12/13) - Arrays
LabMM4 (T14 - 12/13) - ArraysCarlos Santos
 
Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011JogosUnisinos
 
PHP Arrays - Básico | Certificação
PHP Arrays - Básico | CertificaçãoPHP Arrays - Básico | Certificação
PHP Arrays - Básico | CertificaçãoRicardo de Carvalho
 
LabMM3 - Aula teórica 12
LabMM3 - Aula teórica 12LabMM3 - Aula teórica 12
LabMM3 - Aula teórica 12Carlos Santos
 
Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections Eduardo Carvalho
 
Arrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programaçãoArrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programaçãoJaime Martins
 
[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes
[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes
[Curso Java Basico] Aula 20: Arrays multidimensionais - MatrizesLoiane Groner
 
4234 mysql
4234 mysql4234 mysql
4234 mysqlherbam
 
Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1Elaine Cecília Gatto
 
Android - Dicas de Performance
Android - Dicas de PerformanceAndroid - Dicas de Performance
Android - Dicas de PerformanceAmélia Pessoa
 

Similar a LabMM3 - Aula teórica 10 (20)

Curso de PHP - Arrays
Curso de PHP - ArraysCurso de PHP - Arrays
Curso de PHP - Arrays
 
Java básico - Módulo 06: Array
Java básico - Módulo 06: ArrayJava básico - Módulo 06: Array
Java básico - Módulo 06: Array
 
(A13) LabMM3 - JavaScript - Arrays multidimensionais
(A13) LabMM3 - JavaScript - Arrays multidimensionais(A13) LabMM3 - JavaScript - Arrays multidimensionais
(A13) LabMM3 - JavaScript - Arrays multidimensionais
 
Programação aula002
Programação aula002Programação aula002
Programação aula002
 
Javafx Introdução
Javafx IntroduçãoJavafx Introdução
Javafx Introdução
 
LabMM4 (T14 - 12/13) - Arrays
LabMM4 (T14 - 12/13) - ArraysLabMM4 (T14 - 12/13) - Arrays
LabMM4 (T14 - 12/13) - Arrays
 
Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011
 
PHP Arrays - Básico | Certificação
PHP Arrays - Básico | CertificaçãoPHP Arrays - Básico | Certificação
PHP Arrays - Básico | Certificação
 
Trabalho vetores
Trabalho vetoresTrabalho vetores
Trabalho vetores
 
LabMM3 - Aula teórica 12
LabMM3 - Aula teórica 12LabMM3 - Aula teórica 12
LabMM3 - Aula teórica 12
 
Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections
 
Arrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programaçãoArrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programação
 
PHP 5.3 - Arrays
PHP 5.3 - ArraysPHP 5.3 - Arrays
PHP 5.3 - Arrays
 
Java: Collections
Java: CollectionsJava: Collections
Java: Collections
 
[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes
[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes
[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes
 
4234 mysql
4234 mysql4234 mysql
4234 mysql
 
Apostila php 01
Apostila php 01Apostila php 01
Apostila php 01
 
Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1
 
Android - Dicas de Performance
Android - Dicas de PerformanceAndroid - Dicas de Performance
Android - Dicas de Performance
 
Android estrutura de dados
Android estrutura de dadosAndroid estrutura de dados
Android estrutura de dados
 

Más de Carlos Santos

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?Carlos Santos
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesCarlos Santos
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEduCarlos Santos
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialCarlos Santos
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosCarlos Santos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosCarlos Santos
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Carlos Santos
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoCarlos Santos
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Carlos Santos
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentCarlos Santos
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusCarlos Santos
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectCarlos Santos
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoCarlos Santos
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCACarlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidCarlos Santos
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoCarlos Santos
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)Carlos Santos
 

Más de Carlos Santos (20)

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantes
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicial
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho prático
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning Environment
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus project
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
 

Último

Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxBiancaNogueira42
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosAntnyoAllysson
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirIedaGoethe
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISVitor Vieira Vasconcelos
 

Último (20)

Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteiros
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimir
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGIS
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 

LabMM3 - Aula teórica 10

  • 1. JavaScript: Arrays Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 10, 27-10-2011
  • 2. Lembram-se do Nelo e da Idália? “Resmas de gajas”
  • 3. Se o Nelo tiver que armazenar o nome da esposa? var esposa = “Idália”; • Limitações: • uma variável só permite armazenar uma unidade de informação; • por unidade de informação entende-se um conjunto de dados que, por si só, constituem uma unidade lógica. Por exemplo: • “Herman José” é uma string cujo conteúdo pode ser considerada uma unidade de informação; • “Herman José, Nilton, Nuno Markl, Bruno Nogueira” também é uma string mas o seu conteúdo não é uma unidade de informação.
  • 4. Como é que o Nelo pode armazenar o nome das resmas de gajas? var gaja1 = “Asdrubal”; var gaja2 = “Porfírio”; ... var gajaN = “Zacarias”; // Não é uma solução adequada! • Problemas com esta solução: • o acesso sistemático à informação pode ser muito complexo; • adicionar e/ou eliminar elementos implica alterações na própria estrutura de dados do algoritmo; • por vezes, esta solução pode parecer a mais simples mas, na maioria dos casos, acaba por implicar problemas complexos.
  • 5. Arrays em Javascript • Um array é uma estrutura de dados complexa onde podemos armazenar múltiplas unidades de informação de um modo lógico e acessível. • um array é identificado por um nome/identificador com características semelhantes ao de uma variável; • cada unidade de informação, um elemento, é armazenada num espaço próprio, acessível através de um índice que indica a posição no array; • os elementos podem ser de qualquer tipo de dados, inclusivamente tipos de dados complexos; • o número de elementos de um array é gerido dinamicamente permitindo aumentar ou diminuir a sua capacidade durante a execução do algoritmo.
  • 6. Arrays: estrutura Identificador meuArray 0 “nome” 1 4324 Índice Elementos 2 1.54324 3 false
  • 7. Arrays: operações base: declaração • Declaração de um array vazio (sem elementos) • var nomeArray = new Array(); • var nomeArray = []; • var nomeArray = new Array(5); //declara um array inicialmente dimensionado para 5 elementos • Declaração de um array com elementos iniciais • var arrayLetras = new Array(“a”, ”b”, ”c”); “a” 5 • var arrayNumeros = [5, 23, 13, 12]; “b” 23 “c” 13 12
  • 8. Arrays: operações base: escrita • Escrita • nomeArray[índice] = valor; • Exemplos • arrayLetras[1] = “x”; “a” “x” “c” • arrayLetras[3] = “d”; “a” “x” “c” “d”
  • 9. Arrays: operações base: escrita • Exemplos • arrayLetras[5] = “z”; “a” “x” “c” “d” undefined “z”
  • 10. Arrays: operações base: leitura • Escrita • var elemento = nomeArray[índice]; • Exemplos • var letraEscolhida = arrayLetras[1]; //?? “a” • alert(arrayLetras[0]); //?? “x” “c” • arrayLetras[1] = arrayLetras[2]; //?? “d” undefined “z”
  • 11. De regresso às resmas de gajas do Nelo • Criar um array para ajudar o Nelo a guardar o nome das gajas atuais: Asdrubal, Porfirio e Zacarias: var gajasNelo = new Array(“Asdrubal”,“Porfirio”,“Zacarias”); 0 “Asdrubal” 1 “Porfirio” 2 “Zacarias” • O Nelo chateou-se com a Asdrubal e arranjou logo a “Jair” para a substituir e ainda ficou com a sua amiga “Marcão”: gajasNelo[0] = “Jair”; 0 “Jair” gajasNelo[3] = “Marcão”; 1 “Porfirio” 2 “Zacarias” 3 “Marcão”
  • 12. De volta às resmas de gajas do Nelo • O Nelo é muito esquecido e por isso temos que gerar uma mensagem de alerta que diga: • “Nelo, mulher, as tuas gajas são: ..., ..., ..., ...” var msg = “Nelo, mulher, as tuas gajas são: “; msg = msg + gajasNelo[0] + “, “; 0 “Jair” msg = msg + gajasNelo[1] + “, “; 1 “Porfirio” msg = msg + gajasNelo[2] + “, “; 2 “Zacarias” msg = msg + gajasNelo[3]; 3 “Marcão” alert (msg); //??
  • 13. Sistematizar o acesso a um array var msg = “Nelo, mulher, as tuas gajas são: “; msg = msg + gajasNelo[0] + “, “; msg = msg + gajasNelo[1] + “, “; msg = msg + gajasNelo[2] + “, “; msg = msg + gajasNelo[3]; alert (msg); //?? // Versão com ciclo for var msg = “Nelo, mulher, as tuas gajas são: “; for (cont = 0; cont <=3; cont++) { msg = msg + gajasNelo[cont] + “, “; } alert (msg); // Será que o resultado final é exatamente igual?
  • 14. Objetos no dia-a-dia Um objeto é uma “coisa” definida por um conjunto de: propriedades - modelo - espaçoDeArmazenamento métodos/funções - ligar(nr. telefone) - play(album)
  • 15. Objetos em programação (versão light) • são também uma “coisa” definida por um conjunto de propriedades e métodos que podem ser reutilizados livremente na execução de um programa. • as características de um objeto são definidas pela sua classe, que podem ser: • built-in • user defined • a instanciação de um novo objeto é conseguida através da invocação do operador new.
  • 16. Operador new • Instanciação de um array • var nomeArray = new Array(); classe Array() objeto nomeArray propriedades Array new propriedades Array métodos Array métodos Array
  • 17. Informação e métodos úteis num Array() • Quantos elementos tem o array neste momento? • Como adicionar um elemento no final de um array? • Como adicionar um elemento no início de um array? • Como apagar um elemento qualquer do array e não deixar um espaço vazio? • ...
  • 18. JavaScript: objeto Array: propriedades • length: devolve o número atual de elementos de um array // Exemplo: Versão alterada com ciclo for var msg = “Nelo, mulher, as tuas gajas são: “; for (cont = 0; cont <= gajasNelo.length - 1; cont++) { msg = msg + gajasNelo[cont] + “, “; } alert (msg); 0 “Jair” 1 “Porfirio” gajasNelo.length => 4 2 “Zacarias” 3 “Marcão”
  • 19. JavaScript: objeto Array: métodos • Os mais comuns... mas existem mais! Método Descrição concat() Joins two or more arrays, and returns a copy of the joined arrays join() Joins all elements of an array into a string pop() Removes the last element of an array, and returns that element push() Adds new elements to the end of an array, and returns the new length reverse() Reverses the order of the elements in an array shift() Removes the first element of an array, and returns that element slice() Selects a part of an array, and returns the new array sort() Sorts the elements of an array splice Adds/Removes elements from an array toString() Converts an array to a string, and returns the result unshift() Adds new elements to the beginning of an array, and returns the new length http://www.w3schools.com/jsref/jsref_obj_array.asp