4 – O conceito de variável Para resolver problemas no computador é necessário manipular dados, sejam números ou caracteres. Se alguém precisa calcular o resultado de uma única conta provavelmente o melhor seria utilizar uma calculadora. A utilidade de se escrever um programa aparece quando usamos variáveis que possuem a capacidade de conter valores, é possível então calcular o resultado de várias contas. As variáveis são indentificadas por um nome, o chamado identificador , e o denominação variável deriva da possibilidade dos valores poderem variar. 5 – Atribuição de valores Para um programa, uma variável é um pedaço de memória identificado de alguma forma onde serão armazenados dados. Existem várias maneiras de indicar-se a atribuição de um valor a uma variável: A=5 b := b + 4 d←8 E numa linguagem de programação isto é feito pela mais fundamental das instruções, denominada de “instrução de atribuição” ( em C também chamamos de “operador” de atribuição ou afectação). A sintaxe (maneira como se escreve) varia, conforme vimos anteriormente, e o funciomento é simples: após a execução da instrução pelo computador, a variável ( o pedaço de memória com um nome ) recebe o valor indicado. Exemplo: x = 10 6 – Algoritmo e Programa Caso exista, a solução de qualquer problema pode ser descrita passo a passo, por exemplo: uma receita de bolo, um plano de viagem, o conjunto de instruções para a matrícula na Universidade e etc. Uma descrição detalhada para solucionar um determinado problema é chamado de algoritmo. Quando a solução de um problema é implementada em um computador, é feita através de um ou mais programas, assim podemos dizer que um programa é a expressão de um algoritmo de modo que possa ser executado por um computador. 7 - Fluxograma É uma representação gráfica de um algoritmo por meio de símbolos. Cada símbolo tem uma forma geométrica que define sua função genérica e no seu interior haverá uma descrição do passo do algoritmo. Os símbolos são ligados por flechas que indicam o fluxo. 7.1 – Símbolos do fluxograma SÍMBOLO TERMINAL indica os pontos de início e fim do fluxograma SÍMBOLO DE ENTRADA OU SAÍDA indica os passos envolvendo troca de dados com o exterior 7.1 – Símbolos (cont.) SÍMBOLO DE PROCESSO indica cálculo ou o manuseio de dados SÍMBOLO DE COMPARAÇÃO indica a comparação de dois valores fornecendo os resultados sim e não SÍMBOLO DE CONEXÃO indica a ligação de dois pontos do fluxograma exemplo: Calcular o maior de dois números início ler A e B A>B não M=B escrever valor de M fim sim M=A exemplo: Escrever a mensagem: “Meu primeiro programa” início escrever “Meu primeiro programa” fim exemplo: Somar quatro números início 1 S=0 ler V ler V S=S+V S=S+V ler V ler V S=S+V S=S+V escrever valor de S 1 fim Imagine se fossem 100 números! Será que não existe uma maneira mais simples ? início I=1 S=0 I≤4 não escrever valor de S fim sim ler V S=S+V I=I+1 Observe que utilizamos uma estrutura de repetição, uma das importantes em programação. Nesta estrutura foi feita primeiro a pergunta I≤4 e só depois foram feitas as acções: ler V S = S + V (somar) I = I + 1 (contar ) Seria possível fazer as acções primeiro e só depois perguntar? início 1 I=1 S=0 escrever valor de S ler V fim S=S+V I=I+1 I≤4 não 1 sim Observe que, se na comparação quisermos trocar o sim pelo não basta fazer a pergunta ao contrário ( “a negação”). As comparações abaixo são equivalentes. I≤4 não sim I>4 sim não Mas, veremos mais adiante que apenas para certas estruturas (de comparação e repetição) existem intruções apropriadas. Exercício Considere o seguinte problema: Calcular o produto de 20 números. - faça um fluxograma sem utilizar uma estrutura de repetição (para casa). - faça, agora, com uma estrutura de repetição com a comparação por primeiro. - depois, faça com a comparação por último. início I=1 P=1 I ≤ 20 não escrever valor de P fim sim ler V P=PxV I=I+1 início 1 I=1 P=1 escrever valor de P ler V fim P=PxV I=I+1 I ≤ 20 não 1 sim 8 – Linguagem de alto nível A linguagem interna do computador é conhecida como “linguagem de máquina” e é deveras complicada. Uma linguagem de alto nível está mais próxima da linguagem natural sendo bastante accessível, para aprender a programar basta fazermos um curso básico de programação. 9 - Compilador Um programa numa linguagem de alto nível para poder ser “executado” (funcionar) precisa ser traduzido para a linguagem de máquina. Existem dois tipos de programas tradutores: os compiladores e os interpretadores. Com o compilador, o programa escrito pelo programador, chamado de programa-fonte, código-fonte ou simplesmente fonte é traduzido de uma só vez. Isto é o compilador cria uma versão executável do programa, e basta compilar o fonte uma só vez. O funcionamento do interpretador é diferente, traduz e executa as instruções uma e uma, e cada vez que o programa é executado é necessário fazer a tradução, pois não é criada uma versão executável. 10 – Compilação e execução de um programa em C programa fonte (compilador) gcc programa executável Exemplo: Após ter feito um programa fonte ( com o editor jpico ) de nome prog1.c, faça: $ gcc –o prog1 prog1.c ... neste momento se fizer: $ ls ... verá que foi criado (pelo programa gcc ) o programa executável de nome prog1, para executá-lo basta fazer: $ ./prog1