ICC Introdução para JavaScript Arquitetura Genérica de um Computador Máquina de Von Neumann Diagrama conhecido como Máquina de Von Neumann (grande nome da informática) A finalidade de um computador é receber, armazenar e manipular dados, produzindo informação Mas o computador: É trabalhador Possui muita energia Tem boa memória Não tem iniciativa Não é independente Não é criativo Precisa receber instruções nos mínimos detalhes: Programas de Computador Programa de Computador: seqüência de instruções coerentes que dirigem a CPU na execução de alguma tarefa. - 1 -
O que é a Lógica? O uso da palavra lógica está normalmente relacionado à coerência. Nossa razão pode funcionar desordenadamente. Por isso, a lógica estuda e ensina a colocar ordem no pensamento. A gaveta está fechada. A caneta está dentro da gaveta. Precisamos primeiro abrir a gaveta Utilizando a lógica: Anacleto é mais velho que Felisberto. Felisberto é mais velho que Marivaldo. Portanto, Anacleto é mais velho que Marivaldo. O silogismo (argumento composto de duas premissas e uma conclusão) ilustra outro objetivo da lógica, o estudo de técnicas de formalização e dedução que verificam a validade (ou não) de um argumento. Nos três exemplos abaixo, quais são válidos e quais são inválidos? Todo mamífero é um animal. Todo cavalo é um mamífero. Portanto, todo cavalo é um animal. O pinheiro é verde. O pinheiro é motorista. Então, o motorista é verde. Todos os peixes nadam. Todos os peixes têm escamas. Logo, todos os que têm escamas nadam. Lógica de programação Usa a ordem da razão na programação de computadores, objetivando a produção de soluções logicamente válidas (coerentes) e de qualidade para problemas (tarefas) que se deseja programar. Fases da programação (construção de um programa de computador) - 2 -
Algoritmo Algoritmo é uma seqüência de passos que visa atingir um objetivo bem definido. (FORBELLONE, 1999) Por que usar algoritmos? A lógica da solução fica representa de forma clara e o mais objetivamente possível, sem se preocupar com detalhes da linguagem de programação que será utilizada para traduzir a solução para o computador, se ela for representada, primeiramente, sob a forma de um algoritmo. O uso de algoritmos permite que, nesta fase de criação da solução lógica para o problema, seja possível focalizar nossa atenção naquilo que é importante: a lógica da construção da solução e não nos detalhes de implementação. Fases de programação (detalhes) Representação apenas da lógica da solução Também chamado de Código Fonte (*), é um arquivo texto. (conforme sintaxe da linguagem de programação utilizada). O computador não entende o Código Fonte. Interpretador (gera o código de máquina dinamicamente, a cada execução) Compilador (gera executável (exe), uma vez, em código de máquina) Somente 0 e 1 código binário (Linguagem de Máquina ou Código Objeto) Linguagem de Máquina (**) ou Código Objeto - 3 -
Definições: Um programa é a codificação de um algoritmo em uma linguagem de programação. (ASCENCIO, 1999) Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais (sintaxe) usadas para escrever programas de computador. Detalhes: O código fonte (*) instruções escritas em determinada linguagem de programação é um texto que precisa ser convertido (traduzido) para a linguagem do computador: linguagem de máquina (**). Se o método utilizado converte todo o texto (código fonte), para só depois executar\rodar o programa (agora um código objeto), dizemos que o programa foi compilado. O mecanismo (também um programa) que faz a conversão é chamado compilador. Se o método roda o próprio texto (código fonte), traduzindo linha a linha, o programa vai sendo utilizado na medida em que vai sendo traduzido, dizemos que o programa foi interpretado. A cada execução o programa precisa ser novamente interpretado pelo mecanismo interpretador. - 4 -
Algoritmos Alguns detalhes Através da Lógica Estruturada, provou-se que três estruturas são suficientes para explicar a solução de qualquer problema: SEQÜÊNCIA; DECISÃO; REPETIÇÃO. Todos nós sabemos construir algoritmos. Se isso não fosse verdade, não conseguiríamos: sair de casa pela manhã; ir ao trabalho; decidir qual o melhor caminho para chegar a um lugar; voltar para casa, etc. Para que tudo isto seja feito é necessário uma série de entradas do tipo: a que hora acordar; que hora sair de casa; qual o melhor meio de transporte, etc. - 5 -
Exemplos de algoritmos: 1 - Um exemplo de algoritmo pode ser as instruções que um professor passa aos seus alunos em uma academia de ginástica. Por exemplo: Repetir 10 vezes os quatro passos abaixo: 1. Levantar e abaixar braço direito; 2. Levantar e abaixar braço esquerdo; 3. Levantar e abaixar perna esquerda; 4. Levantar e abaixar perna direita. 2 - Testar e trocar 10 lâmpadas. 3 - Um escritório de previsão do tempo armazena diariamente a temperatura média de uma determinada região. A tarefa é descobrir qual é a menor temperatura jamais registrada nos arquivos do escritório. Um possível algoritmo seria o seguinte: Início do algoritmo. o Pegue a primeira temperatura registrada. o Anote esta temperatura como a menor de todas as temperaturas. o Enquanto ainda houver registros de temperaturas, execute repetidamente e em ordem todas as instruções numeradas abaixo: 1. Pegue a próxima temperatura. 2. Se esta temperatura for menor que àquela registrada no momento como a menor então jogue fora a anteriormente registrada e anote a nova temperatura como a menor de todas. o Leia a temperatura que está anotada como a menor. Esta é a menor temperatura (informação que estávamos procurando). Fim do algoritmo. - 6 -
Como representar o Algoritmo Pode ser representado de forma gráfica ou textual (as três representações de algoritmo abaixo executam a mesma tarefa, tente descobri-la interpretando-os). Representação Gráfica (fluxograma) Representação Gráfica (Diagrama de Chapin) Representação Textual (Pseudocódigo ou Português Estruturado ou Portugol) ALGORITMO Media DECLARE N1, N2, Media REAL ESCREVA Digite as duas notas LEIA N1, N2 Media (N1+N2)/2 SE Media >= 7 ENTÃO ESCREVA "Aprovado" SENÃO ESCREVA Reprovado FIM_ALGORITMO Por que usar o Português Estruturado e não usar simplesmente o Português coloquial? - 7 -
Método para construção de Algoritmos a. Compreender o problema. b. Definir os dados de entrada. c. Definir o processamento (procedimentos para transformar os dados de entrada em dados de saída). d. Definir os dados de saída/informação. e. Construir o algoritmo seguindo as regras que serão apresentadas nos próximos tópicos. f. Testar o algoritmo realizando simulações. Exercícios: 1) Faça um programa (algoritmo) que receba o salário de um operário e um percentual de aumento, calcule e mostre o valor do aumento e o novo salário. 2) Altere o programa (algoritmo 1) para que ele apresente também uma mensagem informando se o novo salário é maior que 9.000,00 ou não. 3) Altere o programa (algoritmo 1) para que ele apresente também uma mensagem informando se o novo salário é ou não superior a 12 salários mínimos (o valor do salário mínimo deve ser informado pelo usuário). - 8 -