Introdução a Lógica de Programação
Parte 01
Curso Programador Fullstack / Professor Arthur Giangiarulo
Solucionando problemas
através da computação
A partir da combinação entre a
abordagem estruturada na
programação e o raciocínio lógico
seremos capazes de programar
sistemas e programas capazes de
resolver problemas do mundo real
Solucionando problemas
através da computação
O computador não sabe o que é
certo ou errado. Ele instruído a
tomar decisões lógicas, baseadas em
critérios objetivos, e seguir
instruções ordenadas. Chamamos
isso de solução estruturada.
O que é programar?
Programação é o processo de
escrever, testar e manter o código-
fonte de programas de computador.
O código-fonte é escrito em uma
linguagem de programação, que é
um conjunto formal de instruções
Pensamento Computacional
Aplicar o pensamento
computacional é o primeiro
passo para conseguir instruir o
computador a executar
determinada tarefa.
Pensamento Computacional
O pensamento computacional
possui 4 pilares*:
Decomposição
Reconhecimento de Padrões
Abstrações
Algoritmos
* segundo Brackmann (2017)
Algoritmo
Um conjunto ordenado de
operações a serem realizadas
para resolver um problema
específico. O algoritmo atua
como um plano ou receita
para o programa.
Algoritmo
Vamos praticar?
Vamos montar um algoritmo
para verificar se um número
informado pelo usuário é par
Fluxograma
Os fluxogramas são uma
forma interessante de
representarmos a estrutura de
um algoritmo. Temos a seguir
um fluxograma considerando
o exercício anterior sobre um
número par:
Fluxograma
Ferramentas gratuitas para
montagem de fluxogramas
Bizagi
Lucidchart
Draw.io
Fluxograma
Vamos praticar?
Vamos nos dividir em grupos
em montar fluxogramas de
algoritmos
Fluxograma
Vamos praticar?
Agora vamos montar o código
em no Portugol Studio
Linguagem de Programação
É a ferramenta usada para escrever
o algoritmo de forma que um
computador possa entendê-lo.
Linguagens de programação como
Python, Java, C++ e muitas outras
fornecem uma variedade de
estruturas e comandos que ajudam
o programador a expressar a lógica
do programa de forma eficaz.
Compilador / Interpretador
É a ferramenta que traduz o código-
fonte escrito em uma linguagem de
programação para uma forma que
o computador possa executar
(geralmente código de máquina ou
bytecode).
Compilador / Interpretador
É a ferramenta que traduz o código-
fonte escrito em uma linguagem de
programação para uma forma que
o computador possa executar
(geralmente código de máquina ou
bytecode).
Execução
O código compilado ou
interpretado é então
executado pelo
computador, realizando
as operações definidas
no algoritmo para
produzir um resultado
ou efeito. Band of Brothers
Execução
A estrutura básica de um algoritmo
varia dependendo da linguagem de
programação e do problema que
você está tentando resolver. No
entanto, em termos gerais, um
algoritmo típico contém as
seguintes partes:
Entrada de Dados
Um algoritmo geralmente
começa obtendo as entradas
necessárias. Isso pode ser feito
através de prompts de usuário,
leitura de arquivos ou outra
forma de coleta de dados.
Processamento
Este é o "núcleo" do algoritmo,
onde a maior parte do trabalho
é feita. Esta seção pode conter
loops, condicionais e outros
tipos de controle de fluxo para
manipular as variáveis e chegar
a um resultado.
Saída
Depois de processar as
informações, o próximo passo é
apresentar a saída. Isso pode
ser feito exibindo informações
na tela, escrevendo em um
arquivo ou transmitindo dados
para outro serviço.
Comentários
Embora não façam parte do
algoritmo per se, os comentários
são essenciais para entender o
que cada parte do algoritmo está
fazendo. Eles são especialmente
úteis para futuras revisões ou para
outras pessoas que possam estar
lendo ou modificando seu código.
Palavras reservadas
As palavras reservadas,
também conhecidas como
palavras-chave são parte
integrante da sintaxe da
linguagem.
Exemplo Portugol
Declaração de Variáveis
Antes de qualquer cálculo ou
operação, você geralmente
declara variáveis que serão
usadas ao longo do algoritmo.
Isso estabelece os tipos de
dados e as variáveis que
estarão disponíveis para
armazenar e manipular
informações. Exemplo Portugol
Declaração de Variáveis
Regras:
Evitar uso de números no
início: inteiro 1num
Evitar uso de palavras
reservadas: inteiro, funcao
Evitar caracteres especiais:
@, &, %, #, $...
Exemplo Portugol
Declaração de Variáveis
Boas práticas:
Clareza e Objetividade: n1,
num1 ou numero1?
Simplicidade
CamelCase ou snake_case
Cuidado com maiúsculo e
minúsculo
Convenções da lang
Convenções internacionais Exemplo Portugol
Declaração de Variáveis
As variáveis são armazenadas
fisicamente na memória do
dispositivo.
Declaração de Variáveis
Variável pode ser inicializada sem
valor. O espaço em memória será
reservado porém com valores
nulos.
Exemplo Portugol
Declaração de Variáveis
Variável pode ser inicializada já
com valores atribuídos à ela
Exemplo Portugol
Declaração de Variáveis
Podem ser inicializadas diversas
variáveis ao mesmo tempo,
separando-as por vírgula
Exemplo Portugol
// O código acima funciona?
// O que será apresentado no terminal?
// O que há de errado?
Tipos de Dados
Tipos de Dados
Os tipos de dados Número (number)
determinam o conjunto
de valores que uma
variável pode assumir e
as operações que
Cadeia (cadeia, string)
podem ser realizadas
com ela.
Tipos de Dados
Os tipos de dados Lógico (Boolean - true or false)
determinam o conjunto
de valores que uma
variável pode assumir e
as operações que
Caracter (char)
podem ser realizadas
com ela.
Tipos de Dados Vetor (Lista, array)
Os tipos de dados
determinam o conjunto Matrizes
de valores que uma
variável pode assumir e
as operações que Nulo ou null
podem ser realizadas
com ela. undefined (em algumas
linguagens)
Operadores Aritméticos
Operadores Aritméticos
Os operadores Adição (+)
aritméticos são usados
para realizar operações
matemáticas básicas
em linguagens de
Subtração (-)
programação como
JavaScript.
Operadores Aritméticos
Os operadores Multiplicação (*)
aritméticos são usados
para realizar operações
matemáticas básicas
em linguagens de
Divisão (/)
programação como
JavaScript.
Operadores Aritméticos
Os operadores Resto da Divisão (%)
aritméticos são usados
para realizar operações
matemáticas básicas
em linguagens de
programação como
JavaScript. Exponenciação
Raiz Quadrada
Operadores Aritméticos
Os operadores Incremento (++)
aritméticos são usados
para realizar operações
matemáticas básicas
em linguagens de
programação como
JavaScript.
Operadores Aritméticos
Os operadores Decremento (--)
aritméticos são usados
para realizar operações
matemáticas básicas
em linguagens de
programação como
JavaScript.
Operadores Aritméticos
Os operadores Contração de atribuição
aritméticos são usados com soma
para realizar operações
matemáticas básicas
em linguagens de
programação como
JavaScript.
Constantes
Constantes
Concatenando Textos - Cadeias
Um dos tipos de dados são as
strings, ou cadeias. Podemos
manipular esses dadso através
da concatenação
Concatenando Textos - Cadeias
Utilizando números:
Operadores Relacionais
Operadores Relacionais
Os operadores relacionais Igualdade (==)
são usados para comparar
dois valores e retornar um
valor booleano (true ou false)
com base no resultado dessa
Desigualdade (!=)
comparação. Os operadores
relacionais são fundamentais
para estruturas condicionais
e loops.
Operadores Relacionais
Os operadores relacionais Maior que (>)
são usados para comparar
dois valores e retornar um
valor booleano (true ou false)
com base no resultado dessa
Menor que (<)
comparação. Os operadores
relacionais são fundamentais
para estruturas condicionais
e loops.
Operadores Relacionais
Os operadores relacionais Maior ou igual (>=)
são usados para comparar
dois valores e retornar um
valor booleano (true ou false)
com base no resultado dessa
Menor ou igual (<=)
comparação. Os operadores
relacionais são fundamentais
para estruturas condicionais
e loops.
Operadores Relacionais
Estes operadores são muito utilizados em
estruturas de controle como if, else if, while,
e for para determinar o fluxo do programa. É
importante entender as sutilezas de como
esses operadores funcionam, especialmente
a diferença entre os operadores de igualdade
estrita e igualdade solta, para evitar erros
comuns.
Operadores Relacionais
Vamos praticar!
Vamos utilizar o aplicativo e
montar os fluxogramas dos
algoritmos.
Flowgorithm
Operadores Lógicos
Operadores Lógicos
Operadores Lógicos
Operadores Lógicos
Operadores lógicos são E Lógico (&&)
usados para avaliar múltiplas
condições e gerar um
resultado booleano (true ou
false). Esses operadores são
fundamentais para
estruturas de controle
condicionais e loops em
linguagens de programação.
Operadores Lógicos
Operadores lógicos são OU Lógico (||)
usados para avaliar múltiplas
condições e gerar um
resultado booleano (true ou
false). Esses operadores são
fundamentais para
estruturas de controle
condicionais e loops em
linguagens de programação.
Operadores Lógicos
Operadores lógicos são NÃO Lógico (!)
usados para avaliar múltiplas
condições e gerar um
resultado booleano (true ou
false). Esses operadores são
fundamentais para
estruturas de controle
condicionais e loops em
linguagens de programação.
Operadores Lógicos
???
Operadores Lógicos
True
Operadores Lógicos
True
False
Vamos praticar!
Trabalho sobre as linguagens
de programação mais
populares.