Fundamentos de Programação.
Algoritmos & Linguagem C++
(MII)
Nome:_______________________________________
Turma:______
Elaborado pelos Educadores Voluntários:
Luiz Claudio de Andrade Junior ([email protected])
Wellington Cássio Faria ([email protected])
Laís Olímpio ([email protected])
Revisada por:
Elisa Marinho de Oliveira - Técnica de Telecomunicações ([email protected])
1
Sumário
Introdução: ............................................................................................................................. 5
O que é Programação? ....................................................................................................... 5
O que é um Programa e um Algoritmo? ............................................................................ 5
Capítulo I ................................................................................................................................. 6
1- Linguagem de programação C++ ................................................................................. 6
2- Compilador .................................................................................................................. 6
3- Ambiente Integrado de Desenvolvimento (IDE) ......................................................... 7
4- Método para a construção de algoritmos ................................................................... 8
4.1- Tipos de algoritmos ................................................................................................. 8
4.1.1- Descrição narrativa............................................................................................... 8
4.1.2- Fluxograma ........................................................................................................... 9
Exercícios de Fluxograma: ............................................................................................ 11
4.4.3- Pseudo Código ou Portugal ................................................................................ 12
4.4.3- Indentação.......................................................................................................... 13
5- Tipos de Dados .......................................................................................................... 14
5.1- Numéricos ............................................................................................................. 14
5.2- Lógicos ................................................................................................................... 14
5.3- Literais ou Caracteres ............................................................................................ 14
Exercícios de Pseudocódigo: ............................................................................................ 15
Capítulo II .............................................................................................................................. 16
1- Conversão Portugol Para C++ .................................................................................... 16
1.1-
Operadores Aritméticos: .................................................................................... 16
1.2-
Operadores Relacionais...................................................................................... 16
1.3-
Operadores Lógicos ............................................................................................ 17
1.4-
Funções de Entrada de Dados ............................................................................ 18
1.5-
Funções Matemáticas ........................................................................................ 19
Exercícios de funções Matemáticas: ............................................................................ 20
1.6-
Estruturas ........................................................................................................... 20
1.7-
Declaração de Variáveis ..................................................................................... 21
Exercícios de Implementação C++: ............................................................................... 22
2
Capítulo III ............................................................................................................................. 22
1. Estrutura Condicional em pseudocódigo .................................................................. 22
1.1- Estrutura Condicional simples ............................................................................... 22
1.2- Estrutura condicional composta. .......................................................................... 22
2. Estrutura condicional em Fluxograma....................................................................... 23
2.1- Estrutura condicional simples ............................................................................... 23
2.2- Estrutura condicional composta ........................................................................... 24
3. Estrutura condicional em C/C++ ................................................................................ 24
3.1- Estrutura condicional simples ............................................................................... 24
3.2- Estrutura condicional composta ........................................................................... 25
4. Estrutura Case............................................................................................................ 26
4.1- Comando em Pseudocódigo.................................................................................. 26
4.2- Fluxograma ............................................................................................................ 27
4.3- Comando em C/C++............................................................................................... 27
Exercícios de IF/ELSE e Switch Case em C++: ................................................................ 28
Capítulo IV ............................................................................................................................ 30
1. Estrutura de Repetição em Algoritmo .......................................................................... 30
1.1- Estrutura de Repetição para número definido de repetições (Estrutura PARA) .. 30
1.2- Estrutura de Repetição para número indefinido de repetições e teste no início
(Estrutura ENQUANTO) ................................................................................................ 32
1.3 Estrutura de repetição para número indefinido de repetições e teste no final
(Estrutura REPITA) ........................................................................................................ 34
Exercícios de Estruturas de Repetição ......................................................................... 36
Capítulo V ............................................................................................................................. 38
1.1-
Declaração de vetor ............................................................................................... 38
1.2-
Atribuindo valores ao vetor ................................................................................... 38
1.3-
Preenchendo um vetor .......................................................................................... 39
1.4-
Mostrando os elementos do vetor ........................................................................ 40
1.5-
Vetor em C++ ......................................................................................................... 40
1.5.1- Declaração de vetor ........................................................................................... 41
1.5.2- Atribuindo valores ao vetor ............................................................................... 41
1.5.3- Preenchendo um vetor....................................................................................... 42
1.5.4- Mostrando os elementos do vetor..................................................................... 42
3
Exercícios de Vetor: ...................................................................................................... 43
Sub-Rotinas ou Funções ....................................................................................................... 44
1. Exemplo em Pseudocódigo: ......................................................................................... 44
2. Exemplo em Fluxograma: ............................................................................................. 44
3. Exemplo em C++ ........................................................................................................... 45
3.1. Como criar e utilizar uma função?......................................................................... 45
3.2. Funções que retornam valores .................................................................................. 46
3.3. Funções com argumentos ......................................................................................... 47
4. Variáveis globais e locais .............................................................................................. 48
4.1. Variáveis Locais ...................................................................................................... 48
4.2.
Variáveis Globais ................................................................................................ 48
Exercícios de Funções: .................................................................................................. 50
Bibliografia ............................................................................................................................ 51
4
Introdução:
O que é Programação?
Programação é o processo de escrita, teste e manutenção de um programa de
computador. O programa é escrito em uma linguagem de programação, embora seja
possível, com alguma dificuldade, escrevê-lo diretamente em linguagem de máquina.
Não pensei que somente os computadores pessoais (Desktop e Laptops) são
computadores. Computador é qualquer dispositivo eletrônico capaz de tratamento
automaticamente
informações
ou
processamento de dados.
Assumiu-se que os computadores
pessoais e laptops são ícones da Era da
Informação; e isto é o que muitas
pessoas consideram como "computador".
Entretanto, atualmente as formas mais
comuns de computador em uso são os
sistemas
embarcados,
pequenos
dispositivos usados para controlar outros
Pequeno programa na
dispositivos, como robôs, câmeras
linguagem de
digitais, brinquedos e celulares.
programação C .
O que é um Programa e
um Algoritmo?
Um algoritmo é uma sequência de
passos para realizar uma tarefa ou
resolver um problema. Em nosso dia a dia
utilizamos algoritmos para realizar nossas
atividades, definindo a sequência de
atividades que devemos fazer para atingir um objetivo.
Um algoritmo é, num certo sentido, um programa abstrato, já um programa é um
algoritmo concretizado. Os programas são uma coleção de algoritmos menores que
combinados dando origem ao programa. Podemos considerar uma casa como exemplo, a
casa é um programa e o tijolo, telhado e janelas são algoritmos que constroem a casa.
5
Capítulo I
O conceito de algoritmo é frequentemente ilustrado pelo exemplo de uma receita
culinária, embora muitos algoritmos sejam mais complexos. Eles podem repetir passos ou
necessitar de tomadas de decisões até que a tarefa seja completada.
Um algoritmo não representa, necessariamente, um programa de computador, e
sim os passos necessários para realizar uma tarefa. Por exemplo, um algoritmo para se
calçar sapato pode especificar que você vista primeiro as meias e depois os sapatos e
amarre-os.
Nesse capitulo estudaremos os métodos para construção de algoritmos como PORTUGOL
e FLUXOGRAMA e posteriormente iremos implementar esses algoritmos no computador,
traduzindo os algoritmos para a linguagem de programação C++.
1- Linguagem de programação C++
A linguagem de programação C++ é sinônimo de desenvolvimento robusto em
sistemas que exijam suporte a alta complexidade em algoritmos computacionais.
O C++ toca a linha tênue entre a camada de hardware e a camada de software,
podendo trabalhar tanto no mais baixo até o mais alto nível, construindo sistemas dos
mais variados tipos e aplicações.
Construída nos anos 80 pelo cientista em computação “Bjarne Stroustrup“ nos
laboratórios da Bell, a linguagem é uma espécie de upgrade da linguagem “C” com todo o
suporte a POO (Programação Orientada a Objeto).
Esta linguagem tão conhecida por desenvolvedores do mundo todo, suporta
basicamente tudo o que a linguagem “C” oferece, tendo ainda suporte a orientação a
objetos, herança, polimorfismo, dados genéricos, abstração, exceções etc.
A linguagem ainda conta com uma biblioteca padrão constituída de
funcionalidades que vão desde a manipulação de conjunto de caracteres (std::string),
passando por manipulação de arquivos(std::fstream) até a manipulação de algoritmos
matemáticos complexos, dando também suporte a toda biblioteca padrão “C”.
Outro ponto forte da linguagem é a portabilidade, sistemas ou aplicações
desenvolvidas em C++ são portáveis para outras plataformas.
2- Compilador
Um compilador é um programa de computador que, a partir de um código
fonte escrito em uma linguagem, cria um programa semanticamente equivalente, porém
escrito em outra linguagem.
6
O compilador é usado principalmente para os programas que traduzem o código
fonte de uma linguagem de programação de alto nível (Linguagem C++) para
uma linguagem de programação de baixo nível (código de máquina).
Os computadores só são capazes de “entender” o código de máquina que são
instruções que são representadas por sequências de bits. Esse código é chamado de
código binário. São formados por 0 e 1.
3- Ambiente Integrado de Desenvolvimento (IDE)
IDE é um programa
de computador que reúne
características e ferramentas
de apoio ao desenvolvimento
de software com o objetivo de
agilizar este processo. As
características e ferramentas
mais comuns encontradas
nos IDEs são:

Editor - edita
o código-fonte do
programa escrito
na(s) linguagem(ns)
suportada(s) pela
IDE;

Compilador (compil
er) - compila o
código-fonte do
programa, editado
em uma linguagem específica e a transforma em linguagem de máquina;

Depurador (debugger) - auxilia no processo de encontrar e corrigir defeitos no códigofonte do programa, na tentativa de aprimorar a qualidade de software;

Refatoração (refactoring) - consiste na melhoria constante do código-fonte do software,
seja na construção de código mais otimizado, mais limpo e/ou com melhor entendimento
pelos envolvidos no desenvolvimento do software. A refatoração, em conjunto com os
testes automatizados, é uma poderosa ferramenta no processo de erradicação de "bugs",
tendo em vista que os testes "garantem" o mesmo comportamento externo do software ou
da característica sendo reconstruída.
A IDE que utilizaremos será o Code::Blocks que é voltado para o desenvolvimento
em C/C++
7
4- Método para a construção de algoritmos
Para a Construção de qualquer tipo de algoritmo, é necessário seguir estes passos:
a) Compreender complemente o problema a ser resolvido, destacando os pontos
mais importantes e os objetos que o compões.
b) Definir os dados de entrada, ou seja, quais dados serão fornecidos e quais objetos
fazem parte desse cenário-problema.
c) Definir o processamento, ou seja, quais cálculos serão efetuados e quais as
restrições para esses cálculos. O processamento é responsável pela transformação
dos dados de entrada em dados de saída. Além disso, deve se verificar quais
objetos são responsáveis pelas atividades.
d) Definir os dados de saída, ou seja, quais dados serão gerados depois do
processamento.
e) Construir o algoritmo utilizando um dos tipos descritos na próxima seção.
f) Testar o algoritmo realizando simulações.
4.1- Tipos de algoritmos
Os três tipos mais utilizados de algoritmo são: descrição narrativa, fluxograma e
pseudocódigo ou portugol, que descrevemos a seguir.
4.1.1- Descrição narrativa
A descrição narrativa consiste em analisar o enunciado do problema e escrever,
utilizando uma linguagem natural (por exemplo, a língua portuguesa), os passos a serem
seguidos para sua resolução.
Vantagem: não é necessário aprender nenhum conceito novo, pois uma língua natural,
neste ponto, já é bem conhecida.
Desvantagem: a língua natural abre espaço para várias interpretações, o que
posteriormente dificultará a transcrição desse algoritmo para programa.
8
Exemplo:
1 - Um algoritmo para se calçar sapato
1° Pegar sapatos.
2° Pegar meia.
3° Vista as meias.
4° Calce os sapatos.
5° Amarre os sapatos.
1 – Algoritmo, arrumar para ir à uma festa.
1° Pegar Toalha.
2° Tomar banho.
3°Escolher roupa.
4°Pegar roupa.
5°Vestir a roupa.
6°Pentear cabelo.
7°Calçar sapatos.
8°Dar tchau para a mãe.
9°Ir para festa.
4.1.2- Fluxograma
O fluxograma consiste em analisar o enunciado do problema e escrever, utilizando
símbolos gráficos pré definidos, os passos a serem seguidos para sua resolução.
Vantagem: o entendimento de elementos gráficos é mais simples que o entendimento de
textos.
Desvantagem: é necessário aprender a simbologia dos fluxogramas e, além disso, o
algoritmo resultante não apresenta muitos detalhes, dificultando sua transcrição para um
programa.
9
Exemplo
1 - Um algoritmo para se calçar sapato
Inicio
Pegar sapatos
Pegar meia
Calce os sapatos
Vista a meia
Amarre os Sapatos
Fim
10
2 - Algoritmo, arrumar para ir a uma festa.
Inicio
Vestir Roupa
Pentear Cabelo
Pegar Toalha
Tomar Banho
Pegar roupa
Escolher Roupa
Calçar
sapatos
Dar tchau para a
mãe
Ir para festa.
Fim
Exercícios de Fluxograma:
1.
2.
3.
4.
5.
Faça um fluxograma para entrar no Facebook.
Faça um fluxograma para escovar os dentes.
Faça um fluxograma que mostre o resultado da multiplicação de dois números.
Faça um fluxograma para mostar a divisão de dois números.
Faça um fluxograma para calcular a média aritmética entre duas notas de um
aluno e mostre sua situação, que pode ser aprovado(media>=60) ou
reprovado(média<60).
6. Faça um fluxograma para calcular o novo salário de um funcionário. Sabe-se que os
funcionários que recebem atualmente até R$500,00 terão um aumento de 20%; os
demais terão aumento 10%.
7. Faça um fluxograma que receba quatro notas de um alun, calcule e mostre a media
aritmética das notas e a mensagem de aprovado ou reprovado, considerando para
a aprovação média 7.
8. *Faça um fluxograma que receba três números e execute as operações listadas a
seguir, de acordo com a escolha do usuário.
11
Escolha do Usuário
1
2
3
4
Operações
Média entre os dois números
Subtrair o primeiro do segundo
Produto dos dois números
Divisão do Primeiro pelo Segundo
4.4.3- Pseudo Código ou Portugal
O pseudocódigo ou portugol consiste em analisar o enunciado do problema
e escrever, por meio de regras predefinidas, os passos a serem seguidos para sua
resolução.
Vantagem: a passagem do algoritmo para qualquer linguagem de programação é
quase imediata, bastando conhecer as palavras reservas dessa linguagem que serão
utilizadas.
Desvantagem: é necessário aprender as regras do pseudocódigo.
Exemplo
1 - Um algoritmo para se calçar sapato.
ALGORITMO_SAPATO
INICIO
DECLARE meia, sapato, amarra_sapato literal;
//entrada de dados
ESCREVA “Pegar meia e sapato”;
LEIA meia, sapato;
//Processamento
amarra_sapato = meia + sapato;
//Saída_de_Dados
ESCREVA “Sapatos calçados;
FIM
12
1
- Um algoritmo que some dois números
ALGORITMO_SOMA
INICIO
DECLARE N1,N2,S NUMERICO;
ESCREVA “Digite dois números”;
LEIA N1,N2;
S=N1+N2;
ESCREVA “A soma é: “, s;
FIM
4.4.3- Indentação
É um termo aplicado ao código fonte de um programa para ressaltar a hierarquia
entre os elementos. Na maioria das linguagens a indentação tem um papel meramente
estético, tornando a leitura do código fonte muito mais fácil. A indentação facilita
também a modificação, seja para correção ou aprimoramento, do código fonte.
Existem centenas de estilos de indentação, mas, basicamente, consiste na adição de
tabulações (Espaço) no início de cada linha na quantidade equivalente ao número de
blocos em que cada linha está contida.
13
5- Tipos de Dados
Os tipos de dados mais utilizados são: numérico, lógico e literais/caracteres, que
descrevemos a seguir.
5.1- Numéricos
Os dados numéricos dividem se em dois grupos: inteiros e reais.
Os números inteiros pode ser positivo ou negativos e não possuem parte
fracionária.
Exemplo
-23
98
0
-357
237
-2.
Os números reais podem ser positivos ou negativos e possuem parte fracionária.
Exemplo
23. 45
346. 89
-34. 88
0. 0
-247. 0
5.2- Lógicos
São também chamados dados booleanos e podem assumir os valores verdadeiro
ou falso.
5.3- Literais ou Caracteres
São dados formados por um único caracter ou por uma cadeia de caracteres. Esses
caracteres podem ser as letras maiúsculas, as letras minúsculas, os números(não podem
ser usados para cálculos) e os caracteres especiais (&, #, @, ?, +).
Exemplo:
'aluno'
'1234'
'@ internet'
'0.34'
'1 + 2'
14
Exercícios de Pseudocódigo:
1. Faça um programa que receba 4 números inteiros, calcule e mostre a soma desses
numeros.
2. Faça um programa que receba três notas, calcule a e mostre a mérdia aritmética
entre elas.
3. Faça um programa que receba o sálario de um funcionário, calcule e mostre o
novo sálario, sabendo-se que este sofreu um aumento de 25%.
4. Faça um programa que receba o sálario de um funcionário e o percetual de
aumento, calcule e mostre o valor do aumento e novo sálario.
5. Faça um programa que calcule e mostre a área de um triângulo. Sabe-se que:
Área=(base*altura)/2.
6. Faça um programa que receba uma medida em pés, faça as conversões a seguir e
mostre os resultados.
 1 pé = 12 polegadas
 1 jarda = 3 pés
 1 milha = 1760 jardas
Faça um programa que receba uma medida em pés, faça as conversões e mostre
os resultados em polegadas, jardas e milhas.
7. Faça um programa para resolver equação do 2º grau.
Equação: aX²+bX+c
8. Faça um programa que calcule e mostre a área de um círculo. Sabe-se que:
9. O custo ao consumidor de um carro novo é a soma do preço de fábrica
com o percentual de lucro do distribuidor e dos impostos aplicados ao preço
de fábrica. Faça um programa que receba o preço de fábrica de um veículo,
o percentual de lucro do distribuidor e o percentual de impostos. Calcule e
mostre:
a. O valor correspondente ao lucro do distribuidor
b. O valor correspondente aos impostos.
c. O preço final do veículo.
15
Capítulo II
Nesse capítulo vamos implementar os exercícios do capítulo anterior convertendo
o Portugol para Linguagem C++. Utilizaremos a IDE “Code::Blocks” para transformará
nossos programas em C++ em Código de Máquina.
1- Conversão Portugol Para C++
1.1-
Operadores Aritméticos:
Operação
C++
Exemplo
Valor de X?
Igualdade e Atribuição
=
X=10
Soma
+
X=5+5
Subtração
x=5-4
Multiplicação
*
x=4*3
Divisão
/
x=8/2
Módulo (Resto da Divisão)
%
x=11%2
Parentes
()
X=(5*2+10)+6-1*2
Prioridades: 1º Parentes, 2º Multiplicação e Divisão, 3º Soma e Subtração
1.2-
Operadores Relacionais
Operador
C++
Maior
>
Maior ou igual
>=
Menor
<
Menor ou Igual
<=
Igual
==
Diferente
!=
Exemplo
A=15;
Z=A>10;
Y=20>A;
A=10;
Z=A>=10;
Y=A>=2;
A= -10;
Z=A<0;
Y= -100<A;
A=5;
Z= A<=3;
Y= A<=2;
A=5;
B=5;
Z=A==B;
Y=A==2;
A=5;
B=5;
Z=A!=B;
Y=A!=2;
Valor de Z e Y?
16
1.3-
Operadores Lógicos
Operador
C++
E
VeV=V
VeF=F
FeV=F
F e F= F
OU
VeV=V
VeF=V
FeV=V
F e F= F
NÃO
&&
Exemplo
Valor de Z?
X=10
Y=5
Z= (X>=Y)&&(Y==5)
||
A= ‘s’;
B= ‘n’;
Z=(A!=‘s’)||(B== ‘n’)
!
X=10;
Z=!(X!=10)
Macete: ARNEOU
A - 1º Prioridade Aritmético
R - 2º Prioridade Relacional
N - 3º Prioridade Não
E- 4º Prioridade E
OU- 5º Prioridade OU
Z=10>=5&&5==2||5+2*2<(4+1)*2 = _____________
17
1.4-
Funções de Entrada de Dados
Portugol
LEIA (Caracteres e
Números)
C++
cin>>
cin >>variável;
Biblioteca
#include <iostream>
using namespace std;
cin.getline(variável);
LEIA (String)
char nome[10];
cout << "Digite um nome: ";
cin.getline(nome);
#include <iostream>
using namespace std;
cout<<
ESCREVA
X=10;
cout << "O valor de X=" << X;
#include <iostream>
using namespace std;
CARACTER é uma letra ou símbolo, por exemplo: A, B, $, C, A etc. Já uma STRING é
conjunto de CARACTERES, por exemplo, um nome: MARIA é uma STRING com 5
CARACTERES.
Exemplo:
#include <iostream>
using namespace std;
char nome[10]; //Nome com 10 Caracteres
int idade;
int main()
{
cout << "Entre com nome: “;
cin.getline(nome);
cout << "Entre com a Idade:";
cin>>idade;
cout <<nome<<” tem “<<idade<<” anos”;
18
system("PAUSE");
return 0;
}
1.5-
Funções Matemáticas
|x|
Módulo
Cosseno
Seno
Tangente
Exponencial
Log neperiano/natural/base e
Log na base 10
Potenciação
√
Raiz Quadrada
Arredondamento para
Baixo.
Arredondamento para
Cima.
C++ / Portugol
Biblioteca
abs(x)
#include <cmath>
cos(x)
sin(x)
tan(x)
exp(x)
log(x)
log10(x)
#include <cmath>
#include <cmath>
#include <cmath>
#include <cmath>
#include <cmath>
#include <cmath>
pow(2, 3)
pow(base, expoente)
#include <cmath>
sqrt(49)
sqrt(Radicando)
Índice=2
#include <cmath>
floor(x)
#include <cmath>
ceil(x);
#include <cmath>
19
Exercícios de funções Matemáticas:
1) Implemente em C++ as expressões abaixo:
b)
√
c)
d)
1.6-
(
)
Estruturas
PORTUGOL
ALGORITMO_NomeDoAlgoritmo
INICIO
comandos;
FIM
SE(condição)
INICIO
comandos;
FIM
SE(condição)
INICIO
comandos;
FIM SENÃO
INICIO
comandos;
FIM
C/ C++
int main(void)
{
cout<< “Estrutura Básica!”;
}
if(condição)
{
cout<< “Entra se condição for verdadeira!”;
}
If(condição)
{
cout<< “Entra se condição for verdadeira!”;
}else
{
cout<< “Entra se condição for Falsa!”;
}
20
ENQUANTO condição FAÇA
INICIO
comandos;
FIM
PARA i=n ATÉ m FAÇA
INICIO
comandos;
FIM
REPITA
comandos;
ATÉ condição;
ESCOLHA(variável)
INICIO
CASO valor1: comando1;
CASO valor2: comando1;
...
CASO valor12: comando12;
CASO CONTÁRIO: comando13;
FIM
while(condição)
{
cout<< “Repita até condição FALSA!”;
}
for(i=n;n<=m;n++)
{
cout<< “Repita até n=m!”;
}
do
{
cout<< “Repita até condição VERDADEIRA!”;
}while(condição);
switch(variável)
{
case valor1: cout<<“Executa quando
variável = valor2”;
break;
case valor2:
variável = valor2”;
break;
cout<<“Executa
quando
cout<<“Executa
quando
...
case valor12:
variável = valor12”;
break;
default:
cout<<“Executa no quando
variável != de valor1, valor2,..., valor12”;
}
1.7-
Declaração de Variáveis
Portugol
C++ / C
DECLARE a,b NUMERICO;
int a; //Números inteiros
float b; //Números Fracionários
DECLARE nome,sexo LITERAL;
char nome[10]; //String com 10 Carácteres
char sexo; //(M ou F) Carácter
21
DECLARE a LOGICO
boolean a;
Exercícios de Implementação C++:
1) Implemente em C++ os Exercícios de Pseudocódigo do Capitulo I
Capítulo III
1. Estrutura Condicional em pseudocódigo
1.1- Estrutura Condicional simples
SE (condição)
ENTÃO comandos
O comando só será executado se a condição for verdadeira. Uma condição é uma
comparação que possui dois valores possíveis: verdadeiro ou falso.
SE (condição)
ENTÃO INÍCIO
comando1;
comando2;
comando3;
FIM
Os comandos 1, 2 e 3 só serão executados se a condição for verdadeira. As palavras INÍCIO
e FIM serão necessária apenas quando dois ou mais comando forem executados.
1.2- Estrutura condicional composta.
SE (Condição)
ENTÃO INÍCIO
comando1;
comando2;
FIM
SENÃO INÍCIO
comando3;
comando4;
FIM
22
Se a condição for verdadeira, o comando1 e o coomano2 serão executados; caso
contrário, o comando 3 e o comando4 serão executados
2. Estrutura condicional em Fluxograma
2.1- Estrutura condicional simples
INICIO
F
SE
CONTINUA
PROGRAMA
V
COMANDO1
COMANDO2
COMANDO3
FIM
23
2.2- Estrutura condicional composta
INICIO
F
SE
SENÃO
COMANDO3
COMANDO4
V
COMANDO1
COMANDO2
CONTINUA O
PRORAMA
FIM
3. Estrutura condicional em C/C++
3.1- Estrutura condicional simples
if (condição)
comando;
O comando só sera executados se a condição for verdadeira. Uma condição é uma
comparação que possui dois valores possíveis: verdadeiro ou falso.
If (condição)
{
comando1;
comando2;
comando3;
}
Em C/C++ torna-se obrigatória a utilização de chaves quando existe mais e um comando a
executar. Os comandos etre chaves { } só serão executados se a condição for verdadeira.
24
3.2- Estrutura condicional composta
if (condição)
comando1;
elses
comando2;
Se a condição for verdadeira, será executado o comando1; se for falsa, será executado o
comando2.
Exemplo 1:
If (condição)
{
comando1;
comando2;
}
else
{
comando3;
comando4;
}
Exemplo 2:
If (condição1)
{
comando1;
comando2;
If (condição2)
{
comando5;
comando6;
}
}
else if
{
comando3;
comando4;
}
else
25
{
comando7;
comando8;
}
Se a condição fo verdadeira, o comando1 e o comando2 serão executados; caso
contrário, o comando e o comando4 serão executados.
4. Estrutura Case
Em alguns programas, existem situações mutuamente exclusivas, isto é, se uma
situação for executada, as demais não serão. Esse comando em C/C++ tem a seguinte
sintaxe:
4.1- Comando em Pseudocódigo.
ESCOLHA (Variável)
{
CASO valor1: lista de comandos;
break;
CASO valor2: lista de comandos;
break;
…..
CASO CONTRARIO: lista de comanos;
}
26
4.2- Fluxograma
INICIO
V
CASE 1
COMANDO1
COMANDO2
V
COMANDO3
COMANDO4
CASE 2
V
CASE 2
CASO NÂO
EXITE
COMANDO3
COMANDO4
FIM
4.3- Comando em C/C++
switch (Variável)
{
case valor1: lista de comandos;
break;
case valor2: lista de comandos;
break;
…..
default: lista de comanos;
}
27
O comando switch (variável) avalia o valor de uma variável para decidir qual case
será executado. Cada case está associado a UM possível valor da variável, que deve ser,
obrigatoriamente, do tipo char, unsigned char, int, unsigned int, short int, long ou
unsigned long.
O comando break deve ser utilizado para impedir a execução dos comandos
definidos nos cases, será executado então o default.
Exemplo:
#include <iostream.h>
#include <conio.h>
void main ()
{
int i;
clrscr ();
cout<<”Digite um número”;
cin>>i
switch(i)
{
case 1:cout<<”Número 100”;
break;
case 2:cout<<”Número 200”;
break;
default:cout<<”Número diferente de 1 e 2”;
}
getch();
}
Exercícios de IF/ELSE e Switch Case em C++:
1) Faça um programa que receba dois números inteiros, digitados pelo usuário e
mostre o maior e o menor número digitado.
2) Tendo como dados de entrada a altura e o sexo de uma pessoa (M masculino e F
feminino), construa um algoritmo que calcule seu peso ideal, utilizando as
seguintes fórmulas:
- para homens: (72.7*h)-58
- para mulheres: (62.1*h)-44.7
28
3) Faça um algoritmo que leia um nº inteiro e mostre uma mensagem indicando se
este número é par ou ímpar, e se é positivo ou negativo.
4) Faça um Programa que peça um valor e mostre na tela se o valor é positivo ou
negativo.
5) Faça um Programa que verifique se uma letra digitada é vogal ou consoante.
6) Faça um programa para a leitura de duas notas parciais de um aluno. O programa
deve calcular a média alcançada por aluno e apresentar:

A mensagem "Aprovado", se a média alcançada for maior ou igual a sete;
 A mensagem "Reprovado", se a média for menor do que sete;
 A mensagem "Aprovado com Distinção", se a média for igual a dez.
7) Faça um Programa que leia três números e mostre-os em ordem decrescente.
8) Faça um Programa que pergunte em que turno você estuda. Peça para digitar Mmatutino ou V-Vespertino ou N- Noturno. Imprima a mensagem "Bom Dia!", "Boa
Tarde!" ou "Boa Noite!" ou "Valor Inválido!", conforme o caso.
Saldo médio
de 0 a 200
Percentual
nenhum crédito
de 201 a 400
20% do valor do saldo médio
de 401 a 600
30% do valor do saldo médio
acima de 601
40% do valor do saldo médio
9) Um banco concederá um crédito especial aos seus clientes, variável com o saldo
médio no último ano. Faça um algoritmo que leia o saldo médio de um cliente e
calcule o valor do crédito de acordo com a tabela abaixo. Mostre uma mensagem
informando o saldo médio e o valor do crédito.
29
Capítulo IV
Estrutura de repetição, na ciência da computação, é uma estrutura que realiza e/ou repete
diferentes algoritmos/ações dependendo se uma condição é verdadeira ou falsa.
1. Estrutura de Repetição em Algoritmo
Uma estrutura de repetição é utilizada quando um trecho do programa ou até
mesmo o algoritmo inteiro precisa ser repetido. O número de repetições pode ser fixo ou
estar atrelado a uma condição. Assim, existem estruturas para tais situações, descritas a
seguir.
1.1- Estrutura de Repetição para número definido de repetições
(Estrutura PARA)
Essa Estrutura de repetição é utilizada quando se sabe o número de vezes que um
trecho do algoritmo deve ser repetido. O formato geral dessa estrutura é:
PARA I < 1Valor inicial ATÉ valor final FAÇA [PASSO N]
INICIO
comando1;
comando2;
…;
comandoM;
FIM
O comando1, o comando2 e o comandoM serão executados utilizando-se a
variável I como controle, e seu conteúdo vai variar do valor inicial até valor final. A
informação do PASSO está entre colchetes porque é opcional. O PASSO indica como será a
variável de controle. Por exemplo, quando for indicado PASSO 2, a variável de controle
será aumentada em 2 unidades a cada interação até atingir o valor final. Quando a
informação do PASSO for suprimida,isso significa que o incremento ou o decremento da
variável de controle será de 1 unidade.
Quando houver apenas um comando a ser repetido, os marcadores de bloco
INÍCIO e FIM poderão ser suprimidos.
Exemplos:
PARA I < 1 ATÉ 10 FAÇA;
ESCREVA I;
30
O comando ESCREVA I será executado dez vezes, ou seja, para I variando de 1 a 10.
Assim, os valores de I serão 1, 2, 3, 4, 5, 6, 7, 8, 9 e 10.
PARA J < 1 ATÉ 9 FAÇA PASSO 2;
ESCREVA J;
O comando ESCREVA J será executado cinco vezes, ou seja para J variando de 1 a
10, de 2 em 2. Assim, os valores de J serão: 1, 3, 5, 7 e 9.
PARA I < 10 ATÉ 5 FAÇA;
ESCREVA I;
O comando ESCREVA I será executado seis vezes, ou seja, para I variando de 10 a 5.
Assim, os valores de I serão: 10, 9, 8, 7, 6 e 5.
PARA J < 15 ATÉ 1 FAÇA PASSO -2
ESCREVA J;
O comando ESCREVA J será executado oito vezes, ou seja, para J variando de 15 a
1, de 2 em 2. Assim, os valores de J serão: 15, 13, 11, 9, 7, 5, 3 e 1.
Exemplo em C++ da Estrutura FOR(Para):
No exemplo, faremos um programa que contará de 1 a 100:
#include <iostream>
#include <cstdlib>
using namespace std;
int main (void)
{
int x;
for (x=1; x<=100; x++)
{
cout << x <<"\t";
}
system ("pause");
return 0;
}
31
1.2- Estrutura de Repetição para número indefinido de repetições e teste
no início (Estrutura ENQUANTO)
Essa estrutura de repetição é utilizada quando não se sabe o número de vezes que
um trecho do algoritmo deve ser repetido, embora também possa ser utilizada quando se
conhece esse número.
Essa estrutura baseia-se na análise de uma condição. A repetição será feita
enquanto a condição mostrar-se verdadeira.
Existem situações em que o teste condicional da estrutura de repetição, que fica
no início, resulta em um valor falso logo na primeira comparação. Nesses casos, os
comandos de dentro da estrutura de repetição não serão executados.
ENQUANTO condição FAÇA
comando1;
Enquanto a condição for verdeira, o comando1 será executado.
ENQUANTO condição FAÇA
INICIO
comando1;
comando2;
comando3;
FIM
Enquanto a condição for verdadeira, o comando1, o comando2 e o comando3
serão executados.
Exemplos:
X < 1;
Y < 2;
ENQUANTO X<Y FAÇA
INÍCIO
X < X + 2;
Y < Y + 1;
FIM
Simulação:
X
1
Y
5
Valores iniciais
32
3
5
7
9
6
7
8
9
Valores obtidos dentro da estrutura de repetição
No trecho do algoritmo anterior, portanto, os comandos que estão dentro da
estrutura de repetição serão repetidos quatro vezes.
X < 1;
Y < 2;
ENQUANTO X <= Y FAÇA
INÍCIO
X < X * 2;
Y < Y + 1;
FIM
Simulação:
X
1
Y
1
1
2
6
24
120
2
3
4
5
6
Valores iniciais
Valores obtidos dentro da estrutura de repetição
No trecho do algoritmo anterior, portanto, os comandos que se localizam na
estrutura de repetição serão repetidos cinco vezes. Nesses exemplo, a estrutura
ENQUANTO é utilizada para repetir o trecho do algoritmo um número definido de vezes
Exemplo de C++:
No exemplo são mostrados os números pares entre 0 e 100.
#include <iostream>
#include <cstdlib>
using namespace std;
int main (void)
{
int par=0;
cout <<"Os numeros pares de 0 a 100 sao:\n\n";
33
while (par<=100)
{
cout <<par<<"\t";
par+=2; //o mesmo que par=par+2
}
system ("pause");
return 0;
}
1.3 Estrutura de repetição para número indefinido de repetições e teste
no final (Estrutura REPITA)
Essa estrutura de repetição é utilizada quando não se sabe o número e vezes que
um trecho do algoritmo deve ser repetido, embora também possa ser utilizada quando se
conhece esse número.
Essa estrutura baseia-se na análise de uma condição. A repetição será feita até a condição
tornar-se verdadeira.
A diferença entre a estrutura ENQUANTO e a estrutura REPITA é que nesta última os
comandos serão repetidos pelo menos uma vez, já que a condição de parada se encontra
no final.
REPITA
Comandos;
ATÉ (condição)
Repita os comandos até a condição se tornar verdadeira.
Exemplos:
X < 1;
Y < 5;
REPITA
X < X + 2;
Y < Y + 1;
Simulação:
X
1
Y
5
3
5
7
9
6
7
8
9
Valores iniciais
Valores obtidos dentro da estrutura de repetição
34
No trecho do algoritmo anterior, portanto, os comandos de dentro da estrutura de
repetição serão repetidos quatro vezes.
X < 1;
Y < 5;
REPITA
Y < X * Y;
X < X + 1;
ATÉ X = 6;
Simulação:
X
1
Y
1
1
2
6
24
120
2
3
4
5
6
Valores iniciais
Valores obtidos dentro da estrutura de repetição
No trecho do algoritmo anterior, portanto, os comandos que se localizam dentro
da estrutura de repetição serão repetidos cinco vezes. Nesse exemplo, a estrutura REPITA
é utilizada para repetir o trecho do algoritmo um número definido de vezes.
Exemplo em C++:
Este programa verifica se um número é par ou ímpar, e finaliza em 0.
#include <iostream>
#include <cstdlib>
using namespace std;
int main (void)
{
int nr;
do
{
cout <<"Digite um numero (0 para finalizar): ";
cin >> nr;
cin.ignore ();
if (nr%2==0)
{
cout <<"Este numero e par\n";
35
}else
{
cout <<"Este numero e impar\n";
}
system ("pause");
system ("cls"); //Limpa a Tela
} while (nr!=0); //enquanto nr for diferente de 0
return 0;
}
Exercícios de Estruturas de Repetição
1) Faça um programa que imprima na tela os números de 1 a 20, um abaixo do outro.
2) Faça um programa que imprima na tela os números de 1 a 20 um ao lado do outro.
3) Faça um programa que peça uma nota, entre zero e dez. Mostre uma mensagem
caso o valor seja inválido e continue pedindo até que o usuário informe um valor
válido.
4) Faça um programa que leia um login e uma senha, se login estiver errado peça
para o usuário entrar de novo com o login e mesmo como a senha. Quando o
senha e login estiverem certos, envie uma mensagem de sucesso .(Login=aluno,
Senha=123)
5) Supondo que a população de um país A seja da ordem de 80000 habitantes com
uma taxa anual de crescimento de 3% e que a população de B seja 200000
habitantes com uma taxa de crescimento de 1.5%. Faça um programa que calcule e
escreva o número de anos necessários para que a população do país A ultrapasse
ou iguale a população do país B, mantidas as taxas de crescimento.
6) Faça um programa que leia 5 números e informe o maior número.
7) Desenvolva um gerador de tabuada, capaz de gerar a tabuada de qualquer número
inteiro entre 1 a 10. O usuário deve informar de qual numero ele deseja ver a
tabuada. A saída deve ser conforme o exemplo abaixo:
 Tabuada de 5:
 5X1=5
 5 X 2 = 10
 ...
 5 X 10 = 50
8) Faça um programa que peça dois números, base e expoente, calcule e mostre o
primeiro número elevado ao segundo número. Não utilize a função de potência da
linguagem.
9) Faça um programa que peça 10 números inteiros, calcule e mostre a quantidade
de números pares e a quantidade de números impares.
10) Faça um programa que calcule o fatorial de um número inteiro fornecido pelo
usuário. Ex.: 5!=5.4.3.2.1=120
36
11) Faça um programa que, dado um conjunto de N números, determine o menor
valor, o maior valor e a soma dos valores.
12) Faça um programa que peça um número inteiro e determine se ele é ou não um
número primo. Um número primo é aquele que é divisível somente por ele mesmo
e por 1.
13) Altere o programa de cálculo dos números primos, informando, caso o número
não seja primo, por quais número ele é divisível.
14) O Sr. Manoel Joaquim possui uma grande loja de artigos de R$ 1,99, com cerca de
10 caixas. Para agilizar o cálculo de quanto cada cliente deve pagar ele
desenvolveu um tabela que contém o número de itens que o cliente comprou e ao
lado o valor da conta. Desta forma a atendente do caixa precisa apenas contar
quantos itens o cliente está levando e olhar na tabela de preços. Você foi
contratado para desenvolver o programa que monta esta tabela de preços, que
conterá os preços de 1 até 50 produtos, conforme o exemplo abaixo:
 Lojas Quase Dois - Tabela de preços
 1 - R$ 1.99
 2 - R$ 3.98
 ...
 50 - R$ 99.50
15) O Sr. Manoel Joaquim expandiu seus negócios para além dos negócios de 1,99 e
agora possui uma loja de conveniências. Faça um programa que implemente uma
caixa registradora rudimentar. O programa deverá receber um número
desconhecido de valores referentes aos preços das mercadorias. Um valor zero
deve ser informado pelo operador para indicar o final da compra. O programa
deve então mostrar o total da compra e perguntar o valor em dinheiro que o
cliente forneceu, para então calcular e mostrar o valor do troco. Após esta
operação, o programa deverá voltar ao ponto inicial, para registrar a próxima
compra. A saída deve ser conforme o exemplo abaixo:
 Lojas Tabajara
 Produto 1: R$ 2.20
 Produto 2: R$ 5.80
 Produto 3: R$ 0
Total: R$ 9.00
Dinheiro: R$ 20.00
Troco: R$ 11.00
...
16) O Departamento Estadual de Meteorologia lhe contratou para desenvolver um
programa que leia as um conjunto indeterminado de temperaturas, e informe ao
final a menor e a maior temperatura informadas, bem como a média das
temperaturas.
37
Capítulo V
Vetor também é conhecido como variável composta homogênea unidimensional.
Isto quer dizer que se trata de um conjunto de variáveis de mesmo tipo, que possuem o
mesmo identificador (nome) e são alocadas sequencialmente na memória. Como as
variáveis têm o mesmo nome, o que as distingue é um índice que referencia sua
localização dentro da estrutura.
1.1- Declaração de vetor
DECLARE nome [tamanho] TIPO;
Nome: é o nome da variável do tipo vetor.
Tamanho: é a quantidade de variáveis que vão compor o vetor.
Tipo: é o tipo básico dos dados que serão armazenados no vetor.
Exemplo de vetor
DECLARE x[5] NUMÉRICO;
X =[ ]
1
2
3
4
5
1.2- Atribuindo valores ao vetor
As atribuições em vetor exigem que seja informada em qual de suas posições o
valor ficará armazenado.
X[1] = 45
No exemplo, o número 45 será armazenado na posição de índice 1 do vetor.
X[4] = 0
No exemplo, o número 45 será armazenado na posição de índice 4 do vetor.
38
1.3- Preenchendo um vetor
Preencher um vetor significa atribuir valores a todas as suas posições. Assim, devese implementar um mecanismo que controle o valor do índice.
Para i  1 ate 5 para faça
INICIO
Escreva “Digite o ”, i, “° número”;
LEIA x[i];
FIM
Nesse exemplo, a estrutura de repetição PARA foi utilizada para garantir que a variável i
assuma todos os valores possíveis para o índice do vetor. Assim, para cada execução da
repetição, será utilizada uma posição diferente do vetor.
Simulação:
X =[i]
1
2
i=1
3
4
5
TELA “Digite o primeiro número”, x [1]= 95
95
1
2
3
4
5
i=2
TELA “Digite o segundo número”, x [2]= 13
95
1
13
2
3
4
5
i=3
TELA “Digite o terceiro número”, x [3]= -25
95
1
i=4
13
2
-25
3
4
5
TELA “Digite o quarto número”, x [4]= 47
39
95
1
13
2
i=5
-25
3
47
4
5
TELA “Digite o quinto número”, x [5]= 0
95
1
13
2
-25
3
47
4
0
5
1.4- Mostrando os elementos do vetor
Mostrando os valores contidos em um vetor também implica a utilização do índice.
PARA i <
1 até 5 faça
INICIO
Escreva “Este é o ”, i, ”° número do vetor”;
Escreva X[i];
FIM
Nesse exemplo, a estrutura de repetição PARA foi utilizada para garantir que a
variável i assuma todos os valores possíveis para o índice do vetor. Assim, para execução
da repetição, será utilizada uma posição diferente e, dessa forma, todos os valores do
vetor serão mostrados.
1.5- Vetor em C++
Definição de vetor
As variáveis compostas homogêneas unidimensionais (vetores) são capazes de
armazenar vários valores. Cada um desses valores é identificado pelo mesmo nome (o
nome dado ao vetor). Eles são diferenciados apenas por um índice.
Os índices utilizados na linguagem C++ para identificar as posiçoes de um vetor
começam sempre em 0(zero) e vão até o tamanho do vetor menos uma unidade.
40
1.5.1- Declaração de vetor
Os vetores em C++ são identificados pela existência de colchetes logo após o nome
da variável no momento da declaração. Dentro dos colchetes deve-se colocar o número
de posições do vetor.
Exemplo de vetor
int vet[10];
vet [i]
10
5
0
3
1
8
2
1
3
19
4
44
5
21
6
2
7
8
7
9
Nesses exemplo, o vetor chamado vet possui dez posições, começando pela
posição 0 e indo até a posição 9 (tamanho do vetor -1). Em cada posição poderão ser
armazenados números inteiros, conforme especificado pelo tipo int da declaração.
Char x[5];
x[i]
A
*
0
2
1
@
2
K
3
4
Nesse exemplo, o vetor chamado x possui cinco posições, começando pela posição
0 e indo até a posição 4 (tamanho do vetor -1). Em cada posição poderão ser armazenados
caracteres, conforme especificado pelo tipo char na declaração.
Obs: É importante lembrar, que toda vez que se faz uso de um vetor para armazenar uma
cadeia de caracteres, deve-se definir uma posição a mais que a necessária para armazenar
a marca de finalização de cadeia (\0).
1.5.2- Atribuindo valores ao vetor
As atribuições em vetor exigem que seja informada em qual de suas posições o
valor ficará armazenado. Deve-se lembrar sempre que a primeira posição de um vetor em
C++ tem índice 0.
41
vet [0] = 1; //atribui o valor 1 a primeira posição do vetor (lembre-se que o vetor começa
na posição 0)
x[3] = 'b'; //atribui a letra b à quarta posição do vetor (lembre-se que o vetor começa na
posição 0)
1.5.3- Preenchendo um vetor
Preencher um vetor significa atribuir valores a todas as suas posições. Assim, devese implementar um mecanismo que controle o valor do índice.
for (i=0; i<10; i++)
{
cin >> vetor[i];
}
Nesse exemplo, a estrutura de repetição FOR foi utilizada para garantir que a
variável i assuma todos os valores possíveis para o índice do vetor (de 0 a 9). Assim, para
cada execução da repetição, será utilizada uma posição diferente do vetor.
1.5.4- Mostrando os elementos do vetor
Mostrar os valores contidos em um vetor também exige a utilização do índice.
for (i=0; i<10; i++)
{
cout << vetor[i];
}
Nesse exemplo, a estrutura de repetição FOR foi utilizada para garantir que a
variável i assuma todos os valores possíveis para o índice do vetor (de 0 a 9). Assim, para
cada execução da repetição, será utilizada uma posição diferente e, dessa forma, todos os
valores do vetor serão mostrados.
42
Exercícios de Vetor:
1) Faça um Programa que leia um vetor de 5 números inteiros e mostre-os.
2) Faça um Programa que leia um vetor de 10 números reais e mostre-os na ordem
inversa.
3) Faça um Programa que leia 4 notas, mostre as notas e a média na tela.
4) Faça um Programa que leia 20 números inteiros e armazene-os num vetor.
Armazene os números pares no vetor PAR e os números IMPARES no vetor impar.
Imprima os três vetores.
5) Faça um Programa que peça as quatro notas de 10 alunos, calcule e armazene
num vetor a média de cada aluno, imprima o número de alunos com média maior
ou igual a 7.0.
6) Uma empresa de pesquisas precisa tabular os resultados da seguinte enquete
feita a um grande quantidade de organizações:
"Qual o melhor Sistema Operacional para uso em servidores?"
As possíveis respostas são:
1- Windows Server
2- Unix
3- Linux
4- Netware
5- Mac OS
6- Outro
Você foi contratado para desenvolver um programa que leia o resultado da
enquete e informe ao final o resultado da mesma. O programa deverá ler
os valores até ser informado o valor 0, que encerra a entrada dos dados.
Não deverão ser aceitos valores além dos válidos para o programa (0 a 6).
Os valores referentes a cada uma das opções devem ser armazenados num
vetor. Após os dados terem sido completamente informados, o programa
deverá calcular a percentual de cada um dos concorrentes e informar o
vencedor da enquete. O formato da saída foi dado pela empresa, e é o
seguinte:
Sistema Operacional Votos %
------------------- ----- --Windows Server
1500 17%
Unix
3500 40%
Linux
3000 34%
Netware
500 5%
Mac OS
150 2%
Outro
150 2%
------------------- ----Total
8800
O Sistema Operacional mais votado foi o Unix, com 3500 votos,
correspondendo a 40% dos votos.
43
Sub-Rotinas ou Funções
Sub-rotinas, também chamadas de funções, são blocos de instrução que realizam
tarefas específicas. As funções podem ser executados quantas vezes forem necessários, elas
também ajudar diminuindo o programa principal tornando-o menor e mais organizado.
Os programas em geral são executados linearmente(uma linha após a outra, até o
fim). Entretanto, quando são utilizadas a funções, é possível a realização de desvios na
execução do programa. Estes desvios são efetuados quando uma função é chamada pelo
programa principal.
1. Exemplo em Pseudocódigo:
O algoritmo apresentado tem como objetivo receber o valor do salário de um
funcionário e calcular o novo salário.
ALGOTIMO Novo_salario
INICIO
DECLARE sal, aumento, novo_sal NUMERICO;
LEIA sal;
aumento ← calc_almento(sal);
novo_sal ← sal+aumento;
ESCREVA “Novo Salário é”, novo_sal;
FIM
FUNCAO calc_almento(sal NUMERICO) //Com passagem de parâmetro
INICIO
DECLARE percentual, valor NUMERICO;
LEIA percentual;
valor ← sal*percentual/100;
RETORNE valor; //Com retorno
FIM
2. Exemplo em Fluxograma:
Programa com uma função para calcular o Fatorial de um número.(Com passagem de
parâmetro e retorno)
44
3. Exemplo em C++
Funções são usadas para criar pequenos pedaços de códigos separados do
programa principal. Em C/C++, tudo, na verdade, é uma função. INT MAIN (VOID) é uma
função, por exemplo.
Exceto a função MAIN, todas as outras funções são secundárias, o que significa que
elas podem existir ou não.
Então, qual a vantagem de fazermos uma função?
Funções são importantes porque elas retornam valores, ajudam a fragmentar o
código em partes menores - mais fáceis de lidar - e ainda por cima podem ser utilizadas
mais de uma vez no mesmo programa, poupando preciosos minutos de programação e
inúmeras linhas de código.
3.1. Como criar e utilizar uma função?
Criamos uma função indicando o tipo de retorno (saída) que será int, float, etc...
Nomeamos a função (valem as mesma regras das variáveis, ex.: Não começa nomes de
funções com número) e terminamos colocando entre parênteses os argumentos. Todo o
código da função deve estar dentro de um bloco de instrução ( { } ), mesmo que haja
apenas uma linha.
Após a função ser criada, basta chamarmos a função dentro da função principal
MAIN.
Para chamá-la, apenas digitamos o nome da função e entre parênteses colocamos
seus argumentos.
45
Exemplos de Tipo de Retorno:
Int – Número inteiros
Float –Número com virgula
Char - Caráter
Void – Não retorna Valor
Exemplo:
A Função que usaremos não retornará nenhum valor porque a única coisa que ela
faz é mostrar uma mensagem na tela. Ela terá o tipo de retorno vazio também - void.
Como esta função não tem argumentos, simplesmente colocamos nada entre os
parênteses.
3.2. Funções que retornam valores
Como já foi dito uma função pode retornar um valor, e esse valor pode ou não ser
guardado em uma variável, isso depende de como queremos lidar com isso.
Para retornarmos um valor usamos o comando RETURN. Toda vez que retornamos um
valor é porque terminamos a função. Por isso, todo programa utilizado até agora termina
em RETURN 0;. Mas em projetos maiores tem por convenção utilizar uma constante EXIT_SUCCESS - para deixar o programa com mais legibilidade.
No código abaixo, usaremos uma função que chamaremos de somar que retornará
um inteiro resultante da soma de duas variáveis. No programa (função MAIN)
guardaremos o retorno da função em uma variável chamada resultadoDaFuncao. No final
imprimiremos na tela o resultado.
46
3.3. Funções com argumentos
Primeiramente, o que são argumentos? Argumentos são parâmetros préespecificados que são necessários para o funcionamento de uma função. Resumidamente,
um argumento é uma variável ou valor que é necessário para algum processo da função.
Para criar uma função com argumento é simples.
Criamos a função como de costume. Primeiro o tipo de retorno e depois o nome
da função. Então, entre parênteses "declaramos uma variável", ou praticamente isso.
Podemos por quantos argumentos quisermos, basta que para cada argumento
especifique-se seu tipo e separe-se por vírgula.
Exemplo:
1 argumento: INT NOMEDAFUNÇÃO (int argumento1)
2 argumentos: INT NOMEDAFUNÇÃO (int argumento1, int argumento 2)
3 argumentos: INT NOMEDAFUNÇÃO (int argumento1, float argumento2, int argumento3)
etc...
include <iostream>
#include <cstdlib>
using namespace std;
int multiplicar(int a,int b, int c);
{
int reposta;
resposta=a*b*c;
return resposta;
}
int main (void)
{
int x,y,z,resp_mutiplicacao;
x=2;
47
y=3;
z=5;
resp_mutiplicacao=multiplicar(x,y,z);
cout<<”A multiplicação=”<<resp_mutiplicacao
system ("pause");
return 0;
}
Foi criada uma função chamada multiplicar que precisa de três
argumentos: a, b e c. O seu retorno é a multiplicação das três (a*b*c) que fica gravado na
variável resp_mutiplicacao.
4. Variáveis globais e locais
4.1. Variáveis Locais
Variáveis locais são aquelas nas quais apenas a função onde ela está pode usá-la.
Por exemplo, se declaramos int x dentro da função main, apenas a função main poderá
utilizá-la para guardar dados e nenhuma outra função poderá utilizar o int x da função
main. Veja:
Perceba que a variável x só pode ser utilizado por main e a variável y só pode ser
utilizada por obterY. Para conseguirmos utilizar o valor guardado em y na função obterY,
tivemos que retornar (por na saída da função) o valor de y (return y) e guardamos dentro
de outra variável que estava em main - valorDeY.
4.2.
Variáveis Globais
As variáveis globais são declaradas da mesma forma que uma variável local primeiro o tipo, depois o nome da variável. Mas a diferença é que esta variável é
declarada fora de qualquer função. Por convenção, geralmente, utilizamos um underline
(_) no começo do nome da variável para facilitar a leitura do programa e facilmente
percebermos de que se trata de uma variável global.
48
Variáveis globais podem ser utilizadas por qualquer função. E qualquer função
pode alterar o valor, utilizá-la em um processo ou até mesmo atribuir o valor que quiser.
Perceba que a variável _iniciado está sendo usada nas duas funções - main e start.
Toda vez que a função start é chamada, é incrementado (somado) um a _iniciado.
Prestemos atenção no seguinte também, dentro da função main também tem uma
variável chamada x que toda vez que chamamos main deve ser incrementada (x++).
Então, por que apenas o valor de _iniciado muda e x continua sempre 1?
É aí que está a vantagem e também a desvantagem da variável global.
A variável global está constantemente na memória. O fato de reiniciar o programa
ou não, pouco importa, porque o valor de _iniciado nunca é reinicializado quando
chamamos uma função. A não ser que em algum lugar do programa nós especifiquemos
isso.
Já as variáveis locais estão presas as funções. Cada vez que chamamos uma função,
também chamamos as variáveis dentro da função. Se finalizamos uma função, também
finalizamos a variável. Resumindo, se reiniciamos a função, também reiniciamos a variável
daquela função.
A desvantagem da variável global é a dificuldade de lidar com ela. Devemos usar
variáveis globais apenas quando realmente necessário.
Porque, imagine usar uma variável global e dentro de nosso programa tem 10 ou mais
funções, todas elas utilizando a mesma variável global e alterando seu valor. Ao final de
todas as operações, dificilmente saberemos qual será seu resultado. Ou seja, isso
dificultará a lógica do nosso programa, deixando-o difícil de interpretar.
49
Exercícios de Funções:
1) Faça um programa com uma função que receba um número inteiro e positivo N
como parâmetro e retorne a soma dos números inteiros existentes entre 1 e
N(inclusive).
2) Faça um programa com uma função que receba três números inteiros como
parâmetros, representado horas, minutos e segundos, e os converta em
segundos. Exemplo: 2h,40 min, 10 s correspondem a 9610 segundos.
3) Elabore um programa com uma função que receba como parâmetro o raio de
uma esfera, calcule e mostre no programa principal qual o seu volume:
v=4/3*R³.
4) Faça um programa com uma função que receba um numero e informe se o
mesmo é positivo ou negativo.
5) Faça um programa com uma função que leia um número não determinado de
valores positivos e retorne a média aritmética desses valores.
6) Faça um programa com uma função que receba um valor inteiro e positivo,
calcule e mostre o seu fatorial.
7) Faça um programa com uma função que receba o valor de altura e largura e
calcule e mostre o valor da área.
8) Faça um programa encomendado pelo Rubinho Barrichello para cálculo da
velocidade média escalar do seu carro de fórmula 1. O programa deve ter 3
funções, uma para calcular Variação de Espaço, outra para calcular Variação do
Tempo e uma para Cálculo da Velocidade Média Escalar.
50
Bibliografia
Site: www.tiexpert.net
51
Download

Fundamentos de Programação.