Minicurso Java && Cl

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Minicurso Java && Cl - Presentation Transcript

    1. Adriano Marinho Graduando em Computação na UFPB Raphael Marques Mestrando em Informática na UFPB
    2. São as linguagens mais utilizadas no mundo.  C no Desktop e Java na Web  Porque saber as duas?   Mais conhecimento sobre programação.  Nem tudo se resolve numa linguagem só.  Não seja limitado. R2
    3. Java:   Programação Orientada a Objetos  Compilada para Bytecodes  “Interpretada” em tempo de execução pela JVM  Write once! Run Anywere!  A JVM TEM O PODER! R3
    4. C:   Programação Estruturada  Compilada diretamente para código nativo  VOCÊ TEM O PODER! A4
    5. #include <stdio.h> int main () { printf(“Hello World!\\n”); return 0; } A5
    6. public class Classe{ public static void main(String[] args){ System.out.println(“Hello World!”); } } R6
    7. Use o console (prompt de comando no  Windows) para compilar! Você deve ter o Java JDK instalado na sua  máquina. Exemplo:  javac NomeDaClasse.java java NomeDaClasse R7
    8. Em Java, módulo é descrito por uma classe.  Classes adicionais são carregadas  automaticamente.  Importar outras classes:  import pacote.Classe;  import pacote.*;  import static pacote.Classe.campo  import static pacote.Classe.*; Classpath:   java –cp biblioteca.jar SuaClasse R8
    9. Use o console (prompt de comando no  Windows) para compilar! Você deve ter algum compilador C instalado  na sua máquina. Exemplo:  gcc nomeDoPrograma.c –o nomeDoPrograma nomeDoPrograma A9
    10. Para isso escrevemos arquivos de cabeçalho  (.h), além dos arquivos .c. Nos arquivos .h devem ficar:   protótipos das funções, definições de estruturas e variáveis globais.  gcc main.c Arq1.c Arq2.c -o MeuProg #include<modulo.h>  A10
    11. C JAVA char (8 bits) boolean (false,true)   int (? bits c/ sinal) byte (8 bits c/ sinal)   float (tamanho do int) short (16 bits c/ sinal)   double (?) char (16 bits s/ sinal)   int (32 bits c/ sinal)  long (64 bits c/ sinal)  float (32 bits)  double (64 bits)  A11
    12. Modificadores: Exemplos:    short  short int  long  short  signed  signet char  unsigned  unsigned long int A12
    13. Em C, um ponteiro contêm um endereço de  memória.  Um ponteiro pode ser utilizado para qualquer estrutura na memória.  Ponteiros permitem operações aritméticas. Em Java, uma referência faz referência a um  objeto na memória.  Uma referência só é utilizada com objetos.  Referências NÃO permitem operações aritméticas. R13
    14. C   lixo  Ponteiros com lixo podem causar travamentos do SO Java   null  false 0  0.0 R14
    15. Usamos System.out.println()  Exemplos:  System.out.println(); System.out.println(x); System.out.println(“HelloWorld”); System.out.print(“valor: ” + x); System.out.println(“valor: ” + x + 1); System.out.printf(...); R15
    16. Usamos System.in.read()   Lê um byte por vez A classe Scanner  Scanner scan = new Scanner(System.in) int x = scan.nextInt(); float f = scan.nextFloat(); String token = scan.next(); String linha = scan.nextLine(); R16
    17. Usamos printf(), uma função da biblioteca  stdio.h Exemplos:  printf(“%c\\n”, 'a‟); →a →a printf(“%c\\n”, 65); →1977 printf(“%d\\n”, 1977); →650000 printf(“%ld\\n”, 650000L); →0xABC printf(“%x\\n”, 2748); →123 printf(“%o\\n”, 83); A17
    18. Exemplos:  → 1977 printf(“%6d \\n”, 1977); →001977 printf(“%06d \\n”, 1977); →3.14 printf(“%4.2f \\n”, 3.1416); →???? printf(“%+.0e \\n“,3.1416); →3.1416e1 printf(“%E\\n”, 3.1416); → 10 printf(“%*d \\n”, 5, 10); printf(\"%s\\n”, “Adriano\"); →Adriano →1 + 2 = 3 printf(“%d + %d = %d”,1,2,3); A18
    19. Usamos scanf(), uma função da biblioteca  stdio.h Exemplos:  char str [80]; scanf (\"%s\",str); int i; scanf (\"%d\",&i); scanf (\"%x\",&i); scanf (\"%d\",i); A19
    20. Conversão implícita:   Tipos: ▪ Por atribuição; ▪ Alargamento de inteiros; ▪ Compatibilidade de operandos;  Todos os tipos de C são compatíveis entre si!!! Conversão explícita: type cast.   (int)x  (float)y A20
    21. Conversão implícita:   Onde não houver perda de precisão  Ex: ▪ float f = 5; ▪ double d = f + 1.5; ▪ byte b = 1000; ▪ int x = 1.0; Conversão explícita: type cast   (int)x  (float)y R21
    22. Java e C:  + - * / > >= < <= | & ! ^ -- ++ -= += << >> = == != % ~ ^ ?: && || Sizeof em C:   sizeof( int ) R22
    23. Em C:   O modificador const ▪ const int PI = 3.1415;  Macros ▪ #define PI 3.1415 Em Java:   O modificador final ▪ final int PI = 3.1415; R23
    24. C:   A condição é um inteiro ▪ false: zero ▪ true: qualquer valor diferente de zero  Ex: ▪ if(x == 5){...} ▪ if(x = 5){...} ▪ if(x == 1){...} → if(x != 0){...} → if(x){...} A24
    25. Java:   A condição é sempre um boolean ▪ int x = 4; ▪ if( x == 4 ){...} ▪ if( x ){...} → apenas se x for boolean A25
    26. Java e C:   if  if-else  while  do-while  switch-case  break  continue A26
    27. int i; for(i = 0; i < 10; i++){ ... } A27
    28. for(int i = 0; i < 10; i++){ ... } int[] numeros = ... foreach(int n : numeros){ ... } R28
    29. Escreva um programa na sua nova linguagem  que leia um valor de raio e calcule a área e o perímetro. Exiba a área e perímetros calculados.  O programa pergunta o raio até que o usuário  digite um valor negativo. R30
    30. Sequência de posições de memória  C não faz controle de limite do array  Representado por um ponteiro.   Estático: ▪ int p[10]; ▪ int[] p = int[10]; ▪ int p[x];  Dinâmico ▪ int p* = (int*) malloc( sizeof( int ) * tamanho ); ▪ free(p); Tamanho de um array:   sizeof( array ) / sizeof( tipoDoArray) ▪ sizeof( p ) / sizeof( int )  O mais comum é guardar o tamanho do array numa variável. A31
    31. Arrays são objetos.  São acessados pela sua referência.  Ex:  → referência nula int[] a; → inicialização int[] a = new int[10]; → inicialização int[] a = new int[x]; int[] a = new int[]{1,2,3,4,5}; → inicialização → abreviação int[] a = new {1,2,3,4,5}; → n de elementos a.length → 3 elemento do array a[2] int a[10]; a++; R32
    32. Métodos:  Ex:  static void imprimeValor(int valor){ System.out.println(valor); } static float soma(float valor1, float valor2){ return valor1 + valo2; } R33
    33. Sobrecarga de métodos:   Java diferencia 2 métodos com o mesmo nome pela quantidade e tipo de parâmetros. Ex:  static float metodo(float v1, float v2){...} static float metodo(float v1){...} static float metodo(float v1, int v2){...} static int metodo(float v1, float v2){...} R34
    34. Passagem de parâmetro sempre por cópia.   Objeto como parâmetro ▪ É feita uma copia da referência. ▪ Simula passagem de parâmetro por referência. R35
    35. Funções:   C diferencia funções apenas pelo nome!  Nada de sobrecarga de funções!!! Ex:  int SomarDoisNumeros (int a, int b){ return a + b; } void ImprimirOi(){ printf(“Oi!\\n”); } A36
    36. Passagem de parâmetro sempre por cópia.   Ex: int SomarDoisNumeros (int a, int b) Passagem de parâmetro por referência.   É emulada utilizando-se ponteiros  Ex: int SomarDoisNumeros (int *a, int *b){...} ... int c = SomarDoisNumeros (&a, &b); A37
    37. Strings em C são arrays! (e podem ser alterados)   char str[] = “String”;  char *str = “String”; termina com ‘\\0’   “String” → „S‟ , „t‟ , „r‟ , „i‟ , „n‟ , „g‟ , „\\0‟ Operações (definidas em string.h):   strcpy  strlen  strcmp  strstr  strtkn A38
    38. Classe String  Não precisa de „\\0‟ no final!!!  Strings não podem ser alteradas!!!   Para isso use StringBuffer. R39
    39. Operações:  String nome = “Raphael” →7 nome.length() nome + “ Marques” → “Raphael Marques” → „a‟ nome.charAt(1) → true nome.contains(“Raphael”) → false nome.equals(“Raphael”) → ”raphael marques” nome.toLowerCase() → “500” String.valueOf(500) R40
    40. C:   O programador aloca e libera memória.  Não existe gerenciamento automático de memória. Java:   O programador aloca memória  O Garbage Collector libera memória quando um objeto não é mais referenciado.  System.gc() é apenas uma SUGESTÃO. A41
    41. Escreva um programa na sua nova linguagem  que leia N notas do usuário. Calcule a média das notas e exiba o resultado.  Informe se o aluno foi aprovado, reprovado  ou está na final. No caso da final, informe quanto ele precisa  tirar na prova final para passar. A43
    42. Erros típicos:   Redeclaração de variáveis/funções;  Avisos de variáveis sem inicialização;  Funções com número de parâmetros incorretos;  Etc; A44
    43. Exceções   Param a execução do programa sem travar o SO.  Exceções de vários tipos: ▪ NullPointerException ▪ ArrayIndexOutOfBoundsException StackTrace:  Exception in thread \"main“ ArrayIndexOutOfBoundsException: 500 at Teste.metodo2(Teste.java:4) at Teste.metodo1(Teste.java:8) at Teste.main(Teste.java:13) R45
    44. JAVA NÃO É C!!!  Deixe o Garbage Collector trabalhar...   objetoInutil = null; Declare as variáveis quando for utilizá-las.  R46
    45. C NÃO É JAVA!!!  Todo cuidado com ponteiros é pouco!!!  Não esqueça do lixo!!!  Cuidado com o tamanho dos tipos primitivos.  Lembre de liberar memória.  A47
    46. C:   Notas de aula do Prof. Ulysses Oliveira ▪ http://www.ulysseso.com/  Biblioteca padrão de C ▪ http://www.utas.edu.au/infosys/info/documentation/C/CStdL ib.html Java:   Procure no Google: java api 1.6 ▪ http://java.sun.com/javase/6/docs/api/  Procure no Google: tutorial sun ▪ http://java.sun.com/docs/books/tutorial/ A48
    47. C: Java:    math.h  System  string.h  File  time.h  Math  Arrays A49
    48. C:   Tenha paciência e cuidado! Java:   Toda classe começa com letra maiúscula: ▪ Pessoa, Carro, String, System, etc...  O nome do arquivo deve ser IGUAL ao nome da classe: ▪ class Pessoa → Pessoa.java R50
    49. C: Java:    Dev C++  JBuilder  CBuilder  NetBeans  NetBeans  Eclipse  Eclipse R51
    50. Adriano Marinho Graduando em Computação na UFPB Raphael Marques Mestrando em Informática na UFPB

    + UFPBUFPB, 8 months ago

    custom

    420 views, 1 favs, 2 embeds more stats

    Minicurso sobre Java && C ministrado na I Semana da more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 420
      • 368 on SlideShare
      • 52 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 16
    Most viewed embeds
    • 51 views on http://raphaelmarques.wordpress.com
    • 1 views on http://209.85.227.132

    more

    All embeds
    • 51 views on http://raphaelmarques.wordpress.com
    • 1 views on http://209.85.227.132

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories