DESENVOLVIMENTO DE PROGRAMAS Dilvan Moreira (baseado no livro Big Java)
Desenvolvimento de Programas Use um editor para criar programas em Java Resultado geralmente chamado de códifo fonte Outro programa, um compilador transforma o código fonte em lingugem de baixo nível? insight source object results editing translating executing code code
Compilando e Executando Vamos tentar! Execute seu ambiente de programação
Sintaxe Regras que ditam como as linhas de código serão construídas. Exemplo: Uma chave aberta precisa de uma para fechá-la Se um programa não está 100% sintaticamente correto, ela não pode ser compilado Diferentemente de humanos, computadores não podem entender afirmações com a sintaxe inclorreta: for weeks. rained in Vancouver it hasn’t Humanos podem entender o que essa sentença significa
Semântica Linguagens de programação tem uma semântica bem definida, sem ambiguidade Isso difere das linguagens naturais, como inglês: Mary counted on her computer. Como devemos interpretar essa sentença? Mary contou usando o computador? Mary contava com seu computador? Computadores são estúpidos, por isso não conseguiriam resolver essas ambiguidades
Erros Computadores seguem suas instruções exatamente Se um programa produz resultados errados, é culpa do programador A não ser que o usuário entre com dados incorretos O programa não vai gerar resultados corretos: “Garbage in, garbage out” (GIGO) Debugging: processo de encontrar e corrigir erros Popularmente: Debugar Infelizmente um processo que toma muito tempo!
Errors O que acontece num errp? Vamos tentar …
Memória e Identificadores Exemplo de uma instrução de alto-nível A = B + C Diz ao computador Vá a memória e encontre o valor armazenado na localização chamada B Vá a memória e encontre o valor armazenado na localização chamada C Adicione esses dois valores Armazene o resultado na memória na localização chamada A Ótimo! Mas... Na realidade, locais na memória não são chamados A, B e C.
Memória e Identificadores Memória: série de registros, cada um tendo um endereço único, usadas para armazenar programas e dados Cada endereço de memória guarda um byte (8 bits) de dados Os dados são guardados em posições na memória – mais de um endereço pode ser usado se o dado for maior que 1 byte. 5802 5803 10110101 10110101 5804 5805 5806 5807 Endereço
Memória e Identificadores Então, o que são A, B e C? Linguagem de máquina usa os endereços reais para as posições de memória Linguagens de alto-nível são mais fáceis Não é necessário lembrar os endereços reais É possível criar nomes significativos para os endereços de memória pay_rate e hours_worked vs. 5802 e 5806 Fácil de lembrar e bem menos confuso!
Memória e Identificadores: Variáveis Variável: nome do endereço de memória onde dados são armazenados Como variáveis em algebra pay_rate, hours_worked, a, b, e c são variáveis Nome de variáveis devem começar com letras
Programando com Variáveis //***************************************** // Test.c Author: Kurt // // Our first use of variables! int main () { a = b + c; printf ("The answer is %d”, a); } Vamos tentar ...
Programando com Variáveis //***************************************** // Test.c Author: Kurt // // Our first use of variables! int main () { a = b + c; printf ("The answer is %d”, a); } Vamos tentar ... b e c não foram encontrados! É preciso dar valores as eles
Programando com Variáveis: Take 2 //***************************************** // Test2.c Author: Kurt // // Our second use of variables! int main () { b = 3; c = 5; a = b + c; printf ("The answer is %d”, a); }
Programando com Variáveis: Take 2 //***************************************** // Test2.c Author: Kurt // // Our second use of variables! int main () { b = 3; c = 5; a = b + c; printf ("The answer is %d”, a); } O que houve agora? Computador burro! Não consegue encontrar os valores …
E agora? : b c 00000011 memory 00000101 O C não sabe como interpretar o conteúdo do endereço de memória são inteiros? caracters? cores? ou .... :
Declaração de Variáveis Declaração de variável diz ao compilador reserve um bloco de memória grande o suficiente para armazenar dados do tamanho do tipo especificado O nome da variável é especificado pelo identificador Sintaxe: nomeTipo nomeVariavel;
Convenções para Nomes nome deve iniciar com letras ou underscore (_); caracteres de um nome devem ser letras, números ou underscores; palavras chaves não podem ser usadas como nomes; letras maiúsculas e minúsculas são consideradas diferentes
Tipos de Dados C requer que declaremos o tipo de dados que estamos trabalhando Para cada variável temos que declarar um tipo de dado C provê vários tipos de dados: Ex: int, long, float, double, char, etc Nós queremos a, b, e c como inteiros …
Programando com Variáveis: Take 3 //***************************************** // Test3.c Author: Kurt // // Our third use of variables! int main () { int a; //these int b; //are int c; //variable declarations b = 3; c = 5; a = b + c; printf ("The answer is %d”, a); }
Checando: Qual é o tipo dos valores 0 e ‘0’? Quais são identificadores legais ? Greeting1 g void 101dalmatians Hello, World <greeting> Crie um programa que calcule e imprima a soma dos 4 primeiros termos da série de Maclaurin -log(1-x):
Perguntas?