Escolar Documentos
Profissional Documentos
Cultura Documentos
PSI – Mód 4
2022/2023
NOVIDADE
#include <locale>
setlocale(LC_ALL,
"pt_PT.utf8");
Imagina que foste contratado para criar um programa para o Clube de Saúde da
escola, com a finalidade de calcular e armazenar o IMC (índice de massa corporal)
de todos os alunos.
Que dados a tratar?
Quantos alunos?
double balance[10];
Os vetores em C++ são indexados a partir da posição 0, até à posição n-1,
sendo n o número de elementos.
Pode-se inicializar os elementos da matriz C++, um a um ou usando uma única
declaração em que se declara e inicializa ao mesmo tempo
Se tentar inicializar um vetor com mais elementos do que ele admite, irá ser produzido
um erro de compilação
No caso de não se inicializarem todos os elementos de um vetor, as posições não
inicializadas contêm 0
Os vetores podem ser inicializados na instrução de definição.
int main() {
string carros[6] = {"Volvo", "BMW", "Ford", "Mazda", "Mercedes", “Jaguar"};
cout << carros[2];
return 0;
}
carroalteracao.cpp
int main() {
string carros[6] = {"Volvo", "BMW", "Ford", "Mazda", "Mercedes", “Jaguar"};
carros[3]=“Land Rover”;
cout << carros[3];
return 0;
}
Para percorrer os elementos da matriz usa-se um ciclo: for
Exercício:
carrosloop.cpp
int main() {
string cars[5] = {"Volvo", "BMW", "Ford", "Mazda", "Tesla"};
for (int i = 0; i < 5; i++) {
cout << i << " = " << cars[i] << "\n";
}
return 0;
}
#include <iostream>
using namespace std;
int main() {
int numeros[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < 5; i++) {
cout << numeros[i] << "\n";
}
return 0;
}
Utilização de vetores para cálculo da temperatura média diária acumulada (durante 24 horas
do dia) recolhida por um sensor numa instalação de Smart House.
double temperaturas [24] = {16.0, 17.0, 18.0, 19.0, 19.5, 20.0, 20.5, 20.5,
20.5, 21.0, 21.5, 21.5, 22.0, 22.0, 23.0, 24.0,
24.0, 25.0, 26.0, 27.0, 27.5, 28.0, 26.5, 22.0};
#include <iostream>
using namespace std;
int main() {
int soma =0;
int temp[24] = {10,10,12,12,16,20,28,24,12,12,12,12,
10,10,12,12,16,20,28,24,12,12,12,12};
Sintaxe
for (tipo variavel: nomematriz) {
// Código a ser executado
}
#include <iostream>
using namespace std;
int main() {
int numeros[5] = {10, 20, 30, 40, 50};
for (int i : numeros) {
cout << i << "\n";
}
return 0;
}
Na linguagem de programação C++, não é preciso especificar o
tamanho do array.
O compilador é inteligente o suficiente para determinar o tamanho
da matriz com base no número de valores inseridos:
"boa prática"
#include <iostream>
#include <string>
Vejamos
Tipos de dados
Sintaxe:
Quantidade_de_memória = tamanho_do_tipo * tamanho_do_vetor
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
int main() {
int main() {
int numeros[7] = {10, 20, 30, 40, 50, 60, 70};
int numeros[7] = {10, 20, 30, 40, 50, 60, 70};
int comprimentomatriz = sizeof(numeros) / cout << sizeof(numeros) / sizeof(int);
sizeof(int); return 0;
cout << comprimentomatriz; }
return 0;
}
Anteriormente, escrevemos o tamanho da matriz usando um loop
( i < 5)
Experimenta
int main() {
int numeros[5] = {10, 20, 30, 40, 50};
for (int i : numeros ){
cout << i << "\n";
}
cout << “Este e o tamanho da matriz: “ << sizeof(numeros)/sizeof(int) << “\n\n”;
return 0;
}
Uma matriz multidimensional é uma matriz de matrizes.
Para declarar um array multidimensional, define-se o tipo de variável, especifica-
se o nome do array seguido de parêntesis retos que especificam quantos
elementos o array principal possui, seguido por outro conjunto de parêntesis retos
que indica quantos elementos os sub-arrays possuem:
char letters[2][4] = {
{ ’A’, ’B’ , ‘C’, ‘D’},
{ ’E’, ’F’, ’G’, ’H’ } letters Coluna 0 Coluna 1 Coluna 2 Coluna 3
}; Linha 0 A B C D
Linha 1 E F G H
string letters[2][4] = {
{ "A", "B“, “C”, “D”},
{ "E", "F", "G", "H" }
};
bidimensional.cpp
#include<iostream>
int main(){
string carros [3][4] = {
{"BMW", "Audi", "Honda","Suzuki"},
};
for (int i=0; i<3; i++) {
carros Coluna 0 Coluna 1 Coluna 2 Coluna 3
for (int j=0; j<4; j++) { Linha 0 BMW Audi Honda Suzuki
cout << carros[i][j] << "\n"; Linha 1 Mercedes DS Toyota Tesla
}}
Linha 2 Land Rover Opel Mazd Citroen
return 0;
}
Para aceder a um elemento de uma #include <iostream>
matriz multidimensional, using namespace std;
especifique um número de índice
em cada uma das dimensões da int main() {
matriz. string letras[2][4] = {
{ "A", "B", "C", "D" },
Esta instrução acede a um valor do { "E", "F", "G", "H" }
elemento na primeira linha (0) e };
na terceira coluna (2) do array
de letras. cout << letras[0][2];
return 0;
}
Lembra-te de que:
Índices de array começam com 0:
[0] é o primeiro elemento
[1] é o segundo elemento, etc.
Cada conjunto de parêntesis retos numa declaração de array adiciona
outra dimensão a um array. Diz-se que um array como o acima tem duas
dimensões.
Arrays podem ter qualquer número de dimensões. Quanto mais dimensões um
array tiver, mais complexo o código se torna.
A matriz a seguir tem três dimensões:
string letters[2][2][2] = {
{
{ "A", "B" },
{ "C", "D" }
},
{
{ "E", "F" },
{ "G", "H" }
}
};
#include <iostream>
using namespace std;
Para percorrer um array
multidimensional, você precisa de int main() {
um loop para cada uma das
dimensões do array. char LETRAS[2][4] = {
O exemplo a seguir gera todos os
{ ‘A’, ‘B’ , ‘G’, ‘H’},
elementos na matriz de letras: { ‘c’, ‘d’, ‘e’, ‘f’ }
};
bidimensional.cpp
Alterar a letra B para L for (int i = 0; i < 2; i++) {
for (int j = 0; j < 4; j++) {
cout << LETRAS[i][j] << "\n";
}
bidimensionalalteracao.cpp int main() {
char LETRAS[2][4] = {
Para alterar o valor de um { ‘A’, ‘B’ , ‘G’, ‘H’},
elemento, consulte o número { ‘c’, ‘d’, ‘e’, ‘f’ }
de índice do elemento em };
cada uma das dimensões: LETRAS[0][0] = ‘L’;
LETRAS[1][0] =‘i’;