# data[].attributes.attachment_link.readable_text
Este artigo foi feito em parceria com o Instituto Federal de Educação, Ciência e Tecnologia do Rio de Janeiro, pelos alunos do Curso de Informática para Internet Alessandra da Silva, Débora de Jesus e Matheus Mouta.

Algoritmo não é o bicho papão dos contos infantis. Se realmente pararmos para ver, ele é bastante simples, já que está frequentemente presente em nossas vidas. Ao começarmos a fazer algoritmos, fica muito mais fácil desenvolvê-los com segurança quando realizamos analogias com coisas simples do dia a dia. É isso que vamos ver a seguir.

Noções de Algoritmos

Algoritmo é a base da ciência da computação e da programação. Quando falamos em programar, falamos, basicamente, em construir um algoritmo. Todo programa de um computador é montado por algoritmos que resolvem problemas matemáticos lógicos com objetivos específicos.

Mesmo pessoas que usam uma linguagem de programação para fazer seus programas de computadores estão, na realidade, elaborando algoritmos computacionais em suas mentes.

Relacionado: Guia de Introdução a Programação

Um algoritmo não passa de passos sequenciais e lógicos que são organizados de forma a realizar a conclusão de certo problema. Mas precisamos entender que existem dois tipos de algoritmos – os Não Estruturados e os Estruturados.

Programadores usam algoritmos estruturados, pois se adequam a determinado objetivo ou certo fim.

Mas não são apenas os programadores que usam algoritmos. Em nosso cotidiano, os algoritmos Não Estruturados são trabalhados em nossas mentes sem nem mesmo percebermos. Vamos aprender mais sobre eles.

Algoritmos não estruturados

Em nossa rotina, executamos algoritmos sem perceber. Quando você levanta pela manhã, quando você sai de casa, quando almoça. Você está sempre executando tarefas enquanto realiza análises de decisões, análises de possibilidades, valida argumentos e diversos outros processos.

Há muitos exemplos de algoritmos. Um deles são os manuais de instruções. Manuais de instruções sempre contêm informações detalhadas sobre o que fazer em cada situação e nos previnem de maiores problemas.

Imagine a seguinte situação:
Situação: Dirigir até uma lanchonete e almoçar.
O que é preciso fazer para realizá-la?

1º Passo: Saia de casa.

2º Passo: Entre no carro.

3 º Passo: Se a garagem estiver aberta, saia. Senão, abra-a e saia.

4 º Passo: Dirija até o local desejado.

5º Passo: Se chegou, estacione o carro. Senão, continue até chegar e estacionar.

6 º Passo: Se estacionou, retire a chave da ignição e saia do carro.

7 º Passo: Tranque o carro e dirija-se à lanchonete.

8 º Passo: Se a lanchonete estiver aberta, entre e dirija-se ao caixa. Senão, volte para o carro. Procure outra lanchonete aberta, entre e dirija-se ao caixa.

9º Passo: Faça o pedido e efetue o pagamento.

10º Passo: Aguarde.

11º Passo: Se o número de seu pedido for chamado, dirija-se ao caixa e pegue sua refeição. Senão, aguarde ser chamado e pegue-a.

12 º Passo: Procure um lugar para sentar e coma.

13 º Passo: Se estiver satisfeito, jogue o resto na lixeira. Senão, faça outro pedido e coma.

14º Passo: Saia da lanchonete e dirija-se ao carro.

15 º Passo: Entre, ponha o sinto de segurança e vá para casa.

Você conseguiu almoçar?

Viu como você usa algoritmos na sua vida? Agora pense desde quando você acorda até quando você volta a dormir. Quantas tarefas necessitam de suas decisões? Com certeza muitas. Lógico que não paramos para ver a vida detalhadamente, mas quando percebemos que o que fazemos faz parte de um grande algoritmo de decisões, escolhas, entendemos como funciona um algoritmo computacional.

Abaixo estão listados alguns passos importantes para a escrita de um algoritmo computacional:

Preste atenção à ordem lógica da execução das tarefas;

Lembre-se de que ele deve ter um início e fim;

Ele deve ser completo;

Deve ter um alto nível de detalhes;

Cada tarefa é uma instrução, assim, defina-a bem.

Algoritmos Estruturados

São aqueles que buscam resolver problemas através do uso de um computador. São criados com base em uma linguagem de programação e podem ser escritos de diversas formas.

Um algoritmo pode ser representado pelo chamado Português Estruturado, que é uma ferramenta que usa combinações de sequências, seleções e repetições. São evitados advérbios e adjetivos, formas verbais diferentes da imperativa, muita pontuação e descrição esparsa.

Observe esse exemplo bem simples de Algoritmo Estruturado na linguagem de programação JAVA.

Listagem 1: Exemplo de algoritmo estruturado em Java

Nesse exemplo, vemos uma classe chamada filmes, que é uma extensão de outra classe chamada conexão. Logo após, é declarada uma variável e são implementados os métodos get/set.

Para que um algoritmo em Português Estruturado seja conciso, ele deve seguir alguns pontos:

Evitar comandos longos;

Evitar adjetivos e advérbios;

Ter comandos legíveis;

Ter os comandos bem alinhados;

Possuir comentários para o esclarecimento de comandos;

Evitar ninhos de SE (muitas possibilidades desnecessárias para uma única situação. Ex.: se chover, eu pego o guarda-chuva; se não chover, eu não pego o guarda-chuva ou se eu pegar o vermelho, ele combinará com a roupa; se eu usar o roxo, não combinará).

Com essas noções de algoritmos podemos agora começar a programar sem medo. Afinal, todos nós temos um programador dentro de nós que realiza algoritmos diariamente e com toda a segurança.

Assista o vídeo abaixo:

# data[].attributes.attachment_link.title
Noções Básicas de Algoritmo para Aprender a Programar

# data[].attributes.attachment_link.description
Este artigo foi feito em parceria com o Instituto Federal de Educação, Ciência e Tecnologia do Rio de Janeiro, pelos alunos do Curso de Informática para Internet Alessandra da Silva, Débora de Jesus e Matheus Mouta. Algoritmo não é o bicho papão dos contos infantis.

# data[].attributes.body
A lógica de programação é a maneira como se escreve um algoritmo, que nada mais é do que uma sequência de passos necessários, para que uma função seja executada.

# data[].attributes.attachment_link.readable_text
Embora as vezes não percebemos, utilizamos algoritmos no nosso dia-a-dia e não sabemos. Para a execução de alguma tarefa ou mesmo resolver algum problema, muitas vezes inconscientemente executamos algoritmos. Mas o que é Algoritmo?

Algoritmo é simplesmente uma "receita" para executarmos uma tarefa ou resolver algum problema. E como toda receita, um algoritmo também deve ser finito. Se seguirmos uma receita de bolo corretamente, conseguiremos fazer o bolo. A computação utiliza muito esse recurso, então se você pretende aprender programação, obviamente deve saber o que é algoritmo.

Exemplo de Algoritmo

Imagine o trabalho de um recepcionista de cinema, ele deve conferir os bilhetes e direcionar o cliente para a sala correta. Além disso, se o cliente estiver 30 minutos adiantado o recepcionista deve informar que a sala do filme ainda não está aberta. E quando o cliente estiver 30 minutos atrasado o recepcionista deve informar que a entrada não é mais permitida

Obs: Essas regras não são 100% verdade, eu as defini neste post apenas para fins didáticos

Vamos escrever um algoritmo para descrever a atividade do recepcionista.

Algoritmo Recepcionista de Cinema
Inicio
1 - Solicitar ao cliente o bilhete do filme.

2 - Conferir a data e o horário do filme no bilhete.

Se data/hora atual > data/hora do filme + 30 minutos Então

3 - Informar ao cliente que o tempo limite para entrada foi excedido.

4 - Não permitir a entrada.

Senão Se data/hora atual < data/hora do filme - 30 minutos Então

5 - Informar ao cliente que a sala do filme ainda não foi liberada para entrada.

6 - Não permitir a entrada.
Senão
7 - Permitir a entrada.

8 - Indicar ao cliente onde fica a sala do filme.
Fim-Se Fim

Qualquer pessoa que seguir esses passos executará a função do recepcionista do cinema. Concorda? É importante notar que o algoritmo tem um fluxo que pode seguir diferentes caminhos dependendo da situação em que se encontra. Outro aspecto interessante é que o algoritmo é finito, uma hora ele tem que acabar! Vejamos outro exemplo, dessa vez com uma representação visual: Como trocar uma lâmpada?

Esta representação gráfica do algoritmo é chamada de fluxograma. Os losangos representam as decisões que são tomadas para executar um ou outro passo. Ao final, a lâmpada tem que estar funcionando.

Algoritmos na computação

Todas as tarefas executadas pelo computador, são baseadas em Algoritmos. Logo, um algoritmo deve também ser bem definido, pois é uma máquina que o executará. Uma calculadora por exemplo, para executar a operação de multiplicação, executa um algoritmo que calcula somas até um determinado número de vezes. Abaixo, um exemplo do algoritmo de multiplicação. Para facilitar, consideremos que os fatores da multiplicação são positivos.

Algoritmo Multiplição de números positivos
Declaração de variáveis
numero1, numero2, resultado, contador: Inteiro
Inicio
ler(numero1)

ler(numero2)

resultado <- 0

contador <- 0

Enquanto contador < numero2 Faça

resultado <- resultado + numero1

contador <- contador + 1
Fim-Enquanto
escrever(resultado)
Fim

Este algoritmo pode ser considerado complexo por iniciantes, mas algoritmos deste tipo, utilizando variáveis e controle de fluxo, é muito comum em programação. Se você quer aprender programação, é necessário entendê-lo, se não conseguiu, leia-o novamente com mais atenção. Para ajudar, vamos definir algumas coisas importantes sobre o algoritmo:

Variável é um espaço alocado na memória para armazenar dados. No algoritmo, foram criadas 4 variáveis.

O símbolo "<-" representa uma atribuição de valor a uma variável. Por exemplo, (resultado <= resultado + numero1) atribui à variável resultado, o valor da própria variável resultado, acrescido do valor da variável numero1.

O comando "ler(numero1)", significa que o algoritmo está lendo o que o usuário digita e armazenando na variável numero1.

O comando Enquanto é uma estrutura de controle de fluxo do tipo "Estrutura de repetição".

O comando escrever(resultado) exibe na tela o valor da variável resultado.

Com o tempo, a leitura e criação de algoritmos passa a ser uma coisa muito simples para um programador. Mas para isso é preciso bastante prática! Então, você pode começar fazendo um exercício, crie algoritmos para as suas tarefas do dia-a-dia a partir do momento em que você acorda. Essa é a melhor forma de aprender a criar algoritmos.

# data[].attributes.attachment_link.description
Embora as vezes não percebemos, utilizamos algoritmos no nosso dia-a-dia e não sabemos. Para a execução de alguma tarefa ou mesmo resolver algum problema, muitas vezes inconscientemente executamos algoritmos. Mas o que é Algoritmo? Algoritmo é simplesmente uma 'receita' para ...

# data[].attributes.attachment_link.readable_text
O que é uma tabela verdade:

Tabela verdade ou tabela de verdade é uma ferramenta de natureza matemática muito utilizada no campo do raciocínio lógico. Seu objetivo é verificar a validade lógica de uma proposição composta (argumento formado por duas ou mais proposições simples).

Exemplos de proposições compostas:

Cada uma das proposições compostas acima são formadas por duas proposições simples unidas pelos conectivos em negrito. Cada proposição simples pode ser verdadeira ou falsa e isso implicará diretamente no valor lógico da proposição composta. Se adotarmos a frase " João é alto e Maria é baixa ", as possíveis valorações dessa afirmação serão:

Se João for alto e Maria for baixa, a frase "João é alto e Maria é baixa" é VERDADEIRA.

Se João for alto e Maria não for baixa, a frase "João é alto e Maria é baixa" é FALSA.

Se João não for alto e Maria for baixa, a frase "João é alto e Maria é baixa" é FALSA.

Se João não for alto e Maria não for baixa, a frase "João é alto e Maria é baixa" é FALSA.

A tabela verdade esquematiza esse mesmo raciocínio (ver o tópico Conjunção abaixo) de forma mais direta. Além disso, as regras da tabela verdade podem ser aplicadas independente do número de proposições na frase.

Como funciona?

Primeiramente, transformar-se as proposições da questão em símbolos utilizados na lógica. A lista de símbolos universalmente usada é:

Em seguida, monta-se uma tabela com todas as possibilidades de valoração de uma proposição composta, substituindo as afirmações por símbolos. Vale esclarecer que nos casos em que existirem mais de duas proposições, elas poderão ser simbolizadas pelas letras r, s, e assim em diante.

Por fim, aplica-se a operação lógica definida pelo conectivo mostrado. Conforme a lista acima, essas operações podem ser: negação, conjunção, disjunção, condicional e bicondicional.

Negação

A negação é simbolizada por ~. A operação lógica da negação é a mais simples e muitas vezes dispensa o uso da tabela verdade. Seguindo o mesmo exemplo, se João é alto (p) dizer que João não é alto (~p) é FALSO, e vice-versa.

Conjunção

A conjunção é simbolizada por ^. O exemplo "João é alto e Maria é baixa" será simbolizado por "p^ q" e a tabela verdade será:

A conjunção sugere uma ideia de acumulação, portanto, se uma das proposições simples for falsa, é impossível que a proposição composta seja verdadeira.

Conclusão: as proposições compostas conjuntivas (que contenham o conectivo e) só serão verdadeiras quando todos os seus elementos forem verdadeiros.

Exemplo:

"Paulo, Renato e Túlio são gentis e Carolina é engraçada."
- Se Paulo, Renato ou Túlio não forem gentis ou Carolina não for engraçada, a proposição será FALSA. É necessário que todas as informações sejam verdadeiras para que a proposição composta seja VERDADEIRA.

Disjunção

A disjunção é simbolizada por v. Trocando o conectivo do exemplo acima para ou teremos "João é alto ou Maria é baixa". Nesse caso, a frase será simbolizada por "p v q" e a tabela verdade será:

A disjunção implica uma ideia de alternância, portanto, basta que uma das proposições simples seja verdadeira para que a composta também seja.

Conclusão: as proposições compostas disjuntivas (que contenham o conectivo ou) só serão falsas quando todos os seus elementos forem falsos.

Exemplo:

"Minha mãe, meu pai ou meu tio me darão um presente."
- Para que a afirmação seja VERDADEIRA, basta que apenas um entre a mãe, pai ou tio dê o presente. A proposição só será FALSA caso nenhum deles o dê.

Condicional

A condicional é simbolizada por →. É expressa pelos conectivos se e então, que interligam as proposições simples em uma relação de causalidade. O exemplo "Se Paulo é carioca, então ele é brasileiro" se torna "p → q" e a tabela verdade será:

As condicionais possuem uma proposição antecedente e outra consequente, separadas pelo conectivo então. Na análise das condicionais, é necessário avaliar quais os casos em que a proposição pode ser possível, considerando a relação de implicação entre a antecedente e a consequente.

Conclusão: As proposições compostas condicionais (que contenham os conectivos se e então) só serão falsas se a primeira proposição for verdadeira e a segunda falsa.

Exemplo:

"Se Paulo é carioca, então ele é brasileiro."
- Para que esta proposição seja considerada VERDADEIRA, é necessário avaliar os casos em que ela é POSSÍVEL. De acordo com a tabela verdade acima, temos:
1. Paulo é carioca / Paulo é brasileiro = POSSÍVEL
2. Paulo é carioca / Paulo não é brasileiro = IMPOSSÍVEL
3. Paulo não é carioca / Paulo é brasileiro = POSSÍVEL
4. Paulo não é carioca / Paulo não é brasileiro = POSSÍVEL

Bicondicional

A bicondicional é simbolizada por ↔. É lida através dos conectivos se e somente se, que interligam as proposições simples em uma relação de equivalência. O exemplo "João fica feliz se e somente se Maria sorri." se torna "p ↔ q" e a tabela verdade será:

As bicondicionais sugerem uma ideia de interdependência. Como o próprio nome demonstra, a bicondicional é composta por duas condicionais: uma que parte de p para q (p →q) e outra no sentido contrário (q → p).

Conclusão: As proposições compostas bicondicionais (que contenham os conectivos se e somente se) só serão verdadeiras quando todas as proposições forem verdadeiras, ou todas as proposições forem falsas.

Exemplo:

"João fica feliz se e somente se Maria sorri."
-Significa dizer que:
1. Se João fica feliz, Maria sorri e se Maria sorri, João fica feliz = VERDADEIRO
2. Se João não fica feliz, Maria não sorri e se Maria não sorri, João não fica feliz = VERDADEIRO
3. Se João fica feliz, Maria não sorri = FALSO
4. Se João não fica feliz, Maria sorri = FALSO

Resumo geral

É comum que os estudiosos da tabela verdade memorizem as conclusões de cada uma das operações lógicas. Para economizar tempo na resolução de questões, tenha sempre em mente que:

1. Proposições Conjuntivas: Só serão verdadeiras quando todos os elementos forem verdadeiros.

2. Proposições Disjuntivas: Só serão falsas quando todos os elementos forem falsos.

3. Proposições Condicionais: Só serão falsas quando a primeira proposição for verdadeira e a segunda falsa.

4. Proposições Bicondicionais: Só serão verdadeiras quando todos os elementos forem verdadeiros, ou todos os elementos forem falsos.

# data[].attributes.attachment_link.title
Tabela Verdade (O que é, Conceito, Regras e Como Funciona)

# data[].attributes.attachment_link.description
O que é uma tabela verdade: Tabela verdade ou tabela de verdade é uma ferramenta de natureza matemática muito utilizada no campo do raciocínio lógico. Seu objetivo é verificar a validade lógica de uma proposição composta (argumento formado por duas ou mais proposições simples).