Vinte e Alguma Coisa

Amor não é a resposta, trabalho também não é.... A verdade é tão incompreensível que dói... Mas eu continuo me divertindo e acho que essa é a chave.. Tenho vinte e poucos e continuarei sendo a mesma coisa....

Algoritmo Estruturado

3 comentários
Fotógrafo/artista: Medioimages/Photodisc

Como as aulas estão apertando, e também preciso dedicar meu tempo às tarefas acadêmicas, inicio hoje uma nova série de postagens: "Direto da Ciência da Computação".O Primeiro post da série é dedicado ao primeiro passo do curso: os algoritmos. Espero que seja útil para alguém. Boa Leitura.

Algorítmo Estruturado

A automatização de tarefas é um aspecto marcante da sociedade moderna. O aperfeiçoamento tecnológico alcançado, com respeito a isto, teve como elementos fundamentais a análise e a obtenção de descrições da execução de tarefas em termos de ações simples o suficiente, tal que pudessem ser automatizadas por uma máquina especialmente desenvolvida para este fim, O COMPUTADOR.
Em ciência da computação houve um processo de desenvolvimento simultâneo e interativo de máquinas (hardware) e dos elementos que gerenciam a execução automática (software) de uma dada tarefa. E essa descrição da execução de uma tarefa, como considerada acima, é chamada algoritmo.
O objetivo desse curso é a Lógica de Programação dando uma base teórica e prática, suficientemente boa, para que, o aluno domine os algoritmos e esteja habilitado a aprender uma linguagem de programação. Será mostrado também um grupo de algoritmos clássicos para tarefas cotidianas, tais como : ordenação e pesquisa.
DEFINIÇÃO DE ALGORITMO
"O conceito central da programação e da Ciência da Computação é o conceito de algoritmos, isto é, programar é basicamente construir algoritmos."
É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa.
"O algoritmo pode ser usado como uma ferramenta genérica para representar a solução de tarefas independente do desejo de automatizá-las, mas em geral está associado ao processamento eletrônico de dados, onde representa o rascunho para programas (Software)."
"Serve como modelo para programas, pois sua linguagem é intermediária à linguagem humana e às linguagens de programação, sendo então, uma boa ferramenta na validação da lógica de tarefas a serem automatizadas."
"Um algoritmo é uma receita para um processo computacional e consiste de uma série de operações primitivas, interconectadas devidamente, sobre um conjunto de objetos. Os objetos manipulados por essas receitas são as variáveis."
O algoritmo pode ter vários níveis de abstrações de acordo com a necessidade de representar ou encapsular detalhes inerentes às linguagens de programação. Ex: Certamente um algoritmo feito com o objetivo de servir como modelo para uma linguagem de III geração é diferente daquele para uma linguagem de IV geração. Mas isso não impede que a ferramenta em si possa ser usada em ambos o caso.
Como qualquer modelo, um algoritmo é uma abstração da realidade. A abstração é o processo de identificar as propriedades relevantes do fenômeno que esta sendo modelado. Usando o modelo abstrato, podemos nos centrar unicamente nas propriedades relevantes para nós, dependendo da finalidade da abstração, e ignorar as irrelevantes.
É a forma pela qual descrevemos soluções de problemas do nosso mundo, afim de, serem implementadas utilizando os recursos do mundo computacional. Como este possuí severas limitações em relação ao nosso mundo, exige que, sejam impostas algumas regras básicas na forma de solucionar os problemas, para que, possamos utilizar os recursos de hardware e software disponíveis. Pois, os algoritmos, apesar de servirem para representar a solução de qualquer problema, no caso do Processamento de Dados, eles devem seguir as regras básicas de programação para que sejam compatíveis com as linguagens de programação.
LINGUAGEM DE DESCRIÇÃO DE ALGORITMO (LDA)
Para escrevermos algoritmos é preciso uma linguagem clara e que não deixe margem a ambiguidades, para isto, devemos definir uma sintaxe e uma semântica, de forma a permitir uma única interpretação das instruções num algoritmo.
Estrutura um Algoritmo
Algoritmo Nome_Do_Algoritmo
variáveis
Declaração das variáveis
Procedimentos
Declaração dos procedimentos
Funções
Declaração das funções
Início
Corpo do Algoritmo
Fim
Identificadores
Representam os nomes escolhidos para rotular as variáveis, procedimentos e funções, normalmente, obedecem as seguintes regras :
1. O primeiro caracter deve ser uma letra
2. Os nomes devem ser formados por caracteres pertencentes ao seguinte conjunto : {a,b,c,..z,A,B,C,...Z,0,1,2,...,9,_}
3. Os nomes escolhidos devem explicitar seu conteúdo.
Variáveis:
Unidades básicas de armazenamento das informações a nível de linguagens de programação. Os tipos de dados e variáveis utilizados dependem da finalidade dos algoritmos, mas, podemos definir alguns, pelo fato de serem largamente utilizados e implementados na maioria das linguagens, sendo estes:
INTEIRO : qualquer número inteiro, negativo, nulo ou positivo.
REAL : qualquer número real, negativo, nulo ou positivo.
CARACTER : qualquer conjunto de caracteres alfanuméricos.
LÓGICO : tipo especial de variável que armazena apenas os valores V e F, onde V representa VERDADE e F FALSO
Declaração de variáveis
Para que os programas manipulem valores, estes devem ser armazenados em variáveis e para isso, devemos declará-las de acordo com a sintaxe:
NomeVariável,... : tipo
Operações Básicas:
Na solução da grande maioria dos problemas é necessário que as variáveis tenham seus valores consultados ou alterados e, para isto, devemos definir um conjunto de OPERADORES, sendo eles:
· OPERADOR DE ATRIBUIÇÃO:
NomeDaVariavel ¬ Valor ou Expressão Atribuída.
· OPERADORES ARITMÉTICOS:
+ = Adição
Quociente = Quociente da divisão de inteiros
* = Multiplicação
Resto = Resto da divisão de inteiros
- = Subtração ou inversor do sinal.
EXP(a,b) = Exponenciação ab
/ = Divisão

· FUNÇÕES PRIMITIVAS: SEN(x); COS(x); TG(x); ABS(x); INT(x); Raiz(x); PI( );
· OPERADORES RELACIONAIS:
São utilizados para relacionar variáveis ou expressões, resultando num valor lógico (Verdadeiro ou Falso), sendo eles:
=- igual
¹ - diferente
< - menor
> - maior
£ - menor ou igual
³ - maior ou igual
· OPERADORES LÓGICOS:
São utilizados para avaliar expressões lógicas, sendo eles:
e - e lógico ou conjunção.
ou - ou lógico ou disjunção.
não - negação.
PRIORIDADE DE OPERADORES:
Durante a execução de uma expressão que envolve vários operadores, é necessário a existência de prioridades, caso contrário poderemos obter valores que não representam o resultado esperado.
A maioria das linguagens de programação utiliza as seguintes prioridades de operadores :
- Efetuar operações embutidas em parênteses "mais internos"
- Efetuar Funções
- Efetuar multiplicação e/ou divisão
- Efetuar adição e/ou subtração
- Operadores Relacionais
- Operadores Lógicos
OBS: O programador tem plena liberdade para incluir novas variáveis, operadores ou funções para adaptar o algoritmo as suas necessidades, lembrando sempre, de que, estes devem ser compatíveis com a linguagem de programação a ser utilizada.
COMANDOS DE ENTRADA E SAÍDA :
No algoritmo é preciso representar a troca de informações que ocorrerá entre o mundo da máquina e o nosso mundo, para isso, devemos utilizar comandos de entrada e saída, sendo que, a nível de algoritmo esses comandos representam apenas a entrada e a saída da informação, independe do dispositivo utilizado (teclado, discos, impressora, monitor,...), mas, sabemos que nas linguagens de programação essa independência não existe, ou seja, nas linguagens de programação temos comandos específicos para cada tipo de unidade de Entrada/Saída.
Comando de Entrada de Dados
Leia(variável_1, variável_2,...)
Comando de Saída de Dados
Imprima(expressão_1, expressão_2,...)
COMANDOS DE CONTROLE DE FLUXO:
Para representar a solução de um problema devemos escrever o conjunto de passos a serem seguidos, sendo que, a maioria dos problemas exigem uma dinâmica na sua solução, impondo assim que os algoritmos executem conjunto de instruções de acordo com as possíveis situações encontradas no problema original. E de acordo com a Programação Estruturada os mecanismos utilizados para esse controle são : Sequência, Seleção e Repetição.
· SEQUÊNCIA : usada para executar comandos passo a passo, sabendo que todos eles serão executados na ordem de escrita, sem nenhum desvio. Uma sequência pode possuir um ou vários comandos, os quais devem ser delimitados pelos identificadores Início e Fim.
Inicio
Comando_1
...
Comando_n
Fim
· SELEÇÃO : usada para tomar decisões, ou seja desviar a execução do algoritmo de acordo com uma condição, podendo ser simples ou composta.
Simples
Composta
Se (Expressão Lógica)
Então Sequência_1
Se (Expressão Lógica)
Então Sequência_1
Senão Sequência_2
· REPETIÇÃO : Serve para efetuar um conjunto de ações repetidas vezes. Existem três tipos básicos de repetições, sendo elas.
Enquanto (Expressão Lógica) faça
Sequência
O comando Enquanto analisa a Expressão Lógica e enquanto o seu resultado for, o valor lógico, Verdade a Sequência é executada.
Para variável ¬ valor_inicial até valor_final faça
Sequência
O comando Para incrementa, a variável, a partir do valor_inicial de uma unidade, até que, esta atinja o valor_final. E para cada incremento a Sequência é executada..
Repita
Sequência
Até (Expressão Lógica)
O comando Repita executa a Sequência até que o valor retornado pela Expressão Lógica seja Verdadeiro

3 comentários :

Anônimo disse...

Alguém poderia me ajudar?
Como criar um programa pseudocódigo que leia 2 valores inteiros e positivos que calcule e mostre resultado x "elevao"y,emlinguagem Se.agradeço.

Maíra disse...

Inicio

declare x;
declare y;
declare i;
declare resultado;


leia x;
Se x > 0 então
leia y;
Se y > 0 então
para i -> 1 até y faça
resultado ->x vezes x;
Fim Para;
senão
imprima: y não é positivo
fim se;
senão
imprima: x não é pósitivo;
Fim Se
Imprima resltado;

Fim

Unknown disse...

Estou presisando de ajuda urgente, sou iniciante do curso de ciências da computação e tenho um algoritmo para fazer, e estou com dificuldades teria algum chat, em que alguém mais experiente podesse me ajudar?