Introdução a lógica de Programação.
A lógica de Programação é o primeiro passo para todo e qualquer individuo que pretende aprender a programar, nesta pagina encontraremos lições de lógica de programação que ajudarão-nos a marcar os primeiros passos em programação.
LIÇÃO #I
A lógica de programação não é uma linguagem de programação, não depende de uma linguagem de programação. A lógica de programação é um conceito de estruturação de passos finitos que tem por objectivo a resolução parcial ou completa de um problema, tendo como base a construção de algoritimos capazes de dar respostas satisfatórias na resolução de problemas.
Algoritmo
É uma sequência finita de instruções bem definidas e não ambiguas, com o propósito de resolução de proplemas.
Mais sobre algoritmo: https://pt.wikipedia.org/wiki/Algoritmo
Representação
Um algoritmo pode ser representado de três formas:
1. Narrativa
2. Fluxograma convecional
3. Pseúdo-código
1. NARRATIVA
Na forma narrativa um algoritmo pode ser representado em numa sequência de passos usando a linguagem humana.
EX1: Descreva os passos para tomar banho.
- ir a casa de banho;
- tirar a roupa;
- ligar o choveiro;
- colocar-se no polibanho;
- tomar banho;
- desligar o choveiro;
- sair do polibanho;
- limpar-se com a toalha;
- vestir-se;
- sair da casa de banho;
- fim do banho.
2. FLUXOGRAMA CONVECIONAL
Nesta forma a sequência de passos é representado por figuras geométricas(Retangulos, quadrados e outras figuras geométricas ).
EX: Algoritmo para acender um candeeiro
3. PSEUDO-CÓDIGO
É uma descrição de alto - nível compacto, informal, princípio de funcionamento de um programa de computador ou outro algoritmo .
Usa as convenções estruturais de uma linguagem de programação real, 2 , mas é projectado para a leitura humana, em vez de máquina - legível, independentemente de qualquer outra linguagem de programação. Normalmente, o pseudo-código omite detalhes que não são essenciais para a compreensão humana do algoritmo, tais como declarações de variáveis, sistema - código específico e algumas sub-rotinas .
EX: Algoritmo que contador de 0 até 10
programa contadorProg
# Autor: Joseph Cuzunguluca
inicio
inteiro contador <- 0
inteiro i <- 0
para i de 0 até 10 faça{
contador <- i
imprime(contador)
}
fim
OBS: Estas são as três formas possíveis de representação de um algoritmo. Em nosso curso focaremos-nos na terceira forma que é "Pseudo-código".
NOTA: É essencial que leiam o conteúdo mencionado nos links que vão sendo recomendados, porque este curso abordará mais a componente prática. Na próxima aula desta mesma lição falaremos de conceitos gerais e sintaxe algoritmica em pseúdo-códico.
Um bom dia a todos e desfrutem da academia.
Caso tenham dúvidas por favor reportar no forum abertto:
veja : https://nsukasoftacademy.blogspot.com/p/blog-page_6.html
Como qualquel outra ciência, a lógica de programação, uma das áreas da ciência da computação possui alguns conceitos gerais que nos permitirão compreender melhor o desenvolvimento de algoritmos ou programas.
Programa
Um programa é o resultado do desenvolvimento, verificação e correcção de um algoritmo, que posteriormente é codificado para uma determinada linguagem de programação, compilado, carregado e executado por um computador. Ou seja um programa é na verdade a tradução de um ou mais algoritmos em linguagem de programação, compilada ou interpretado e executado por um computador.
Tipos de Dados
Os tipos de dados definem o dominio dos dados a serem utilizados num dado algoritmo. As linguagens de programação necessitam de tipos de dados para possibilita-las definir o tipo de tratamento a ser dado a cada dado recebido.
Os tipos de dados estão classificados em :
tipos de variáveis: As variaveis podem ser:
Inicialização de variaveis
Muitos programadores pensam que uma boa documentação consiste em colocar muitos comentários no código do programa. Este princípio está totalmente errado. Uma boa documentação, limita-se a explicar o que cada função do programa faz, não perde tempo a explicar como uma função faz o que faz, porque o leitor interessado nesse assunto, é capaz de ler o código do programa. Uma documentação é um mini-manual que dá instruções precisas e completas de sua utilização. A primeira parte desse minimanual deve dizer o que o algoritmo recebe e o que devolve.
Uma documentação correcta é uma atitude de honestidade intelectual, pois coloca nas mãos do leitor a real possibilidade de encontrar erros que o autor tenha, porventura cometido ao escrever o programa. Para aprofundar este tema leia: Software documentation no Wikipédia.
Entendemos por comentário todas as palavras que estão entre os simbolos /* e */ . Vejamos o exemplo:
bool função crescente(a);
/*-------------------------------------------------------------
Recebe: Vector com n elementos
Objectivo: Verificar se os elementos do vector estão na ordem crescente
Devolve : Verdadeiro ou Falso
Data : dd-mm-aaaa
Autor : Manuel Meneses
-------------------------------------------------------------*/
parm int a[1..n];
{
int i;
para i de 1 até n-1 faça se a[i] > a[i+1] então retorna falso;
retorna verdadeiro;
}
NOTA: Esta aula baseada no capitulo 1, do manual de Introdução a análise de algoritmos do professor Eng. Manuel Meneses, escrito em 2010.
Seguiremos a sintaxe definida neste manual por se aproximar muito da sintaxe da linguagem C e Portugol.
LIÇÃO #2 - Conceitos Gerais e Sintaxe Algoritmica em pseúdo-códico
Como qualquel outra ciência, a lógica de programação, uma das áreas da ciência da computação possui alguns conceitos gerais que nos permitirão compreender melhor o desenvolvimento de algoritmos ou programas.
- Programa
- Tipos de dados
- Variaveis e tipos de variaveis
- Sintaxe algoritmica em pseudo-codigo
- Declaração de variaveis
- Inicialização de variaveis
- Estrutura de um algoritmo
- Documentação
Programa
Um programa é o resultado do desenvolvimento, verificação e correcção de um algoritmo, que posteriormente é codificado para uma determinada linguagem de programação, compilado, carregado e executado por um computador. Ou seja um programa é na verdade a tradução de um ou mais algoritmos em linguagem de programação, compilada ou interpretado e executado por um computador.
Tipos de Dados
Os tipos de dados definem o dominio dos dados a serem utilizados num dado algoritmo. As linguagens de programação necessitam de tipos de dados para possibilita-las definir o tipo de tratamento a ser dado a cada dado recebido.
Os tipos de dados estão classificados em :
- Simples: define os valores individuas de cada dado;
Ex: Inteiro, Real, Lógico ou Caractére
- Estruturado: define uma colecção ou agregação de valores de tipos diferentes, ou seja um dado estruturado pode conter valores inteiros, reais, lógicos, caractéres e ou apontadores, ao mesmo tempo.
EX: Dados do tipo Pessoa(nome, idade, sexo, altura, ...., *pais ); onde:
nome, sexo: é do tipo caractére;
idade: é do tipo inteiro;
altura: é do tipo real;
*pais: é do tipo apontador.
- Apontador: Faz referência a um endereço de memória, ou seja, um apontador armazena um endereço de memória onde se encontra alocado o valor que se pretende aceder.
EX: Um apontador funciona como uma placa de endereço na estrada, o facto de estar escrito na placa a palavra "CIDADE DE TALATONA", não quer dizer que estejas realmente nesta cidade, mas ela terá uma seta a indicar onde seguir para chegar a cidade de talatona. Logo a nossa placa seria no caso um apontador que aponta para a Cidade de talatona.
Variáveis e tipos de variáveis
Variáveis(identificadores): Em programação, uma variável é um objeto (uma posição, frequentemente localizada na memória) capaz de reter e representar um valor ou expressão.
Enquanto as variáveis só "existem" em tempo de execução, elas são associadas a "nomes", chamados identificadores, durante o tempo de desenvolvimento.
Quando nos referimos à variável, do ponto de vista da programação, estamos tratando de uma “região de memória (do computador) previamente identificada cuja finalidade é armazenar os dados ou informações de um programa por um determinado espaço de tempo”.
tipos de variáveis: As variaveis podem ser:
- Global: Uma variável é chamada global quando está visível em todo o algoritmo ou programa.
- Local: Uma variável é local quando declarada dentro de um subalgoritmo(função ou procedimento), pois sua visibilidade limita-se unica e exclusivamente ao método(função ou procedimento) em que foi definido.
- Constante: Independentemente de a variáver ser local ou global, é chamada constante quando em todo o algoritmo ou subalgoritmo o seu valor é imutavel( não muda, não sofre alteração, é estático ).
Sintaxe algoritmica em pseudo-codigo
Na linguística, a sintaxe é o ramo que estuda os processos generativos ou combinatórios das frases das línguas naturais, tendo em vista especificar a sua estrutura interna e funcionamento. O termo "sintaxe" também é usado para referir o estudo das regras que regem o comportamento de sistemas matemáticos, como a lógica, e as linguagens de programação de computadores.
A sintaxe algoritmica é nada mais, nada menos que a gramatica estrutural do pseúdo-código, ou seja define as regras para se criar um algoritmo, como são usados os comandos, os literais, definição do inicio e fim do algoritmo... A sintaxe algoritmica define a forma como usaremos as instruções para o nosso algoritmo.
- Sinal de atribuição: seta contraria( ← );
- Inicio e fim de um bloco de instruções: chavetas ({ <instruções> });
- Declaração de variaveis: (<tipo> <nome da variavel>;);
- Comentários: slash duplo para comentários na mesma linha ( // ) ou /*...*/ para comentários em bloco
Declaração de variaveis
Consiste na alocação de espaço em memória a ser utilizado pelo tipo de dados da variável, o tamanho a ser ocupado na mémória vai depender do tipo do tamanho que o tipo de dados ocupa em memória.
Para declarar uma variável define-se a seguinte sintaxe:
<tipo> <nome da variavel>;
Se a mesma for uma constante define-se da seguinte forma:
const <tipo> <nome da variavel>;
EX:
- int numero;
- const int numero.
Consiste na atribuição de um valor inicial a variável declarada, a mesma deve apenas receber valores do seu tipo de dados suportado.
EX:
- int numero ⟵ 5;
- char nome ⟵ 'Maria';
- bool aceso ⟵ falso;
- real pi ⟵ 3.1415;
Estrutura de um algoritmo
Asintaxe abaixo representa a sintaxe básica a ser usada para a criação de algoritmos.
algoritmo < nome>; // definição do nome do algoritmo
{
< Declaração dos identificadores globais >; //declarações
< Corpo do algoritmo>; //instruções que compõem o nosso algoritmo
}
Ex:
algoritmo elemmax1;
{
int maior, dado;
const int sentinela = 0;
maior ← 0;
leia(dado);
enquanto (dado <> sentinela)
faça {
se maior < dado então maior ← dado
leia(dado);
}
imprime(‘maior valor sequência = ’,maior);
}
Documentação
Muitos programadores pensam que uma boa documentação consiste em colocar muitos comentários no código do programa. Este princípio está totalmente errado. Uma boa documentação, limita-se a explicar o que cada função do programa faz, não perde tempo a explicar como uma função faz o que faz, porque o leitor interessado nesse assunto, é capaz de ler o código do programa. Uma documentação é um mini-manual que dá instruções precisas e completas de sua utilização. A primeira parte desse minimanual deve dizer o que o algoritmo recebe e o que devolve.
Uma documentação correcta é uma atitude de honestidade intelectual, pois coloca nas mãos do leitor a real possibilidade de encontrar erros que o autor tenha, porventura cometido ao escrever o programa. Para aprofundar este tema leia: Software documentation no Wikipédia.
Entendemos por comentário todas as palavras que estão entre os simbolos /* e */ . Vejamos o exemplo:
bool função crescente(a);
/*-------------------------------------------------------------
Recebe: Vector com n elementos
Objectivo: Verificar se os elementos do vector estão na ordem crescente
Devolve : Verdadeiro ou Falso
Data : dd-mm-aaaa
Autor : Manuel Meneses
-------------------------------------------------------------*/
parm int a[1..n];
{
int i;
para i de 1 até n-1 faça se a[i] > a[i+1] então retorna falso;
retorna verdadeiro;
}
NOTA: Esta aula baseada no capitulo 1, do manual de Introdução a análise de algoritmos do professor Eng. Manuel Meneses, escrito em 2010.
Seguiremos a sintaxe definida neste manual por se aproximar muito da sintaxe da linguagem C e Portugol.
- Obter link
- X
- Outras aplicações
O material esta realmente bem confeccionado e simplificado, esta muito facil de entender e o resto é uma questão de investigação, pessoalmente gostei das sugestões que se apresentaram ao longo do material... aguardo ansioso pela sequencia do projeto valeu muito Nsukasoft.
ResponderEliminarObrigado Tarek, espero que esteja a ajudar, hoje ficará disponível a lição n#2.
EliminarCaso tenha alguma dúvida posta no forum aberto e vamos partilhar soluções... basta clicar no menu Forum aberto ou clique aqui: https://nsukasoftacademy.blogspot.com/p/blog-page_6.html