Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação Estruturada
TGPSI
PSI - 1.º ano
Elsa Ascenso
Programação Estruturada
• #include <iostream>
• using namespace std;
• void funcao() {
• cout << “codigo a ser executado – faz qualquer coisa!";
• }
• int main() {
• funcao();
• return 0;
• }
Uma função pode ser chamada várias vezes:
• #include <iostream>
• using namespace std;
• void funcao() {
• cout << “codigo a ser executado – faz qualquer coisa!";
• }
• int main() {
• funcao();
• funcao();
• funcao();
• return 0;
• }
Declaração e Definição de Função
• Sintaxe
• void funcao() { // declaracao
// o corpo da função, ou seja, o código a ser executado (definicao)
•}
Declaração e Definição de Função
Muito Importante: Se uma função definida pelo utilizador, como função()
for declarada após a função main(), irá ocorrer um erro
• int main() {
funcao();
return 0;
}
void funcao() {
cout << " codigo a ser executado – faz qualquer coisa!";
}
// Erro
Porém,
• void funcao() {
• cout <<“codigo a ser executado – faz qualquer coisa! \n”;
• }
• /*erro na declaração da função*/
funcaoDD.cpp
• #include <iostream>
• using namespace std;
• //declarar funcoes
• void funcao();
//o método principal
• int main () {
• funcao ();
• return 0;
• }
//definição da função
• void funcao() {
• cout <<“codigo a ser executado – faz qualquer coisa! \n”;
• }
Parâmetros e Argumentos
• As informações podem ser passadas para funções como um
parâmetro. Os parâmetros funcionam como variáveis dentro
da função.
• Os parâmetros são distinguidos após o nome da função,
entre parênteses.
• Pode-se adicionar o número de parâmetros que se quiser,
basta separá-los com uma vírgula
Parâmetros e Argumentos
No exercício anterior:
primeiroultimo é parâmetro
Rhyanne, Tomas e Rafael são argumentos
Valor do Parâmetro Padrão
int funcao(int x) {
return 5 + x;
} Devolve:
int main() { 8
cout << funcao(3);
return 0;
} //Este exemplo retorna a soma de uma função
com um parâmetro.
C++ A palavra-chave de retorno
Valores de retorno - Exemplo
somavarfuncao.cpp
#include <iostream>
using namespace std;
• A função menu() irá ser a responsável por mostrar as possíveis operações matemáticas.
• O utilizador escreve um valor para escolher a opção.
Se a opção for 0, o programa sai do looping DO WHILE da menu() e se encerra o
programa.
Se a opção for qualquer outro número, o programa pede os dois valores que se vão
usar para calcular a operação e em seguida vai para SWITCH, onde selecionamos a
operação corretamente.
• Passamos os números escritos pelo utilizador para a respectiva função, ela retorna o
resultado que iremos mostrar no ecrã.
ToDo: Calculadora
void menu()
{
int op;
float a, b;
do
{
cout<<"0. Sair\n";
cout<<"1. Somar\n";
cout<<"2. Subtrair\n";
cout<<"3. Multiplicar\n";
cout<<"4. Dividir\n";
cin >> op;
if (op) {
cout<<"Primeiro numero: \n ";
cin >> a; ToDo: Calculadora
cout<<“Segundo numero: \n ";
cin >> b;
switch(op)
{
case 1: cout <<"Soma: " << sum(a,b) << “\n”;
break;
case 2: cout<<"Diferença: " << sub(a,b) << “\n”;
break;
case 3: cout<<"Produto: " << mult(a,b) << “\n”;
break;
case 4:
if(b)
cout<<"Divisão: " << divis(a,b) << “\n”;
else divis(a,b);
break;
default: cout<<"Opção inválida \n";
}
} else
cout<<“A sair...\n";
}while(op);
}
ToDo: Calculadora
int main() {
menu();
return 0;
}
• Exemplo:
• int funcao(intx)
float funcao(float x)
double funcao(double x, double y)
Function Overloading
Sobrecarga de Função
• Muito importante
• Várias funções podem ter o mesmo nome, desde que o
número e/ou o tipo de parâmetros sejam diferentes.
Recursividade
• #include <iostream>
• using namespace std; Recursividade
• int soma(int k) { exemplo
• if (k > 0) {
• return k + soma(k - 1);
• } else {
• return 0;
• }
• }
• int main() {
• int result = soma(10);
• cout << result;
• return 0;
• }
Recursividade - exemplo
int main() {
float precoArtigo, taxaDesconto, precoFinal;
cout << "Informe o preco do artigo: ";
cin >> precoArtigo;
cout << "Informe a taxa de desconto: ";
cin >> taxaDesconto;
precoFinal = calculaDesconto(precoArtigo, taxaDesconto);
cout << "Preco final com desconto: " << precoFinal << endl;
return 0;
}
• #include <iostream>
using namespace std;
int main() {
int num, contador;
cout << "programa para contar o numero de digitos de um dado numero \n";
cout << "Insira um numero: ";
cin >> num;
contador = contarDigitos(num);
cout << "A quantidade de numeros inseridos nesse numero: " << contador << endl;
return 0;
}
Exercícios:
• 3 –MDC em C++ - Como calcular o Máximo Divisor Comum
• Vamos calcular o MDC de um número, ou seja, o seu maior divisor
comum, usando recursão.
• Primeiro, temos que entender o que é MDC.
Todo o número natural pode ser divido por outros números, também
números naturais.
Por exemplo, o 8 pode ser dividido por:
8/1 = 8
8/2 = 4
8/4 = 2
8/8 = 1
O 11, que é um primo, pode ser dividido por:
11/1 = 11
11/11 = 1
Exercícios:
• 4 – Expoente
• Criar um programa em C++ que peça ao
utilizador a base e o expoente e mostre no ecrã
o valor final.
int main()
• #include <iostream> {
float a, b, resultado;
• using namespace std; cout << "introduza o valor da base \n";
• cin >>a;
float potencia(float base, float expoente){ cout << "introduza o valor do expoente \n";
• if (expoente ==0){ cin >> b;
• return 1; resultado = potencia(a,b);
cout <<a <<" elevado a "<< b <<" e igual a " << resultado <<"\n";
• }
return 0;
• }
if (expoente>0){
• return (base*potencia(base, expoente-1));
• }
•
if (expoente<0){
• return (1/potencia(base, -expoente));
• }
• } Exercícios
•
Números aleatórios com a Função rand()
• cout<<rand()<<endl;
O valor da rand mudou
Porque estamos a fornecer ao