Programação II Licenciatura de Ciências da Computação Original: Docentes ISCTE Padoca Calado Informação Sítio da cadeira: http://www.padoca.org/padoca/p2 2 A consultar com frequência (Pequenos anúncios) Contém: Enunciados das aulas práticas Informação sobre calendário e horários Programa e método de avaliação Bibliografia etc. 2008 Avaliação Assiduidade, participação e envolvimento nas aulas teórico-práticos (10%) Práticas laboratóriais (30%) Trabalho feito em grupo (5 alunos) Discussão individual Exame (60%) 3 Individual, sem consulta: nota mínima 7 2008 Contactos 4 Esclarecimento de Dúvidas: Assuntos de Interesse geral: nas aulas. Assuntos Pessoais: através do endereço de e-mail [email protected] (usar com moderação). Sessões de dúvidas: para esclarecimento de dúvidas pelos docentes. As questões sobre a matéria leccionada devem ser colocadas preferencialmente nos horários de atendimento presencial. 2008 Ética e Deontologia 5 Fraude Os principios éticos orientam a conduta individual e o nosso curso é um espaço onde todos os estudantes têm a oportunidade de aplicar e aprofundar os princípios éticos que os desafios de uso das novas tecnologias colocam. Este tema é um aspecto transversal a todo o curso e a sua prática é fundamental quer agora na sua vida estudantil quer no seu futuro profissional. O trabalho de equipa é uma constante ao longo do curso e no exercício de uma profissão. Por isso, pretende-se que seja efectuado com um espírito de entreajuda. Devem ser respeitados os direitos de autor e de propriedade intelectual. O aluno deve ter presente as regras da honestidade académica. O plágio de trabalhos e projectos não é tolerado. O uso de materiais que visam deturpar e falsear os resultados dos exames é uma atitude altamente reprovável e é punido. Visa-se com estas punições estabelecer um espírito de justiça e de facto atribuir as melhores notas aos melhores alunos. 2008 Ética e Deontologia 6 Crime Informático Os alunos devem ter sempre presente que o uso dos computadores implica determinadas regras e que existem leis que especificam que determinado uso ou prática é um crime. Vulgarmente designadas como pirataria, essas acções para além de constituirem um crime para quem as pratica e de prejudicarem o seu futuro profissional, também têm consequências, para a Faculdade, que vão desde a perda de tempo à perda de informação, passando, pelo prestígio, que se deve manter intocado. O uso dos recursos informáticos desta Instituição para fins ilegais ou imorais é proibido e o aluno apanhado nas actividades ilícitas será alvo de um processo nas instancias policiais. 2008 Objectivos 7 Conhecer bem uma abordagem típica de resolução de problemas usando Programação Ser capaz de planear a resolução dos problemas, estruturando correctamente os respectivos programas Dominar eficientemente um ambiente de desenvolvimento/programação e respectivas ferramentas Ter conhecimentos intermédios da linguagem Java 2008 Programa 8 Programação em Java Tipos, variáveis, expressões e instruções de selecção Ciclos, matrizes, Strings e tipos enumerados Modularização, abstracção e encapsulamento Métodos, parâmetros, argumentos e contratos (programação por contrato) Classes Leitura e escrita de dados em ficheiros 2008 Metodologia Aulas teóricas 9 Consultar página da disciplina Atendimento ou aulas de dúvidas Gabinete ou sala de computadores Horários: Consultar página da disciplina Qualquer informação relevante é publicada … na página da disciplina 2008 Aula 1 Programação II O que é um computador? Máquina programável genérica Constituído por Processador Memória rápida • RAM (volátil) • ROM (persistente) Memória lenta • disco rígido 11 2008 Computador Principais Componentes: Suporte Físico Hardware (HW) girtby.net/images/hardware.jpg Suporte Lógico Software (SW) do filme Matrix, whatisthematrix.warnerbros.com 12 2008 Computador HW (Recursos Físicos) + SW (Parte Decisora) => Execução de Tarefas 13 Limitações do Hardware impõem limites às possibilidades do Software que o utiliza Estrutura exacta do HW depende do fabricante Componentes genéricos do HW na maioria dos casos são relativamente semelhantes 2008 Nota: Imagem retirada de http://pt.wikipedia.org/wiki/Computador 14 2008 Principais Componentes Físicos Processador - Unidade Central de Processamento Central Processing Unit (CPU) Memória Primária (RAM, principalmente) Secundária (discos rígidos, CD-ROMs, DVDs, etc) Periféricos 15 Onde as instruções são executadas Comunicações com mundo exterior, armazenamento, etc 2008 Memória do computador Uma sequência de bits 768 MBytes = 805 306 368* bytes = 6 442 450 944 bits Aproximadamente 1 bit por habitante da Terra Nota * : 1024 * 1024 * 768 16 ( 210 = 1024 ) 2008 Bits e Bytes 1 Byte = 23 ou 8 bits (ou 8 digitos binários: 0’s ou 1’s) 1 KB (Kbyte ou Kilobyte) = 210 ou 1024 bytes ± 103 1 MB (Megabyte) = 220 ou 1024 KB ou 1048576 Bytes ± 106 1 GB (Gigabyte) = 230 ou 1024 MB ± 109 [ ao trabalharmos com valores binários e não decimais, o espaço de memória disponível não é bem o que imaginamos: por exemplo um disco de 200 GB, tal como é publicitado, corresponde, em binário, a cerca de 186 Gigabytes – a sua capacidade real ] 17 2008 Suporte Lógico (SW) Conceitos principais: Ficheiro • Conjunto de Dados armazenado sob um nome identificador Programa • Instruções (contidas num ficheiro) que descrevem uma tarefa numa dada linguagem Sistema Operativo • Programa especial que gere o HW, executa outros programas, etc. 18 2008 Linguagem? 19 2008 Linguagens Linguagem natural O Português é uma linguagem natural Linguagem (de programação) assembly Muito básica: usada quase directamente pelos processadores dos computadores, ex: LOAD @R1, 0 JMP @R1 Equivalente em linguagem máquina: 010000100010011100100110001010001001001000110001010 20 2008 Linguagens Linguagem de Programação de Alto-Nível (LPAN) Sem as ambiguidades e imprecisões de uma linguagem natural, mas não tão penosa de utilizar como a linguagem máquina, ex: if (x == 1) System.out.println(“X é igual a 1”); ( caso x seja 1, escreve no monitor X é igual a 1 ) 21 2008 Instruções e Linguagens 22 Informação armazenada: Sob a forma de bits Bits organizados em bytes Instruções são informação, logo, conjuntos de bytes Processador executa: Instruções do seu repertório próprio Instruções consideradas de baixo nível Instruções de alto-nível Mais próximas da forma humana de raciocinar Processador não é capaz de as executar directamente 2008 Linguagens Exemplos de L.P.A.N.: 23 C, C++, Fortran, Java, etc Factos: CPU entende instruções oriundas de uma L.P.B.N. Humanos preferem descrever tarefas para execução pelo computador usando L.P.A.N. Necessidade de um meio de tradução LPAN -> LPBN Tradução realizada através de programas: compiladores 2008 A reter... Programar: resolver problemas de modo a obter soluções - finitas - bem definidas e - eficazes 24 Tipos de linguagens: naturais, de programação de alto nível, máquina, etc. 2008 A ler... Capítulos 1 e 2 e secções 3.1 e 3.2 do livro: Y. Daniel Liang, "Introduction to Java Programming", 5ª Edição, Prentice-Hall, 2005. ISBN: 0-13-185721 - 5 25 2008 Aula 1: Sumário 26 Computador como máquina programável Conceitos de linguagens naturais, de programação e máquina 2008