1337
Membro
- Registrado
- Maio 31, 2018
- Mensagens
- 8
- Pontos de reações
- 8
- Idade
- 51
1 – O que é algoritmo? Pra que algoritmo? Como criar algoritmos?
O que é algoritmo? Pra que algoritmo?
A programação estruturada é “a arte ou técnica de construir e formular algoritmos de forma sistemática.” [Niklaus Wirth]
Segundo Wirth, “programas são formulações concretas de algoritmos abstratos, baseados em representações e estruturas específicas de dados”.
Bem vindos, aspirantes a programadores ao primeiro tutorial de introdução aos algoritmos, com as breves palavras do criador da linguagem Pascal, Niklaus Wirth, começamos a nossa aula de algoritmos que é a base da programação estruturada, vamos à definição
Algoritmo é a descrição de comandos que, obedecidos, resultam numa solução finita de ações.
Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito produz um estado final previsível e bem definido.
O algoritmo, em termos de computação, é a ordem que você dá para o computador.
O algoritmo não é a exposição do problema, mas a exposição de sua solução, somente.
É necessário pensar de forma algorítmica (isso existe? O.o) para resolver problemas grandes. Atualmente é possível cursos de engenharia ensinado algoritmos.
Depois de definido o algoritmo, basta segui-lo para resolver um mesmo problema a qualquer momento.
Como criar algoritmos?
Para criar algoritmos, você precisa fazer refinamentos, para que, por exemplo, um computador possa entender. Um refinamento é transformar uma solução grande em uma solução ou soluções pequenas, por exemplo:
Leia os valores dos catetos
Poderia ser refinada para:
Leia os valores dos catetos
Leia a
Leia b
Vamos fazer um algoritmo de como trocar uma lâmpada fazendo os refinamentos posteriormente
Trocar lâmpada
1: Ter os elementos necessários
2: Desligar o interruptor
3: Trocar a lâmpada
4: Verificar se a lâmpada nova funciona
5: Se funcionar, terminar
6: Se não funcionar, repetir o passo 2
Aqui temos o exemplo bruto de como trocar uma lâmpada, agora vamos refinar
1: Ter os elementos necessários
Escada, lâmpada nova
2: Desligar o interruptor
3: Trocar a lâmpada
Subir na escada
Tirar a lâmpada velha
Colocar a lâmpada nova
Descer da escada
4: Verifica se a lâmpada nova funciona
Ligar o interruptor
5: Se funcionar, terminar
6: Se não funcionar, repetir o passo 2
Em termos humanos, esse poderia ser um algoritmo para trocar uma lâmpada. Como podemos perceber, nem tudo o que é escrito no algoritmo inicial precisa ser refinado (passos 2, 5 e 6), nesse caso, consideramos que a instrução já está refinada. Depois de feito o refinamento, podemos eliminar os comandos refinados. A exposição da solução e o refinamento são importantíssimos para o iniciante, porém, com a experiência em criar algoritmos podemos chegar a criá-los (algoritmos complexos, inclusive) sem utilizar o refinamento, programando diretamente na linguagem desejada. Temos, a seguir, o algoritmo da lâmpada, depois do refinamento:
Escada, lâmpada nova
Desligar o interruptor
Subir na escada
Tirar a lâmpada velha
Colocar a lâmpada nova
Descer da escada
Verifica se a lâmpada nova funciona
Ligar o interruptor
Se funcionar, terminar
Se não funcionar, repetir o passo 2
2 – Como o computador trabalha com algoritmos?
Óbvio que o seu computador não vai trocar uma lâmpada, a não ser que você vá trocar uma lâmpada ou criar um robô que troque lâmpadas (o que não é uma má ideia), qual a aplicação prática da programação ou algoritmos nos computadores? O algoritmo é utilizado na metodologia de programação estruturada (vide Glossário) que é o que vamos aprender aqui. O algoritmo, quando utilizado em computadores, pode ser feito para resolver problemas matemáticos, problemas de armazenamento de informações, construção de jogos, etc.
Aqui, temos um exemplo prático de um algoritmo simples para computador que soma dois números inteiros:
1: Defina o tipo das variáveis
2: Leia os números
3: Soma os números
4: Escreva a soma dos números
Agora, refinado:
1: Defina o tipo das variáveis
a, b, soma: inteiro
2: Leia os números
Leia a
Leia b
3: Soma os números
Soma = a + b
4: Escreva a soma dos números
Escreva soma
Como resultado final teríamos:
Programa adicionar
Variáveis
A, b, soma: inteiro
Inicio
Leia a
Leia b
Soma = a + b
Escreva (soma)
Fim
Existem diversas linguagens de programação, essa é apenas uma tradução de uma delas (PASCAL). Nenhum computador entende as linguagens de programação, pois os programas são apenas letras e caracteres, e o computador só entende zeros-e-uns. É preciso um tradutor para converter o que esse programa diz (que é o q queremos) para algo q o computador entenda, esse tradutor chama-se compilador.
A estrutura do computador digital (e existe outro?)
As informações que você manda para o computador (como o que vc digita no teclado) são enviadas para a unidade de entrada que traduz tudo isso em pulsos elétricos (zeros-e-uns) e manda pra memória que armazena os dados e o programa manipulador desses dados. Entendeu? Continuando…
A memória manda esses dados para a unidade de controle que controla(redundância :p) o tráfego de dados, interpretando esses dados e mandando-os para a unidade de lógica e aritmética (ALU) que faz todos os cálculos aritméticos e qualquer manipulação de dados numéricos ou não. Daí, os dados voltam para a unidade de controle, que pode mandar os dados de volta para a memória ou para a unidade de saída (seu monitor, no caso).
As definições individuais, você encontra no glossário.
Não entendeu? Vô desenhar
Entendeu? Eu sei q foi feio no paint, whatever...
É assim que o computador trabalha com algoritmos, o computador vai traduzir tudo o que vc escreveu para a linguagem de máquina (zeros-e-uns, impulsos elétricos etc.).
3 – Como fazer algoritmos que o computador entenda?
Com a criação do compilador para as linguagens de programação, os programadores não tinham mais que se preocupar com como a máquina lidaria com os dados e sim com a solução do problema em si, antes de responder a pergunta do post vamos explicar sobre as linguagens de programação.
As linguagens de programação podem ser divididas em linguagens de programação de alto nível e baixo nível, porém alguns cientistas da computação dizem que existem linguagens de médio nível.
Linguagem de alto nível – Linguagem mais próxima da linguagem humana, quanto mais próxima da linguagem humana e mais fácil de entender para leigos, maior o nível.
Linguagem de médio nível – Linguagem que possui a sintaxe de alto nível mas que também pode se comunicar com a máquina através do baixo nível
Linguagem de baixo nível – Linguagem que mais se aproxima da linguagem de máquina, marcada por conter abreviações que ajudam na sintaxe
Linguagem de máquina – É a única linguagem que a máquina entende, composta basicamente de zeros-e-uns e códigos hexadecimais.
As linguagens de programação e seus níveis
Linguagem de alto nível – Visual Basic, Ruby
Linguagem de médio nível – C/C++, FORTH
Linguagem de baixo nível – Assembly
Nota: as linguagens de médio nível são comumente chamadas de alto nível.
Ok, para fazer o computador entender o seu programa, você precisa escolher uma linguagem de programação e entender sua sintaxe para que vc saiba como expressar seus algoritmos através dela.
Deixando claro algumas coisas
Vamos explicar os tipos de compiladores
Compiladores simples – são os compiladores cuja função é compilar o código e verificar possíveis erros.
Compiladores com ambiente de Desenvolvimento – são os compiladores que possuem um editor de texto interno. Geralmente esse editor de texto marca as palavras-chave com cores diferentes facilitando a leitura do código.
O que é algoritmo? Pra que algoritmo?
A programação estruturada é “a arte ou técnica de construir e formular algoritmos de forma sistemática.” [Niklaus Wirth]
Segundo Wirth, “programas são formulações concretas de algoritmos abstratos, baseados em representações e estruturas específicas de dados”.
Bem vindos, aspirantes a programadores ao primeiro tutorial de introdução aos algoritmos, com as breves palavras do criador da linguagem Pascal, Niklaus Wirth, começamos a nossa aula de algoritmos que é a base da programação estruturada, vamos à definição
Algoritmo é a descrição de comandos que, obedecidos, resultam numa solução finita de ações.
Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito produz um estado final previsível e bem definido.
O algoritmo, em termos de computação, é a ordem que você dá para o computador.
O algoritmo não é a exposição do problema, mas a exposição de sua solução, somente.
É necessário pensar de forma algorítmica (isso existe? O.o) para resolver problemas grandes. Atualmente é possível cursos de engenharia ensinado algoritmos.
Depois de definido o algoritmo, basta segui-lo para resolver um mesmo problema a qualquer momento.
Como criar algoritmos?
Para criar algoritmos, você precisa fazer refinamentos, para que, por exemplo, um computador possa entender. Um refinamento é transformar uma solução grande em uma solução ou soluções pequenas, por exemplo:
Leia os valores dos catetos
Poderia ser refinada para:
Leia os valores dos catetos
Leia a
Leia b
Vamos fazer um algoritmo de como trocar uma lâmpada fazendo os refinamentos posteriormente
Trocar lâmpada
1: Ter os elementos necessários
2: Desligar o interruptor
3: Trocar a lâmpada
4: Verificar se a lâmpada nova funciona
5: Se funcionar, terminar
6: Se não funcionar, repetir o passo 2
Aqui temos o exemplo bruto de como trocar uma lâmpada, agora vamos refinar
1: Ter os elementos necessários
Escada, lâmpada nova
2: Desligar o interruptor
3: Trocar a lâmpada
Subir na escada
Tirar a lâmpada velha
Colocar a lâmpada nova
Descer da escada
4: Verifica se a lâmpada nova funciona
Ligar o interruptor
5: Se funcionar, terminar
6: Se não funcionar, repetir o passo 2
Em termos humanos, esse poderia ser um algoritmo para trocar uma lâmpada. Como podemos perceber, nem tudo o que é escrito no algoritmo inicial precisa ser refinado (passos 2, 5 e 6), nesse caso, consideramos que a instrução já está refinada. Depois de feito o refinamento, podemos eliminar os comandos refinados. A exposição da solução e o refinamento são importantíssimos para o iniciante, porém, com a experiência em criar algoritmos podemos chegar a criá-los (algoritmos complexos, inclusive) sem utilizar o refinamento, programando diretamente na linguagem desejada. Temos, a seguir, o algoritmo da lâmpada, depois do refinamento:
Escada, lâmpada nova
Desligar o interruptor
Subir na escada
Tirar a lâmpada velha
Colocar a lâmpada nova
Descer da escada
Verifica se a lâmpada nova funciona
Ligar o interruptor
Se funcionar, terminar
Se não funcionar, repetir o passo 2
2 – Como o computador trabalha com algoritmos?
Óbvio que o seu computador não vai trocar uma lâmpada, a não ser que você vá trocar uma lâmpada ou criar um robô que troque lâmpadas (o que não é uma má ideia), qual a aplicação prática da programação ou algoritmos nos computadores? O algoritmo é utilizado na metodologia de programação estruturada (vide Glossário) que é o que vamos aprender aqui. O algoritmo, quando utilizado em computadores, pode ser feito para resolver problemas matemáticos, problemas de armazenamento de informações, construção de jogos, etc.
Aqui, temos um exemplo prático de um algoritmo simples para computador que soma dois números inteiros:
1: Defina o tipo das variáveis
2: Leia os números
3: Soma os números
4: Escreva a soma dos números
Agora, refinado:
1: Defina o tipo das variáveis
a, b, soma: inteiro
2: Leia os números
Leia a
Leia b
3: Soma os números
Soma = a + b
4: Escreva a soma dos números
Escreva soma
Como resultado final teríamos:
Programa adicionar
Variáveis
A, b, soma: inteiro
Inicio
Leia a
Leia b
Soma = a + b
Escreva (soma)
Fim
Existem diversas linguagens de programação, essa é apenas uma tradução de uma delas (PASCAL). Nenhum computador entende as linguagens de programação, pois os programas são apenas letras e caracteres, e o computador só entende zeros-e-uns. É preciso um tradutor para converter o que esse programa diz (que é o q queremos) para algo q o computador entenda, esse tradutor chama-se compilador.
A estrutura do computador digital (e existe outro?)
As informações que você manda para o computador (como o que vc digita no teclado) são enviadas para a unidade de entrada que traduz tudo isso em pulsos elétricos (zeros-e-uns) e manda pra memória que armazena os dados e o programa manipulador desses dados. Entendeu? Continuando…
A memória manda esses dados para a unidade de controle que controla(redundância :p) o tráfego de dados, interpretando esses dados e mandando-os para a unidade de lógica e aritmética (ALU) que faz todos os cálculos aritméticos e qualquer manipulação de dados numéricos ou não. Daí, os dados voltam para a unidade de controle, que pode mandar os dados de volta para a memória ou para a unidade de saída (seu monitor, no caso).
As definições individuais, você encontra no glossário.
Não entendeu? Vô desenhar
Entendeu? Eu sei q foi feio no paint, whatever...
É assim que o computador trabalha com algoritmos, o computador vai traduzir tudo o que vc escreveu para a linguagem de máquina (zeros-e-uns, impulsos elétricos etc.).
3 – Como fazer algoritmos que o computador entenda?
Com a criação do compilador para as linguagens de programação, os programadores não tinham mais que se preocupar com como a máquina lidaria com os dados e sim com a solução do problema em si, antes de responder a pergunta do post vamos explicar sobre as linguagens de programação.
As linguagens de programação podem ser divididas em linguagens de programação de alto nível e baixo nível, porém alguns cientistas da computação dizem que existem linguagens de médio nível.
Linguagem de alto nível – Linguagem mais próxima da linguagem humana, quanto mais próxima da linguagem humana e mais fácil de entender para leigos, maior o nível.
Linguagem de médio nível – Linguagem que possui a sintaxe de alto nível mas que também pode se comunicar com a máquina através do baixo nível
Linguagem de baixo nível – Linguagem que mais se aproxima da linguagem de máquina, marcada por conter abreviações que ajudam na sintaxe
Linguagem de máquina – É a única linguagem que a máquina entende, composta basicamente de zeros-e-uns e códigos hexadecimais.
As linguagens de programação e seus níveis
Linguagem de alto nível – Visual Basic, Ruby
Linguagem de médio nível – C/C++, FORTH
Linguagem de baixo nível – Assembly
Nota: as linguagens de médio nível são comumente chamadas de alto nível.
Ok, para fazer o computador entender o seu programa, você precisa escolher uma linguagem de programação e entender sua sintaxe para que vc saiba como expressar seus algoritmos através dela.
Deixando claro algumas coisas
Vamos explicar os tipos de compiladores
Compiladores simples – são os compiladores cuja função é compilar o código e verificar possíveis erros.
Compiladores com ambiente de Desenvolvimento – são os compiladores que possuem um editor de texto interno. Geralmente esse editor de texto marca as palavras-chave com cores diferentes facilitando a leitura do código.