Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Conceitos básicos de programação Victor Hazin da Rocha professor@hazin.com.br www.hazin.com.br O que é um Algoritmo? Algoritmos • Os algoritmos fazem parte do dia-a-dia das pessoas. Exemplos de algoritmos: • Instruções para o uso de medicamentos; • Indicações de como montar um aparelho; • Uma receita de culinária. • Sequência de ações executáveis para a obtenção de uma solução para um determinado tipo de problema. Algoritmos • Estruturas para construção de software • Tipos de Dados; • Variáveis; • Constantes; • Operadores aritméticos, relacionais e lógicos; • Atribuição; • Comandos de condição ou seleção; • Comandos de repetição. Tipos de dados • Dado pode ser definido como informação em estado primitivo cujo processamento pode gerar informação útil. • Devido a natureza do que vai ser armazenado em memória, existem tipos de dados diferentes. • Tipo de dado representa o conjunto de valores possíveis para um dado. Tipos de dados • Iremos utilizar apenas cinco tipos de dados durante a criação de algoritmos: • Inteiro – Para representar informações que não possuem parte fracionária. Ex: 1, 2, 40000, etc.; • Real – Para representar informações que podem possuir parte fracionária. Ex: 3.1415; • Lógico – Para representar um estado ou situação que pode ser apenas verdadeira (true) ou falsa (false); • Caractere – Utilizado para armazenar um único caractere na memória. Ex: ‘A’; • Cadeia de caracteres – Utilizado para armazenar um seqüência de caracteres na memória. Ex: “Computador”. Exercícios • Identifique o tipo de dado para a representação das informações abaixo: • Quantidade de brinquedos de uma criança; • Altura de uma pessoa; • Aviso em uma placa; • Sexo de uma pessoa; • Salário de um funcionário; • CEP de uma carta; • Estado de um computador quanto ao seu funcionamento; • Número de cheques emitidos por um cliente em um mês. Tipos de dados em Java • Java possui oito tipos primitivos de dados: • Lógico: boolean • Texto (1 caractere): char • Inteiros: byte, short, int e long • Reais: double e float • Todos os tipos numéricos possuem sinal. • String: representa uma cadeia de caracteres. Operadores • Operadores aritméticos • Utilizados para obtenção de dados numéricos; • Consistem de: • Adição (+); • Subtração (-); • Multiplicação (*); • Divisão real entre dois números (/); • Divisão inteira entre dois números inteiros (div); • Resto da divisão inteira entre dois números inteiros (mod). Operadores em Java • Operadores aritméticos • Consistem de: • Adição (+); • Subtração (-); • Multiplicação (*); • Divisão real entre dois números (/); • Divisão inteira entre dois números inteiros (/); • Resto da divisão inteira entre dois números inteiros (%). Operadores aritméticos • Precedência de operadores aritméticos • ( ) Parênteses; • Potenciação, radiciação; • Multiplicação, divisões e resto da divisão; • Adição ou subtração. • Ex: 2 * (2 – 4) + 3* 4 = ? Montagem de expressões • Exemplos • 3 + 4 * 9 • 3 + 36 • 39 • (3 + 4) * 9 • 7 * 9 • 63 • 8 – pot(4*2,2) + 5 • 8 – pot(8,2) +5 • 8 – 64 + 5 • -56 + 5 • -51 Exercício • ( 30 % 4 * pot(3,3) ) * -1 Operadores • Operadores relacionais • Utilizados na comparação de literais ou números; • Retornam valores lógicos; • Consistem de: • Igual a (==); • Diferente de (!=); • Maior que (>); • Menor que (<); • Maior ou igual a (>=); • Menor ou igual a (<=). Operadores • Operadores lógicos • Utilizados para combinar resultados de expressões lógicas; • Consistem de: • E (AND); • OU (OR); • NÃO (NOT). Tabela verdade das operações lógicas • E • OU x y x E y Verdadeiro Falso Falso Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro Falso Falso Falso Falso x y x OU y Verdadeiro Falso Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro Verdadeiro Falso Falso Falso Tabela verdade das operações lógicas • NÃO x NÃO x Verdadeiro Falso Falso Verdadeiro Operadores lógicos • Precedência de operadores lógicos 1. Não; 2. E, OU. Operadores lógicos • Exemplos: (3 == 5) E (4 > 2) = (2 > 4) OU (2 < 4) = 15 % 4 < 19 % 6 = Falso Verdadeiro Falso F V F V F Operadores Lógicos em Java • Operadores Booleanos: ! - Não & - E | - Ou ^ - Ou Exclusivo • Operadores Booleanos com Curto-Circuito || - Ou && - E Montagem de expressões • Para realização de determinados cálculos, pode ser necessário fazer combinações de operadores, bom como a adição de parênteses. • Mas que operador será calculado primeiro? • O que tiver maior prioridade. Montagem de expressões • Tabela de prioridades de operadores: 1º Parênteses mais internos 2º Funções 3º Operadores aritméticos 1º Multiplicativos (*, /, %); 2º Aditivos (+, -) 4º Operadores relacionais 5º Operadores lógicos 1º NÃO 2º E 3º OU Exercícios • pot(3,2)/3 < 2 e 5==5 • NÃO ( 3 + 5 != 5 / 2 - 1 ) • Falso ou 20 / (18/3) != (21/3) / 2 Constantes e Variáveis • Constante • Possui valor fixo durante execução do programa; • Pode ser numérica, lógica ou literal. • Variável • Um dos conceitos mais importantes na construção de algoritmos. • Representa um espaço de memória reservado para armazenar determinado tipo de dado; • Deve receber um nome para referenciação e modificação; • Deve possuir um tipo associado; • Quando um algoritmo termina sua execução, todas as variáveis são apagadas da memória; • Só podem armazenar um dado por vez. Constantes e Variáveis • Nomes de Variáveis • O nome de uma variável deve ser único dentro de um mesmo algoritmo. • Deve começar por uma letra, podendo-se incluir após esta letra outras letras, dígitos ou o sinal de underline ( _ ). Este tipo de nome é conhecido como identificador. • O identificador não pode possuir acentos, nem ser igual ao nome de um comando. Identificadores em Java • Devem começar com uma letra, um cifrão ($) ou um underscore (_) Exemplos: 1. Foobar 2. BIGInterface 3. $incomeAfterExpenses 4. 3_node5 5. !theCase Ok! Ok! Ok! Errado! Errado! Constantes e Variáveis • Ex: Variável Constante media = P1 + P2 + P3 + P4 4 Constantes e Variáveis • Declaração de variáveis • Toda variável utilizada em um algoritmo deve ser declarada. • A sintaxe utilizada em pseudocódigo é: <tipo>:<variavel1>, <variavel2>, ...; Sintaxe dos algoritmos • Os algoritmos em português estruturado devem possuir a seguinte estrutura: Variáveis // Declaração de variáveis <tipo1> : <variável1>; <tipo2> : <variável2>; <tipo3> : <variável2>; // Corpo do algoritmo Início <comando1>; <comando2>; <comando3>; Fim. // Módulos Módulo <nomemódulo>; [[ ... ]] Declaração de variáveis Comentário Módulos dos algoritmos Parte principal do algoritmo Indentação Separador de comandos Atribuição • O que é atribuição? • “Atribui ou associa um valor a uma variável ou constante” • Ex: nome = “José”; media = (nota1 + nota2) / 2; Funções • Atuam como um pequeno programa que, tendo valores de entrada, geram (retornam) um resultado. <nomefunção> (<parâmetro1>, <parâmetro2>, ...) Funções Matemáticas disponíveis no pacote Java.Math Função Utilidade Tipo do resultado log(double x) Retorna o valor do logaritmo neperiano de x Real exp(double x) Retorna o valor de ex Real pow(double x, double y) Retorna o valor de x elevado a y. Real round(float x) Arredonda x para o inteiro mais próximo Inteiro sqrt(double x) Retorna a raiz quadrada de x Real sin(double x) Retorna o seno de x Real cos(double x) Retorna o co-seno de x Real atan(double x) Retorna o arco, em radianos, cuja tangente é x Real abs(int x) Retorna o módulo de x (|x|) Inteiro Comando de entrada de dados • Normalmente precisamos de dados de entrada para serem processados pelos algoritmos. • Desta forma, precisamos de um comando para solicitar e obter dados fornecidos pelo usuário. • Quando um computador encontra um comando de entrada de dados, ele suspende a execução do programa até que os dados sejam fornecidos. leia (variável1); Comando de entrada de dados em Java • Para fazer a leitura de dados do teclado em programas Java, utilizaremos o objeto Scanner: • O objeto Scanner pode ser usado com variáveis numéricas, lógicas e do tipo texto. Scanner s = new Scanner(System.in); int numero = s.nextInt(); Comando de saída de dados • Da mesma forma que precisamos receber dados externos, precisamos fornecer dados e instruções para os usuários. • Desta forma, precisamos de um comando para retornar dados e/ou mensagens em um dispositivo de saída. • Ex: • escreva “O saldo atual é”, saldo; • escreva soma; Escreva <var ou expressão ou mensagem>,...; Comando de saída de dados em Java • Para escrevermos na tela, usaremos a função println, disponível no Java. • Para concatenar uma variável com um texto, usamos o sinal +. • Ex: • System.out.println(“O saldo atual é” + saldo); • System.out.println(soma); System.out.println(var ou expressão ou mensagem +...); Exemplo de construção de algoritmo • Exemplo 1 • Exibir a soma de dois números inteiros fornecidos pelo usuário. • Solução • Objetivo é construir um algoritmo que ensine o computador a executar uma solução para o problema proposto. • O que o algoritmo deve fazer? • Calcular a soma de dois números e exibi-la ao usuário. • O valor da soma deverá ser armazenado em memória antes de ser exibido • É necessário então a criação de uma variável soma • É necessário que ao término do algoritmo a variável soma seja exibida para o usuário Saída de dados escreva soma; Exemplo de construção de algoritmo • Solução (cont.) • O enunciado afirma que os valores a serem somados devem ser informados pelo usuário • O algoritmo possui dados de entrada, e estes dados de entrada deverão ser armazenados em memória. É necessária a criação de duas variáveis num1 e num2 para armazenar os dados fornecidos pelo usuário. • É necessário a obtenção destes dados do usuário através do comando de entrada de dados. • O processamento do algoritmo deve possuir apenas a operação de soma. • Utilizaremos o operador de adição (+) para ensinar ao computador que operação, e com quais valores, deve ser realizada. • O resultado da soma deverá ser armazenado em memória pela variável soma, logo precisaremos utilizar o comando de atribuição. leia num1; leia num2; soma = num1 + num2; Exemplo de construção de algoritmo • Exemplo 1 • Exibir a soma de dois números inteiros fornecidos pelo usuário. • Solução Variáveis inteiro: num1, num2, soma; Início leia(num1); leia(num2); soma = num1 + num2; escreva(soma); Fim Exemplo Java • Escrever o programa ‘Alô mundo!’ em Java. Algoritmo ‘Alô mundo!’ • Solução Variáveis // Não tem variáveis Início escreva(“Alo mundo!”); Fim Programa “Alô mundo!” em Java public static void main(String[] args) { System.out.println("Alô mundo!”); } Exemplo • Implementar em Java um programa que solicite duas notas de um aluno e calcule a sua média. Algoritmo do programa média: Início // declaração de variáveis real: nota1, nota2, media; // entrada de dados leia(nota1); leia(nota2); // processamento (cálculo da média) media = (nota1 + nota2) / 2; // saída de dados escreva(media); Fim Programa média em Java public static void main(String[] args) { // Variáveis: nota1, nota2 e média do aluno double nota1 = 0, nota2 = 0, media = 0; System.out.println("Entre a primeira e a segunda nota do aluno:"); // entrada de dados Scanner s = new Scanner (System.in); nota1 = s.nextDouble(); nota2 = s.nextDouble(); // cálculo da média media = (nota1 + nota2)/2; System.out.println("A média é : "+media); } Exercício • Implementar em Java um programa que, a partir do valor em Celsius digitado pelo usuário, calcula o valor da temperatura em Fahrenheit. Fórmula conversão F C: 9/5*)32( FC Programa temperatura em Java public static void main(String[] args) { // Variáveis: temperaturaCelsius e temperaturaFahrenheit double temperaturaCelsius = 0, temperaturaFahrenheit = 0; System.out.println("Entre a temperatura em Celsius:"); // entrada de dados Scanner s = new Scanner (System.in); temperaturaCelsius = s.nextDouble(); // cálculo da temperatura em Fahrenheit temperaturaFahrenheit = (9*temperaturaCelsius/5)+32; System.out.println("A temperatura é : "+ temperaturaFahrenheit); } Strings • Implementam o tipo cadeia de caracteres em Java; • Em Java, Strings são objetos que disponibilizam um conjunto de funções que podem ser usadas pelo usuário. • Pode-se concatenar uma String com uma outra variável ou expressão com o sinal +. Strings • Exemplos: • String s1 = “Exemplo de uma string”; • int x = 10; • String s2 = “Idade de ricardo = ” + x; • int y = 5; • String s3 = “Respostas: x = ” + x + “ e y = ” + y; • System.out.println(s3); Igualdade de Strings • Strings não devem ser comparadas com ==, e sim com o método equals; • Comparação diferencia letras maiúsculas e minúsculas; • Caso a comparação não deva levar em conta maiúsculas e minúsculas, deve-se usar o método equalsIgnoreCase; Igualdade de Strings • Ex: • String S1 = “Banana”; • String S2 = “banana”; • System.out.println("método equals = " + s1.equals(s2)); • System.out.println("método equalsIgnoreCase = " + s1.equalsIgnoreCase(s2)); Manipulação de Strings • Algumas funções úteis para manipulação de Strings: • int length() Retorna o comprimento da string; • int indexOf(String s) Retorna a posição da primeira ocorrência da substring s na String; • char charAt(int índice) Retorna o caractere na posição apontada por índice (o primeiro caractere está na posição 0). Manipulação de Strings • Ex: • String s1 = “Banana”; • int indice = s1.indexOf("na"); • System.out.println(" Posicao da substring 'na' em s1 : " + indice); • char letra = s1.charAt(5); • System.out.println(" A 6. letra em S1 é : " + letra); Exercício • Ler o nome e a qualidade de uma pessoa, e exibir a mensagem “<Nome> é uma pessoa que tem <qualidade>”. Exercício • Solução • Exemplo simples de composição de frases em algoritmos. • Para as entradas Maria e coragem, a saída seria “Maria é uma pessoa de coragem”. • Este algoritmo não necessita de cálculos, apenas leitura dos dados e exibição de composição entre variáveis e mensagens. Solução • O algoritmo fica assim... Variáveis nome, qualidade : cadeia; Início ler nome; ler qualidade; escrever nome + “ é uma pessoa que tem “ + qualidade; Fim Programa mensagem em Java public static void main(String[] args) { // declaração de variáveis String nome=null, qualidade=null; System.out.println("Entre o nome:"); Scanner s = new Scanner (System.in); nome = s.next(); System.out.println("Entre a qualidade:"); qualidade = s.next(); System.out.println(nome+ " é uma pessoa que tem "+qualidade); } Exercício • Faça um programa para ler o salário de um funcionário e imprimi-lo com um aumento de 15%. Programa salário em Java public static void main(String[] args) { // declaração de variáveis double salario_antigo=0, salario_novo=0; System.out.println("Entre o valor do salário do funcionário:"); Scanner s = new Scanner (System.in); salario_antigo= s.nextDouble(); salario_novo = salario_antigo*1.15; System.out.println("O valor do salário com aumento de 15% é R$ " + salario_novo + " reais.”); } Funções matemáticas em Java • Disponíveis na classe Math; • Para chamar uma função matemática, basta inserirmos em algum ponto do programa Math + o nome da mesma, junto com a lista de parâmetros (se houver) que a mesma recebe. • Math.<nome_função>(parametro1, parametro2); • Para saber quais funções estão disponíveis, deve-se consultar a documentação. Funções matemáticas com Java public static void main(String[] args) { double a=0, b=0; System.out.println("Entre o valor de a:"); Scanner s = new Scanner (System.in); a= s.nextDouble(); System.out.println("Entre o valor de b:"); b= s.nextDouble(); System.out.println(a+" elevado ao "+b+" é igual a " + Math.pow(a,b)); System.out.println("a raiz quadrada de "+a+" é igual a " + Math.sqrt(a)); System.out.println("o maior entre "+a+" e "+b+" é " + Math.max(a,b)); System.out.println("o menor entre "+a+" e "+b+" é " + Math.min(a,b)); System.out.println("o log de "+a+" é " + Math.log10(a)); System.out.println("o valor de PI é "+Math.PI); } Conceitos básicos de programação Victor Hazin da Rocha professor@hazin.com.br www.hazin.com.br
Compartilhar