Caderno de Exercicios - 01
Caderno de Exercicios - 01
Caderno de Exercicios - 01
CADERNO DE EXERCÍCIOS 01
A entrada e a saída de dados com estas streams é efectuada recorrendo aos seguintes operadores:
<< Operador insersor
>> Operador extractor
#include <iostream>
using namespace std;
int main ()
{
int idade;
char nome[30];
O programador não necessita de se preocupar com o tipo de dados que pretende utilizar, as streams
adaptam-se em conformidade com a variável utilizada.
1.2 - Desenvolva um programa que permita fazer a leitura e escrita dos seguintes tipos de dados:
inteiro
real
caracter
string
O C++ disponibiliza vários manipuladores de input/output para formatação dos dados. Estes
manipuladores mudam o formato das inserções.
endl – Manipulador usado para mudar de linha e limpar o buffer.
setw – Manipulador que define a largura do campo atribuído para o output. A largura do campo
determina o número mínimo de caracteres a serem escritos na representação de saída.
setfill – Usa o caractere de preenchimento nas operações de inserção de output para preencher
espaços quando os resultados devem ser preenchidos na largura do campo.
setprecision – Define o número total de dígitos a serem exibidos quando são impressos números de
virgula flutuante.
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout<<"ENSAIO do setw() .............. " <<endl;
cout<< setw(10) <<11<< endl;
cout<< setw(10) <<2222<< endl;
cout<< setw(10) <<4<< endl;
cout<< setfill('-')<< setw(10) <<11<< endl;
system("pause");
return (0);
}
system("pause");
return 0;
}
O exemplo seguinte lê dois valores inteiros guardados no ficheiro “dados_ent” e escreve no ficheiro
“dados_saida” o quadrado destes valores. O primeiro código está escrito usando o paradigma
tradicional (linguagem C) e o segundo usando objectos (C++).
#include <stdio.h>
#include <stdlib.h>
using namespace std;
main()
{
FILE *f1, *f2;
int a, b;
printf("%d %d\n",a,b);
2.2 - Exemplo de escrita e leitura de ficheiros na linguagem C++: Classes ifstream e ofstream
is.open("dados_ent.txt");
if( !is ){
cout << "ERRO: não é possível abrir o ficheiro dados_ent.txt" << '\n';
exit(1);
}
os.open("dados_saida.txt");
if( !os ){
cout << "ERRO: não é possível abrir o ficheiro dados_saida.txt" << '\n';
exit(1);
}
int a, b;
is >> a >> b;
2.3 - Desenvolva um programa em C++ que leia do teclado para uma estrutura a informação de 3 alunos
(Nome, Idade e Número) e de seguida grave no ficheiro “alunos.txt” a informação de cada aluno numa
linha, usando o separador “;” entre os campos.
2.4 - Faça um programa que leia vários campos de dados (Nome, Idade e Número), separados por “ponto
e vírgula”, guardados no ficheiro “alunos.txt” e os apresente no ecrã.
Data
SetDia
SetMes
SetAno
GetDia
GetMes
GetAno
a) Implemente dois construtores para a classe Data. Um construtor por defeito (sem parâmetros)
e um construtor com parâmetros definidos pelo utilizador.
b) Implemente todos os métodos Get() e Set() de maneira a que sejam métodos inline.
Métodos inline
Tem as características normais dos métodos (sintaxe, verificação dos argumentos, etc), mas são
expandidos em compile-time em vez de invocados em run-time.
O código destes métodos deve estar no ficheiro de especificação (.h), pelo que a sua alteração implica
a recompilação.
A declaração inline justifica-se apenas para métodos simples.
Sobrecarga de operadores
i) Crie um novo objecto Data e leia os seus dados através do teclado usando o operador criado na
alínea anterior.
j) Mostre no ecrã todos os objectos Data criados recorrendo ao operador “<<”.
k) Implemente na classe Data métodos para leitura (ReadFile) e escrita (SaveFile) em ficheiro. Em
seguida invoque estes métodos no seu programa.
4. Crie a classe Pessoa com os atributos e métodos a seguir apresentados utilizando funções inline
para os métodos de acesso. Esta classe além do nome e da morada guarda a data de nascimento da
pessoa.
Data Pessoa
SetDia SetNome
SetMes SetDatan
SetAno SetMorada
GetDia GetNome
GetMes GetDatan
GetAno GetMorada