Instituto de Informática - UFG Disciplina: Introdução à Computação Introdução a conceitos e a prática de programação Autores: Marcelo Akira e Anderson Soares Fevereiro de 2011 Alguns direitos autorais reservados - licença cc-by-sa
Visão geral do computador Computador = Parte física (hardware) + Parte lógica (software) Exemplos: Hardware: Teclado, mouse, monitor Software: Processador de texto, Sistema Opercional, MSN, Skype PARA NUNCA MAIS ESQUEÇER: Hardware é o que você "chuta" Software é o que você "chinga"
Hardware e Software O hardware de um sistema computacional pode ser agrupado nas seguintes categorias básicas: Dispositivo de entrada de dados Dispositivo de saída Unidade Central de Processamento UCP Memória Principal Memória Auxiliar Dispositivo de Entrada UCP Dispositivo de Saída Memória Principal ou Memória Auxiliar
Hardware e Software O software de um sistema computacional pode ser dividido em dois grupos básicos: Software Básico São programas essenciais ao funcionamento do hardware e ao apoio a outros softwares. EX: sistemas operacionais e tradutores de linguagens de programação. Softwares Aplicativos São programas destinados a resolver problemas do usuário. EX: folhas de pagamento, imposto de renda e planilhas eletrônicas.
Entrada e Saída Entrada de dados: Computador "conversa" em binário Unidade: Bit Simplificação para dígito binário, BInary digit em inglês; É a menor unidade de informação que pode ser armazenada ou transmitida; Pode assumir somente 2 valores, por exemplo: 0 ou 1, verdadeiro ou falso; Base da matemática binária, descrita inicialmente por George Boole.
Entrada e Saída 1 Byte (B) = 8 bits 1 Quilobyte (KB) = 1024 B 1 Megabyte (MB) = 1024 KB 1 Gigabyte (GB) = 1024 MB 1 Terabyte (TB) = 1024 GB 1 Petabyte (PB) = 1024 TB 1 Exabyte (EB) = 1024 PB
Entrada e Saída Como converter nossas "idéias" para o sistema binario? Lógica Linguagem de programação Programa executável
Lógica de programação O que é Lógica? "Arte do bem pensar" Organizar idéias O objetivo principal do estudo da Lógica de Programação é a construção de algoritmos coerentes e válidos. Um algoritmo pode ser definido como uma seqüência de passos que visam atingir um objetivo bem definido.
Lógica de programação Algoritmos Numéricos sintaxe especial (regras) Algoritmos Não numéricos português coloquial frases representando ações ou perguntas terminando por ponto-e-vírgula (;). Exemplo de um algoritmo não numérico: Troca de lâmpada.
Algoritmos - tipos Numéricos sintaxe especial (regras) Não numéricos português coloquial frases representando ações ou perguntas terminando por ponto-e-vírgula (;). Exemplo de um algoritmo não numérico: Troca de lâmpada.
Algoritmo 1 - Troca de Lâmpada Pegar uma escada; Posicionar a escada embaixo da lâmpada; Buscar uma lâmpada nova; Subir na escada; Retirar a lâmpada velha; Colocar a lâmpada nova.
Algoritmo 2 - Fazer um sanduiche Pegar o pão; Pegar o presunto e maionese; Pegar uma faca; Cortar o pão; Passar a maionese; Colocar o presunto; Fechar o lanche
Linguagem de Programação Conjunto de palavras e regras que permitem comunicar ao computador o que desejamos executar Baixo Nível Alto Nível (1) (2) (3)
Ambientes de programação São softwares utilizados para editar e compilar programas; Programas são escritos (editados) em texto puro (sem formatação), construindo um código-fonte; Softwares que criam texto puro: notepad, gedit, vim, etc; Softwares que criam textos não-puros: MS Word, BrOffice, etc; Muitas vezes são chamados como IDE = Integrated Development Environment, pois fornecem um ambiente para integrado para desenvolver (criar) programas;
Compilação A compilação é o processo de converter o código-fonte para um formato binário utilizável pela máquina; O código-fonte compilado em geral produz um programa executável (no Windows, possui extensão.exe, por exemplo) ou uma biblioteca compartilhável (Por exemplo, no Windows, possui extensão.dll e no Linux, a extensão. so). Com a linguagem de programação Java, códigos-fonte possuem a extensão.java e a compilação produz código binário com extensão.class, que é executado pela Máquina Virtual Java.
Exemplo de compilação em Java 1) Utilizando um editor de texto-puro, crie o seguinte códigofonte e salve em um arquivo Ola.java: public class Ola { public static void main(string[] args) { System.out.println("Ola"); } } Obs.: Java diferencia maiúsculas e minúsculas, por exemplo, use Ola.java e não ola.java. 2) Através da linha de comando (cmd, konsole ou gnometerminal), execute o compilador javac: javac Ola.java 3) Note que será produzido um arquivo binário Ola.class, que poderá ser executado assim: java Ola
Explicando o código-fonte Java 1 public class Ola { // inicio da classe 2 public static void main(string[] args) { 3 System.out.println("Ola"); // escreve Ola 4 } 5 } // fecha a classe - "Ola" é o nome da classe, considere como se fosse um programa e caso seja a classe pública (public class). Ela fornecerá o nome do arquivo, neste caso, Ola.java. - As chaves servem para delimitar blocos de código, ou seja, a chave da linha 1 é fechada na linha 5 e a chave da linha 2 é fechada na linha 5. - Note na linha 2 a função 'main', que é um ponto onde se inicia a execução de uma classe, por enquanto simplesmente 'decore' esta linha, ela será explicada mais detalhadamente quando for o momento certo. - Na linha 3 temos a impressão da palavra "Ola", que deve ser colocada em aspas duplas.
Baixando e executando a IDE drjava 1) Acesse o site http://drjava.org 2) Baixe o pacote de classes java, clicando no botão "Download Jar File" (caso preferir, há outros formatos, para Windows, por exemplo); 3) Execute o drjava em uma linha de comando: java -jar drjava*.jar ou com o nome completo: java -jar drjava-stable-20100913-r5387.jar
Editando e compilando via IDE drjava 1) Copie o código-fonte abaixo para a IDE drjava: public class Ola { public static void main(string[] args) { System.out.println("Ola"); } } 2) Salve o arquivo como Ola.java, clicando File->Save As; 3) Compile o arquivo clicando na opção Compile no menu, verifique o resultado na aba inferior "Compiler Output"; 4) Execute a classe clicando na opção Run do menu, verifique o resultado na aba inferior "Interactions".
Utilizando a console interativa A console interativa permite executar linhas de código individuais, de forma interativa. É útil para testar trechos de códigos parciais antes de criar um programa completo. Exemplos: 1) Executar uma classe: run Ola Ola 2) Escrever uma String (sequência de caracteres): System.out.println("Ola, tudo beleza?") Obs.: note que é possível navegar pelas linhas já executadas anteriormente, basta utilizar as setas; 3) Também é possível digitar vários comandos em somente uma linha, basta separá-los com ponto-e-vírgula: System.out.println("****"); System.out.println("* *");System.out. println("* *");System.out.println("****");
Introdução a variáveis e String Na programação, os dados são armazenados em variáveis, de forma semelhante na matemática. Por exemplo, execute na console interativa: int i; // declarando uma variável inteira i = 3; // atribuindo o valor 3 para a variável i i // escrevendo o valor da variável // mais fácil que digitar System.out..., não? String s; // declarando uma variável s do tipo String s = "teste" // atribuindo a String teste na variável s s // escrevendo o valor s String t = s + i; // declarando t e atribuindo s concatenado com i t // escrevendo o valor de t
Entrada e saída Em programação, a entrada se refere ao processo de fornecer dados para o programa e saída ao processo de externar dados do programa para o usuário, ou seja, a referência é o programa. Já aprendemos um comando de saída: // externaliza a String "Ola" do programa para o usuário System.out.println("Ola"); A entrada de dados é um pouco mais complexa, como veremos mais a frente
Entrada de dados O comando de entrada é um pouco mais complexo, é necessário utilizar a classe Scanner, faça na console interativa: import java.util.scanner // libera a classe para utilização Scanner sc = new Scanner(System.in); // cria uma variável sc do tipo Scanner // que armazena um novo objeto (new) Scanner // que acessa a entrada do sistema (System.in) String nome = sc.nextline(); // faz a leitura de uma linha e armazena na variável nome nome // escreve a variável nome
1 import java.util.scanner; 2 public class LeituraDeNome { 3 public static void main(string[] args) { 4 Scanner sc = new Scanner(System.in); 5 String nome = sc.nextline(); 6 } 7 } Note: a necessidade do ponto-e-vírgula em cada sentença; linha 2: declaração de classe; linha 3: função main (lembre-se de psvm = public static void main...) linhas 6 e 7: fechamento de blocos abertos nas linhas 3 e 2 respectivamente; Programando a Entrada de dados O exemplo anterior foi realizado na console interativa. Para que o mesmo forme um programa java completo é necessário alguns ajustes, veja:
Exercício 1) Crie e apresente um programa java completo que lê um nome X e a idade Y de uma pessoa e imprime a seguinte mensagem: "Oi X, você tem Y anos e está muito novo" 2) Crie e apresente um programa java completo que lê um caractere escolhido pelo usuário, por exemplo, um asterisco (*) e depois imprima verticalmente ou horizontalmente o seu primeiro nome por meio de ascii art, por exemplo, abaixo temos a letra O formada por asteriscos: ** * * * * **