quinta-feira, 30 de março de 2017

código turma 3 30.03.2017

import java.lang.Math; // headers MUST be above the first class

// one class needs to have a main() method
public class HelloWorld
{
  // arguments are passed using the text field below this editor
  public static void main(String[] args)
  {
    int cont = 0;
    if (args.length>0) System.out.println (args[0]+" "+args[1] + " " + args[2]);

    int lim = Integer.parseInt(args[2]);
    while (cont <= lim){
      System.out.println(binario(cont)); 
      cont++;
    }
   
  }
  public static int binario (int decimal) {
    int binario = 0;
    int resto = 0;
    int pot = 1;
    while (decimal > 0) {
      resto = decimal%2;
      decimal = decimal/2;
      //binario = resto + binario;
      binario = resto * pot + binario;  
      pot = pot * 10;
    }  
    return binario;
  }
  
}

Aula-30.03 turma 3

import java.lang.Math; // headers MUST be above the first class

// one class needs to have a main() method
public class HelloWorld
{
  // arguments are passed using the text field below this editor
  public static void main(String[] args)
  {
    int cont = 1;
    while (cont <= 50){
    int binario = 0;
    int resto = 0;
    int pot = 1;
    int decimal = cont;
      while (decimal > 0) {
      resto = decimal%2;
      decimal = decimal/2;
    //binario = resto + binario;
      binario = resto * pot + binario;  
      pot = pot * 10;
     }  
      cont++;
System.out.println(binario); 
    }
   
  }

}

Ciódigo da aula de 30.03.2017 turma 2

public class HelloWorld
{
  public static void main(String[] args)
  {
    int decimal=64;
    String binario="";
 System.out.println("Iniciando Loop While");
    while((decimal)>0){
     binario = decimal%2 + binario;
       decimal = decimal/2;
       System.out.println(decimal);
    }
    System.out.println(binario);
  }
}

sábado, 25 de março de 2017

Leitura de teclado

Na aula foi perguntado como ler do teclado. Abaixo está o código completo de um programa que aguarda que algo seja digitado e repete o que foi escrito. Bom divertimento!

import java.util.Scanner;
public class Eco {
 public static void main(String[] args) {
  String algo;
  Scanner sc=new Scanner (System.in);  // instancia um objeto scanner que le de
                                       // System.in (que representa o teclado)
  System.out.println ("Por favor digite algo...");
  algo=sc.next();                      // le string do teclado
  System.out.println ("Voce digitou: " + algo);
 }
}

Desenhando em Java




.... para quem estiver curioso sobre como abrir uma janela em modo gráfico usando Java, o código neste link abre uma janela e desenha algumas forma geométricas.

  • Descompacte o conteúdo;
  • abra o terminal (console, linha de comando,...);
  • entre no diretório onde estão os arquivos *.java;
  • compile todos os arquivos com o comando javac *.java
  • execute com o comando java FramePanel.java

Se quiser mudar o desenho ou fazer o seu próprio, modifique os métodos paintingN onde N={1,2,3}.

quinta-feira, 23 de março de 2017

Código da aula de 23.03 turma 2

import java.lang.Math; // headers MUST be above the first class

// one class needs to have a main() method
public class HelloWorld
{
  // arguments are passed using the text field below this editor
  public static void main(String[] args)
  {
    System.out.println ("Iniciando");
   int n1 = 3, nt=0;
    int x = 1, x1=1;
    
    while( x<=10){
    nt =x*n1;
    System.out.println(nt);
      x++; //x+=1;
      while (x1 <= 3)
      {
        if ((nt%x1)==0){
        System.out.println ("Eh divisivel por " + x1);
        }
        else{
        System.out.println ("Nao eh divisivel por " + x1);
        }
        x1++;
    }
    x1=1;
}
}
}

quinta-feira, 16 de março de 2017

Turma 3 código 16.03.2017

import java.util.Scanner;
public class Sargento {
   
  public static void main (String[] args) {
    
    Scanner byby = new Scanner(System.in);
    
    final int elfo = 0;
    final int anao = 1;
    final int hobbit = 2;
    final int orc = 3;
    final int humano = 4;
      
    System.out.println( "insira a rassa pf, eu nunca te pedi nada parseiro(a): ");  
    int rassa = byby.nextInt();
    
    System.out.println( "insira a altura pf, eu tenho altzheimeeer, nunca pedi nada parseiro(a): ");
    
    int altura= byby.nextInt(); // altura em celoko
   
    
    
    switch (rassa){
      
      case elfo :
       
      
     
      if (altura < 100) {
          System.out.println ("Muito muito baixo");
      } else if (altura < 120){
          System.out.println ("Muito baixo");
      } else if (altura < 150){
            System.out.println ("Baixo");
      } else if (altura < 180){
          System.out.println ("Medio");
      } else if (altura < 200){
          System.out.println ("Alto");
      } else {
          System.out.println ("Gigante");
     } 
     break;
     case orc :
      
         
      if (altura < 300) {
          System.out.println ("Muito muito baixo");
      } else if (altura < 320){
          System.out.println ("Muito baixo");
      } else if (altura < 350){
            System.out.println ("Baixo");
      } else if (altura < 380){
          System.out.println ("Medio");
      } else if (altura < 400){
          System.out.println ("Alto");
      } else {
          System.out.println ("Gigante");
     } 
     break;
     default
          System.out.println("pet do gandalf");
   }// fecha o switch
  }
}

domingo, 12 de março de 2017

Entrada e Saída por Arquivos.- 2017.


Post de 2015/2016.

Exemplo simples de tutorials point.


Tratamento de erro 2017.


Post1 sobre o assunto 2015/2016.

Post2 sobre o assunto 2015/2016.

Post3 sobre o assunto 2015/2016.

Post4 sobre o assunto 2015/2016.

Post5 sobre o assunto 2015/2016.

Post6 sobre o assunto 2015/2016.

Nota de aula 2015/2016 sobre o assunto.

Exemplo1 2015/2016.

Exemplo2 2015/2016

Exemplo3 2015/2016.

Exemplo4 2015/2016

Exemplo5 2015/2016.

Exemplo6 2015/2016

Exemplo7 2015/2016.

Exemplo8 2015/2016

Exemplo9 2015/2016.

Exemplo10 2015/2016.


Exemplo de Herança - Decorador 2017.


Post sobre o assunto 2015/2016.

Post com exemplo 2015/2016.

Herança, polimorfismo, vinculação tardia 2017.


Post de 2015/2016 sobre herança.

Post de 2015/2016 sobre polimorfismo.


Listas Ligadas 2017


Post de 2015/2016.

Array 2017.


Post de 2015/2016.

Objetos Estáticos 2017.


Post de 2015/2016.

Instanciando Objetos 2017.


Post de 2015/2016.

Definindo Objetos 2017.


Post de 2015/2016.


Objetos 2017


Post de 2015/2016.

Métodos parte 1 2017


Post 1 de 2015/2017.
Post 2 de 2015/2017.
Post 3 de 2015/2017.
Post 4 de 2015/2017.
Post 5 de 2015/2017.

Comandos de repetição 2017

O básico sobre comandos de repetição está no post de 2015/2016.

Comandos de seleção 2017

O básico está no post de 2015/2016.

Execução Sequencial

É o modo padrão de execução: comando a comando, linha a linha sequencialmente.

Esta é uma das características necessárias para que uma linguagem permita que se faça qualquer computação. Isto é demonstrado pelo teorema da programação estruturada.

Veja neste post do que se trata (sem grandes raciocínios).

Escopo e Indentação

Programas são constituídos por sequências de comandos. Comandos podem ser agrupados em blocos de código. Em Java (e em C também) blocos de código são delimitados por chaves:

{
    comando 1;
    comando 2;
    ....
    {
        comando3;
        comando 4;
        ....;
    }
    comando 5;
    comando 6;
    ....;
}

Blocos de código podem ser aninhados, como mostrado acima. Eles não podem ser intercalados, ou seja o bloco "de dentro" TEM que estar inteiramente "dentro" do bloco "de fora".

Blocos de código servem tanto para estruturar melhor o código quanto delimitar blocos que são ou não executados em função de comandos de desvio do fluxo de execução do programa (como if, switch, while,...)

Blocos também delimitam escopo de variáveis.

Post sobre escopo de variáveis

Post sobre variáveis "globais"

Para facilitar a leitura do código por programadores, costuma-se indentar (ou edentar) o código: Comandos no mesmo bloco são alinhados, sempre que se abre um novo bloco aumenta o recuo em alguns espaços ou em 1 tab e sempre que se fecha um bloco desfaz-se o recuo.

É importante que esse recuo seja feito ou somente com espaços ou somente com tab's, sistematicamente, para que a aparência não se "quebre" caso você use tab's que correspondam a 3 espaços e outro use tab's que correspondam a outra quantidade de espaços.

Em linguagens com Python, a indentação serve para delimitar os blocos de código.

Exemplo de código indentado.



Variáveis, tipos primitivos, operações, expressões

Variáveis

Tipos primitivos

Operações Aritméticas

Bases Numéricas

Operações Lógicas Bit a Bit

Operações e expressões relacionais






Olá Mundo 2017

Código do Olá Mundo

Olá Mundo explicado palavra por palavra

Olá Mundo com javadoc

Comandos para navegar no sistema de arquivos

Sistema de Arquivos é onde os arquivos são armazenados. Simplificadamente, esse sistema é composto pelo dispositivo de armazenamento, hardware de comunicação e software para uso e visualização. Não precisa haver um único dispositivo de armazenamento, nem tipos de dispositivos iguais. Também não há necessidade do hardware de comunicação ser uniforme, muito menos o software (encrenca à vista). O Sistema de Arqivos faz parte do Sistema Operacional.

Dada a concentração de uso de sistemas operacionais em algumas marcas e em duas categorias:

  1. POSIX e Windows, acho suficiente mencionar os dois. POSIX é a norma que uniformiza todos os sistemas operacionais do tipo UNIX, entre eles LINUX, Android (que é uma variante de LINUX), BSD (Berkeley Software Distribution), iOS (uma variante de BSD) se aproximam do que está nessa norma. 
  2. Windows é o sistema operacional desenvolvido, mantido e comercializado pela Microsoft.
Os dois sistemas operacionais tratam a interface do sistema de arquivos com o usuário de forma similar. Em POSIX o sistema de arquivos é organizado como uma árvore (na sua definição em teoria de grafos) e em Windows como várias árvores (uma floresta). Em ambos os nós ou são diretórios (pastas) ou arquivos. POSIX tem outros tipos de nós que não serão abordados nesta postagem.

Trabalharemos em linha de comando e somente as operações básicas.

Sempre que abrimos o terminal (linha de comando) estamos operando sobre algum diretório.

se não tiver argumento de chamada então assume diretório corrente,

OperaçãoComando POSIXComando WindowsNota
Informa diretório correntepwdcd
Lista conteúdo do diretório indicadolsdir
Cria diretóriomkdirmd
Remove diretóriormdirrd
Vai para diretóriocdcd
Copia arquivocpcopy
Remove arquivormdel
Renomeia arquivomvren
Move arquivo arquivomvmove

Todos os comandos têm help.
Em LINUX use
  <comando> --help
em Windows
  <comando> /? 

Post de 2015/2016 sobre o assunto.
 

quarta-feira, 8 de março de 2017

Compiladores on-line

Há uma variedade de compiladores e ambientes de execução Java na internet.

Neles o usuário pode digitar código e vê-lo sendo executado.

Vejo algumas características:
- não é necessário instalar Java na máquina local;
- pode ser acessado através de qualquer navegador;
- não permite projetos grandes, com muitas classes e vários arquivos.

Na minha opinião, são bom recurso quando deseja-se demonstrar alguma funcionalidade de java ou quando deseja-se comparar a execução do mesmo programa em dois ambientes diferentes.

Alguns compiladores on-line:
- compilejava
- jdoodle
- ideone

 

terça-feira, 7 de março de 2017

Linha de comando

Executando Olá Mundo em linha de comando em Windows

Executando Olá Mundo em linha de comando em Linux 

Postagem do curso de 2015/2016 sobre o assunto

Fontes de Informação

As referências recomendadas, além das postagens neste blog são:

Livro gratuito: "Introdução à Ciência da Computação com Java e Orientação a Objetos

Livro na biblioteca da EACH: Java como programar - H.M. Deitel, P.J. Deitel ; tradução e revisão técnica Carlos Arthur Lang Lisbôa. Porto Alegre Bookman 2003. 1386 p.  +1 CD-ROM..

Programação de Computadores - UNIVESP TV

Introduction to Programming in Java - MIT Open Courseware

Documentação do Java

The Java Tutorials

Java API

Download e Instalação do Java da Oracle

Não há um único livro-texto para a disciplina. Aconselha-se que o estudante procure entre várias fontes de informação aquela melhor adequada ao seu modo de aprendizagem.

Postagem do curso de 2015/2016 sobre o assunto

Critérios de Avaliação

O semestre é dividido em dois períodos. O primeiro período corresponde é o de aulas, o segundo período ao de recuperação. O calendário USP 2019 contém as datas de referência.

Segundo o Regimento Geral artigo 84 (consultado em 07.03.2017), Artigo 84 – Será aprovado, com direito aos créditos correspondentes, o aluno que obtiver nota final igual ou superior a cinco e tenha, no mínimo, setenta por cento de freqüência na disciplina.

No primeiro período haverá duas provas. O estudante que deixar de fazer uma delas pode fazer a prova substitutiva sem necessidade de justificativa adicional (critério estabelecido pelo docente).

P1: 25.04.2019
P2: 20.06.2019  antecipado para 14.06.2019
PSUB: 27.06.2019

A média das provas é calculada: MP=0.4P1+0.6*P2

No primeiro período haverá 2 Exercícios-programa (EP). Tarefas realizadas em casa, entregues através do Tidia*

* Este é o Tidia 4, é possível que eu passe para o e-disciplinas.

    É tarefa para o semestre fazer quaisquer 50 exercícios no site https://www.urionlinejudge.com.br/judge/pt/login. A linguagem de programação é JAVA. A checagem será feita presencialmente até 14.06. Ou seja, quem chegar aos 50 exercícios feitos mostra a tela de estatísticas e recebe 10 pela tarefa. Quem não chegar recebe nota proporcional à quantidade de exercícios feitos até o dia 14. Não serão aceitas tentativas de entrega após o dia 14 e não será aceito para cômputo de nota a resolução de mais de 50 exercícios.


             divulgação                 entrega
EP1           20.04                   18.05 (22h)
EP2           18.05                   15.06 (22h)

A média dos EP é calculada MEP=(EP1+EP2+URI)/3

A média no primeiro período é calculada: M1=0.8*MP+0.2*MEP

Tem nota para aprovação quem obtiver M1>=5.0 (obs.: 4,95<5.0)

No segundo período é realizada a avaliação de recuperação. Pode fazê-la quem tiver M1>=3.0

PREC: 11.07.2017

A média no segundo período é calculada:

M2=(M1+PREC)/2

Tem nota para aprovação quem obtiver M2>=5.0 (obs.: 4,95<5.0)

A frequência mínima é de 70%, comprovada por assinatura em lista de presença. O abono de faltas é regulamentado por portaria da Comissão de Graduação.