O diagrama foi criado por Ned Chapin a partir de trabalhos de Nassi-Shneiderman, os quais resolveram substituir o fluxograma tradicional por um diagrama que apresenta uma visão hierárquica e estruturada da lógica do programa. A grande vantagem de usar este tipo de diagrama é a representação das estruturas que tem um ponto de entrada e um ponto de saída e são compostas pelas estruturas básicas de controle de seqüência, seleção e repartição. Enquanto é difícil mostrar o embutimento e a recursividade com o fluxograma tradicional, torna-se mais simples mostrá-lo com o diagrama de Chapin, bem como codificá-lo futuramente na conversão de código português estruturado ou pseudocódigos. A figura 2.3 apresenta um exemplo do tipo de diagrama de Chapin para o algoritmo de cálculo da média de um aluno.
2.4Pseudocódigo
Esta forma de representação de algoritmos, também conhecida como português estruturado ou portugol, é bastante rica em detalhes e, por assemelhar-se bastante à forma em que os programas são escritos, encontra muita aceitação, sendo portanto a forma de representação de algoritmos que será adotada nesta disciplina.
Na verdade, esta representação é suficientemente geral para permitir que a tradução de um algoritmo nela representado para uma linguagem de programação específica seja praticamente direta.
2.4.1Representação de Um Algoritmo na Forma de Pseudocódigo
A representação de um algoritmo na forma de pseudocódigo é a seguinte:
Algoritmo <nome_do_algoritmo>
<declaração_de_variáveis>
<subalgoritmos>
Início
<corpo_do_algoritmo>
Fim.
onde:
Algoritmo é uma palavra que indica o início da definição de um algoritmo em forma de pseudocódigo.
<nome_do_algoritmo> é um nome simbólico dado ao algoritmo com a finalidade de distinguí-lo dos demais.
<declaração_de_variáveis> consiste em uma porção opcional onde são declaradas as variáveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos.
<subalgoritmos> consiste de uma porção opcional do pseudocódigo onde são definidos os subalgoritmos.
Início e Fim são respectivamente as palavras que delimitam o início e o término do conjunto de instruções do corpo do algoritmo.
Como exemplo, abaixo é mostrado a representação do algoritmo de cálculo da média de um aluno na forma de um pseudocódigo.
Algoritmo Média
Var N1, N2, Média
Início
Leia N1, N2
Média := (N1+N2)/2
Se Média >= 7 Então
Escreva “Aprovado”
Senão
Escreva “Reprovado”
Fim.
Parte II - Técnicas Básicas de Programação
3.Tipos de Dados
Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos:
– As instruções, que comandam o funcionamento da máquina e determinam a maneira como devem ser tratados os dados.
– Os dados propriamente ditos, que correspondem à porção das informações a serem processadas pelo computador.
A classificação apresentada a seguir não se aplica a nenhuma linguagem de programação específica; pelo contrário, ela sintetiza os padrões utilizados na maioria das linguagens.
3.1Tipos Inteiros
São caracterizados como tipos inteiros, os dados numéricos positivos ou negativos. Excluindo-se destes qualquer número fracionário. Como exemplo deste tipo de dado, tem-se os valores: 35, 0, -56, 1024 entre outros.
3.2Tipos Reais
São caracterizados como tipos reais, os dados numéricos positivos e negativos e números fracionários. Como exemplo deste tipo de dado, tem-se os valores: 35, 0, -56, 1.2, -45.987 entre outros.
São caracterizados como tipos caracteres, as seqüências contendo letras, números e símbolos especiais. Uma seqüência de caracteres deve ser indicada entre aspas (“”). Este tipo de dado também é conhecido como alfanumérico, string, literal ou cadeia. Como exemplo deste tipo de dado, tem-se os valores: “Programação”, “Rua Alfa, 52 Apto 1”, “Fone 574-9988”, “04387-030”, “ ”, “7” entre outros.
3.4Tipos Lógicos
São caracterizados como tipos lógicos os dados com valor verdadeiro e falso, sendo que este tipo de dado poderá representar apenas um dos dois valores. Ele é chamado por alguns de tipo booleano, devido à contribuição do filósofo e matemático inglês George Boole na área da lógica matemática.
4.1Armazenamento de Dados na Memória
Para armazenar os dados na memória, imagine que a memória de um computador é um grande arquivo com várias gavetas, onde cada gaveta pode armazenar apenas um único valor (seja ele numérico, caractere ou lógico). Se é um grande arquivo com várias gavetas, é necessário identificar com um nome a gaveta que se pretende utilizar. Desta forma o valor armazenado pode ser utilizado a qualquer momento.
4.2Conceito e Utilidade de Variáveis
Têm-se como definição de variável tudo aquilo que é sujeito a variações, que é incerto, instável ou inconstante. E quando se fala de computadores, temos que ter em mente que o volume de informações a serem tratadas é grande e diversificado. Desta forma, os dados a serem processados serão bastante variáveis.
Como visto anteriormente, informações correspondentes a diversos tipos de dados são armazenadas nas memórias dos computadores. Para acessar individualmente cada uma destas informações, em princípio, seria necessário saber o tipo de dado desta informação (ou seja, o número de bytes de memória por ela ocupados) e a posição inicial deste conjunto de bytes na memória.
Percebe-se que esta sistemática de acesso a informações na memória é bastante ilegível e difícil de se trabalhar. Para contornar esta situação criou-se o conceito de variável, que é uma entidade destinada a guardar uma informação.
Basicamente, uma variável possui três atributos: um nome, um tipo de dado associado à mesma e a informação por ela guardada.
Toda variável possui um nome que tem a função de diferenciá-la das demais. Cada linguagem de programação estabelece suas próprias regras de formação de nomes de variáveis.
Adotaremos para os algoritmos, as seguintes regras:
-
um nome de variável deve necessariamente começar com uma letra;
-
um nome de variável não deve conter nenhum símbolo especial, exceto a sublinha ( _ ) e nenhum espaço em branco;
-
um nome de variável não poderá ser uma palavra reservada a uma instrução de programa.
Exemplos de nomes de variáveis:
Salário – correto
1ANO – errado (não começou uma letra)
Ano1 – correto
a casa – errado (contém o caractere branco)
SAL/HORA – errado (contém o caractere “/”)
SAL_HORA – correto
_DESCONTO – errado (não começou com uma letra)
Obviamente é interessante adotar nomes de variáveis relacionados às funções que serão exercidas pela mesmas dentro de um programa.
Outro atributo característico de uma variável é o tipo de dado que ela pode armazenar. Este atributo define a natureza das informações contidas na variável. Por último há o atributo informação, que nada mais é do que a informação útil contida na variável.
Uma vez definidos, os atributos nome e tipo de dado de uma variável não podem ser alterados e assim permanecem durante toda a sua existência, desde que o programa que a utiliza não seja modificado. Por outro lado, o atributo informação está constantemente sujeito a mudanças de acordo com o fluxo de execução do programa.
Em resumo, o conceito de variável foi criado para facilitar a vida dos programadores, permitindo acessar informações na memória dos computadores por meio de um nome, em vez do endereço de uma célula de memória.
|