DEV Community 👩‍💻👨‍💻

Joao Carlos Sousa do Vale
Joao Carlos Sousa do Vale

Posted on • Updated on

Conceitos Iniciais #01

Introdução

A arte de programar se baseia na construção de programas, que por sua vez, são algoritmos.

Entender o que um algoritmo faz, geralmente não é algo de grande complexidade, mas a forma no qual foi construído é o segredo para se tornar um bom desenvolvedor de software e só aprende a escrever programas quem pratica.

imagem 1

Para que possamos entender melhor estes conceitos, temos que saber o que é um algoritmo, e uma melhor definição do que é um programa.

O que é um algoritmo?

Um algoritmo é uma sequência de passos finitos com o objetivo de solucionar um problema, aplicando a técnica da lógica de programação. Por sua vez, a lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.

Observe as qualidades de um algoritmo: ele deve possuir uma quantidade finita de passos, ou seja, ter início e fim, e executado de forma sequencial.

Dado o seguinte problema: gostaria de saber como posso ir ao cinema mais próximo saindo de casa?

Você é capaz de resolvê-lo? Descrever os passos para chegar ao cinema mais próximo saindo de sua casa?

Se você respondeu que sim, isso significa que você consegue escrever um algoritmo para este problema. Parabéns!

Provavelmente você tem mais de uma forma de resolvê-lo, por exemplo, você pode pegar um determinado ônibus para ir ao cinema, ou pode ir caminhando, entre outras opções como solicitar carona à um amigo e até mesmo se deslocar em um transporte particular como um carro ou bicicleta!

É comum a solução de um problema (ir ao cinema) ter diversos caminhos ou passos (ir de carro, caminhando, carona, entre outras formas). Isto implica que um algoritmo pode ser escrito de diversas formas e quanto mais experiente você se tornar, mais eficientes serão seus algoritmos.

Vamos explorar outros algoritmos do nosso dia-a-dia.

Veja o exemplo de um algoritmo para resolver o problema de fritar um ovo - Algoritmo 01.

Algoritmo 01 - Fritar um ovo
1 - pegar frigideira, ovo, óleo e sal
2 - colocar óleo na frigideira
3 - acender o fogo
4 - colocar a frigideira no fogo
5 - esperar o óleo esquentar
6 - colocar o ovo
7 - retirar quando pronto

Cada linha do algoritmo é chamado de instrução, o Algoritmo 01 - Fritar um ovo o algoritmo utiliza um conjunto finito e sequencial de sete instruções. Um algoritmo é um conjunto de instruções.

Outros exemplos de algoritmos simples:

Algoritmo 02 - Trocar uma lâmpada
1 - se (lâmpada estiver fora de alcance)

pegar a escada;

2 - pegar a lâmpada;
3 - se (lâmpada estiver quente)

pegar pano;

4 - Tirar lâmpada queimada;
5 - Colocar lâmpada boa;

No Algoritmo 02 - Trocar uma lâmpada, temos instruções mais refinadas, observe a linha 03, o ato de “pegar o pano” será executado somente se a “lâmpada estiver quente”. Temos uma instrução condicional!

Algoritmo 03 - Preparar um bolo simples
1 - pegar os ingredientes;
2 - se (roupa branca)

colocar avental;

3 - se (tiver batedeira)

bater os ingredientes na batedeira;

senão

bater os ingredientes à mão;

4 - colocar a massa na forma;
5 - colocar a forma no forno;
6 - aguardar o tempo necessário;
7 - retirar o bolo;

O que acontece se seguirmos sempre os mesmos passos do Algoritmo 03 - Preparar um bolo simples? Teremos ao final de cada execução do algoritmo um novo bolo.

Um algoritmo é dito determinístico, se para um mesmo conjunto de entrada sempre teremos os mesmos valores de saída.

Finalmente, observe este algoritmo representando o jogo da forca:

Algoritmo 04 - Jogo da forca
1 - escolher a palavra;
2 - montar o diagrama do jogo;
3 - enquanto ((houver lacunas vazias) e (corpo incompleto))faça

se (acertar uma letra)

escrever na lacuna correspondente;

senão

desenhar uma parte do corpo na forca;

A instrução na linha 03 do Algoritmo 04- Jogo da forca, é denominada uma instrução de repetição, alguns passos são executados repetidamente enquanto determinadas condições permanecem satisfeitas. Neste caso, enquanto houver lacunas vazias e o corpo da figura do jogo da forca estiver incompleto, os jogadores continuarão jogando.

Agora é a sua vez!
Era uma vez um fazendeiro que foi ao mercado e comprou um lobo, um carneiro e uma alface. No caminho para casa, o fazendeiro chegou à margem de um rio e arrendou um barco. Mas, na travessia do rio por barco, o agricultor poderia levar apenas a si mesmo e uma única de suas compras — o lobo, o carneiro, ou a alface.

Se fossem deixados sozinhos em uma mesma margem, o lobo comeria o carneiro e o carneiro comeria a alface.

O desafio do fazendeiro é atravessar a si mesmo e as suas compras para a margem oposta do rio, deixando cada compra intacta. Crie um algoritmo para resolver este problema!

Agora sabemos que um algoritmo é um conjunto sequencial de instruções. As instruções podem ser simples, condicionais ou de repetição, e os algoritmos são construídos para resolver um determinado problema e de forma determinística.

Nosso próximo objetivo é aprender criar algoritmos (arte de programar) para serem executados em computadores ou dispositivos com capacidade de processamento, como nossos celulares, video games, eletrodomésticos inteligentes, entre outros dispositivos.

O que é programar?

Programar é o ato de escrever programas de computador, hoje aplicados a diversos dispositivos programáveis ou computacionais, como celulares por exemplo.

Um programa de computador é um algoritmo escrito através de uma linguagem de programação (computador), como Java, C++, Python, entre outros. Mas independente da linguagem utilizada, o mais importante de um programa é a lógica utilizada na resolução do problema. Os programas são os softwares ou aplicativos que você utiliza na sua máquina.

Na construção de algoritmos é importante você identificar as informações que você utilizará como entrada, as transformações ou operações utilizadas para resolver o problema e finalmente a saída ou o estado final esperado depois de sua execução. Esta é a representação de um algoritmo ou de um programa de computador.

imagem 2

No Algoritmo 05 - Somar dois números, temos como dados de entrada os dois números que queremos somar, como operação a soma utilizando os números de entrada e como saída o resultado da soma.

Algoritmo 05 - Somar dois números
1 - leia o primeiro número
2 - leia o segundo número
3 - realize a soma do primeiro e do segundo número
4 - apresente o resultado da soma

Nota importante:nem todos os algoritmos exigem dados de entrada como também não são obrigados a gerarem dados de saída. Mas independente da geração de dados de saída, existe diferença no ambiente em que ele executou entre o “antes da execução” e o “depois da execução”, o que chamamos mudança de estado. Veja por exemplo um programa que representa um relógio, ele não recebe nenhuma informação como entrada mas a cada minuto apresenta na tela uma informação diferente, atualizando as informações de horário (modificando o estado “antes” e “depois”).

E a linguagem de programação?

Uma linguagem de programação é a linguagem utilizada pelo computador para executar as instruções de um algoritmo.

Até agora, escrevemos nossos algoritmos utilizando a nossa linguagem natural, o português, mas estes comandos não são entendíveis pelo computador. Por exemplo, utilizando o Algoritmo 05 - Somar dois números, pedir para o computador ler um número (instrução leia o primeiro número), não fará com que seja lido do teclado da máquina um valor numérico. É necessário escrever esta instrução usando uma linguagem de programação, no nosso caso, usando Python.

De forma simplificada, escrevemos nossos programas usando a linguagem Python, estes programas contém instruções que são comandos para o sistema operacional da máquina que deverão ser executados e poderão acessar recursos como por exemplo o teclado, o monitor, acessar a Internet, entre outros.

imagem 3

Da mesma forma que uma linguagem natural, uma linguagem de programação possui seu vocabulário (palavras reservadas) e suas regras de escrita (sintaxe) de instruções. Felizmente a quantidade de palavras reservadas e de regras de sintaxe são bem menores do que as utilizadas na linguagem natural.

Nossa meta é aprender a sintaxe da linguagem Python e escrever programas que possam ser executados pelo computador.

Linguagem Python

A linguagem Python é uma linguagem de programação interpretada, isto significa que você precisa instalar o interpretador Python para que seus programas possam ser executados na sua máquina (Instalando Python).

O nome não é originário da cobra python, mas tem origem no grupo de comédia britânico Monty Python. É uma linguagem de fácil leitura, em inglês, e possui um shell interativo que permite a criação e execução de programas.

Python é bastante adotado como primeira linguagem a ser usada para se aprender lógica de programação, principalmente pela sua simplicidade. Compare um programa Python para imprimir uma mensagem na tela com um programa escrito em Java, por exemplo.

Programa 01.a - Escrever uma mensagem na tela (Python)

print('ola, meu primeiro programa')
Enter fullscreen mode Exit fullscreen mode

Programa 01.b - Escrever uma mensagem na tela (Java)

public class MedianStream {
    public static void main(String[] args) {
        System.out.print("ola, meu primeiro programa");</code>
    }
}
Enter fullscreen mode Exit fullscreen mode

Fazer a leitura do Programa 01.a em Python é mais intuitivo do que o mesmo algoritmo escrito em Java, no Programa 01.b.

Podemos usar Python para criar jogos, construir aplicações web, resolver problemas de negócio, automatizar atividades do dia-a-dia e em diversos campos científicos. Muitas aplicações de inteligência artificial e de ciência de dados, usam Python como linguagem principal.

Algumas dicas para os futuros desenvolvedores

Mantenha-se motivado e se orgulhe com a oportunidade de criar algo do zero, usando lógica para desenvolver programas que podem ser executados pelo computador.

Quando você estiver se sentindo frustrado por não estar conseguindo resolver um problema, tente quebrar o problema em pequenos pedaços e resolver cada pedacinho primeiro.
Caso você continue bloqueado, talvez seja a hora de dar uma relaxada e depois voltar a trabalhar na resolução do problema.

Até a próxima.

Top comments (0)

👋 New to DEV?

Head over to our Welcome Thread and tell us what you're working on!