quarta-feira, 30 de abril de 2014

Estrutura de dados e os ponteiros da vida.


É muito comum nos curso de computação ouvir ou ao menos ver os conceitos de estrutura de dados e o uso de ponteiros, programar é algo simples todos podemos compor algoritmos de modo a resolver um problema proposto por um professor em sala de aula. Porem programar se torna complexo quando precisamos de desempenho e qualidade na produção de um sistema ou programa, daí entramos na noção de dados estruturados e naturalmente perdemos a ilusão de que sabemos programar pois existem soluções matemáticas mais eficientes e eficazes para compor algo que fazíamos de modo bruto devido a falta de conhecimento, meu breve objetivo é falar de uma noção básica em estrutura de dados, ou seja ponteiros ,vou adotar a mesma literatura usada por alguns professores da UFS que segue a seguir, a linguagem adotada é o pascal, se trata de uma linguagem simples e fácil :

Apontadores (Ponteiros)

Um apontador é uma variável que contém o endereço de um dado ou de um código de programa. Podemos obter o endereço de uma variável usando a função Addr ou o operador @.
  • A função Addr(<variável>)
  • O operador @<variável>
Exemplo 1: Obtendo o endereço de uma variável integer:var N : integer;
begin
   writeln('Addr(N)=', longint(Addr(N)));
   writeln('@N=', longint(@N))
end.

Variável tipo Pointer

Usa-se uma variável tipo Pointer para armazenar um endereço de memória.
var <nome-da-variável> : Pointer;
Este tipo de apontador pode ser usado para guardar o endereço de qualquer variável, independente do tipo da mesma.
Exemplo 2: Atribuindo endereços de variáveis a um apontador:var
   N : integer;
   R : real;
   S : String[50];
   P : Pointer;
begin
   P := Addr(N);   {1}
   writeln('Addr(N)=', longint(P));

   P := Addr(R);   {2}
   writeln('Addr(R)=', longint(P));

   P := @S;        {3}
   writeln('Addr(S)=', longint(P));

   P := @P;        {4}
   writeln('Addr(P)=', longint(P));
end.


desse modo dispomos de uma noção básica de ponteiros, em breve vamos conversar um pouco sobre alocação dinâmica de memoria e suas vantagens e desvantagens,quaisquer dúvidas perguntem o blog serve para isso.
Fonte :http://albertocn.sytes.net/2010-2/ed1/aulas/apontadores.htm

quinta-feira, 24 de abril de 2014

Lógica de programação

Lógica de programação



É o modo como se escreve um programa de computador, um algoritmo. Um algoritmo é uma sequência de passos para se executar uma função. Um exemplo de algoritmo, fora da computação, é uma receita de bolo.

Na receita, devem-se seguir os passos para o bolo ficar pronto e sem nenhum problema.

Na informática, os programadores escrevem as “receitas de bolo” (algoritmos) de modo que o computador leia e entenda o que deve ser feito, ao executar o algoritmo. Para isto é necessário uma linguagem de programação.

A linguagem de programação é como uma língua normal, um grupo de palavras com significados. No caso da programação, a maioria das linguagens é escrita em Inglês. Estas linguagens fazem o computador assimilar cada comando e função de um algoritmo, depois executar cada função.

A linguagem de programação é somente como se escreve o algoritmo. O grande problema para muitos é o que “dizer” para o computador fazer o que é desejado. Para o aprendizado foi desenvolvido o Software VisualG, que auxilia a programação totalmente em português. Com este software, não é necessário pensar em linguagem de programação, pois todos os comandos são em Português, ficando assim o foco na Lógica.

Na hora de programar alguns passos são indispensáveis, como Declarar Variáveis. Variáveis podem ser escritas por letras ou números, que representam um valor que pode ser mudado a qualquer momento.
Cada variável tem um espaço na memória para armazenar seus dados. Porem existem vários tipos de dados, sendo os mais comuns:

  • Numérico: todo e qualquer tipo numero, positivo ou negativo
  • Reais: podem ser positivos ou negativos e decimais.
  • Caractere: São os textos. Qualquer numero pode entrar aqui, porem não terá função matemática.
Saber lógica de programação é saber o melhor jeito de escrever um código, para o computador interpretar corretamente. É saber se comunicar com a maquina a partir de uma linguagem seja lá qual for.

Um exemplo de algoritmo, que tem como objetivo somar 3 números inteiros.

Algoritmo "soma"
Var 
Num1, num2, num3, resultado: inteiro

Inicio
escreval("Este programa ira somar 3 números inteiros de sua escolha:")
escreval("Digite um numero inteiro:")
leia(num1)
escreval("Digite um numero para somar ao primeiro numero:")
Leia (num2)
escreval("Digite um terceiro numero para somar aos outros 2 numeros:")
Leia (num3)
Resultado <- num1+num2+num3
escreval("O resultado é: ")
escreval (Resultado)
fimalgoritmo

No algoritmo acima, alguns elementos são os comandos específicos da linguagem "Portugol": Var, Inicio, Escreval, leia, <-, Fimalgoritmo, :Inteiro. Estes comandos têm funções especificas, e um dos objetivos da lógica de programação é entender como eles funcionam. Cada linguagem tem um correspondente a estes comandos, com a mesma função, porem escrito de modo diferente (sintaxe).

Espero que tenham entendido! Qualquer dúvida deixe nos comentários que assim que puder responderei-a.