Medidor de Temperaturas – Abordagem em C++ segundo o paradigma ADT

Dezembro 12, 2008 at 11:28 am (Uncategorized)

Nesta semana, desde Segunda-Feira, 8 de Dezembro, ate Sexta-Feira, dia 12, realizamos uma ficha de trabalho, que consistia em elaborar um objecto segundo o paradigma de programação ADT.
A minha opção foi realizar um simples Medidor de Temperaturas. Este programa pode ser simples, mas contem todo o que precisamos para perceber o básico deste paradigma, contudo prometo realizar outros objectos, mais complexos, e devidamente publica-los aqui no meu blogue.
O meu Medidor de Temperaturas, permite medir a temperatura numa cidade, estando esta limitada a um intervalo entre um valor mínimo e máximo.

medidor
As opções deste Medidor de Temperaturas são:

  • botão “+” para subir a temperatura;
  • botão “-” para baixar a temperatura.

Deixo aqui todo o código para realizar o programa igual ao meu:
Medidor.h

#ifndef MEDIDOR_H
#define MEDIDOR_H
class Medidor{
public:
    Medidor();
    void BotaoMais();
    void BotaoMenos();
    void calibrar(int inicial, int min, int max);
    int ObterTemperatura();
private:
    int valor;
    int tmax, tmin;
};
#endif

Medidor.cpp

#include "Medidor.h"
Medidor::Medidor(){
    valor= 0;
    tmax = 0;
    tmin = 0;
}
void Medidor::BotaoMais(){
    if(valor<tmax)
        valor++;
}
void Medidor::BotaoMenos(){
    if(valor>tmin)
        valor--;
}
int Medidor::ObterTemperatura(){
    return valor;
}
void Medidor::calibrar(int inicial, int min, int max){
    tmin = min;
    valor = inicial;
    tmax = max;
}

main.cpp

#include <iostream>
#include "Medidor.h"
using namespace std;
int main(){
    Medidor porto, lisboa, viladoconde;

    porto.calibrar(0, -10, 50);

    cout << "Temperatura no porto " << porto.ObterTemperatura() << endl;
    porto.BotaoMais();
    cout << "Temperatura no Porto " << porto.ObterTemperatura() << endl;
    porto.BotaoMenos();
    porto.BotaoMenos();
    porto.BotaoMenos();
    porto.BotaoMenos();
    cout << "Temperatura no Porto " << porto.ObterTemperatura() << endl;

    lisboa.calibrar(0, -5, 55);

    cout << "Temperatura em Lisboa " << lisboa.ObterTemperatura() << endl;
    lisboa.BotaoMais();
    cout << "Temperatura em Lisboa " << lisboa.ObterTemperatura() << endl;
    lisboa.BotaoMenos();
    lisboa.BotaoMenos();
    lisboa.BotaoMenos();
    lisboa.BotaoMenos();
    cout << "Temperatura em Lisboa " << lisboa.ObterTemperatura() << endl;

    viladoconde.calibrar(0, -4, 35);

    cout << "Temperatura em Vila do Conde " << viladoconde.ObterTemperatura() << endl;
    viladoconde.BotaoMais();
    cout << "Temperatura em Vila do Conde " << viladoconde.ObterTemperatura() << endl;
    viladoconde.BotaoMenos();
    viladoconde.BotaoMenos();
    viladoconde.BotaoMenos();
    viladoconde.BotaoMenos();
    cout << "Temperatura em Vila do Conde " << viladoconde.ObterTemperatura() << endl;
}

Permalink Deixe um Comentário

Avaliação ao Módulo 8

Novembro 14, 2008 at 10:45 am (Uncategorized)

No dia 11 deste mês, Novembro, eu e os meus colegas realizamos uma Prova Pratica, ou Teste, onde nos confrontaram com 1 pergunta teórica e 2 praticas. A teórica tinha haver com a Alocação dinâmica de memória em C++. Onde nos aparecia a seguinte imagem , mas para completarmos os nomes das respectivas secções.

modelo_de_memoria21

Nas perguntas praticas, uma delas tinha-mos que fazer um programa que permitia ler dois números inteiros e indicar qual deles era o maior. As variáveis que armazenam os dois inteiros deviam ser geridas de uma forma dinâmica, mediante a utilização dos operadores New e Delete.

Na ultima era para realizar um programa em QT, que apresenta-se o seguinte esquema.

exe03

Permalink Deixe um Comentário

Modulo 8 – Introdução a Programação em Ambiente Gráfico

Novembro 10, 2008 at 11:36 am (Uncategorized)

Neste modulo, começa-mos por realizar um trabalho sobre Sistemas Operativos gráficos e não gráficos, com o intuito de vermos as diferenças entre a parte gráfica e a parte a base de linha de comandos. Logo após esse nosso trabalho, realizamos uns programas para fazer-mos uma revisão ao C++, porque já estava a ficar esquecido. Depois disso realiza-mos uma ficha de trabalho sobre Gestão estática/dinâmica da memória, onde aprendemos o NEW e o DELETE.

Agora e que começamos a parte gráfica, ou seja, fizemos uma ficha de trabalho para começarmos a fazer uns programas em QT, que e o software em uso.

Permalink Deixe um Comentário

Módulo 7 – Manipulação de Ficheiros

Outubro 21, 2008 at 10:03 am (Uncategorized)

Este Módulo 7, o objectivo era a Manipulação de Ficheiros. No inicio estudamos os de Texto e agora introduzimos os Ficheiros Binários.

Ficheiros de Texto:

Neste tipo de ficheiros aprendemos a guardar texto em ficheiros para isso recorremos a funções como: no inicio fputc, que escreve um carácter num ficheiro de texto, o fgetc, que lê um carácter de um ficheiro, depois começamos a usar o fprintf e o fscanf, que fazem a função de escrita e leitura, respectivamente, as strings. Não esquecendo ainda as funções mais importantes, que são elas o fopen e o fclose.

Exemplo de programa:

#include
int main(int argc, char *argv[]){        /*esta linha passa na linha de comandos o nome de um ficheiro*/
    FILE *fp;                            /*declarar o apontador*/
    char nome[20];
    int r;
    printf("deseja ler -1 \n");
    printf("deseja escrevar -2 \n");
    scanf("%d",&r);
    if(r==2){
        fp=fopen(argv[1],"w");
        printf("Escreva o seu nome: ");
        scanf("%s",nome);
        fprintf(fp,"%s\n",nome);		/*Escreve dentro do ficheiro*/
        fclose(fp);
    }
    else{
        fp=fopen(argv[1],"r");                /*Função para abrir o ficheiro em modo de leitura*/
        while(fscanf(fp,"%s\n",nome)!=EOF)	/*lê o ficheiro ate ao final*/
            printf("Nome: %s\n",nome);
        fclose(fp);                            /*Função para fechar o ficheiro*/
    }
    return 0;
}

Ficheiros Binários

Os ficheiros binários, em relação aos de texto tem mais vantagens, porque enquanto que nos ficheiros de texto, nos escrevemos apenas texto e esse texto termina no final da linha, ou seja, o “\n”.

Nos binários o a

cesso e feito directamente, o que traz vantagens na sua utilização. As aplicações que utilizam este tipo de ficheiro, o bi

nário, que quase sempre usam os dados do ficheiro na memoria, realizam a tarefa, ou processo, e voltam a transferir esses dados para a mesma posição no ficheiro.

Para mais informação, clique em baixo:

#include
int main(int argc, char *argv[]){
int valores[5]={7, 3, 8, 1, 2};
FILE *fp;
if ((fp=fopen(argv[1], "wb"))==NULL || argc != 2){
printf("ERRO!\nModo de utilização: %s nome_ficheiro_dados\n", argv[0]);
return 1;
}
fwrite(valores, sizeof(int), 5, fp);
fclose(fp);
return 0;
}

Permalink Deixe um Comentário

Teste Diagonóstico

Setembro 19, 2008 at 11:26 am (Uncategorized)

Este ano mal chegamos a psi, a primeira coisa que fizemos foi um teste diagnostico com 6 programas e disponibilizo online para quem quiser ver os programas, download .

Permalink Deixe um Comentário

Apontadores o que são??

Setembro 18, 2008 at 9:17 pm (Uncategorized)

Apontadores são variáveis que contêm um endereço de variáveis que nós queremos representar. Exemplo: quando temos 2 variáveis declaradas (A e B), num programa, podemos não querer usar essas variáveis e usamos os chamados apontadores, que podem ser *Ptr_a=&A (este apontador está a apontar para a variável A) e *Ptr_a=&B (este apontador está a apontar para a variável B). Assim, em vez de usarmos as variáveis A ou B para ler, usamos *Ptr_a ou *Ptr_b…..

Nota:

  • um apontador tem que ter antes da variável um “*”;

  • para declarar para onde está a apontar devemos usar “&”.

Para fazer download do código-fonte da imagem abaixo, basta clicar AQUI::…

E cá vai mais um screenshot do meu programa:

Permalink Deixe um Comentário

Jogo do galo

Setembro 18, 2008 at 9:17 pm (Uncategorized)

Neste momento, estou a criar o jogo do galo, mas para quem pensa que é fácil, engana-se! O meu jogo tem funções de novo jogo, Chat e pontuação. Posteriormente vou desenvolver mais funções. A criação do jogo foi a maior dificuldade que tive até agora. Não consigo eliminar os cheaters. O chat funciona por IP’s e não consigo perguntar o IP para onde quero enviar as mensagens, tenho que ir ao código e alterar o IP…

O resto ainda não fiz, mas prometo postar no meu blog o desenvolvimento do programa…

Permalink Deixe um Comentário

Tux

Setembro 18, 2008 at 9:16 pm (Uncategorized)

O Tux é a mascote do sistema operativo Linux. Foi criado em 1996 num concurso de logotipos para Linux. O logotipo vencedor foi criado por Larry Ewing usando o GIMP (um pacote de software livre de edição gráfica).

O Tux tornou-se num ícone para a comunidade Linux e Open Source, com um grupo de utilizadores de linux britânico adoptando um pinguim no Jardim Zoológico de Bristol.

Muitos dizem que o nome deveria ser Torvalds Unix, um nome sugerido por James Hughes, em vez da explicação que os pinguins aparentam vestir um smoking.

para quem quer mais informação visitar o site :

http://pt.wikipedia.org/wiki/Tux

Tux, o mascote GNU/Linux. Trata-se de um pingüim gordo e satisfeito.

Permalink Deixe um Comentário

O Porque do Blog?

Setembro 18, 2008 at 9:15 pm (Uncategorized)

Este blog foi feito exclusivamente para a disciplina de PSI. “Com o intuito de elaborar um portefolio online, ou seja, um e-portefolio.” By DB.

Permalink Deixe um Comentário

Boas Vindas

Setembro 18, 2008 at 9:15 pm (Uncategorized)

Boas…Sou o Daniel Bento da ESDAS. BEM-VINDO!!!! ao meu blog::::……

Permalink Deixe um Comentário

Next page »

Seguir

Get every new post delivered to your Inbox.