Apostila Fundamentos de Programação, Algoritmos & Linguagem C++ , Notas de estudo de Engenharia Informática
wellington-cassio-faria-8
wellington-cassio-faria-8

Apostila Fundamentos de Programação, Algoritmos & Linguagem C++ , Notas de estudo de Engenharia Informática

51 páginas
50Números de download
1000+Número de visitas
Descrição
Apostila Fundamentos de Programação, Algoritmos & Linguagem C++
70 pontos
Pontos de download necessários para baixar
este documento
Baixar o documento
Pré-visualização3 páginas / 51
Esta é apenas uma pré-visualização
3 mostrados em 51 páginas
Esta é apenas uma pré-visualização
3 mostrados em 51 páginas
Esta é apenas uma pré-visualização
3 mostrados em 51 páginas
Esta é apenas uma pré-visualização
3 mostrados em 51 páginas
Capitulo1:

1

Fundamentos de Programação. Algoritmos & Linguagem C++

(MII)

Nome:_______________________________________ Turma:______

Elaborado pelos Educadores Voluntários: Luiz Claudio de Andrade Junior (luiz.junior@gec.inatel.br) Wellington Cássio Faria (wellingtonf@gec.inatel.br) Laís Olímpio (lais-olimpio@hotmail.com) Revisada por: Elisa Marinho de Oliveira - Técnica de Telecomunicações (elisa@inatel.br)

2

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

3

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

4

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

5

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 dispositivos, como robôs, câmeras digitais, brinquedos e celulares.

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.

Pequeno programa na linguagem de

programação C .

6

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 Stroustrupnos 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.

7

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ódigo-

fonte 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++

8

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.

9

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.

10

Exemplo 1 - Um algoritmo para se calçar sapato

Inicio Pegar sapatos

Vista a meia

Pegar meia

Calce os sapatos

Amarre os Sapatos

Fim

11

2 - Algoritmo, arrumar para ir a uma festa.

Exercícios de Fluxograma:

1. Faça um fluxograma para entrar no Facebook. 2. Faça um fluxograma para escovar os dentes. 3. Faça um fluxograma que mostre o resultado da multiplicação de dois números. 4. Faça um fluxograma para mostar a divisão de dois números. 5. 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.

Inicio Pegar Toalha Tomar Banho

Escolher Roupa Pegar roupa

Vestir Roupa

Pentear Cabelo

Calçar

sapatos Dar tchau para a mãe

Ir para festa. Fim

12

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

Escolha do Usuário Operações

1 Média entre os dois números

2 Subtrair o primeiro do segundo

3 Produto dos dois números

4 Divisão do Primeiro pelo Segundo

13

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.

14

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'

15

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.

16

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++ Exemplo Valor de Z e Y?

Maior > A=15;

Z=A>10; Y=20>A;

Maior ou igual >= A=10;

Z=A>=10; Y=A>=2;

Menor < A= -10; Z=A<0;

Y= -100<A;

Menor ou Igual <= A=5;

Z= A<=3; Y= A<=2;

Igual ==

A=5; B=5;

Z=A==B; Y=A==2;

Diferente !=

A=5; B=5;

Z=A!=B; Y=A!=2;

17

1.3- Operadores Lógicos

Operador C++ Exemplo Valor de Z?

E V e V = V V e F = F F e V = F F e F= F

&&

X=10 Y=5

Z= (X>=Y)&&(Y==5)

OU V e V = V V e F = V F e V = V F e F= F

|| A= ‘s’; B= ‘n’;

Z=(A!=‘s’)||(B== ‘n’)

NÃO

! 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 = _____________

18

1.4- Funções de Entrada de Dados

Portugol C++ Biblioteca

LEIA (Caracteres e Números)

cin>>

cin >>variável;

#include <iostream> using namespace std;

LEIA (String)

cin.getline(variável);

char nome[10]; cout << "Digite um nome: "; cin.getline(nome);

#include <iostream> using namespace std;

ESCREVA

cout<<

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”;

19

system("PAUSE");

return 0;

}

1.5- Funções Matemáticas

C++ / Portugol Biblioteca

|x| Módulo

abs(x)

#include <cmath>

Cosseno

cos(x) #include <cmath>

Seno

sin(x) #include <cmath>

Tangente

tan(x) #include <cmath>

Exponencial

exp(x) #include <cmath>

Log neperiano/natural/base e

log(x) #include <cmath>

Log na base 10

log10(x) #include <cmath>

Potenciação

pow(2, 3) pow(base, expoente)

#include <cmath>

Raiz Quadrada

sqrt(49) sqrt(Radicando)

Índice=2

#include <cmath>

Arredondamento para

Baixo. floor(x)

#include <cmath>

Arredondamento para

Cima. ceil(x);

#include <cmath>

20

Exercícios de funções Matemáticas:

1) Implemente em C++ as expressões abaixo:

b)

c) √

d) ( )

1.6- Estruturas

PORTUGOL C/ C++

ALGORITMO_NomeDoAlgoritmo INICIO comandos; FIM

int main(void) { cout<< “Estrutura Básica!”; }

SE(condição) INICIO comandos; FIM

if(condição) { cout<< “Entra se condição for verdadeira!”; }

SE(condição) INICIO comandos; FIM SENÃO INICIO comandos; FIM

If(condição) { cout<< “Entra se condição for verdadeira!”; }else { cout<< “Entra se condição for Falsa!”; }

21

ENQUANTO condição FAÇA INICIO comandos; FIM

while(condição) { cout<< “Repita até condição FALSA!”; }

PARA i=n ATÉ m FAÇA INICIO comandos; FIM

for(i=n;n<=m;n++) { cout<< “Repita até n=m!”; }

REPITA comandos; ATÉ condição;

do { cout<< “Repita até condição VERDADEIRA!”; }while(condição);

ESCOLHA(variável) INICIO CASO valor1: comando1; CASO valor2: comando1; ... CASO valor12: comando12; CASO CONTÁRIO: comando13; FIM

switch(variável) { case valor1: cout<<“Executa quando variável = valor2”; break; case valor2: cout<<“Executa quando variável = valor2”; break; ... case valor12: cout<<“Executa quando 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

22

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

23

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

SE

F

V

COMANDO1 COMANDO2 COMANDO3

CONTINUA PROGRAMA

FIM

24

2.2- Estrutura condicional composta

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.

INICIO

SE SENÃO

COMANDO1 COMANDO2

V

COMANDO3 COMANDO4

F

CONTINUA O PRORAMA FIM

25

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

26

{ 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; }

27

4.2- Fluxograma

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; }

INICIO

CASE 1 COMANDO1 COMANDO2

V

CASE 2

V

COMANDO3 COMANDO4

V

CASE 2 COMANDO3 COMANDO4

CASO NÂO EXITE

FIM

28

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

29

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 M-

matutino ou V-Vespertino ou N- Noturno. Imprima a mensagem "Bom Dia!", "Boa Tarde!" ou "Boa Noite!" ou "Valor Inválido!", conforme o caso.

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.

Saldo médio Percentual

de 0 a 200 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

30

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;

31

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;

}

32

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 Y 1 5 Valores iniciais

33

3 6 Valores obtidos dentro da estrutura de repetição 5 7 7 8 9 9 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 Y 1 1 Valores iniciais 1 2 Valores obtidos dentro da estrutura de repetição 2 3 6 4 24 5 120 6 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";

34

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 Y 1 5 Valores iniciais 3 6 Valores obtidos dentro da estrutura de repetição 5 7 7 8 9 9

35

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 Y 1 1 Valores iniciais 1 2 Valores obtidos dentro da estrutura de repetição 2 3 6 4 24 5 120 6 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";

36

}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:  5 X 1 = 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

37

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.

38

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.

39

1.3- Preenchendo um vetor

Preencher um vetor significa atribuir valores a todas as suas posições. Assim, deve- se 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 3 4 5 i = 1 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 13

1 2 3 4 5 i = 3 TELA “Digite o terceiro número”, x [3]= -25

95 13 -25

1 2 3 4 5 i = 4 TELA “Digite o quarto número”, x [4]= 47

40

95 13 -25 47

1 2 3 4 5 i = 5 TELA “Digite o quinto número”, x [5]= 0

95 13 -25 47 0

1 2 3 4 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.

41

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 3 8 1 19 44 21 2 7

0 1 2 3 4 5 6 7 8 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 * 2 @ K

0 1 2 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.

42

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, deve- se 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.

43

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.

44

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)

45

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.

46

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.

47

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 (intargumento1) 2 argumentos: INT NOMEDAFUNÇÃO (intargumento1, intargumento 2) 3 argumentos: INT NOMEDAFUNÇÃO (intargumento1, floatargumento2, 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;

48

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.

49

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.

50

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.

51

Bibliografia Site: www.tiexpert.net

Até o momento nenhum comentário
Esta é apenas uma pré-visualização
3 mostrados em 51 páginas