Escolar Documentos
Profissional Documentos
Cultura Documentos
PSI – Mód 4
2022/2023
Considera as seguintes declarações:
int v [10];
int x [20];
Como os vetores têm dimensões diferentes, teremos que eventualmente definir duas
funções distintas (uma para vetores com 10 inteiros, outra para vetores com 20 inteiros).
O código de cada uma destas funções seria
int main() {
int v[10];
int x[20];
…
return 0;
Se é enviado um vetor com 10 inteiros à função iniciar1(), esta terá que ter um
parâmetro do mesmo tipo da variável:
Devolve Devolve
int main() {
9 0 int v[10];
8 1 int i;
7 2 //funcao
6 3 iniciar (v);
5 4 for (i=0; i<10; i++)
4 5 v[i]=i;
3 6
2 7
//for (i=10-1; i>=0; i--)
1 8
0 9
for (i=0; i<10; i++)
cout << v[i]<< "\n";
return 0;
}
Diferenças entre:
const
#define
A escrita de programas deve ser realizada de forma a que uma pequena alteração não
provoque grandes transformações no código dos mesmos.
Constantes representam valores fixos inteiros ou carateres.
Constantes Inteiras
Algarismos decimais (0 – 9)
Constantes Alfanuméricas
Caractere simples representado entre apóstrofes
Constantes string
Sequência de carateres entre aspas
O programa funciona para um vetor de 10 elementos.
E se fosse extremamente urgente a sua alteração de modo a possa ser utilizado não com 10
mas com 25 inteiros?
void iniciar (int s[]) {
for (int i=0; i<10; i++)
s[i] = 0;
A solução é }
alterar todas as
ocorrências do int main() {
número 10 pelo int v[10], i;
número 25. iniciar (v);
cout << “aluno aprovado”; Muito provavelmente passaria ao seguinte, o que viria a
aumentar, de forma significativa, o número de alunos que
else
a reprovar
cout << “aluno reprovado”;
if (nota > =25)
cout << “aluno aprovado”;
else
cout << “aluno reprovado”;
Constante não é mais que um nome a que corresponde um valor fixo (não se pode alterar ao
longo da execução do programa).
Devem estar declaradas fora de qualquer função de forma a serem visíveis ao longo de todo o
programa.
Normalmente a sua declaração é realizada imediatamente a seguir às diretivas de pré-
processamento (#include <…>).
A declaração de uma constante pode ser realizada de duas formas distintas:
Uma constante definida com #define não existe fisicamente em memória, sendo o seu valor
substituído ao longo do programa na fase de pré-processamento (ainda antes da compilação).
A palavra #define é uma diretiva que indica ao pré-processador que o símbolo que se lhe
segue, vai ficar com o valor que aparece a seguir ao símbolo. O pré-processador, antes de
compilar o programa, substitui todas as ocorrências do símbolo pelo valor com que este foi
definido.
O tipo associado a uma constante definida com #define é o tipo que resulta da expressão que
aparece na componente valor.
Uma vez que #define não faz parte da linguagem C++, esta linha não tem ponto e vírgula.
#include <iostream>
using namespace std;
#define PI 3.1415
int main() {
float raio, area;
cout << “Introduza o raio do círculo: ";
cin >> raio;
area = PI * (raio*raio);
cout<<"Area = "<<area;
cout<<endl;
return 0;
}
String é uma sequência de carateres diversos.
As strings na teoria de algoritmos estruturados são conhecidos por “literais”, sendo
representadas entre aspas.
Alguns exemplos de strings:
“Fulano da Silva”
“Como estás? “
“1,234”
“0A”
No C++, como era de se esperar, as strings são objetos,
Podem ser criados facilmente através da biblioteca padrão referenciada pelo arquivo
de cabeçalho <string>.
As strings são objetos com recursos que permitem manipular os seus caracteres com
as funcionalidades das funções da linguagem C e mais algumas características
próprias possibilitadas pela orientação a objetos.
Na maioria das vezes, há a necessidade de atribuir à variável, o valor máximo ou
mínimo que aquele tipo de dado pode conter.
O C++ possui macros para representar esses números, de modo que estes possam
ser atribuídos diretamente à variável sem realmente digitar o número inteiro.
INT_MAX - macro que especifica que uma variável inteira não pode armazenar
nenhum valor além desse limite.
INT_MIN - variável inteira que não pode armazenar nenhum valor abaixo desse
limite.
Por outras palavras, em C++ pode-se empregar a palavra string para declarar uma string de tamanho
variável.
No entanto, deve ser incluído o header string.
A partir da declaração, a utilização de strings é simples.
#include <iostream>
#include <string>
using namespace std;
int main() {
string nome1("Fulano"); // Inicializa nome1
string nome2("Beltrano"); // Inicializa nome2
string nome3, nome4; // Não inicializa nome3 nem nome4
cout << "Os dois primeiros nomes são " << nome1 << " e " << nome2 << endl;
nome3 = "Ciclano"; // Inicialização posterior de nome3
nome4 = nome3;
cout << "O terceiro e quarto nomes são " << nome3 << " e " << nome4 << endl;
return 0;
}
•length()
•compare()
•swap()
•append()
C++ trata uma string como uma matriz de caracteres terminada
em nulo. (\0)
•find()
Numa implementação padrão, as funções de string requerem a •push_back()
string do arquivo de cabeçalho para fornecer os seus protótipos.
Muitas funções internas foram criadas por programadores C++
•pop_back()
para executar tarefas relacionadas às strings do programa. •resize()
As mais usadas, ou aqueles que são amplamente usadas e
conhecidas. •replace()
Lista das funções integradas de cadeia de caracteres C++ mais
fundamentais e conhecidas:
length()
A função length() determina o comprimento da string dada.comprimentostring.cpp
#include<iostream>
using namespace std;
int main()
{
string comprimento = “quebrarcodigo";
cout << “comprimento= “ << comprimento.length();
cout<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main()
compare() {
string um = " quebrarcodigo ";
A função compare() compara as duas string dois = " quebrarcodigo ";
strings. int x = um.compare(dois);
Se ambas as strings forem iguais, retorna 0 if(x==0)
cout<<“Iguais.";
compararstring.cpp else
cout<<“Nao sao iguais.";
cout<<endl;
return 0;
}
#include<iostream>
using namespace std;
swap() int main()
{
string str1 = “quebrar";
string str2 = “codigo";
A função swap() cout<<“Antes da troca:\n";
troca as strings
cout<<“primeirastring = "<<str1<<“segundastring = "<<str2;
trocarstring.cpp str1.swap(str2);
cout<<“Depois da troca:\n";
cout<<" primeirastring = "<<str1<<" segundastring = "<<str2;
cout<<endl;
return 0;
}
#include<iostream>
using namespace std;
append() int main()
{
string str1 = “quebrar";
string str2 = “código";
A função append() cout<<“Antes de anexar:\n";
adiciona um novo texto à string
cout<<"str1 = "<<str1;
anexarstring.cpp
str1.append(str2);
cout<<“Depois de anexar:\n";
cout<<"str1 = "<<str1;
cout<<endl;
return 0;
}
#include<iostream>
find() using namespace std;
int main()
{
A função find() localiza
o número de índice da string str = “Eu gosto de dançar";
palavra especificada
(substring) numa string.
string palavra = “gosto";
Retorna o número do cout<<“posição="<<str.find(palavra);
índice do primeiro
caractere da substring.
cout<<endl;
localizarstring.cpp
return 0;
}
#include<iostream>
using namespace std;
PUSH_BACK() int main() {
string str = “quebrarcodigo";
cout<<“Antes do push_back():\n";
A função push_back() adiciona um cout<<"str = "<<str;
novo caractere no final da string.
str.push_back(‘s');
cout<<“Depois push_back(‘s'):\n";
adicionarcaracter.cpp cout<<"str = "<<str;
cout<<endl;
return 0;
}
#include<iostream>
using namespace std;
pop_back() int main()
{
string str = “quebrarcodigos";
cout<<“Antes do pop_back():\n";
A função cout<<"str = "<<str;
pop_back() remove str.pop_back();
o último caractere
da string.
cout<<“Depois do pop_back():\n";
cout<<"str = "<<str;
removercaracter.cpp cout<<endl;
return 0;
}
#include<iostream>
using namespace std;
resize() int main()
{
A função resize()
redimensiona o
string str = “quebrarcodigos.com";
comprimento da string. cout<<“Antes de redimensionar cinco:\n";
cout<<"str = "<<str;
str.resize(5);
cout<<" Depois de redimensionar cinco :\n";
cout<<"str = "<<str;
redimensionarstring.cpp
cout<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main()
replace() {
string x = “Eu estou bem.";
string y = “não me sinto ";
Quando precisamos substituir
uma substring de uma string, cout<<“Antes de substituir():\n";
usamos a função replace(). cout<<"x = "<< x;
x.replace(3, 5, y);
replacestring.cpp cout<<“Depois de substituir():\n";
cout<<"x = "<<x;
cout<<endl;
return 0;
}
- É uma função de biblioteca padrão usada para ler
uma string ou uma linha de um fluxo de entrada
- getline.cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
cout << “Por favor, escreva o seu nome:\n";
getline(cin, str);
cout << “Olá, " << str << " Bem-vindo à aula de PSI!\n";
return 0;
}
matrizdez.cpp
Coloca os números 0, 1, 2, 3, ..., 9 numa natriz de 10 elementos e mostra-os no
formato
Elemento 0 = 0
Elemento 1 = 1
…
….Elemento 9 = 9
Coloque os números 0, 1, 2, 3, ..., 9 numa natriz de
10 elementos e mostre-os no formato Elemento 0 = 0
….Elemento 9 = 9
Dobro de 1 = 2
Dobro de 2 = 4
….
Dobro de 100 = 200
matrizdobro.cpp
Crie um array de 101 #include <iostream>
elementos. Em cada using namespace std;
elemento do array, int main() {
armazene o valor do const int matriz= 101;
dobro do índice. Ou int num[matriz], cont;
seja, a variável num[x] for(cont=0 ; cont< matriz; cont++)
deve ter armazenado o num[cont] = 2*cont;
valor 2x. Depois, exibe a
lista dos 100 números for(cont=1 ; cont< matriz; cont++)
primeiros números cout<<"Dobro de "<<cont<<": "<<num[cont]<<endl;
pares. return 0;
}
Escreva um programa C++ para encontrar os três maiores elementos numa
matriz.
Se a matriz for menor que três o programa dá erro
Se
[]={5,78,97,3,41,63,44}
OUTPUT
Matriz original é
5,78,97,3,41,63,44
Os três elementos maiores são
78, 97, 63
tresmaiores.cpp
#include <iostream>
using namespace std;
if (tamanhomatriz < 3)
{
cout <<“erro”;
}
terceiro = segundo = primeiro = INT_MIN;
for (i=0; i<tamanho_matriz, i ++)
{
if (matriz[i] > primeiro)
{
terceiro = segundo;
segundo = primeiro;
primeiro = matriz[i];
}
else if (matriz[i] > segundo)
{
terceiro = segundo;
segundo = matriz[i];
}
#include <iostream>
Achar o maior e o menor elemento de uma matriz using namespace std;
void show(int arr[][2], int row)
{
for (int i=0 ; i<row ; i++)
{
for(int j=0 ; j<2 ; j++)
cout<<arr[i][j]<<" ";
cout<<endl;
}
}
int main() {
int arr[][2]={ {1,2}, {3,4} };
show(arr, 2);
return 0;
}
Cria um programa em C++ que peça a 6 funcionários de uma empresa para
escreverem os seus salários. De seguida, o programa deve dizer o imposto a pagar
por mês, sabendo que a taxa é de 15%.
#include <iostream>
using namespace std;
int main() {
const int ARRAY_SIZE = 6;
float func[ARRAY_SIZE];
int cont;
for(cont=0 ; cont<ARRAY_SIZE ; cont++)
{
cout<<"Funcionario "<<cont+1<<": ";
cin >> func[cont];
}
cout<<"Imposto a pagar: "<<endl;
for(cont=0 ; cont<ARRAY_SIZE ; cont++)
cout<<"Funcionario "<<cont+1<<": €"<<func[cont]*0.15<<endl;
}