Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Apostila
Básico de Programação Estruturada com C++
1
1. Conceitos básicos
Algoritmo: Sequência formal e finita de instruções que determinam ações a serem executadas.
Dados e Informações
Dados Informação
Processamento dos dados
2
Dado - Elemento ou conjunto de elementos que, isoladamente, não possuem significação.
Processamento dos dados - Resultado da transformação dos dados em algo útil para o usuário;
Informação - Resultado da transformação dos dados em algo útil para o usuário;
O que dado, processamento dos dados e informação tem a ver com algoritmo?
Na verdade, o conjunto formal de instruções que resultam em ações serão utilizados pelo
computador para transformar dados em informação. Esse conjunto de instruções passa a se chamar
programa de computador.
Programa – Sequência finita de instruções escrita em linguagem artificial (de programação) que
resultarão em ações a serem executadas pelo computador.
Linguagem C++ - A linguagem C++ ( em português lê-se “cê mais mais) é uma linguagem de uso
geral considerada de médio nível pois combina características de linguagens de alto e baixo níveis.
Desde os anos 90 é uma linguagem comercial popular e também muito utilizada na academia por ter
bom desempenho. Bjarne Stroustrup desenvolveu o C++ em 83 como um adicional à linguagem C.
Com o tempo novas características e funções foram adicionados. Por isso, chamada C++.
3
EXEMPLO 4: Desenvolva os passos para um programa de computador calcular a área de um
retângulo.
Passos:
1 . Reservar três espaços de memória base, altura e area;
2 . Preencher as áreas com os valores de base=5 e altura=7
3 . Calcular a área: area=base*altura
4. Mostrar o resultado no monitor: area
2 . Dev C++
4
3 . Itens Fundamentais da Linguagem C
5
Tipo Número de bits Início Fim
char 8 -128 127
unsigned char 8 0 255
int 16 -32.768 32.767
unsigned int 16 0 65.535
long int 32 -2.147.483.648 2.147.483.647
unsigned short int 16 0 4.294.967.295
float 32 3.4 E-38 3.4E+38
double 64 1.7E-308 1.7E+308
Existe uma regra para dar nome a uma área de memória. No C++ um nome de área de
memória sempre inicia com uma letra ou _ (underline) podendo ser seguido de letras (sem acento e
sem cedilha) e números. Nunca use pontuação, espaço ou outros. Lembrando que a linguagem C faz
distinção entre maiúsculos e minúsculos ( a letra c é diferente de C). Exemplos:
Nomes possíveis: x, x9, nome, endereco, numero, cor_olhos, corCabelo,cpf, tel, c, a, aux1, a1,a2,...
Nomes não possíveis: 1, 12, endereço, número, cor de olhos, etc..
Para armazenarmos dados na memória existem as seguintes maneiras:
Ou seja, a diretiva #define define na linguagem C uma constante, em seguida vem o nome
dado a constante e logo após o valor dessa constante. Se for valor numérico não inteiro a vírgula é
substituída pelo ponto(.) . Se forem caracteres eles deverão vir entre aspas simples (´ UFG´), por
exemplo.
As constantes também podem ser definidas como locais. Nesse caso elas se encontram
dentro do programa principal main (dentro das chaves {}). Para definí-las como locais, elas devem
aparecer declaradas da seguinte forma:
const int a;
const float pi = 3.1415;
6
Assim devem ser declaradas na ordem: tipo_de_dado nome_da_constante = valor_da_constante;
Quando o valor for alterado durante o programa. Para declararmos uma variável é necessário
adotar a seguinte ordem que é uma regra da linguagem C++:
Tipo_de_dado Nome_da_Variável;
Como o sistema operacional é o responsável por alocar as áreas de memória que utilizamos
em nosso programa, muitas vezes ele aloca uma área que está livre porém já foi utilizada por outro
programa que deixou sujeira para trás. Por isso, é sempre bom inicializar áreas de memória que são
numéricas com 0 ou com o valor solicitado no enunciado do programa.
Exemplos:
float minimo=8;
int area =0;
char sexo='F';
#include <cstdlib>
#include <iostream>
using namespace std;
#define c 2
main()
{
const float pi=3.14159;
float C=0, R=5;
C=c*pi*R;
cout<< “ O comprimento da circunferência é de: ”<<C;
system (“pause”);
}
7
3.3 Comando de saída cout
O cout é o comando utilizado para imprimir valores na saída padrão que é o monitor. Sempre
utilizado seguido de << (regra da Linguagem) permite que o programador informe ao usuário o que
está acontecendo durante a execução do programa. Isso colocando entre aspas duplas o recado que
se pretende dar ao usuário.
Exemplo:
Se desejar pular uma linha para tornar o programa mais agradável é necessário utilizar uma das
seguintes opções:
8
3.4 Comandos de atribuição
9
EXEMPLO 8 – Uso do cout e atribuição (Escrita na saída padrão – monitor)
O cin é o comando utilizado para capturar dados da entrada padrão que é o teclado, ou seja,
capturar os caracteres e valores digitados pelo usuário no teclado. O cin é sempre utilizado seguido
de >> (regra da Linguagem) e permite ao programador guardar valores fornecidos pelo usuário em
áreas de memória que serão utilizadas posteriormente para processamento de dados ( cálculos por
exemplo).
10
EXEMPLO 9 – Uso do cin para capturar dados do tipo char do teclado
Sabemos que ao declararmos uma área de memória do tipo char, esta só poderá armazenar
um caracter. Isso pelo fato de o tipo de dado char ser de tamanho 8 bits cabendo somente um
caracter. E se eu desejar armazenar mais do que um caracter, ou seja, o nome de uma pessoa por
exemplo? Nesse caso é preciso fornecer a quantidade de caracteres desejados por exemplo:
char nome_completo[20];
Ou seja, serão reservados na memória 20 espaços para caracteres, um vetor com 20 espaços de char
identificado por nome_completo que é o nome dado a área de memória. Entretanto, a leitura do
11
teclado (cin) possui um parâmetro diferente, observe no exemplo a seguir:
4 – Estruturas
A estruturada sequencial define uma sequência de comandos que o computador irá ler de
cima para baixo, do primeiro até o último e da esquerda para a direita sequencialmente, da seguinte
forma:
<comando-1>
<comando-2>
<comando-3>
...
<comando-n>
Sendo n um número finito, nessa estrutura o comando-3 só poderá ser executado após o comando-2
e esse após o comando-1 e assim por diante.
12
EXEMPLO 12 - Maria é uma criança muito econômica e tem guardado no seu cofre moedas de
dez e cinco centavos. O cofre está tão cheio que ela resolveu trocar as moedas com sua mãe em
notas de um real. Para isso ela contou as quantidades de moedas que ela tem de dez e cinco
centavos. Desenvolver um algoritmo e em seguida um programa que transforme o equivalente das
moedas de Maria em notas de um real e centavos.
Passos:
– Definir uma fórmula:
– centavos = Moedas_de_10*10 + Moedas_de_5*5
– reais = centavos/100 => Lembre-se de que 1 real tem 100 centavos.
– sobra = centavos%100
Em C++:
#include<iostream>
using namespace std;
main()
{
int moedas_de_10=0, moedas_de_5=0, centavos=0, reais=0,sobra=0;
cout <<”Informe a quantidade de moedas de 10 centavos:”;
cin>>moedas_de_10;
cout <<”\n Informe a quantidade de moedas de 5 centavos:”;
cin>>moedas_de_5;
centavos=moedas_de_10*10 + moedas_de_5*5;
reais = centavos/100;
sobra = centavos%100;
cout << “Maria tem”<< reais<< “ reais e ” <<sobra<< “ centavos.\n ”;
system(“pause”);
}
13
EXEMPLO 13 – Escreva um programa que o usuário forneça uma quantidade de tempo em
segundos necessários para viajar de uma cidade a outra. Calcule e escreva no monitor a quantidade
de tempo gasta na viagem em horas, minutos e segundos.
– Definir fórmulas:
– 1 hora equivale a 3600 segundos
– 1 minuto tem 60 segundos
– Se dividirmos a quantidade de tempo em segundos fornecida por 3600 teremos a quantidade de
horas no quociente: horas = tempo/3600
– O resto da divisão acima tempo/3600 podem ser transformados em minutos =
(tempo%3600)/60
– O resto da divisão acima (tempo%3600)/60 são os segundos que não são suficientes para
serem transformados em horas e minutos, segundos= (tempo%3600)%60
Passos:
1- Definir variáveis e constantes:
Constantes : segphora = 3600, segpmin=60
Variáveis: tempo, horas, minutos, segundos
2- Solicitar ao usuário o tempo da viagem em segundos e colocar na variável segundos
3- Realizar os cálculos: horas = tempo/3600
minutos = (tempo%3600)/60
segundos = (tempo%3600)%60
4 – Mostrar o resultado.
Em C++:
#include<iostream>
using namespace std;
#define segphora 3600
#define segpmin 60
main()
{
int tempo=0, horas=0, minutos=0, segundos=0;
cout<< “ Digite o tempo gasto na viagem em segundos:”;
cin>> tempo;
horas = segundos/segphora;
minutos = (segundos%segphora)/segpmin;
segundos = (segundos%segphora)%segpmin;
cout<< “ A viagem de “<<tempo<< “ segundos, equivale a “<< horas<< “ horas, ” <<
minutos<< “ minutos e “ << segundos<<” segundos”;
system(“pause”);
}
14
EXEMPLO 14 – Escrever um programa que troque, entre si, os valores das variáveis inteiras A e B
fornecidas pelo usuário. Na memória o valor de A deverá ficar em B e o de B em A .
Passos:
Se precisamos trocar os valores de A e B precisaremos de uma variável auxiliar. Assim,
aux=A,guardará A, A=B , A passará a conter o valor de B e B=aux que armazena o valor de ª
1- Solicitar os valores A e B ao usuário
2- Trocar os valores da memória aux = A, A=B e B=aux.
3- Mostrar o resultado no monitor.
Em C++:
#include<iostream>
using namespace std;
main()
{
int A, B, aux;
cout<< “Informe o valor de A:”;
cin>> A;
cout<< “Informe o valor de B:”;
cin>> B;
aux= A;
A= B;
B= aux;
cout<< “ Agora A contém: ” <<A<< “ e B contém “<< B;
system(“pause”);
}
15
Conceitos – operadores lógicos e relacionais
Operadores Relacionais
Símbolo Significado
< Menor
> Maior
<= Menor ou igual
>= Maior ou igual
== igual
!= diferente
Operadores Lógicos
16
Expressão lógica
Exemplo:
(X = Y) => X é igual à Y?
=> O resultado será verdadeiro ou falso
17
4.2.1 – Estrutura condicional Simples
Na estrutura condicional simples a condição irá determinar a execução ou não de um
determinado comando. Ou seja, a sequência de comandos só será executada se a condição for
verdadeira.
Exemplo: Se fizer sol então vou à praia.
Observe o fluxograma abaixo:
A seta para baixo encontrando o
losango indica que um fluxo contínuo encontra
uma condição que está dentro do losango. Se a
F condição estiver verdadeira o fluxo segue para
Tempo=sol baixo em direção a próxima instrução que
nesse caso é Vou a praia. Se a condição dentro
do losango for falsa o fluxo contínuo é
V
interrompido e segue o fluxo à direita do
losango, saltando assim um instrução (Vou a
Vou a praia praia).
18
E como fica a estrutura condicional simples em C++?
if ( Tempo==sol)
{
Vou_a_Praia;
}
Passos:
1. Declarar as variáveis inteiras : A, B e C
2. Solicitar os valores das vaiáveis para o usuário
3. Verificar a condicional e imprimir a mensagem no monitor
se ( A+B > C)
então “ O terceiro número informado é maior que a soma dos dois primeiros”
Em C++:
#include<iostream>
using namespace std;
main ( )
{
int A, B, C;
cout<< “ Digite o valor do primeiro número:”;
cin>> A;
cout<< “ Digite o valor do segundo número:”;
cin>> B;
cout<< “ Digite o valor do terceiro número:”;
cin>> C;
if (A+B> C)
{
cout<< “O terceiro número informado é maior que a soma dos dois primeiros”;
}
system (“pause”);
}
19
EXEMPLO 16 – Escreva um programa para solicitar dois números distintos e verificar qual deles é
o maior.
Passos:
1- Definir as variáveis A, B
2- Solicitar do usuário os dois números A e B
3- Verificar quem é o maior e emitir a mensagem
se (A>B)
então Escrever no monitor A é o maior
se (B>A)
então Escrever no monitor B é o maior
Em C++:
#include <iostream>
using namespace std;
main ( )
{
int A, B;
cout<< “ digite um número:”;
cin>>A;
cout<< “ digite um outro número:”;
cin>>B;
if (A > B)
{
cout<< “ O primeiro número é maior:”<< A;
}
if (B > A)
{
cout<< “ O segundo número é maior:”<< B;
}
system(“pause”);
}
20
4.2.2 – Estrutura condicional Composta
F
Tempo=sol
A seta para baixo encontrando o losango indica que um fluxo contínuo encontra uma
condição que está dentro do losango. Se a condição estiver verdadeira o fluxo segue para baixo em
direção a próxima instrução que nesse caso é Vou a praia. Se a condição dentro do losango for falsa
o comando relacionado à condição de falsidade é executado – Vou ao Shopping. A partir daí o
programa segue seu fluxo contínuo.
21
E como fica a estrutura condicional composta em C++?
else
{ Se não vou ao shopping.
Vou_ao_Shopping;
}
EXEMPLO 17 – Escreva um algoritmo que dados dois números inteiros quaisquer mostre no
monitor qual é o maior.
Passos- 1) Definir variáveis A, B
2) Pedir ao usuários que digite os valores inteiros de A e B
3)Verificar quem é o maior e mostrar na tela:
se (A>B)
então “ A é o maior”
senão “ B é o maior”
#include <iostream>
using namespace std;
main ( )
{
int A, B;
cout<< “ digite um número:”;
cin>>A;
cout<< “ digite um outro número:”;
cin>>B;
if (A > B)
{
cout<< “A é o número maior:”<< A;
}else
{
cout<< “ B é o número maior:”<< B;
}
system (“pause”);
}
22
EXEMPLO 18 - Escreva um algoritmo solicite a nota e frequência de um aluno e indique se ele
passou ou não.
Condições Informação
Nota>=5.0 e Frequência>=50 Aprovado
Nota<5.0 e Frequência<50 Reprovado
#include <iostream>
using namespace std;
main ( )
{
int F;
float N;
cout<< “ digite a nota do aluno:”;
cin>>N;
cout<< “ digite a frequência do aluno:”;
cin>>F;
if ( (N>=5.0)&&(F>=50) )
{
cout<< “Passou!”;
}else
{
cout<< “ Reprovou!”;
}
system (“pause”);
}
23
EXEMPLO 19 - Escreva um algoritmo solicite a nota de um aluno e indique a mensagem abaixo
de acordo com sua nota.
Condições Informação
Nota>=9.0 Parabéns! Excelente aprovação!
Nota>=8.0 e Nota <9.0 Parabéns! Ótima aprovação!
Nota>=7.0 e Nota <8.0 Parabéns! Muito Boa aprovação!
Nota>=5.0 e Nota <7.0 Parabéns! Boa aprovação!
Nota < 5.0 Que pena! Reprovado!
Passos- 1) Definir variáveis: N
2) Pedir ao usuários que digite o valor da nota N:
3)Verificar a aprovação do aluno
se ( N>=9.0)
então “Parabéns! Excelente aprovação!”
senão se ( (N>=8.0)&&(N<9.0) )
então “Parabéns! Ótima aprovação!”
senão se ( (N>=7.0)&&(N<8.0) )
então “Parabéns! Muito Boa aprovação!”
senão se ( (N>=5.0)&&(N<7.0) )
então “Parabéns! Boa aprovação!”
senão “Que pena! Reprovado!”
#include <iostream>
using namespace std;
main ( )
{
float N;
cout<< “ digite a nota do aluno:”;
cin>>N;
if ( N>=9.0)
{ cout<< “Parabéns! Excelente aprovação!”;
}else if ( (N>=8.0)&&(N<9.0) )
{ cout<<“Parabéns! Ótima aprovação!”;
}else if ( (N>=7.0)&&(N<8.0) )
{ cout<<“Parabéns! Muito Boa aprovação!”;
}else if ( (N>=5.0)&&(N<7.0) )
{ cout<< “Parabéns! Boa aprovação!”;
}else {cout<< “Que pena! Reprovado!”;}
system(“pause”);
}
24