Exercícios de revisão em Java

Olá leitores e curiosos que estão aqui a procura de uma solução. Neste artigo publicarei alguns exercícios que fiz em aula, e surpreendentemente os exercícios são em JAVA. Este post servirá também, para quebrar certas barreiras entre desenvolvedores, que a anos procuram defender qual linguagem mais usa, tentando provar que uma é melhor que outra.

 

EXERCÍCIO 1

=======================

Escreva um programa que leia os valores A, B, C, e diga se a soma de A + B é menor que C.

=======================

MAIN.JAVA

=======================

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package lista11;
import java.util.Scanner;
/**
 *
 * @author Aline
 */
public class Main {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner scan = new Scanner(System.in);
        System.out.println("Digite A: ");
        int na = scan.nextInt();
        System.out.println("Nr A digitado: " + na);
        System.out.println("Digite B: ");
        int nb = scan.nextInt();
        System.out.println("Nr B digitado: " + nb);
        System.out.println("Digite C: ");
        int nc = scan.nextInt();
        System.out.println("Nr C digitado: " + nc);
        ABC calc ;
        calc = new ABC(na,nb,nc);
        calc.Calcular();
    }
}

=======================

ABC.JAVA

=======================

/**

 *

 * @author Aline

 */

public class ABC {

    protected int A;

    protected int B;

    protected int C;

    public ABC(int pA, int pB, int pC){

        this.A=pA;

        this.B=pB;

        this.C=pC;

    }

    public void Calcular(){

       if(A+B<C){

           System.out.println(“A soma de A e B é menor que C”);

       }else if(A+B>C){

           System.out.println(“A soma de A e B é maior que C”);

       }else{

           System.out.println(“A soma de A e B é igual a C”);

       }

    }

}

 

EXERCÍCIO 2

=======================

Escreva um programa que leia o nome e as três notas de uma disciplina de uma aluno e ao final escreva o nome do aluno, sua média e se ele foi aprovado (a média para aprovação é 7).

=======================

MAIN.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista12;

import java.util.Scanner;

/**

 *

 * @author Aline

 */

public class Main {

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

        Scanner scan = new Scanner(System.in);

        System.out.println(“Digite o nome do aluno: “);

        String nome = scan.nextLine();

        System.out.println(“Nota 1: “);

        int n1 = scan.nextInt();

        System.out.println(“Nota 2: “);

        int n2 = scan.nextInt();

        System.out.println(“Nota 3: “);

        int n3 = scan.nextInt();

        Alunos A;

        A= new Alunos(nome, n1,n2,n3);

        A.TestaAluno();

    }

}

=======================

ALUNOS.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista12;

/**

 *

 * @author Aline

 */

public class Alunos {

    protected String Nome;

    protected double N1;

    protected double N2;

    protected double N3;

    public Alunos(String pNome, double pN1, double pN2, double pN3){

        this.Nome=pNome;

        this.N1=pN1;

        this.N2=pN2;

        this.N3=pN3;

    }

    public void TestaAluno(){

        double media;

        media=(N1+N2+N3)/3;

        if(media>7){

            System.out.println(“Aluno: “+Nome+”, com média “+media+” está aprovado!!!”);

        }else{

            System.out.println(“Aluno: “+Nome+”, com média “+media+” está reprovado!!!”);

        }

    }

}

EXERCÍCIO 3

=======================

Dados três valores distintos, escreva um programa que, após a leitura destes dados, apresenta-os em ordem crescente.

=======================

MAIN.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista13;

import java.util.Scanner;

/**

 *

 * @author Aline

 */

public class Main {

    /**

     * @param args the command line arguments

     */

   public static void main(String[] args) {

        // TODO code application logic here

        Scanner scan = new Scanner(System.in);

        System.out.println(“Nr 1: “);

        int n1 = scan.nextInt();

        System.out.println(“Nr 2: “);

        int n2 = scan.nextInt();

        System.out.println(“N3 3: “);

        int n3 = scan.nextInt();

        Ordena O;

        O= new Ordena(n1,n2,n3);

        O.FazOrdenacao();

    }

}

=======================

ORDENA.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista13;

/**

 *

 * @author Aline

 */

public class Ordena {

    private int n1;

    private int n2;

    private int n3;

    public Ordena(int pn1, int pn2, int pn3){

        this.n1=pn1;

        this.n2=pn2;

        this.n3=pn3;

    }

    public void FazOrdenacao(){

        if(n1<n2 && n1<n3){

            System.out.println(n1);

            if(n2<n3){

                System.out.println(n2);

                System.out.println(n3);

            }else{

                System.out.println(n3);

                System.out.println(n2);

            }

        }else if(n2<n1 && n2<n3){

            System.out.println(n2);

            if(n1<n3){

                System.out.println(n1);

                System.out.println(n3);

            }else{

                 System.out.println(n3);

                 System.out.println(n1);

            }

        }else if(n3<=n1 && n3<=n2){

            System.out.println(n3);

            if(n1<=n2){

                System.out.println(n1);

                System.out.println(n2);

            }else{

                 System.out.println(n2);

                 System.out.println(n1);

            }

        }

    }

}

EXERCÍCIO 4

=======================

Escreva um programa que pede ao usuário um número que representa um determinado mês do ano. Após a leitura, o programa apresenta por extenso qual o mês lido. Caso o número digitado não esteja na faixa de 1..12, o programa apresenta uma mensagem informando o usuário do erro da digitação.

=======================

MAIN.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista14;

import java.util.Scanner;

/**

 *

 * @author Aline

 */

public class Main {

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

          Scanner scan = new Scanner(System.in);

          System.out.println(“Informe o Número do mês: “);

          int n1 = scan.nextInt();

          InformaMes I;

          I=new InformaMes(n1);

          I.Mes();

    }

}

=======================

INFORMAMES.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista14;

/**

 *

 * @author Aline

 */

public class InformaMes {

    private int mes;

    public InformaMes(int pmes){

        this.mes=pmes;

    }

    public void Mes(){

        switch (mes) {

            case 1:

                System.out.println(“Janeiro”);

                break;

            case 2:

                System.out.println(“Fevereiro”);

                break;

            case 3:

                System.out.println(“Março”);

                break;

            case 4:

                System.out.println(“Abril”);

                break;

            case 5:

                System.out.println(“Maio”);

                break;

            case 6:

                System.out.println(“Junho”);

                break;

            case 7:

            System.out.println(“Julho”);

                 break;

            case 8:

            System.out.println(“Agosto”);

                  break;

            case 9:

            System.out.println(“Setembro”);

                  break;

            case 10:

            System.out.println(“Outubro”);

                  break;

            case 11:

            System.out.println(“Novembro”);

                  break;

            case 12:

            System.out.println(“Dezembro”);

                 break;

            default:

                 System.out.println(“Mês informado é inválido!”);

         }

    }

}

==============================================================

EXERCÍCIO 5

O mês em que o emplacamento do carro deve ser renovado é determinado pelo último número da placa do mesmo. Considerando este dado faça um algoritmo que, a partir da leitura da placa do carro diga o mês em que o emplacamento deve ser renovado. Obs: Leia a placa do carro em uma variável caracter.

=======================

MAIN.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista15;

import java.util.Scanner;

/**

 *

 * @author Aline

 */

public class Main {

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

        Scanner scan = new Scanner(System.in);

        System.out.println(“Digite a placa do carro: “);

        String placa = scan.nextLine();

        Licenciamento A;

        A = new Licenciamento(placa);

        A.Mes();

    }

}

=======================

LICENCIAMENTO.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista15;

/**

 *

 * @author Aline

 */

public class Licenciamento {

private String placa;

private int numero;

public Licenciamento(String pplaca){

    this.placa=pplaca;

}

public void Mes(){

    numero =Integer.parseInt(placa.substring(placa.length()-1,placa.length()));

    switch (numero) {

            case 0:

                System.out.println(“até dezembro”);

                break;

            case 1:

                System.out.println(“Abril”);

                break;

            case 2:

                System.out.println(“até Maio”);

                break;

            case 3:

                System.out.println(“até Junho”);

                break;

            case 4:

                System.out.println(“até Julho”);

                break;

            case 5:

                System.out.println(“até Agosto”);

                break;

            case 6:

                System.out.println(“até Agosto”);

                break;

            case 7:

            System.out.println(“até Setembro”);

                 break;

            case 8:

            System.out.println(“até Outubro”);

                  break;

            case 9:

            System.out.println(“até Novembro”);

                  break;

            default:

                 System.out.println(“Placa informada é inválida!”);

         }

}

}

==============================================================

==============================================================

EXERCÍCIO 6

=======================

Pressuponha i = 1, j = 2, k = 3 e m = 2. O que cada uma das seguintes instruções imprime?

a) System .out.println (i == 1);
b) System .out.println (j == 3);
c) System .out.println (i >= 1 && j < 4);
d) System .out.println (m <= 99 & k < m );
e) System .out.println (j >= 1 ||k == m);
f) System .out.println (k = m < j | 3-j >= k);
g) System .out.println ( !( k>m ) ); 

=======================

MAIN.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista16;

/**

 *

 * @author Aline

 */

public class Main {

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

        int i=1;

        int j=2;

        int k=3;

        int m=2;

        System.out.println(i==1);

        System.out.println(j==3);

        System.out.println(i>=1 && j<4);

        System.out.println(m<=99 && k<m);

        System.out.println(j>=1 || k==m);

        System.out.println((k=m)<j|3-j>=k);

        System.out.println(k-m<j|3-j>=k);

        System.out.println(!(k>m));

    }

}

==============================================================

==============================================================

EXERCÍCIO 7

=======================

Utilize uma array unidimensional para resolver o seguinte problema. Leiavinte números, cada um dos quais está entre 10 e 100 inclusive. Enquanto cada número é lido, imprima-o somente se ele não for uma duplicata de um número jálido. Previna-se para o “pior caso” em que todos os 20 números são diferentes.

=======================

MAIN.JAVA

=======================

package lista17;

/*

 * @author Aline

 */

public class Main {

    public static void main(String[] args) {

        Vetor v=new Vetor();

        v.Cadastrar();

        v.Listar();

    }

}

=======================

vETOR.JAVA

=======================

package lista17;

import java.util.Scanner;

/*

 * @author Aline

 */

public class Vetor {

    int [] vetor=new int [20];

    protected void Cadastrar(){

        Scanner scan=new Scanner(System.in);

        int n;

        for(int i=0; i<20; i++){

            System.out.println(“Digite um número entre 10 e 100: “);

            n=scan.nextInt();

            if(n<10|n>100){

                System.out.println(“Número inválido.”);

                i–;

            }else vetor[i]=n;

        }

        System.out.println(“Acabou.”);

    }

    protected void Listar(){

        int cont=0;

        System.out.println(“Os números contidos no vetor são: “);

        for(int i=0; i<20; i++){

         int n=vetor[i];

         for(int j=0; j<i; j++){

            if(vetor[j]==n){

                cont=1;

                break;

            }else{

                cont=0;

            }

         }

         if(cont==0){

            System.out.println(n);

         }

        }

    }

}

==============================================================

==============================================================

EXERCÍCIO 8

=======================

Faça um programa para calcular o valor das seguintes expressões:

=======================

MAIN.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista18;

/**

 *

 * @author Aline

 */

public class Main {

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

        double result =0.0;

        for(int i=1, j=1;i<100;i+=2, j++){

           result=result+(double)i/j;

        }

        System.out.println(“Exercício A: “+result);

        double result2 = 0.0;

        for(int i=1, j=1;i<100;i+=2, j++){

            if(j%2==0){

                result2=result2-(double)i/j;

            }else{

                result2=result2+(double)i/j;

            }

        }

        System.out.println(“Exercício B: “+result2);

    }

}

EXERCÍCIO 9

=======================

Faça um programa para calcular o Máximo Divisor Comum entre 2 números passados como argumentos para a execução do programa. Observe as seguintes propriedades do MDC:

a. MDC(x, y) = MDC(x − y, y), se x > y;

b. MDC(x, y) = MDC(y, x);

c. MDC(x, x) = x.

Exemplo: MDC(3,5)=MDC(5,3)=MDC(2,3)=MDC(3,2)=MDC(1,2)=MDC(2,1)=MDC(1,1)=1

=======================

MAIN.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista19;

import java.util.Scanner;

/**

 *

 * @author Aline

 */

public class Main {

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

    Scanner in = new Scanner(System.in);

    System.out.print(

      “Este programa permite calcular o MDC\n”);

    System.out.print(“Informe o primeiro número: “);

    int x = in.nextInt();

    System.out.print(“Informe o segundo número: “);

    int y = in.nextInt();

    MDC a;

    a= new MDC();

    System.out.println(“\nO Máximo Divisor Comum de “  + x + ” e ” + y + ” é ” + a.Calcular(x,y));

  }

}

=======================

MDC.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista19;

/**

 *

 * @author Aline

 */

public class MDC {

    public int Calcular(int x, int y){

          if(x == y){

             return x;

          }

          if (x > y){

             return Calcular((x-y), y);

          }else{

             return Calcular((y-x), x);

          }

    }

}

EXERCÍCIO 10

=======================

Crie uma classe para representar uma conta-corrente, com métodos para depositar uma quantia, sacar uma quantia e obter o saldo. Para cada saque será debitada também uma taxa de operação equivalente à 0,5% do valor sacado. Crie,em seguida,uma subclasse desta classe anterior para representar uma conta-corrente de um cliente especial. Clientes especiais pagam taxas de operação de apenas 0,1% do valor sacado. Faça testes com as duas classes e verifique seus resultados.

=======================

MAIN.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista10;

import java.util.Scanner;

/**

 *

 * @author Aline

 */

public class Main {

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

        Scanner scan = new Scanner(System.in);

        System.out.println(“1 – Cliente Especial”);

        System.out.println(“2 – Cliente Normal”);

        int r = scan.nextInt();

        Conta c;

        if( r==1 ){

            c = new ContaEspecial(0);

        }else if( r==2 ){

            c = new Conta(0);

        }else{

            System.out.println(“Opção inválida!”);

            return;

        }

        while (true){

                System.out.println(“1 – Sacar”);

                System.out.println(“2 – Depositar”);

                System.out.println(“3 – Ver o Saldo”);

                System.out.println(“4 – Sair”);

                int na = scan.nextInt();

                double val=0;

                switch (na){

                        case 1:

                            val=0;

                            System.out.println(“Digite o Valor: “);

                            val = scan.nextDouble();

                            c.Sacar(val);

                            break;

                        case 2:

                            val=0;

                            System.out.println(“Digite o Valor: “);

                            val = scan.nextDouble();

                            c.Depositar(val);

                            break;

                        case 3:

                            System.out.println(“Saldo:”+c.Saldo());

                            break;

                        case 4:

                            return;

                        default:

                            System.out.println(“Opção Inválida!!”);

                }

        }

    }

}

=======================

CONTA.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista10;

/**

 *

 * @author Aline

 */

public class Conta {

    protected double saldo;

    public Conta(double pSaldo){

       saldo=pSaldo;

    }

    public void Sacar(double pValor){

        saldo=saldo-(pValor + pValor*0.05);

    }

    public void Depositar(double pValor){

        saldo=saldo+pValor;

    }

    public double Saldo(){

        return saldo;

    }

}

=======================

CONTAESPECIAL.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista10;

/**

 *

 * @author Aline

 */

public class ContaEspecial extends Conta {

    public ContaEspecial(double pValor){

        super(pValor);

    }

    @Override

    public void Sacar(double pValor){

        saldo=saldo-(pValor + pValor*0.01);

    }

}

EXERCÍCIO 11

=======================

Crie uma classe que representa um ponto no plano cartesiano.Em seguida,crie uma classe que representa um triângulo, reusando a classe anterior por composição.

=======================

MAIN.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista113;

import java.util.Scanner;

/**

 *

 * @author Aline

 */

public class Main {

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

            Scanner scan = new Scanner(System.in);

        System.out.println(“Ponto 1: “);

        int n1 = scan.nextInt();

        System.out.println(“Ponto 2: “);

        int n2 = scan.nextInt();

        System.out.println(“Ponto 3: “);

        int n3 = scan.nextInt();

        Triangulo t;

            t=new Triangulo(n1,n2,n3);

    }

}

=======================

TRIANGULO.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista111;

/**

 *

 * @author Aline

 */

public class Triangulo {

    protected Ponto a;

    protected Ponto b;

    protected Ponto c;

    public Triangulo(Ponto pa, Ponto pb, Ponto pc){

        a = new Ponto(pa.x, pa.y);

        b = new Ponto(pb.x, pb.y);

        c = new Ponto(pc.x, pc.y);

    }

}

=======================

PONTO.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista111;

/**

 *

 * @author Aline

 */

public class Ponto {

    protected int x;

    protected int y;

    public Ponto (int px, int py){

        this.x=px;

        this.y=py;

    }

}

EXERCÍCIO 12

=======================

Crie uma classe que representa um funcionário, registrando seu nome, salário e data de admissão. Em seguida, crie uma classe que represente um departamento de uma empresa, registrando o nome e os funcionários que nele trabalham (para uso de vetores, considere um máximo de 100 funcionários). Por fim,crie uma classe que representa uma empresa,registrando seu nome,CNPJ e departamentos (considere um máximo de 10 departamentos). Faça um programa que:

a.Crie uma empresa;

b. Adicione a esta empresa alguns departamentos;

c. Adicione aos departamentos alguns funcionários;

d. Dê aumento de 10% a todos os funcionários de um determinado departamento;

e. Transfira um funcionário de um departamento para outro.

É esperado que seu código seja bem encapsulado. Por exemplo, para adicionar um departamento em uma empresa(ou um funcionário a um departamento),não se deve acessar o vetor (ou lista)de departamentos diretamente,mas sim ter um método na classe que representa a empresa para adicionar um departamento.

=======================

MAIN.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista112;

import java.util.Scanner;

/**

 *

 * @author Aline

 */

public class Main {

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

        Empresa e;

        e = new Empresa(“Sino Informática”, “48484848″);

        e.AdicionaDepto(“Teste”);

        e.Depto[0].AdicionarFunc(“Aline”,150.0,”30/02/2000″);

        e.Depto[0].AdicionarFunc(“Marquinho”,200.0, “19/02/2001″);

        System.out.println(“Empresa: “+ e.Nome +” CNPJ: “+ e.CNPJ);

        e.ListaDepto();

        e.Depto[0].AjusteSalarial(10);

        e.ListaDepto();

    }

}

=======================

FUNCIONARIO.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista112;

/**

 *

 * @author Aline

 */

public class Funcionario {

    protected String Nome;

    protected double Salario;

    protected String Data;

    public Funcionario(String pNome, double pSalario, String pData){

        this.Nome=pNome;

        this.Salario=pSalario;

        this.Data=pData;

    }

    public void Reajuste(int pPorc) {

        Salario=Salario+(Salario*pPorc/100);

    }

}

=======================

EMPRESA.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista112;

/**

 *

 * @author Aline

 */

public class Empresa {

    protected String Nome;

    protected String CNPJ;

    protected Departamento Depto[];

    private int QtdDepto=0;

    public Empresa (String pNome, String pCNPJ){

        this.Nome = pNome;

        this.CNPJ = pCNPJ;

        this.Depto = new Departamento[10];

    }

    public void AdicionaDepto(String pNome){

        Depto[QtdDepto]=new Departamento(pNome);

        QtdDepto++;

    }

    public void ListaDepto(){

        for(int i=0; i<QtdDepto; i++){

            System.out.println(“Nome do departamento: “+ Depto[i].Nome);

            Depto[i].ListaFunc();

        }

    }

}

=======================

DEPARTAMENTO.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista112;

/**

 *

 * @author Aline

 */

public class Departamento {

    protected String Nome;

    protected Funcionario Func[];

    private int QtdeFunc = 0;

    public Departamento (String pNome){

        this.Nome=pNome;

        this.Func=new Funcionario[100];

    }

    public void AdicionarFunc(String pNome, double pSalario, String pData) {

        Func[QtdeFunc] = new Funcionario(pNome, pSalario, pData);

        QtdeFunc++;

    }

    public void AjusteSalarial(int pPorc){

        for(int i=0;i<QtdeFunc;i++){

            Func[i].Reajuste(pPorc);

        }

    }

    public void ListaFunc(){

        for(int i=0;i<QtdeFunc;i++){

            System.out.println(“\nFuncionario: ” + Func[i].Nome);

            System.out.println(“Data de admissão:”+ Func[i].Data);

            System.out.println(“Salario:”+ Func[i].Salario);

        }

    }

}

EXERCÍCIO 13

=======================

Dado o trecho de código abaixo:

int[] vetor = new int[] { 2, 4, 6, 8, 10, 12 };

for (int i = 0; i <= 12; i++) {

System.out.println(vetor[i]);

}

Implemente um programa em Java que execute este trecho.Execute o programa e veja a exceção produzida por acesso a posição fora dos limites do vetor. Trate esta exceção, imprimindo na tela uma mensagem dizendo que o vetor acabou

=======================

MAIN.JAVA

=======================

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package lista113;

/**

 *

 * @author Aline

 */

public class Main {

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

        int[] vetor = new int[]{2,4,6,8,10,12};

        try{

            for(int i=0; i<=12; i++){

                  System.out.println(vetor[i]);

            }

        }catch(Exception e){

            System.out.println(“\nVetor chegou ao fim!!!”);

        }

    }

}

Espero que tenha ajudado a resolver problemas iguais ou parecidos com estes.

Obrigada pela visita e volte sempre

Aline Bossi

Publicado em Java. Tags: , . 3 Comentários »

Trabalhando com Arquivos em C

Galera, espero que estejam aproveitando os exercícios, hoje postarei um dos difíceis.

1- Faça um programa para manipular os dados de funcionários de uma empresa em um arquivo binário com registros com o seguinte formato:
- código (int)
- nome (101 caracteres)
- sexo (1 caracter => M/F)
- salário (float)
Defina funções para:
a) Inserir um funcionário no arquivo;
b) Exibir os dados de todos os funcionários;
c) Dado o código de um funcionário e uma porcentagem (p), aumentar o salário do funcionário em p %;
d) Contar quantos funcionários do sexo masculino (M) e feminino (F) há cadastrados;
e) Somar o salário de todos os funcionários;
f) Crie dois arquivos binários separando os funcionários:
- do sexo masculino devem ser gravados no arquivo “masc.dat”;
- do sexo feminino devem ser gravados no arquivo “fem.dat”.
g) Crie dois arquivos texto (formatados – fprintf) separando os funcionários:
- salário menor que 1000 reais devem ser gravados no arquivo “menor.txt”;
- salário maior ou igual a 1000 reais devem ser gravados no arquivo “maior.txt”.

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
typedef struct func{
        int codigo;
        char nome[101];
        char sexo;
        float salario;
}func;
void grava_registro()
{
     func F;
     FILE * arquivo; 
     printf("\n\nDigite o codigo: ");
     scanf("%d",&F.codigo); 
     printf("\nDigite o nome: ");
     fflush(stdin);
     gets(F.nome);
     printf("\nDigite o sexo (F/M): ");
     scanf("%c",&F.sexo);
     printf("\nDigite o salario: ");
     scanf("%f",&F.salario);
     arquivo=fopen("funcionario.dat", "ab");
     if (arquivo == NULL) {
         arquivo = fopen("funcionario.dat", "wb");     
         if (arquivo == NULL) {
              printf("Erro abrindo arquivo");
              getch();
              exit(0);
         }
     }
     fwrite(&F, sizeof(F), 1,arquivo);
     fclose(arquivo);    
}
void listar()
{
     func F;
     FILE *arquivo;
     arquivo=fopen("funcionario.dat","rb");
     if(arquivo ==NULL){
          printf("Erro ao abrir o arquivo");
          getch();
          exit(0);
     }else{
           fread(&F, sizeof(F), 1, arquivo);
           while(!feof(arquivo))
           {
                printf("Codigo: %d \n Nome: %s \n Sexo: %c \n Salario: %f", F.codigo, F.nome, F.sexo, F.salario);
                fread(&F, sizeof(F),1,arquivo);                              
           }
           fclose(arquivo);
     }

}
void p_salario()
{
     int cod, porc;
     func F;
     FILE * arquivo;
     arquivo=fopen("funcionario.dat","r+b");
     if(arquivo==NULL)
     {
           printf("Erro ao abrir o arquivo");
     }else{
           printf("\n Digite o cod do funcionario a ser alterado: ");
           scanf("%d",&cod);
           printf("\n Digite a porcentagem: ");
           scanf("%d",&porc);
           fread(&F,sizeof(F),1,arquivo);
           while(!feof(arquivo))
           {
                if(F.codigo==cod)
                {
                     F.salario=F.salario+(F.salario*(porc/100));
                     fseek(arquivo,-sizeof(F),1);              
                     fwrite(&F, sizeof(F), 1,arquivo);
                     fclose(arquivo);
                     return;
                }
                fread(&F,sizeof(F),1,arquivo);

           }
           fclose(arquivo);
     }   
}
void conta()
{

  func F;
  FILE * arquivo;
  int Masc=0, Fem=0;
  arquivo=fopen("funcionario.dat","rb");
  if(arquivo==NULL)
  {
      printf("Erro ao abrir o arquivo");
  }else{
  fread(&F,sizeof(F),1,arquivo);
  while(!feof(arquivo)) 
  {
      if(F.sexo=='m')
      {
         Masc++;  
       }
      if(F.sexo=='f'){
         Fem++;
      }   
      fread(&F,sizeof(F),1,arquivo);

  }   
  printf("\n\nHa %d homens e %d mulheres cadastradas no sistema", Masc, Fem);
  fclose(arquivo);
  }     
}
void soma_salario()
{
  float soma=0;
  func F;
  FILE * arquivo;
  arquivo=fopen("funcionario.dat","rb");
  if(arquivo==NULL){
      printf("Erro ao abrir o arquivo");
  }else{
      fread(&F, sizeof(F),1,arquivo);
      while(!feof(arquivo)){
           soma=soma+F.salario;  
           fread(&F,sizeof(F),1,arquivo);                       
      }  
      printf("A soma dos salarios é: %f", soma); 
      fclose(arquivo);
  } 

}
void separa_arquivo()
{
     func F, Fem, Masc;
     FILE * arquivo;
     FILE * arquivoFem;
     FILE * arquivoMasc;
     arquivo=fopen("funcionario.dat","rb");
     arquivoMasc = fopen("masc.dat", "a+b");
     arquivoFem = fopen("fem.dat", "a+b");
     if(arquivo==NULL){
           printf("Erro ao abrir o arquivo");
     }else{
           fread(&F,sizeof(F),1,arquivo);
           while(!feof(arquivo))
           {
               if(F.sexo=='f')
               {
                  fwrite(&F, sizeof(F),1, arquivoFem);           
               }
               if(F.sexo=='m'){
                  fwrite(&F, sizeof(F),1, arquivoMasc);                         
               }
               fread(&F,sizeof(F),1,arquivo);                                        
           }          
           fclose(arquivo);
           fclose(arquivoFem);
           fclose(arquivoMasc);
     }
}
void arquivo_1000()
{
    func F;
    FILE * arquivo;
    FILE * arquivoMaior;
    FILE * arquivoMenor;

    arquivo=fopen("funcionario.dat","rb");
    arquivoMaior=fopen("maior.txt","w");
    arquivoMenor=fopen("menor.txt","w");
     if(arquivo==NULL){
           printf("Erro ao abrir o arquivo");
     }else{
           fread(&F,sizeof(F),1,arquivo);
           while(!feof(arquivo))
           {
               if(F.salario>1000)
               {
                   fprintf(arquivoMaior, " Codigo: %d \n Nome: %s \n Sexo: %c \n Salario: %f \n\n\n", F.codigo, F.nome, F.sexo, F.salario);
               }else{
                   fprintf(arquivoMenor, " Codigo: %d \n Nome: %s \n Sexo: %c \n Salario: %f \n\n\n", F.codigo, F.nome, F.sexo, F.salario);
               }              
               fread(&F,sizeof(F),1,arquivo);
           }
           fclose(arquivo);
           fclose(arquivoMaior);
           fclose(arquivoMenor);
     }                  
}
int main()
{
  int op;
  do{
        printf(" **********Cadastro de funcionarios**********\n 1-Inserir um funcionario\n 2-Exibir funcionarios\n 3-Aumentar salario\n 4-Conta Masculino e Feminino\n 5-Soma Salario\n 6-Separar arquivo(FEM- MASC)\n 7-Seperar arquivo >1000<\n 8-Sair\n\n\n Digite a opcao desejada: ");
        scanf("%d", &op);
        switch(op){
        case 1: grava_registro();
        break;             
        case 2: listar();
        break;
        case 3: p_salario();
        break;
        case 4: conta();
        break;
        case 5: soma_salario();
        break;
        case 6: separa_arquivo();
        break;
        case 7: arquivo_1000();
        break;
        }
    }while(op!=8);
  return 0;
}   

 Abraços a todos!

Mais exercícios

Continuando a resolução dos exercícios, seguirei neste post com mais alguns. 

1. Dadas duas variáveis, fazer um programa C que troque seus valores. (Ex: a=4, b=6; ao fim do algoritmo, b=4,a=6).  

#include<conio.h>
#include<stdio.h>
main(){
     float a=0,b=0,c=0;
     printf("Digite o valor de A: ");   
     scanf("%f",&a);
     printf("\nDigite o valor de B: ");
     scanf("%f",&b);
     c=a;
     a=b;
     b=c;
     printf("\nO valor de A : %3.2f",a);
     printf("\nO valor de B: %3.2f",b);
     getch();
} 

2. A casa de câmbio Gopal trabalha com trocas de real para dólares. Contudo, as trocas em dólares são feitas usando somente notas de US$10 e moedas de 50 cents. Escreva um programa C que leia um certo valor em reais e informe o número de notas de US$10 e moedas de 50¢ que o usuário vai receber em troca dos reais. Deve ser informada também a quantia em reais que não será convertida, além da cotação do dólar no dia. 

 

#include <conio.h>
#include <stdio.h>
main()
{
      float dolar, reais, c=0,r=0;
      int a=0, b=0;
      printf("Qual a cotacao do dolar de hoje: ");
      scanf("%f",&dolar);
      printf("\nQuantos reais serao convertidos: ");
      scanf("%f",&reais);
      c=reais/dolar;
      printf("\nValor ($) eh: %5.2f",c);
      if (c>10)
      {
         a=(int(c)/10);
         b=int(((int(c)%10)/0.5));      
         r=c-(a*10+b*0.5);
      }else if(c>0.5){
         b=c/0.5;
         r=c-(b*0.5);
      }  
      printf("\nNotas de US$10: %d", a);
      printf("\nMoedas de 50 (cents): %d", b);
      printf("\nResto ($): %5.2f", r);
      printf("\nResto (R$): %5.2f", r/reais);
      getch();        
}
 

3. Um rei persa, ao cobrar a dívida de um de seus súditos mau-pagadores que diziam não ter dinheiro para quitar a dívida, propôs a seguinte forma de pagamento: em um tabuleiro quadriculado utilizado para um jogo da época, contendo n linhas por m colunas, o súdito deveria colocar 1 grão de trigo na primeira casa, 2 grãos na segunda, 4 na terceira, e assim sucessivamente, sempre dobrando o número de grãos a cada casa. Fazer um programa C que descreva esse problema de forma a indicar quantos grãos de trigo serão colocados no tabuleiro, no total. 

 

#include <conio.h>
#include <stdio.h>
main(){
    int m, n, tam,  i, res=1;
    printf("Digite m: ");
    scanf("%d",&m);
    printf("\nDigite n: ");
    scanf("%d",&n);
    tam= m*n;
     for(i=0;i<tam;i++){
            res= res+(i*2);
 }
 printf("\nNr de graos colocados no tablueiro: %d", res);
 getch();     
}

 

Vale lembrar que qualquer dúvida ou sugestão será sempre bem vinda.
Até a próxima!!!

Funções

Olá pessoal, começarei uma serie de posts diferentes dos anteriores, estes novos serão destinados a todos que estão procurando exercícios  básicos e avançados sobre lógica e programação em linguagem C e  principalmente para o pessoal da Fatec Americana que estão fazendo a matéria Programação 2 com o professor Carrilho e querem ver a resolução de alguns exercícios e se prepararem para as “provinhas” dele, que não são nada fáceis e exigem muito estudo e dedicação.

Abaixo os exercícios sobre funções e suas resoluções.

1. Faça uma função em C que recebe como parâmetro um número inteiro e calcula o seu fatorial, retornando este valor. 

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
int fatorial(int n)
{
       int fat, total=1;
       for(fat=1;fat<=n; fat++){
               total*=fat;
       }
       return (total);          
}
main(){
       int n;
       printf("Informe o numero a ser calculado o N!:" );
       scanf("%d",&n);      
       printf("\n\nO N! de %d eh: %d", n, fatorial(n)); 
       getch(); 
} 
 

2. Escreva uma função em C que recebe três parâmetros (peso, altura e sexo) e verifica se a pessoa está acima do peso ideal. Deve-se pegar o peso dividido pelo quadrado da altura. Se o valor (índice de massa corporal – IMC) estiver acima de 25 a pessoa está acima do peso.

#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
float calcula (float peso, float altura, char sexo[1])
{
   float imc;
   imc=peso/(altura*altura);
   return(imc);
}
main()
{
      float peso, altura,imc;
      char sexo[1];
      printf("Digite o peso: ");
      scanf("%f",&peso);
      printf("\n\nDigite a altura: ");
      scanf("%f",&altura);
      printf("\n\nDigite o sexo: (f = feminino / m = masculino) ");
      scanf("%s",&sexo);     
      imc=calcula(peso,altura,sexo);  
      if(imc>25)
      {
          printf("\n\nVoce esta acima do peso, seu imc eh: %5.3f", imc);
      }else{
          printf("\n\nParabens!! Seu imc eh: %5.3f", imc);
      }
      getch();     
}

3. Escreva uma função em C que recebe um vetor de notas de alunos e seu tamanho e imprime a maior e menor nota bem como a média desta turma.

#include<conio.h>
#include<stdio.h>
#define alunos 100
void calcula (float notas[], int tam)
{
      int i;
      float maior=0, menor, media=0;
      menor=notas[1];
      for(i=0; i<tam; i++)
      {
             media = media + notas[i];
             if(notas[i]>maior)
             {
                       maior=notas[i];
             }
                       if(notas[i]<menor)
             {
                       menor=notas[i];      
             }
      }
      media=media/tam;
      printf("\n\n A media das notas eh: %5.3f", media);
      printf("\n\n A maior nota eh: %5.3f", maior);
      printf("\n\n A menor nota eh: %5.3f", menor);     
} 
int main()
{
      int i, tam;
      float notas[alunos];     
      printf("Digite quantos alunos: ");
      scanf("%d",&tam);  
      for(i=0; i<tam; i++)
      {
               printf("Digite a nota do aluno %d : ", i+1);
               scanf("%f",&notas[i]);              
      }
      calcula(notas, tam);      
      getch();  
}

4.Escreva uma função que recebe três números inteiros(A, B e C) e ordena esses elementos, retornando esses elementos em ordem crescente (A <= B <= C).

#include <conio.h>
#include <stdio.h>
void ordenar(int a=0, int b=0, int c=0)
{
   int aa, bb, cc;
   if(a<b && a<c)
   {
          a=aa;
          if(b<c)
          {
                  b=bb;
                  c=cc;
          }
   }
   printf("\n%d", aa);
   printf("\n%d", bb);
   printf("\n%d", cc);
}
main()
{
    int a,b,c;
    printf("Informe o nr1: ");
    scanf("%d",& a);
    printf("\nInforme o nr2: ");
    scanf("%d",& b);
    printf("\nInforme o nr3: ");
    scanf("%d",& b);
    ordenar(a,b,c);
    getch();
}

5. Defina uma função que recebe o inteiro N e calcula a seguinte somatória : 1/ 2 + 1/ 4 + 1/ 8 + … + 1/ 2n

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
void calc (int x){
     int i;
     float soma=0;
     for(i=1;i<=x;i++)
     {
             soma=soma+(1.0/pow(2,i));
    }
    printf ("A soma e: %f", soma);
}
int main () {
      int n;
      printf ("Digite um numero: ");
      scanf ("%d",&n);
      calc(n);  
      getch();
}

6. Escreva uma função que imprime os N primeiros elementos da seguinte seqüência de progressão aritmética: 1 && 5 && 9 && 13 …

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void pa(int n)
{
     int i, j=1;
     for(i=0;i<n;i++)
     {                   
           printf("%d && ", j);
            j=j+4;    
    }   
}
main()
{
   int n;
   printf("Digite um número: ");
   scanf("%d",&n);
   pa(n);
   getch();           
}

7. Faça uma função que imprima n elementos de uma PG que inicia-se com 2 e a razão é 3, isto é, imprima a seqüência: 2, 6, 18, 54, …

#include<conio.h>
#include<stdio.h>
void pg(int n)
{
     int i;
     printf("2 ");
     for(i=3; i <n+2; i++)
     {
         printf(" %d ", i*3);         
     }
}
main(){
      int n;
      printf("Digite quantos elementos seram impressos: ");
      scanf("%d",&n);
      pg(n);   
      getch();
}

8. Construa uma função que recebe um número N e imprime a seqüência definida : 1 – 2 – 3 – 4 – … – n.

#include<conio.h>
#include<stdio.h>
void seq(int n)
{
    int i;
    for(i=1; i<n+1; i++)
    {
        printf("- %d ", i);       
    }    
}
main(){
  int n;
  printf("Digite os quantos numeros: ");
  scanf("%d",&n);
  seq(n);
  getch();     
}

9. Faça uma função que calcule o produtório dos elementos de um vetor. A função deve receber o vetor e seu tamanho como parâmetros.

#include<conio.h>
#include<stdio.h>
#define tam 100
float produto(int lista[], int n)
{
     int i;
     float prod=1;
     for(i=0; i<n; i++)
    {
          prod*= lista[i];
     } 
     return (prod);       
}
main(){
     int lista[tam], n, i;
     printf(" Digite o tamanho do seu vetor: \n");
     scanf("%d",&n);
     for(i=0; i<n; i++)
     {
          printf(" Digite o %d nr: ", i+1);
          scanf("%d",&lista[i]);     
     }  
     printf("\n\n O produto é: %5.2f",produto(lista, n));
     getch();      
}

 10. Escreva uma função que recebe um vetor de inteiros e ordena esses elementos em ordem crescente.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define tam 100
void ordena_cresc (int n, int cresc[] ){
    int aux,i,j;
    for(i=0;i<n;i++){
       for(j=i+1;j<n;j++){           
         if (cresc[i] > cresc[j]){
            aux= cresc[i];
            cresc[i] = cresc[j];
            cresc[j]=aux;
         }
     }
}
   for(i=0;i<n;i++){
       printf("%d", cresc [i]);
   }
}
int main () {
     int i, cresc[tam], n;
     do {
          printf ("Digite a quantidade de numeros:");
          scanf ("%d",&n);
     } while ((n<0) || (n>100));
     for(i=0;i<n;i++){
     printf ("\nDigite um numero: ");
     scanf ("%d",&cresc[i]);
}
ordena_cresc(n, cresc);
     getch();
}

11. Escreva uma função que receba 3 matrizes (A, B, C) e duas dimensões (numero de linhas e numero de colunas equivalentes para as três matrizes). Sua função deve somar as matrizes A e B e armazenar o resultado na matriz C.

#include<conio.h>
#include<stdio.h>
#define l 50
#define c 50
int somar (int matrizA[][col], int matrizB[][col],int matrizC[][col], int lin, int col)
{
    int i, j;
    for(i=0;i<lin;i++)
   {
         for(j=0;j<col;j++)
         {
                 matrizC[i][j]=matrizA[i][j]+matrizB[i][j];
                 printf("  %d",&matrizC[i][j]);
         }
   }  
}
main()
{
int matrizA[l][c], matrizB[l][c], matrizC[l][c], lin, col, i, j;
printf("Digite o numero de linhas: ");
scanf("%d",&lin);    
printf("\nDigite o numero de colunas: ");
scanf("%d",&col);
for(i=0;i<lin;i++)
{
         for(j=0;j<col;j++)
         {
                printf("\nDigite o valor para a matriz A (%dx%d): ", i,j);
                scanf("%d",&matrizA[i][j]);
         }
}
for(i=0;i<lin;i++)
{
         for(j=0;j<col;j++)
         {
                  printf("\nDigite o valor para a matriz B (%dx%d): ", i,j);
                 scanf("%d",&matrizB[i][j]);
          }
}
 for(i=0;i<lin;i++)
 {
         for(j=0;j<col;j++)
         {
                 printf("\nDigite o valor para a matriz C (%dx%d): ", i,j);
                 scanf("%d",&matrizC[i][j]);
         }
  }  
  somar(matrizA[col],matrizB[col],matrizC[col],lin,col); 
  getch();      
}

12. Escreva uma função que recebe uma string (str) e um caracter qualquer (car) e retorna a primeira posição da string onde este caracter está armazenado ou retorna -1 se o caracter não estiver na string.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int cal (char palavra[], char car){
     int i;
     for(i=0;i<strlen(palavra);i++){
           if (palavra[i]==car)
           {
                 return (i);            
           }                        
     }
     return (-1);
}         
int main(){
     char palavra[101];
     char car;
     printf ("Digite uma palavra:");
     scanf ("%s",&palavra);
     printf ("Digite um caracter:");
     fflush (stdin);
     scanf ("%c",&car);
     printf ("A posicao eh:%d",cal(palavra,car));
     getch();
} 

Até o próximo post que terá  exercícios mais avançados, preparem-se.

Abraços

Programação Orientada a Objetos

Olá pessoal, hoje neste artigo vou passar algumas definições básicas, mas necessárias sobre programação Orientada a Objetos, onde quem ainda não conhece vai ter a oportunidade de aprender e quem já conhece vai poder relembrar estes conceitos.

Primeiramente é muito interessante saber que uma das vantagens em programar Orientado a Objetos é que você é capaz de criar módulos que não precisam ser modificados, você pode simplesmente criar um novo objeto que irá herdar as características de outros já existentes. Algumas destas vantagens são:

Simplicidade: os objetos escondem a complexidade do código. Pode-se criar uma complexa aplicação gráfica usando botões, janelas, barras de rolamento, etc., sem conhecer complexidade do código utilizado para criá-los.

Reutilização de código: Um objeto, depois de criado, pode ser reutilizado por outras aplicações, ter suas funções estendidas e serem usados como blocos fundamentais em sistemas mais complexos.

Inclusão Dinâmica: objetos podem ser incluídos dinamicamente no programa, durante a execução. Isso permite que vários programas compartilhem os mesmos objetos e classes, reduzindo o seu tamanho final.

O QUE É UM OBJETO?

Objetos são instâncias das Classes, estas que são como moldes que definem quais atributos e funcionalidades dos objetos de seu tipo terão. Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos.

Pensar em termos de objetos é muito parecido a como faríamos na vida real. Por exemplo, vamos pensar em um carro, diríamos que o carro é o elemento principal que tem uma série de características, como a cor, o modelo ou a marca. Ademais tem uma série de funcionalidades associadas, como podem ser andar, parar ou estacionar.

Basicamente o  carro seria o objeto, as propriedades seriam as características como a cor ou o modelo e os métodos seriam as funcionalidades associadas como andar ou parar.

Os objetos são instancias de uma classe qualquer. Quando criamos uma instancia temos que especificar a classe a partir da qual ela será criada. Esta ação de criar um objeto a partir de uma classe se chama instanciar.

Para criar um objeto temos que escrever uma instrução especial, chamada de construtora (constructor) que pode ser distinta dependendo da linguagem de programação que se empregue, mas será algo parecido a isto.

meuCarro = new Carro();

Com a palavra new especificamos que temos que criar uma instancia da classe que continua a seguir. Dentro dos parênteses poderíamos colocar parâmetros com os quais se inicia o objeto da classe carro.

Quando temos um objeto suas propriedades tomam valores. Por exemplo, quando temos um carro a propriedade cor tomará um valor em concreto, como vermelho ou  cinza. O valor concreto de uma propriedade de um objeto se chama estado.

Para acessar a um estado de um objeto e ver seu valor ou mudá-lo utilizamos o operador ponto.

meuCarro.cor = vermelho

O objeto é meuCarro, logo colocamos o operador ponto e por último o nome da propriedade a qual desejamos acessar. Neste exemplo, estamos mudando o valor do estado da propriedade Cor do Objeto meuCarro para vermelho com uma simples atribuição.

Uma mensagem em um objeto é a ação de efetuar uma chamada a um método. Por exemplo, quando dizemos a um objeto carro para andar, estamos lhe passando a mensagem “ande”.

Para mandar mensagens aos objetos utilizamos o operador ponto, seguido do método que desejamos utilizar.

meuCarro.andar()

Neste exemplo, passamos a mensagem andar(). Deve-se colocar parênteses assim como com qualquer chamada a uma função, dentro podemos passar parâmetros.

O QUE É UMA CLASSE?

As classes são declarações de objetos, também podemos definir como abstrações de objetos. Isto quer dizer que a definição de um objeto é a classe. Quando programamos um objeto e definimos suas características e funcionalidades na verdade o que estamos fazendo é programar uma classe. No exemplo anterior, falávamos da classe carro  porque somente estivemos definindo suas formas.

O QUE É UMA PROPRIEDADE?

As propriedades ou atributos são as características dos objetos. Quando definimos uma propriedade normalmente especificamos seu nome e seu tipo. Podemos ter a idéia de que as propriedades são algo assim como as variáveis onde armazenamos os dados relacionados com os objetos.

O QUE É UM MÉTODO?

São as funcionalidades associadas aos objetos. Quando estamos programando as classes as chamamos de métodos. Os métodos são como funções que estão associadas a um objeto.

Neste artigo apenas fiz referência às coisas mais básicas. Também existem mecanismos como a herança e o polimorfismo.

A herança serve para criar objetos que incorporem propriedades e métodos de outros objetos. Assim, poderemos construir uns objetos a partir de outros sem ter que reescrevê-lo todo.

O polimorfismo serve para que não tenhamos que nos preocupar sobre o que estamos trabalhando, e abstrairmos para definir um código que seja compatível com objetos de vários tipos.

São conceitos que irei falar em outra oportunidade.

Até mais

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Join 155 other followers