domingo, 23 de janeiro de 2011

Uso de métodos virtuais em C++

#include <iostream>
using namespace std;

class Base{
public:
   virtual void print(){
      cout << "Base\n";
   }
};

class Derivada:public Base{
   public:
   void print(){
      cout << "Derivada\n";
   }
};

void main(){
   Base base;
   Base *b;
   Derivada d;
   b = &base;
   b->print();
   b = &d;
   b->print();

   system("pause");


Exemplo de um método Remover em c++

void removerObjecto(const string &o){
     Class *c=findObjecto(x);
     if(c){
           classes.erase(c);
           delete c;
     }
}

/* Antes de implementar este método deverá implementar o método find() */

Gestão de Salas em c++

#include <iostream>
#include <string>
#include "Coleccao.h"
using namespace std;

class Sala{
private:
    string identificacao;
    int lotacao;
    Coleccao<Sala> salas;
public:
    Sala(string i, int l){
        identificacao=i;
        lotacao=l;
    }

    string getSala(){
        return(identificacao);
    }

    void setSala(string i, int l){
            identificacao=i;
            lotacao=l;
    }

    void print(){
        cout<<identificacao<<", lotacao: "<<lotacao<<endl;
    }

    /*void listarSalas(){
        cout<<"Lista de salas: \n";
        Coleccao<Sala>::iterator it;
        for(it=salas.begin(); it!=salas.end(); it++)
            cout<<'\t'<<it->getSala()<<"\n";
    }*/
};

class UnidadeC{
private:
    string nome;
    int numAlunos;
public:
    UnidadeC(string n, int na){
        nome=n;
        numAlunos=na;
    }

    string getUnidadeC(){
        return(nome);
    }

    void setUnidadeC(string n, int na){
        nome=n;
        numAlunos=na;
    }
};

class Sala;
class UnidadeC;
class Aula{
private:
    string hora;
    Sala *salas;
    UnidadeC *unidadesc;
public:
    Aula(string h){
        hora=h;
    }

    string getAula(){
        return(hora);
    }

    void setAula(string h){
        hora=h;
    }
};

void main(){

    Sala s1("Sala 1", 30);
    Aula a1("14:00");
    UnidadeC u1("POO", 23);

    cout<<s1.getSala()<<endl;

    s1.setSala("Sala 2", 40);
    cout<<"Nome da Sala alterado para: "<<s1.getSala()<<endl;

    cout<<"Aula de "<<u1.getUnidadeC()<<" as "<<a1.getAula()<<", leccionada na "<<s1.getSala()<<endl;

    s1.print();
    cout<<endl;

    system("pause");
}


Saída Standard:

sábado, 22 de janeiro de 2011

Troca de variáveis em c++, do tipo int, double e string.

Primeiro implementar o ficheiro "Troca.h"

template<class T>
    void troca(T &a, T &b){
        T aux;
        aux = a;
        a = b;
        b = aux;
    }

De seguida implementar o ficheiro "User.cpp"

#include<iostream>
#include<string>
#include"troca.h"

using namespace std;

void main(){
    int n, k;
    cout<<"Insira dois inteiros: ";
    cin>>n>>k;
    troca(n, k);
    cout<<"Depois da troca: "<<n<< ' '<<k<<endl;

    double x, y;
    cout<<"Insira dois reais: ";
    cin>>x>>y;
    troca(x, y);
    cout<<"Depois da troca: "<<x<< ' '<<y<<endl;

    string s1, s2;
    cout<<"Insira duas palavras: ";
    cin>>s1>>s2;
    troca(s1, s2);
    cout<<"Depois da troca: "<<s1<< ' '<<s2<<endl;

    system("pause");
}

Saída Standard:


Importante: Os dois ficheiros devem estar incluídos num só projecto.

quinta-feira, 20 de janeiro de 2011

Exemplo de uma Herança em C++

#include<iostream>
#include<string>

using namespace std;

class Animal{
    string nome;
public:
    Animal(string n):nome(n){}

    virtual string Especie() const=0;

    static int Compativeis(const Animal &a1, const Animal &a2){
        return a1.Especie()==a2.Especie();
    }
};

class Gato: public Animal{
public:
    Gato(string n):Animal(n){}

    string Especie()const{
        return("Gato");
    }

};

class Cao: public Animal{
public:
    Cao(string n):Animal(n){}

    string Especie()const{
        return("Cao");
    }
};

void main(){
    Gato *g1=new Gato("Mia");
    Cao *c1=new Cao("Nely");
    cout<<g1->Especie()<<endl;
    cout<<c1->Especie()<<endl;

    if(Animal::Compativeis(*g1, *c1))
        cout<<"Compativeis"<<endl;
    else
        cout<<"Incompativeis"<<endl;
    delete g1;
    delete c1;


    system("pause");
}

Saída Standard:

quarta-feira, 19 de janeiro de 2011

Programa em C que faz uso dos parâmetros argv e argc


#include <stdio.h>
#include <stdlib.h>
void main(int argc, char *argv[])
{
int mes;
char *nomemes [] = {"Janeiro", "Fevereiro", "Março", "Abril", "Maio",
                    "Junho", "Julho", "Agosto", "Setembro", "Outubro",
                    "Novembro", "Dezembro"};
if(argc == 4) /* Testa se o numero de parametros fornecidos esta' correto
                o primeiro parametro e' o nome do programa, o segundo o dia
                o terceiro o mes e o quarto os dois ultimos algarismos do ano */
{
    mes = atoi(argv[2]);  /* argv contem strings. A string referente ao mes deve ser
                             transformada em um numero inteiro. A funcao atoi esta
                             sendo usada para isto: recebe a string e transforma no
                             inteiro equivalente */
    if (mes<1 || mes>12)  /* Testa se o mes e' valido */
        printf("Erro!\nUso: data dia mes ano, todos inteiros");
    else
      printf("\n%s de %s de 19%s", argv[1], nomemes[mes-1], argv[3]);
}
else printf("Erro!\nUso: data dia mes ano, todos inteiros");
}

terça-feira, 18 de janeiro de 2011

Programa em C++ que define um contador

#include <iostream>
using namespace std;

class Contador{
    int valor;
public:
    Contador(){valor=0;}
    Contador(int v){valor = v;}

    void incrementar(){
        valor++;
    }

    void decrementar(){
        valor--;
    }
   
    int get(){
        return valor;
    }
};

void main(){
    Contador c1;
    Contador c2(10);
    c1.incrementar();
    c2.incrementar();
    c1.incrementar();
    c1.incrementar();
    c2.incrementar();

    Contador c3(c1);
    c1.decrementar();

    cout<<c1.get()<<"\n";
    cout<<c2.get()<<"\n";
    cout<<c3.get()<<"\n";

    system("pause");
}

Termómetro em C++ que permite saber a temperatura

#include <iostream>
using namespace std;
class Termometro{
int temp;
int inf, sup;
public:
    Termometro(int i=0, int s=100, int t=0){
        inf = i;
        sup = s;
        if(t<inf) temp = inf;
        else if(t>sup) temp = sup;
            else temp = t;
    }

    void aumentar(int a){
        if(a<0) return;
        temp += a;
        if(temp>sup) temp = sup;
    }

    void diminuir(int a){
        if(a<0) return;
        temp -= a;
        if(temp<inf) temp = inf;
    }

    int get(){
        return(temp);
    }
};

void main(){
    Termometro t;
    Termometro t1(0, 100, 20);
    t1.diminuir(5);
    cout << t1.get() << endl;
    system("pause");
}

Programa em C++ para calcular a idade de uma pessoa através do ano actual e do ano de nascimento

#include <iostream>
#include <string>

using namespace std;

class Pessoa{
    string nome;
    int ano_nasc;

public:
    Pessoa(string n, int a){
    nome=n;
    ano_nasc=a;
    }

    Pessoa(int a){ano_nasc=a;}

    int CalcIdade(int ano_actual){
        int idade;
        idade=ano_actual-ano_nasc;
        return idade;
    }
};

void test(Pessoa p){
    cout<<p.CalcIdade(2010)<<"\n";
}

void main(){
    Pessoa p1("Jose", 1980);
    Pessoa p2("Luis", 1985);
    Pessoa p3(p2);
    int idade=p3.CalcIdade(2010);
    cout<<idade<<"\n";
    test(2000);
    system("pause");

}

Uso de ficheiros em C: Primeiro o ficheiro é aberto para a escrita, e imprime-se algo no ficheiro. De seguida, o ficheiro é fechado e novamente aberto para a leitura.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void main()
{
        FILE *p;
        char c, str[30], frase[80] = "Este ficheiro chama-se: ";
        int i;
        /* Le um nome para o ficheiro a ser aberto: */
        printf("\n\n Insira um nome para o ficheiro:\n");
        gets(str);
 
        if (!(p = fopen(str,"w")))  /* Caso ocorra algum erro na abertura do ficheiro.*/
        {                           /* o programa encerra automaticamente */
          printf("Erro! Impossivel abrir o ficheiro!\n");
          exit(1);
        }
        /* Se nao houve erro, imprime no ficheiro e o fecha.*/
        strcat(frase, str);
        for (i=0; frase[i]; i++)
         putc(frase[i],p);
        fclose(p);
 
        /* Abre novamente para leitura  */
        p = fopen(str,"r");
        c = getc(p);           /* Le o primeiro caracter */
        while (!feof(p))        /* Enquanto não se chegar no final do ficheiro */
        {    
                printf("%c",c); /*   Imprime o caracter no ecrã */
                c = getc(p);    /* Le um novo caracter no ficheiro */
        }
        fclose(p);              /* Fecha o ficheiro */
}

segunda-feira, 17 de janeiro de 2011

Programa em C para converter dias em anos


#include <stdio.h>
 int main (){
    int Dias;           /* Declaracao de Variáveis */
    float Anos;
    printf ("Insira o número de dias: ");         /* Inserção de dados */
    scanf ("%d",&Dias);
    Anos=Dias/365.25;         /* Conversão de Dias em Anos */
    printf ("\n\n%d dias equivalem a %f anos.\n",Dias,Anos);
    return(0);
}
 
Saída Standard: 
 
 

Programa em C que lê uma string e conta o número de caracteres com a letra 'c'

#include <stdio.h>
int main (){
   char string[100]; /* Define um array até 99 caracteres */
   int i, cont;
   printf("\n\nDigite uma frase: ");
   gets(string); /* Lê a string */
   printf("\n\nFrase digitada:\n%s", string);
   cont = 0;
   for (i=0; string[i] != ’\0’; i=i+1){
      if ( string[i] == ’c’ ) /* Se for a letra ’c’ (condição) */
      cont = cont +1; /* Incrementa o contador de caracteres */
   }
   printf("\nNumero de caracteres c = %d", cont);
   return(0);
}

Programa em C para calcular a área de um triângulo

#include <cstdlib>
#include <iostream>

int main()
{
   int b=0,h=0,area=0;

   printf("Digite o valor da base: ");
   scanf("%i",&b);
   printf("nDigite o valor da altura: ");
   scanf("%i",&h);

   area=(b*h)/2;

   printf("nnO valor da area do triangulo é igual a: %inn",area);

   system("PAUSE");
   return EXIT_SUCCESS;
}

Programa em C para realizar seis operações matemáticas: adição, subtracção, multiplicação, divisão, exponenciação e radiciação. Em seguida envia os resultados

#include <conio.h> // necessária para getch()
#include <math.h>  // necessária para pow() e sqrt()
#include <stdio.h> // necessária para printf()
 
int main()
{
   int a = 2, b = 3;
 
   printf("%d + %d = %d\n", a, b, a + b);
   printf("%d - %d = %d\n", a, b, a - b);
   printf("%d x %d = %d\n", a, b, a * b);
   printf("%d / %d = %0.1f\n", a, b, (float) a / b); // resultado fracionário
   printf("%d elevado a %d = %0.1f\n", a, b, pow(a, b)); // pow(base, expoente)
   printf("raiz quadrada de %d = %0.1f\n", a, sqrt(a));
 
   getch();
   return 0;
}

Programa em C para calcular a potencia de um número introduzido

#include <stdio.h>

int main()
{
    int num, pot=0;
    printf("digite um numero no qual queira ver a potencia: ");
    scanf("%d", &num);
    pot = num*num;
   
    printf("%d", pot);
    getch();
}

# ProgOnline ADMIN #

Caros visitantes,

Como sabem, este blog foi criado recentemente e ainda não tem muita informação.
Disponibilizo-me para questões adicionais.

Melhores Cumprimentos,

A administração, ProgOnline.

domingo, 16 de janeiro de 2011

Programação Médio-Avançada: Calculadora em C

#include <stdio.h>
int a,getallen,x,xx,xxx,xxxx,xxxxx,output,doei;
main()


    {
    printf("Calculator");
    printf("\n\nPress 1 for '+'");
    printf("\nPress 2 for '-'");
    printf("\nPress 3 for ':'");
    printf("\nPress 4 for '*'");
    printf("\nChoice: ");
    scanf("%d", &a);


        if ( a == 1 ) {
        printf("\n\n+");
        printf("\nHow many numbers to '+' (2/5)?");
        scanf("%d", &getallen); }


            if ( getallen == 2 ) {
            printf("\nNumber 1: ");
            scanf("%d", &x);
            printf("\nNumber 2: ");
            scanf("%d", &xx);
            output = (int) (x + xx);
            printf("\nOutput = " "%d\n", output);
            scanf("%d", doei); }


                if ( getallen == 3 ) {
                printf("\nNumber 1: ");
                scanf("%d", &x);
                printf("\nNumber 2: ");
                scanf("%d", &xx);
                printf("\nNumber 3: ");
                scanf("%d", &xxx);
                output = (int) (x + xx + xxx);
                printf("\nOutput = " "%d", output);
                scanf("%d", doei); }


                    if ( getallen == 4 ) {
                    printf("\nNumber 1: ");
                    scanf("%d", &x);
                    printf("\nNumber 2: ");
                    scanf("%d", &xx);
                    printf("\nNumber 3: ");
                    scanf("%d", &xxx);
                    printf("\nNumber 4: ");
                    scanf("%d", &xxxx);
                    output = (int) (x + xx + xxx + xxxx);
                    printf("\nOutput = " "%d", output);
                    scanf("%d", doei); }


                        if ( getallen == 5 ) {
                        printf("\nNumber 1: ");
                        scanf("%d", &x);
                        printf("\nNumber 2: ");
                        scanf("%d", &xx);
                        printf("\nNumber 3: ");
                        scanf("%d", &xxx);
                        printf("\nNumber 4: ");
                        scanf("%d", &xxxx);
                        printf("\nNumber 5: ");
                        scanf("%d", &xxxxx);
                        output = (int) (x + xx + xxx + xxxx + xxxxx);
                        printf("\nOutput = " "%d", output);
                        scanf("%d", doei); }


                            if ( a == 2 ) {
                            printf("\n\n-");
                            printf("\nHow many numbers to '-' (2/5)?");
                            scanf("%d", &getallen); }


                                if ( getallen == 2 ) {
                                printf("\nNumber 1: ");
                                scanf("%d", &x);
                                printf("\nNumber 2: ");
                                scanf("%d", &xx);
                                output = (int) (x - xx);
                                printf("\nOutput = " "%d", output);
                                scanf("%d", doei); }


                                    if ( getallen == 3) {
                                    printf("\nNumber 1: ");
                                    scanf("%d", &x);
                                    printf("\nNumber 2: ");
                                    scanf("%d", &xx);
                                    printf("\nNumber 3: ");
                                    scanf("%d", &xxx);
                                    output = (int) (x - xx - xxx);
                                    printf("\nOutput = " "%d", output);
                                    scanf("%d", doei); }


                                        if ( getallen == 4) {
                                        printf("\nNumber 1: ");
                                        scanf("%d", &x);
                                        printf("\nNumber 2: ");
                                        scanf("%d", &xx);
                                        printf("\nNumber 3: ");
                                        scanf("%d", &xxx);
                                        printf("\nNumber 4: ");
                                        scanf("%d", &xxxx);
                                        output = (int) (x - xx - xxx - xxxx);
                                        printf("\nOutput = " "%d", output);
                                        scanf("%d", doei); }


                                            if ( getallen == 5) {
                                            printf("\nNumber 1: ");
                                            scanf("%d", &x);
                                            printf("\nNumber 2: ");
                                            scanf("%d", &xx);
                                            printf("\nNumber 3: ");
                                            scanf("%d", &xxx);
                                            printf("\nNumber 4: ");
                                            scanf("%d", &xxxx);
                                            printf("\nNumber 5: ");
                                            scanf("%d", &xxxxx);
                                            output = (int) (x - xx - xxx - xxxx - xxxxx);
                                            printf("Output = " "%d", output);
                                            scanf("%d", doei); }


                                                if ( a == 3 ) {
                                                printf("\n\n:");
                                                printf("\nHow many numbers to ':' (2/5)?");
                                                scanf("%d", &getallen); }


                                                    if ( getallen == 2) {
                                                    printf("\nNumber 1: ");
                                                    scanf("%d", &x);
                                                    printf("\nNumber 2: ");
                                                    scanf("%d", &xx);
                                                    output = (int) (x / xx);
                                                    printf("\nOutput = " "%d", output);
                                                    scanf("%d", doei); }


                                                        if ( getallen == 3) {
                                                        printf("\nNumber 1: ");
                                                        scanf("%d", &x);
                                                        printf("\nNumber 2: ");
                                                        scanf("%d", &xx);
                                                        printf("\nNumber 3: ");
                                                        scanf("%d", &xxx);
                                                        output = (int) (x / xx / xxx);
                                                        printf("\nOutput = " "%d", output);
                                                        scanf("%d", doei); }


                                                            if ( getallen == 4) {
                                                            printf("\nNumber 1: ");
                                                            scanf("%d", &x);
                                                            printf("\nNumber 2: ");
                                                            scanf("%d", &xx);
                                                            printf("\nNumber 3: ");
                                                            scanf("%d", &xxx);
                                                            printf("\nNumber 4: ");
                                                            scanf("%d", &xxxx);
                                                            output = (int) (x / xx / xxx / xxxx);
                                                            printf("\nOutput = " "%d", output);
                                                            scanf("%d", doei); }


                                                                if ( getallen == 5) {
                                                                printf("\nNumber 1: ");
                                                                scanf("%d", &x);
                                                                printf("\nNumber 2: ");
                                                                scanf("%d", &xx);
                                                                printf("\nNumber 3: ");
                                                                scanf("%d", &xxx);
                                                                printf("\nNumber 4: ");
                                                                scanf("%d", &xxxx);
                                                                printf("\nNumber 5: ");
                                                                scanf("%d", &xxxxx);
                                                                output = (int) (x / xx / xxx / xxxx / xxxxx);
                                                                printf("\nOutput = " "%d", output);
                                                                scanf("%d", doei); }


                                                                    if ( a == 4 ) {
                                                                    printf("\n\n*");
                                                                    printf("\nHow many numbers to '*' (2/5)?");
                                                                    scanf("%d", &getallen); }


                                                                        if ( getallen == 2) {
                                                                        printf("\nNumber 1: ");
                                                                        scanf("%d", &x);
                                                                        printf("\nNumber 2: ");
                                                                        scanf("%d", &xx);
                                                                        output = (int) (x * xx);
                                                                        printf("\nOutput = " "%d", output);
                                                                        scanf("%d", doei); }


                                                                            if ( getallen == 3) {
                                                                            printf("\nNumber 1: ");
                                                                            scanf("%d", &x);
                                                                            printf("\nNumber 2: ");
                                                                            scanf("%d", &xx);
                                                                            printf("\nNumber 3: ");
                                                                            scanf("%d", &xxx);
                                                                            output = (int) (x * xx * xxx);
                                                                            printf("\nOutput = " "%d", output);
                                                                            scanf("%d", doei); }


                                                                                if ( getallen == 4) {
                                                                                printf("\nNumber 1: ");
                                                                                scanf("%d", &x);
                                                                                printf("\nNumber 2: ");
                                                                                scanf("%d", &xx);
                                                                                printf("\nNumber 3: ");
                                                                                scanf("%d", &xxx);
                                                                                printf("\nNumber 4: ");
                                                                                scanf("%d", &xxxx);
                                                                                output = (int) (x * xx * xxx * xxxx);
                                                                                printf("\nOutput = " "%d", output);
                                                                                scanf("%d", doei); }


                                                                                    if ( getallen == 5) {
                                                                                    printf("\nNumber 1: ");
                                                                                    scanf("%d", &x);
                                                                                    printf("\nNumber 2: ");
                                                                                    scanf("%d", &xx);
                                                                                    printf("\nNumber 3: ");
                                                                                    scanf("%d", &xxx);
                                                                                    printf("\nNumber 4: ");
                                                                                    scanf("%d", &xxxx);
                                                                                    printf("\nNumber 5: ");
                                                                                    scanf("%d", &xxxxx);
                                                                                    output = (int) (x * xx * xxx * xxxx * xxxxx);
                                                                                    printf("\nOutput = " "%d", output);
                                                                                    scanf("%d", doei); }
                                                                                    return 0;
                                                                                }