Técnicas de Programação

Slides:



Advertisements
Apresentações semelhantes
Um programa em C Bibliotecas Variáveis globais
Advertisements

Revisão da Linguagem C.
Revisão /*======================================================*/
Exercício 1 Faça um programa que receba como entrada o nome e o salário de um funcionário de uma empresa e que calcule o novo valor do salário do.
Procedural vs. OO (Figuras Geométricas: Área do triângulo)
Tipos de dados inteiro caracter real logico
Comando de Seleção switch
Aqui está Senhoras e Senhores!!!
CEEIDSC Prof.: José Eustáquio Rangel de Queiroz Carga Horária: 60 h.
{joseana, CEEIDSC Carga Horária: 60 horas Prof.: José Eustáquio Rangel de Queiroz
DSC/CCT/UFCG {joseana, Carga Horária: 60 horas Prof.: José Eustáquio Rangel de Queiroz
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 08) Prof. Alessandro Bernardo.
VETORES AULA 01 Roteiro da aula Referência ao Programa: Estrutura de Dados.  Variáveis Compostas homogenias   Objetivo: apresentar VETOR.
Fundamentos de Programação 1 Slides 19 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Binários”.
Fundamentos de Programação 1 Slides 12 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Union, Enum e Typedef ”
Hamburger Calendário 2007 Janeiro
PROGRAMAÇÃO ORIENTADA A OBJETOS EM C++ Professor: Dilvan Moreira.
Linguagens de Programação Conceitos e Técnicas Amarrações Prof. Isabel Cafezeiro
Respostas dos Exercícios. Lista 1 1.a) Escreva uma função que receba como parâmetro uma temperatura dada em graus Fahrenheit e retorna a temperatura.
Estrutura Sequencial COUT CIN
Estruturas de Dados Aula 2: Estruturas Estáticas
Estrutura Sequencial COUT CIN
Polimorfismo e suas aplicações em C++.
Vetores e Matrizes em C/C++
Introdução a Programação
Orientação a Objetos - Programação em C++
Programação em C++ Compiladores
Apresentação do Laboratório Falar sobre as máquinas, 14 unidades
Algoritmos Estrutura Sequencial
FUNDAMENTO DE PROGRAMAÇÃO
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas
Java: Interfaces Alcides Calsavara.
Fundamentos de Programação 1
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
Algoritmos e Estruturas de Dados I
Introdução à Programação BCC 201 Aula
Estrutura Sequencial COUT CIN
Programação de Computadores I – Arquivos
FUNDAMENTO DE PROGRAMAÇÃO PROF. WELLINGTON FRANCO
Exercício 1 Faça um programa que receba como entrada o nome e o salário de um funcionário de uma empresa e que calcule o novo valor do salário do.
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas
PROGRAMAÇÃO I UNIDADE 3.
Orientação a Objetos - Programação em C++
Ponteiros Parte III.
Orientação a Objetos - Programação em C++
Rosemary Silveira Filgueiras Melo
Linguagem de Programação II Apresentação
Algoritmos Aula 8 Mairum Ceoldo Andrade.
GABARITO DOS EXERCÍCIOS DE MMQ
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas
28 de novembro de :02:48 CALENDÁRIO 2011.
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Fundamentos de Programação 1
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Técnicas de Programação
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
RELATÓRIO DE LEVANTAMENTO DA ROTINA DOS SERVIÇOS EXECUTADOS PELA SEÇÃO DE CONSERVAÇÃO e MANUTENÇÃO PERÍODO
Informática e Computação Aula 13 Estrutura de Repetição
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
Preço dos Biocombustíveis em Portugal - Ano 2016
Estruturas definidas pelo programador
Tipos Primitivos de Dados
Janeiro de 2010 SEGUNDA-FEIRA TERÇA-FEIRA QUARTA-FEIRA QUINTA-FEIRA
Janeiro D S T Q Q S S
Setembro 2009 SEGUNDA TERÇA QUARTA QUINTA SEXTA SÁBADO DOMINGO
PLAYBOY Calendário SÓ MULHERÃO.
Transcrição da apresentação:

Técnicas de Programação Revisão e Exercícios Prof.: José Eustáquio Rangel de Queiroz rangel@dsc.ufcg.edu.br rangeldequeiroz@gmail.com Carga Horária: 60 horas

Classes Classe  Similar a um tipo Struct, porém contendo variáveis-membros e funções-membros Structs Definição de variáveis Criação de funções “globais” para manipulação das variáveis Classes Definição de variáveis e funções para manipulação dessas variáveis

Classes Struct x Class struct Data{ class Data{ int dia; public: int mes; int ano; }; class Data{ public: int dia; int mes; int ano; };

Estruturas e Funções Globais #include <iostream> using namespace std; struct Data{ int dia; int mes; int ano; }; void lerData(Data &d){ cout << "Informe o dia: "; cin >> d.dia; cout << "Informe o mes: "; cin >> d.mes; cout << "Informe o ano: "; cin >> d.ano; } void exibirData(Data &d){ cout << "Dia: " << d.dia << "\n"; cout << "Mes: " << d.mes << "\n"; cout << "Ano: " << d.ano << "\n"; int main(){ Data d1; lerData(d1); exibirData(d1); system("PAUSE"); return 0; Acesso aos membros da estrutura a partir do operador ponto (.) variavelEstrutura.variavel

Classes com Variáveis e Funções #include <iostream> using namespace std; //Interface class Data{ public: int dia; int mes; int ano; void lerData(); void exibirData(); }; //Funções-membros (ou metodos) void Data::lerData(){ cout << "Informe o dia: "; cin >> dia; cout << "Informe o mes: "; cin >> mes; cout << "Informe o ano: "; cin >> ano; } void Data::exibirDados(){ cout << "Dia: " << dia << "\n"; cout << "Mes: " << mes << "\n"; cout << "Ano: " << ano << "\n"; Acesso às funções-membros da classe a partir do operador ponto (.) Objeto.funcao-membro() //Aplicacao int main(){ Data d1; d1.lerData(); d1.exibirData(); system("PAUSE"); return 0; } Acesso direto às variáveis da classe por suas funções-membros

Definição de Classes Definição de Classes class Data{ public: int dia; int mes; int ano; void lerData(); void exibirDados(); };

Criação de e Acesso a Objetos Criação de objetos (instância de classes): Data d1, d2, d3; Acesso a dados de um objeto: d1.dia = 30; d1.mes = 15; d1.ano = 2007; d1.lerData(); d1.exibirData();

Implementação de funções-membros Definição dos protótipos de funções-membros dentro da classe class Data{ public: . void lerData(); void exibirDados(); };

Implementação de funções-membros Implementar das funções-membros da classe Uso do operador de resolução de escopo ou qualificador de tipo (::) Associação da implementação da função a uma determinada classe Sintaxe: tipo_retorno Classe::funcao-membro(){ . } void Data::lerData(){ . } void Data:: exibirDados(){

Acesso a Variáveis da Classe Funções-membros da classe acessam diretamente variáveis da classe Cada objeto tem seu próprio “estado”  Valores assumidos pelas variáveis em um dado instante Objetos acessam as variáveis e os métodos utilizando o operador ponto (.) void Data::exibirData(){ cout << "Dia: " << dia << "\n"; cout << "Mes: " << mes << "\n"; cout << "Ano: " << ano << "\n"; } Data d1; d1.dia = 30; d1.exibirData();

Exercício 01 Dada a definição da classe DiaDoAno, implementar as funções-membro (métodos) e testar a classe. class DiaDoAno{ public: int dia; int mes; void entrada(); void saida(); }; Entrada de dados  Informação numérica, e.g., Digite o dia: 04, Digite o mês: 11 Saída de dados  Apresentação em modo texto, e.g., Dia digitado: 04 de novembro #include <iostream> using namespace std; class DiaDoAno{ public: int dia; int mes; void entrada(); void saida(); }; void DiaDoAno::entrada(){ cout << "Informe o dia: "; cin >> dia; cout << "Informe o mes: "; cin >> mes; } void DiaDoAno::saida(){ cout << "Dia informado: "; cout << dia << " de "; switch(mes){ case 1: cout << "Janeiro"; break; case 2: cout << "Fevereiro"; break; case 3: cout << "Marco"; break; case 4: cout << "Abril"; break; case 5: cout << "Maio"; break; case 6: cout << "Junho"; break; case 7: cout << "Julho"; break; case 8: cout << "Agosto"; break; case 9: cout << "Setembro"; break; case 10: cout << "Outubro"; break; case 11: cout << "Novembro"; break; case 12: cout << "Dezembro"; break; default: cout << " ---- "; int main(){ DiaDoAno d1; d1.entrada(); cout << endl; d1.saida(); system("PAUSE"); return 0;

Exercício 02 Dada a definição da classe Temperatura, escrever uma definição apropriada para a função-membro converteTemp e testar a classe. class Temp{ public: double graus; char escala; void converteTemp(double grau, char escala); }; #include <iostream> using namespace std; class Temperatura{ public: double graus; //um número representando uma temperatura char escala; //'F' para graus Fahrenheit ou 'C' para graus Celcius void set(double novoGrau, char novaEscala); }; void Temperatura::set(double novoGrau, char novaEscala){ graus = novoGrau; escala = toupper(novaEscala); } void exibirTemperatura(Temperatura t1){ cout << "Graus: " << t1.graus; if (t1.escala == 'C') cout << " C"; else cout << " F"; cout << endl; int main(){ Temperatura t; t.graus = 50; t.escala = toupper('c'); exibirTemperatura(t); t.set(100, 'f'); system("PAUSE"); return 0; class DiaDoAno{ int dia; int mes; void entrada(); void saida(); void DiaDoAno::entrada(){ cout << "Informe o dia: "; cin >> dia; cout << "Informe o mes: "; cin >> mes; void DiaDoAno::saida(){ cout << "Dia informado: "; cout << dia << " de "; switch(mes){ case 1: cout << "Janeiro"; break; case 2: cout << "Fevereiro"; break; case 3: cout << "Marco"; break; case 4: cout << "Abril"; break; case 5: cout << "Maio"; break; case 6: cout << "Junho"; break; case 7: cout << "Julho"; break; case 8: cout << "Agosto"; break; case 9: cout << "Setembro"; break; case 10: cout << "Outubro"; break; case 11: cout << "Novembro"; break; case 12: cout << "Dezembro"; break; default: cout << " ---- "; DiaDoAno d1; d1.entrada(); d1.saida();

Exercício 03 Seja a classe Aluno com 4 variáveis de instância e 3 métodos: Método lerDados()  Lê os dados do aluno Método exibirDados()  Apresenta em tela os dados do aluno Método computarMedia()  Recebe como parâmetros 3 notas e retorna a média do aluno, acompanhada do status aprovado por média, reprovado por média ou na final. Implementar a classe e seus métodos e testar a classe. #include <iostream> #include <string> using namespace std; class Funcionario{ public: int codigo; string nome; string endereco; double salario; void lerDados(); void exibirDados(); double calcularSalario(double porcentagem); }; void Funcionario::lerDados(){ cout << "LENDO DADOS DO FUNCIONARIO" << endl; cout << "Codigo: "; cin >> codigo; fflush(stdin); cout << "Nome: "; getline(cin, nome); fflush(stdin); cout << "Endereco: "; getline(cin, endereco); fflush(stdin); cout << "Salario: "; cin >> salario; fflush(stdin); cout << endl; } void Funcionario::exibirDados(){ cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2); cout << "DADOS DO FUNCIONARIO" << endl; cout << "Codigo: " << codigo << endl; cout << "Nome: " << nome << endl; cout << "Endereco: " << endereco << endl; cout << "Salario: " << salario << endl; double Funcionario::calcularSalario(double porcentagem){ double valor; valor = (salario / porcentagem) + salario; return valor; int main(){ Funcionario f; f.lerDados(); f.exibirDados(); cout << "\n Salario com 10% de acrescimo: " << f.calcularSalario(10); system("PAUSE"); return 0; class Temperatura{ double graus; //um número representando uma temperatura char escala; //'F' para graus Fahrenheit ou 'C' para graus Celcius void set(double novoGrau, char novaEscala); void Temperatura::set(double novoGrau, char novaEscala){ graus = novoGrau; escala = toupper(novaEscala); void exibirTemperatura(Temperatura t1){ cout << "Graus: " << t1.graus; if (t1.escala == 'C') cout << " C"; else cout << " F"; Temperatura t; t.graus = 50; t.escala = toupper('c'); exibirTemperatura(t); t.set(100, 'f'); class DiaDoAno{ int dia; int mes; void entrada(); void saida(); void DiaDoAno::entrada(){ cout << "Informe o dia: "; cin >> dia; cout << "Informe o mes: "; cin >> mes; void DiaDoAno::saida(){ cout << "Dia informado: "; cout << dia << " de "; switch(mes){ case 1: cout << "Janeiro"; break; case 2: cout << "Fevereiro"; break; case 3: cout << "Marco"; break; case 4: cout << "Abril"; break; case 5: cout << "Maio"; break; case 6: cout << "Junho"; break; case 7: cout << "Julho"; break; case 8: cout << "Agosto"; break; case 9: cout << "Setembro"; break; case 10: cout << "Outubro"; break; case 11: cout << "Novembro"; break; case 12: cout << "Dezembro"; break; default: cout << " ---- "; DiaDoAno d1; d1.entrada(); d1.saida();

Membros públicos e privados Criação de uma classe  Possibilidade de definição de membros (variáveis e funções) públicos e privados Membros públicos Todas as variáveis e funções são visíveis aos objetos Exemplo: d1.mes = 10; d1.lerDados(); Acesso às variáveis e funções e possibilidade de alteração de seus valores Exemplo: Fornecimento de um dia inválido (d1.mes = 15)

Membros públicos e privados Criação de uma classe  Possibilidade de definição de membros (variáveis e funções) públicos e privados Membros privados Visibilidade das variáveis apenas dentro das funções da mesma classe Tratamento dos dados pelas funções Exemplo: Impedir a entrada de um mês inválido

Membros públicos e privados Exemplo 01 – Uso de membros públicos Acesso total a todos os campos e métodos Visibilidade dos campos da classe aos programadores class Data{ public: int dia; int mes; int ano; void lerData(); void exibirData(); }; Data d1; d1.dia = 30; d1.mes = 15; d1.ano = 2007; d1.lerDados(); d1.exibirDados();

Membros públicos e privados Exemplo 02 – Uso de membros privados Impossibilidade de acesso dos campos e funções na região privada da classe Acesso de todas as funções da classe aos campos e funções privados da classe Ocultação dos detalhes de implementação de uma classe do programador que utiliza a classe  Encapsulação dos dados class Data{ int dia; int mes; int ano; public: void lerData(); void exibirData(); }; Data d1; d1.dia = 30; d1.mes = 15; d1.ano = 2007; d1.lerDados(); d1.exibirDados();

{joseana, rangel}@dsc.ufcg.edu.br Joseana Macêdo Fechine José Eustáquio Rangel de Queiroz {joseana, rangel}@dsc.ufcg.edu.br UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO