Introdução

A programação é a arte de transformar ideias em soluções que possam ser executadas por máquinas. Assim como qualquer habilidade, ela pode ser aprendida e desenvolvida, para isso é de suma importância a compreensão de alguns conceitos essenciais. Confira nesse unidade alguns termos importantes da área.


Lógica

A Lógica é o estudo e a aplicação de regras para o raciocínio estruturado, baseado em informações iniciais utilizadas para a busca de conclusões realistas e verdadeiras. Investigando os argumentos e suas estruturas, a lógica diferencia os argumentos corretos dos incorretos. A palavra "lógica" deriva do grego logos, que significa "razão". Quando falamos algo para alguém, pressupomos que o que estamos dizendo possui lógica, ou seja, faz sentido e é uma argumentação racional.


Pensamento Estruturado

O Pensamento Estruturado é uma metodologia que pressupõe a aplicação de técnicas de gerenciamento para a resolução de problemas complexos. Ela consiste em dividir, analisar, priorizar, resolver e avaliar problemas grandes, transformando-os em partes menores e mais gerenciáveis. Em resumo, um problema complexo é decomposto em etapas menores para facilitar o gerenciamento. Após essa divisão, são realizadas análises e priorizações das tarefas mais urgentes ou importantes. As partes são então resolvidas, e as soluções são avaliadas para, posteriormente, serem implementadas ou aplicadas à resolução geral.


Algoritmo

Um algoritmo consiste em passos lógicos e ordenados realizados para resolver um problema ou alcançar um objetivo. Por exemplo, uma receita de bolo é um algoritmo, pois apresenta uma sequência de etapas que devem ser seguidas com o intuito de atingir um objetivo: fazer o bolo.

Podemos fazer a seguinte classificação de um algoritmo:

Computacionais:

São os algoritmos cuja sequência de passos podem ser interpretadas e executadas por um computador.

Exemplo: Um software/programa de computador (word, excel, etc).

NÃO Computacionais:

Algoritmos cuja sequência de passos não podem ser executadas por um computador.

Exemplo: Encher um copo com água e beber a água.

Componentes básicos de um algoritmo computacional:


Dados:

São a entrada, os valores (números, nomes, etc) usados para "alimentar" o código e resolver o problema ou devolver um valor.

Código:

São as instruções usadas para manipular/processar os dados para chegar a uma resolução ou valor final (escritos quase sempre um uma linguagem de programação)


Formas de Representação

Quando vamos elaborar um algoritmo computacional, precisamos descrever quais serão os dados que vamos utilizar e como vamos manipula-los (a chamada declaração de variáveis e o código em seguida). Essa descrição pode ser feita de diversas formas diferentes, seguindo diferentes raciocínios, a depender de quem está criando o algoritmo.

Linguagem Natural


Amplamente conhecida como Portugol, pseudocódigo ou português estruturado, se baseia na construção de algoritmos em linguagem natural (no nosso caso, o português).

Exemplo: Vamos classificar a idade de uma pessoa em jovem ou adulta:


PROGRAMA

{

funcao inicio

{

inteiro idade

escreva("Informe sua idade: ")

leia(idade)

se (idade < 21)

{

escreva("Você é jovem!")

}

senao

{

escreva("Você é adulto!")

}

}

}

Fluxograma


São diversas as formas geométricas usadas na construção de um fluxograma, nosso foco será somente a compreensão da lógica pressuposta por esse tipo de representação.

Nessa abordagem, o algoritmo é construído graficamente, com cada um dos seus passos sendo representado individualmente.


Exemplo: Vejamos o algoritmo anterior em fluxograma:




(imagem grande para melhor visualização em telas menores)

Linguagem de Programação


Uma linguagem de programação é um sistema formal de comunicação utilizado para instruir o computador a realizar determinadas tarefas. Com ela, podemos estruturar algoritmos de maneira que o computador consiga interpretar e executar essas instruções, manipulando e processando dados de forma eficiente.

Algumas das linguagens de programação mais utilizadas são:

Python

Muito conhecida por sua adaptabilidade e simplicidade. Utilizada principalmente para o aprendizado de máquina e criação de automações. Conta com uma grande comunidade que oferece suporte aos usuários.

JAVA

Amplamente utilizada para construção de sistemas multi-plataforma, sistemas bancários e comerciais, aplicativos Android e aplicações complexas. Ficando atrás somente do Python, o JAVA é uma das linguagens mais utilizadas no mundo!

JavaScript

Utilizada majoritariamente para desenvolvimento WEB, na construção de elementos interativos em sites e páginas da internet. Com o Node.js podemos utilizar o JavaScript no backend também, se tornando uma linguagem muito versátil.

C++

Essa linguagem é muito utilizada na construção de sistemas complexos, como sistemas operacionais (windows, macOS e IOS, linux) por possuir um alto desempenho. Derivada do C, uma das primeiras linguagens populares do mundo, o C++ é considerada uma liguagem muito potente por sua alta capacidade gerenciamento de hardware.

Tipos de Dados

Os dados são a entrada, em outras palavras, são a "matéria prima" utilizada nos programas para que as ações possam ser executadas. Para o correto processamento dos dados, devemos classifica-los de acordo com suas características e tamanho, pensando antecipadamente quais serão os dados que vamos utilizar durante a execução do nosso algoritmo e quais podem ser os resultados do processamento.

Para armazenar dados de maneira adequada e utilizá-los posteriormente, é essencial classificá-los com base em suas características ou valores. Esse processo envolve a utilização de tipos de dados, que são categorias que determinam o tipo de valor que uma variável pode armazenar, como inteiros, caracteres, strings ou números com ponto flutuante.

Classificação -


Real:

São os dados que pertencem ao conjunto dos números reais R {1, √2, 1/2, -4, 0,3...}

Inteiro:

Todo dado pertencente ao conjunto dos números inteiros Z {-3, -2, -1, 0, 1, 2}

Caractere:

São as informações compostas por um conjunto de caracteres alfanuméricos ou caracteres especiais

Exemplo: A...Z, a...z; *&#@$%?! etc...


Lógico:

Dados que podem assumir somente dois valores: verdadeiro ou falso

Variáveis e Constantes

Os dados de um algoritmo pode ser classificado em dois tipos: variáveis e constantes.

Variáveis:

São espaços alocados na memória cujo valor pode ser alterado durante a execução do programa.

Exemplo: Em algumas linguagens de programação podemos declarar uma variável assim: IDADE = 25, mais tarde, durante a execução do programa, o valor pode ser alterado para IDADE = 26.


Constantes:

São parecidas com as variáveis, porém seu valor não pode ser alterado posteriormente. Depois de terem seu valor declarado, esse permanece o mesmo durante a execução do programa.

Exemplo: Uma constante pode ser definida assim: CONST FLOAT PI = 3,14, esse valor não poderá ser modificado na constante de tipo FLOAT chamada PI.

Identificadores

São os nome utilizados para identificar dados variáveis ou constantes dentro de um algoritmo ou programa de computador. Mas, para que os identificadores sejam criados corretamente, devemos seguir algumas regras:

Começar com uma letra maiúscula ou minúscula ou um sublinhado ( _ ):

O nome deve obrigatoriamente começar com um letra maiúscula ou minúsculaou um sublinhado ( _ ). Ele não pode começar com um número.

Exemplos:

Válido: idade, _total

Inválido: 2contas

Usar caracteres alfanúmericos e sublinhados:

O nome pode conter letras, números e sublinhados, mas não pode conter caracteres especiais ($, &, @...) ou espaços.

Exemplos:

Válido: nome_cliente, saldoFinal

Inválido: nome-cliente, salário$

Case-sensitive:

Em muitas linguagens os identificadores são case-sensitive, ou seja, variavel e Variavel seriam identificadores diferentes.

Evitar palavras reservadas:

Não se pode usar palavras-chave ou reservadas da linguagem de programação como identificadores. Palavras como IF, ELSE, WHILE... são exemplos que não podem ser usadas.

Seguir convenções de nomeclaturas:

Além das regras básicas, é sempre recomendável seguir convenções como:

Para variáveis é recomendado usar camelCase (primeira palavra em letras minúsculas e as seguintes com inicial maiúscula) ou snake_case (palavras em letras minúsculas separar por sublinhado).
Para constantes é recomendado usar letras maiúsculas separadas por sublinhado, TAXA_DE_JUROS é um bom exemplo.

Escolher nomes significativos:

O nome deve descrever o propósito da variável ou constante de forma clara, para facilitar a leitura e manutenção do código posteriormente.

Exemplos:

Válido: totalVendas, NOME_PRODUTO_1

Inválido: x, a

Operadores

Operadores são os símbolos usados para representar as mais variadas operações que podem ser executas por um algoritmo computacional. Nas linguagens de programação alguns operadores que conhecemos, como X de multiplicação, possui uma representação diferente, mas exercendo a mesma função de multiplicar valores. Veremos também que são adicionados operadores lógicos, exercendo uma função diferente do que conhecemos. Veja as caracteristicas de cada tipo de operador:

Matemáticos

Em linguagens de programação, alguns operadores que aprendemos na notação matemática tradicional são representados de maneira diferente, veja:


Operação Símbolo
Adição +
Subtração -
Multiplicação *
Resto da divisão inteira % (mod)
Divisão inteira / (div)
Exponenciação mat.potencia (base, expoente)
Raiz quadrada mat.raiz (base, expoente)

Relacionais:

Estes operadores são usados para comparar strings de caractere ou número. Os valores podem retornar verdadeiro ou falso, confira:


Operação Símbolo
Igualdade ==
Diferença !=
Maior >
Maior ou igual >=
Menor <
Menor ou igual <=

Lógicos:

Estes operadores servem para combinar resultados de expressões, retornando seu valor final em verdadeiro ou falso, veja:


Operação Símbolo
Conjunção (e lógico) && ou AND
Disjunção (ou lógico) || ou OR
Negação (não lógico) ! ou NOT

Operadores Lógicos

Operadores lógicos são usados para realizar comparações entre valores ou expressões, tendo como resultado somente dois valores: verdadeiro ou falso. Eles são essenciais na tomada de decisão e criação de condições no código. Confira a seguir os operadores lógicos mais usados:

Operador lógico e (&& ou AND) -

Retorna verdadeiro somente se as duas condições forem verdadeiras:


A B (A)&&(B)
Verdadeiro Verdadeiro Verdadeiro
Verdadeiro Falso Falso
Falso Verdadeiro Falso
Falso Falso Falso

Exemplo: (5 > 3)&&(2 < 4) retorna verdadeiro

Operador lógico ou (|| ou OR) -

Retorna verdadeiro se ao menos uma das condições forem verdadeiras:


A B (A)||(B)
Verdadeiro Verdadeiro Verdadeiro
Verdadeiro Falso Verdadeiro
Falso Verdadeiro Verdadeiro
Falso Falso Falso

Exemplo: (5 > 3)||(2 > 4) retorna verdadeiro

Operador lógico nao (! ou NOT) -

Inverte o valor lógico de uma condição, tornado verdadeiro o que era falso e vice-versa:


A !(A)
Verdadeiro Falso
Falso Verdadeiro

Exemplo: !(5 > 3) retorna falso

Operador lógico de atribuição ( = ) -

Para atribuirmos um valor à uma variável/constante em um algoritmo, utilizamos o operador de atribuição, representado pelo sinal de igual:

Exemplo: clientes = 30; a variável clientes agora possui o valor 30 armazenado nela

Final

Bem, chegamos ao final da unidade, agradeço muito por ter lido até aqui, essa unidade foi desenvolvida tendo como base os materiais disponibilizados pelo professor Alfredo Neto e alguns materiais online para pequisa e complemento das informações. Caso tenha algum comentário ou recomendação, peço para que entre em contato, é de suma importância receber feedbacks dos leitores. Muito obrigado e até a próxima unidade!