Programação de Computadores
Sumário
● Conceitos● Primeiro Programa ● Operadores
● Comandos de Entrada e Saída ● Funções disponíveis
Programa
● O que é um programa?● Um conjunto de instruções encadeadas de
modo lógico, convertido em uma linguagem que computadores podem interpretar
● O que é um conjunto de instruções encadeadas
Algoritmo
● Um algoritmo é um conjunto de instruções
(comandos/ordens) encadeados de modo lógico
● Como transformar algoritmos em instruções
Compiladores
● Um compilador é responsável por transformar
algoritmos, escritos em alguma linguagem, em instruções que o computador possa interpretar
Relembrando
Algoritmo Código Fonte
Ciclo Java
Algoritmo Código Fonte
Compilador Interpretador Bytecode
Objetivo da Disciplina
● Estabelecer contato com uma linguagem de
programação
● Construir programas nesta linguagem
● Ter contato com os problemas advindos de
Linguagem
● Linguagem Java● Compilador oracle-jdk (free) ● Obs.: https://onecompiler.com/
Observações
● Trabalhos e exercícios deverão ser entregues
na linguagem java
● Qualquer IDE pode ser usado para o
Usando o compilador
Botão de Busca->Terminal
digite javac – todas as opções do compilador serão exibidas
Criando código
● Localize a pasta correta no terminal (comando
cd)
● Acesse o gedit através do botão de busca
● Mande salvar o arquivo em uma pasta com o
Primeiro Programa
public class PrimeiroPrograma{
public static void main(String[] args) {
System.out.println("O primeiro programa foi executado com sucesso!");
} }
Usando o Compilador
● javac PrimeiroPrograma.java● Foi gerado um arquivo chamado
Executando o Programa
● Digite no terminal: java PrimeiroPrograma● A mensagem determinada pelo programa será
Análise do programa
● Todo programa java tem pelo menos uma classe e
uma função
● A definição de classe, seu uso, e seus modificadores
serão mostrados em momento oportuno
● Trate as declarações da classe como sintaxe
obrigatória por enquanto
Análise do programa
● Declaração de classe
“public class PrimeiroPrograma”
● Decalar uma classe (class) de nome
PrimeiroPrograma como pública (public)
Qualquer nome pode ser usado?
● Experimento 1: coloque nomes diferentes na classe e no arquivo
● Experimento 2: mude o nome para 2Hello, tanto na classe quanto no arquivo
● Experimento 3: mude o nome do programa para Hello2, tanto na classe quanto no arquivo
● Experimento 4: mude o nome para “Hello Fulano”, tanto na classe quanto no arquivo
Regras para identificadores
● Sempre começam com letras● Não contêm espaços ● Podem conter números
● Podem conter alguns caracteres especiais
Blocos
● Após a declaração da classe devem ser
colocados os atributos e funções desta classe. Para isso é necessário delimitar com precisão seu início e seu fim
● Após a criação da classe há um “{“
● Este caracter indica a abertura de um bloco,
Blocos
● Na última linha há um “}“
● Este caracter indica o fechamento de um bloco, neste caso o
fechamento do bloco da classe
● Todas as definições de uma classe, exceto seu nome e
modificadores, devem estar dentro de seu bloco
● As chaves (“{“ ,”}”) delimitam o início e o fim de várias estruturas,
incluindo classes e funções
Blocos
● As vantagens/necessidades de se usar os blocos quando forem opcionais serão vistos mais adiante ● Uma observação importante a se lembrar é que o
caracter } marca sempre o fim do bloco mais próximo
● Isto faz com que o primeiro bloco aberto seja o último a ser fechado
Blocos
public class PrimeiroPrograma{
public static void main(String[] args) {
System.out.println("O primeiro programa foi executado com sucesso!");
} }
Blocos
public class PrimeiroPrograma{
public static void main(String[] args) {
System.out.println("O primeiro programa foi executado com sucesso!");
} }
Bloco da classe
Blocos
public class PrimeiroPrograma{
public static void main(String[] args) {
System.out.println("O primeiro programa foi executado com sucesso!");
} }
Bloco da classe
Outro bloco
Blocos
public class PrimeiroPrograma{
public static void main(String[] args) {
System.out.println("O primeiro programa foi executado com sucesso!");
} } Bloco da classe Outro bloco Outro bloco Bloco da classe
Análise do programa
● A definição de função, seu uso, e seus modificadores serão
mostrados em momento oportuno. Por equanto trate como sintaxe obrigatória
● public static void main(String[] args)
● Declara uma função, chamada main, do tipo void, como
pública e estática. Esta função recebe como parâmetro um conjunto de textos chamado args
Análise do programa
● Ao contrário da classe, a função tem nome
específico
● O nome “main” indica que esta será a primeira
função do programa a ser executada
● Não importa quantas outras classes ou funções
existam, a execução sempre começará pela função main
Análise do programa
● Após a especificação de parâmetros da função
main está a abertura do bloco desta função
● Note que o fechamento do bloco da função
main está posicionado antes do fechamento da classe, indicando que a função main está
Blocos
public class PrimeiroPrograma{
public static void main(String[] args) {
System.out.println("O primeiro programa foi executado com sucesso!");
} } Bloco da classe Bloco da main Bloco da main Bloco da classe
Análise do programa
● Entre a abertura e fechamanto do bloco da
main está a chamada da função
● System.out.println(<expressão>)
● A expressão é resolvida, o resultado é
impresso na tela e o cursor muda para a próxima linha
Análise do programa
● No exemplo foi utilizada uma expressão de texto,
contudo, expressões matemáticas/lógicas também podem ser utilizadas
● Expressões de texto, em java, sempre ficam
entre aspas duplas
● Note que há um “;” após a chamada da função.
Exercício
● No programa anterior, substitua a expressão de
texto por uma expressão de soma. Ex: System.out.println(5+3);
Observações
● Java é sensível a letras capitais● Exemplo: modifique o programa anterior
substituindo System por system
Comentários
● Comentários são trechos no arquivo fonte que não
fazem parte do programa
● Normalmente sevem para explicar ou chamar a
atenção para algo
● Comentário de linha: //texto
● Comentário de múltiplas linhas:
Blocos
public class PrimeiroPrograma
{//Início da Classe Primeiro Programa public static void main(String[] args) {//Início da Função main
System.out.println("programa foi executado com sucesso!");//Instrução dentro da Função main
}//Fim da Função main
Variáveis
● Definição: Posições de memória que podem
tratadas segundo regras de um tipo específico
● Podem assumir qualquer valor dentro de conjuntos
Declaração de variáveis
● A declaração de variáveis em Java seguem a
sintaxe:
● Tipo identificador;
● Tipo identificador1, identificador2, … , identificadorn; tipo pertence à {int, double, boolean e String}
● Obs.: Existem outros tipos em java, mas estes 4
Exemplo
public class VariaveisDeclaracao{//Início da Classe
public static void main(String[] args){//Início da Função main
int idade; //criando a variável
System.out.println(idade);// imprimindo o valor da variável }//Fim da Função main
Operação de Atribuição
● Para alterar o valor de uma variável é necessário
fazer uma operação de atribuição
● Variável = expressão;
● Do lado esquerdo da igualdade está uma
variável que terá o seu valor alterado. Do lado direito está uma expressão cujo resultado será armazenado
Exemplo
public class VariaveisDeclaracao{//Início da Classe
public static void main(String[] args){//Início da Função main
int idade; //criando a variável idade=29;
System.out.println(idade);// imprimindo o valor da variável }//Fim da Função main
Exemplo 2
public class VariaveisModificação{//Início da Classe
public static void main(String[] args){//Início da Função main
int a=3; //criando a variável a e atribuindo um valor inicial
System.out.println(a);// imprimindo o valor atual de a
a=4;//modificando o valor de a
System.out.println(a);// imprimindo o valor atual de a
}//Fim da Função main
Exemplo 3
public class TesteConcatenacao{// Classe
public static void main(String[] args){// main
int a=3;
String t1 = "teste ";
System.out.println(t1+a);
Concatenação
● A operação de concatenação em Java utiliza o operador
“+”
● O operador “+” também é utilizado para soma e
sinalização
● Esta característica é chamada de sobrecarga de
operador
● A decisão sobre a qual operação o operador se refere é
Exemplo 3
public class TesteConcatenacao{// Classe
public static void main(String[] args){// main
int a=3;
String t1 = "teste ";
System.out.println(t1+a); int b=4;
Precedência
● Em Java a concatenação e a soma possuem a
mesma precedência
● Deve-se tomar cuidado ao montar expressões
com operações de concatenação e soma em conjunto
● Uso de outras variáveis ou parêntesis é
Exemplo 3
public class TesteConcatenacao{// Classe
public static void main(String[] args){// main
int a=3;
String t1 = "teste ";
System.out.println(t1+a); int b=4;
Exemplo 3
public class TesteConcatenacao{// Classe public static void main(String[] args){// main int a=3; String t1 = "teste "; System.out.println(t1+a); int b=4,c; c=a+b; System.out.println(t1+c); }// main }// Classe
Operações de texto
● + - concatenação● v.length – retorna o tamanho do texto da
variavel v
● v.charAt(p) – retorna a letra do texto em v na
Exercício
● Faça um programa que imprima um quadrado
composto por asteriscos ********** * * * * **********
Operadores Matemáticos
● + → Adição● - → Subtração e inversão de sinal
● / → Quociente(inteiros) e divisão(flutuantes) ● * → Multiplicação
Operadores lógicos
● & → Operador lógico “e”● | → Operador lógico “ou” ● ^ → Operador lógico “xor”
● ! → Operador lógico “negação”
● == → Operador lógico “equivalente”
Operadores relacionais
● > → maior que (>)● >= → maior ou igual que (≥) ● < → menor que (<)
● <= → menor ou igual que (≤) ● == → igual a (=)
Funções matemáticas pré-definidas
Função Significado Tipo do argumento Tipo de Retorno
Math.abs(x) absoluto de x int int double double Math.sqrt(x) raiz quadrada
de x double double
Math.sin(x) seno de x em
radianos double double
Math.cos(x) cosseno de x
em radianos double double
Funções pré-definidas
Função Significado Tipo do argumento Tipo de Retorno
Math.asin(x) arcoseno de x double double Math.acos(x) arcocosseno de x double double Math.atan(x) arcotangente de x double double Math.exp(x) expoencial de x double double
+ funções
Função Significado Tipo do argumento
Tipo de Retorno
Math.pow(x,y) Potência de
x elevado a y double , double double
Math.round(x) inteiro mais
próximo de x
double int
Math.floor(x) piso de x double int Math.ceil(x) Teto de x double int
Funções e + funções
Função Significado Tipo do
argumento
Tipo de Retorno
Math.max(x1, x2) máximo de
x1, x2 double,doubleint,int doubleint Math.min(x1, x2) mínimo de x1, x2 double,double int,int double int
Comandos de Leitura
● Há vários métodos de leitura em Java ● Os primeiros que serão vistos serão osmétodos next da classe scanner
● next() retorna um texto lido
● nextInt() retona um inteiro lido
● nextDouble() retona um double lido
Comandos de Leitura
● A classe Scanner é não básica e deve ser
importada
sintaxe de importação: import endereço import java.util.Scaner
● Importações devem ficar no começo do arquivo ● Uma vez que uma classe esteja importada,
manipulá-Comandos de Leitura
● A criação de um objeto segue a mesma sintaxe
de criação de variável: tipo nome;
Scanner entrada;
● Cria um objeto do tipo Scanner chamado
Comandos de Leitura
● A inicialização de um objeto é diferente.
Deve-se utilizar operador de atribuição, Deve-seguido de uma chamada de construtor.
objeto = new Tipo(<parametros>);
● O construtor da classe Scanner pede que seja
Exemplo
import java.util.Scanner;//Importando a classe Scanner public class LeituraDeDados {//Classe LeituraDeDados public static void main(String[] args) {// main
Scanner entrada = new Scanner(System.in); //Criando objeto Scanner ligado ao teclado
System.out.println("Digite um número com casas decimais"); double a = entrada.nextDouble(); //Lendo número do teclado e armazenando em a
System.out.println("A soma dos números digitados é: "+ a); }// main
Exercícios
● Faça um programa que leia dois números, calcule e imprima a adição entre eles
● Faça o mesmo para a subtração, multiplicação e divisão
● Faça um programa que leia dois números e imprima o resultado das quatro operações
Exercício
● Faça um programa que calcule a multiplicação
de três números
● Faça um programa que calcule a média
aritmética de três números
● Faça um programa que leia três valores lógicos
a partir do teclado. O programa deve calcule o resultado da operação “e” destes valores
Exercício
● Faça um programa que leia um número de
cinco dígitos e imprima cada um dos dígitos separadamente.
● Ex: número lido: 45678. O programa deve