SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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)
 

Kürzlich hochgeladen

PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 

Kürzlich hochgeladen (20)

PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 

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