Logica de Progamacao
Logica de Progamacao
Logica de Progamacao
PROGRAMAÇÃO
Lógica de Programação - Desafio 1
SUMÁRIO
PARA COMEÇAR .................................................................................................................................. 3
SITUAÇÃO-PROBLEMA...................................................................................................................... 4
DESAFIO 1............................................................................................................................................... 6
O QUE É LÓGICA?................................................................................................................................ 7
LÓGICA DE PROGRAMAÇÃO........................................................................................................... 8
SOFTWARES........................................................................................................................................... 9
APLICATIVOS.......................................................................................................................................10
SISTEMAS OPERACIONAIS.............................................................................................................12
DRIVERS.................................................................................................................................................16
ALGORITMOS......................................................................................................................................18
DESCRIÇÃO NARRATIVA.................................................................................................................20
FLUXOGRAMA.....................................................................................................................................20
PSEUDOCÓDIGOS.............................................................................................................................24
LINGUAGEM DE PROGRAMAÇÃO...............................................................................................25
NESTE DESAFIO..................................................................................................................................27
DESAFIO 2.............................................................................................................................................28
TÉCNICAS DE PROGRAMAÇÃO....................................................................................................28
TIPOS DE DADOS...............................................................................................................................29
VARIÁVEIS E CONSTANTES.............................................................................................................32
ESTRUTURAS DE DECISÃO.............................................................................................................34
ESTRUTURAS DE REPETIÇÃO........................................................................................................40
OPERADORES......................................................................................................................................44
NESTE DESAFIO..................................................................................................................................46
DESAFIO 3.............................................................................................................................................47
LINGUAGENS DE PROGRAMAÇÃO.............................................................................................47
SEMÂNTICA..........................................................................................................................................48
SINTAXE.................................................................................................................................................50
INDENTAÇÃO DE CÓDIGO.............................................................................................................51
CARACTERÍSTICAS DAS LINGUAGENS......................................................................................52
TIPOS DE LINGUAGENS...................................................................................................................53
NÍVEIS DE LINGUAGENS DE PROGRAMAÇÃO........................................................................55
IMPLEMENTAÇÃO..............................................................................................................................56
FERRAMENTAS DE DESENVOLVIMENTO..................................................................................57
CONVERSÃO DE LINGUAGENS.....................................................................................................60
APLICAÇÕES DE PROGRAMAÇÃO..............................................................................................61
FERRAMENTAS PARA DESENVOLVIMENTO JAVASCRIPT...................................................63
CRIANDO NOSSO PROJETO..........................................................................................................74
NESTE DESAFIO..................................................................................................................................91
PARA CONCLUIR.................................................................................................................................92
REFERÊNCIAS......................................................................................................................................93
CRÉDITOS..............................................................................................................................................95
PARA COMEÇAR
Esta etapa aborda conceitos relacionados à Lógica de Programação
Esse estudo será necessário para que você resolva a situação-problema a seguir.
Então, avance para conhecê-la.
SITUAÇÃO-PROBLEMA
A empresa Savinis, focada no desenvolvimento de software de alta performance,
contratou você para realizar o desenvolvimento de um sistema de controle de
estoque de peça, que será disponibilizado para os funcionários da empresa
contratante, o que, até então, era realizado manualmente.
Esse sistema terá como função principal a de controlar a entrada e saída de peças do
estoque, além de atender aos seguintes requisitos:
Desafio 1
Descrever a sequência de passos lógicos necessários para criação do sistema
solicitado pela empresa.
Desafio 2
Aplicar técnicas de programação e ferramentas para desenvolvimento do código.
Desafio 3
Aplicar linguagem de programação para implementação do sistema.
DESAFIO 1
O QUE É LÓGICA?
A lógica é o campo de estudo que utiliza princípios e
conhecimentos para se atingir um raciocínio correto.
A utilização do raciocínio lógico é tão comum e natural ao ser humano que nem
percebemos.
Quais são os passos necessários para passar por uma porta que está trancada?
A ação de abrir uma porta trancada parece simples, mas envolve uma sequência
lógica de passos. Se você tentar girar a maçaneta, antes de destrancar a porta com a
chave, o resultado não será o mesmo.
Podemos citar várias outras situações cotidianas que envolvem raciocínio lógico,
como tomar banho, cozinhar e dirigir um carro.
Você sabia?
O filósofo grego Aristóteles (384–322 a.C.) foi quem iniciou os estudos
da Lógica. O conjunto de sua obra é conhecida como "lógica aristotélica"
?
ou "lógica clássica".
LÓGICA DE PROGRAMAÇÃO
A lógica de programação surgiu a partir dos princípios da lógica e consiste em uma
técnica de encadeamento do pensamento para atingir um determinado objetivo ou
solucionar um problema.
Podemos dizer que a lógica é a primeira etapa da programação em si. Isso quer dizer
que, antes de começar a escrever o código, você deve pensar quais as questões que
devem ser resolvidas, estudar quais as soluções possíveis e planejar todas as etapas
da solução.
Para isso, é necessário utilizar uma sequência lógica, que é um conjunto de passos a
serem executados.
Saiba que uma das ações mais comuns de um(a) programador(a) é buscar as
melhores soluções e encontrar os algoritmos mais adequados para a criação de
programas de computadores, soluções e serviços.
SOFTWARES
Você viu que um software é um agrupamento
de instruções ou comandos escritos em
uma linguagem de programação que são
lidos pelo computador e possibilitam seu
funcionamento.
Isso significa que os códigos transcritos por esse tipo de programa são fundamentais
para iniciar e executar os hardwares e seus recursos, fornecendo informações
idênticas sempre que o dispositivo for ligado.
Software é a parte lógica do computador, ou seja, são os programas que fazem com
que a máquina funcione, como aplicativos e sistemas operacionais, desenvolvidos
por meio de códigos e linguagem de programação.
TIPOS DE SOFTWARES
Programação:
São softwares que, a partir de linguagens de programação, como Java, Python, Swift,
são utilizados para o desenvolvimento de outros programas.
Sistema:
Softwares de sistema ou de base permitem a execução de outros softwares, como
os de aplicação e os de programação. São responsáveis pela comunicação entre o
computador, que só entende linguagem de máquina, e o usuário, ou seja, interpreta
nossas ações e as transforma em códigos binários. Sistemas operacionais, como
Windows, MacOS, Linux, iOS, Android são exemplos de softwares de sistema.
Aplicação:
Os softwares de aplicação realizam ações específicas solicitadas pelos usuários.
Trata-se deprogramas que são executados dentro do sistema operacional. Word,
Excel, paint, bloco de notas, calculadora e jogos são exemplos deste tipo de software.
APLICATIVOS
Aplicativos ou App são softwares presentes em
dispositivos móveis, como smartphones, tablets,
smarts TVs, relógios inteligentes, entre outros, que
desempenham vários tipos de tarefas.
?
Você sabia?
Qual a diferença entre um celular e um smartphone?
TIPOS DE APLICATIVOS
Nativos
Web Apps
Híbridos
São uma mistura de aplicativo nativo e Web App desenvolvido para ser reconhecido
por qualquer sistema operacional. Também são programados por meio da linguagem
HTML5, CSS e JavaScript, assim como o site mobile, mas seu código é alocado
dentro de um container, integrando as funcionalidades do dispositivo móvel, o que
proporciona uma experiência melhor ao usuário do que os Web Apps. Podem ser
baixados nas lojas de aplicativos e o acesso à internet pode ou não ser necessário.
O objetivo desses aplicativos é apresentar uma única versão para vários sistemas.
SISTEMAS OPERACIONAIS
O usuário interage com a interface do SO, mas não precisa gerenciar os recursos.
SHELL
É a interface de interação com o usuário, ou seja, onde ele realiza a inserção de dados
para solicitar as tarefas e ações desejadas.
KERNELL
Realiza o papel de interação entre o hardware e o software.
HARDWARE
São os elementos físicos, como os componentes eletrônicos.
GUI
Características da interface gráfica do usuário:
CLI
Características da interface por linha de
comando:
CATEGORIAS DE SO
Windows (Microsoft)
MacOS (Apple)
A Apple também oferece uma versão para servidores, chamada macOS Server
(anteriormente Mac OS X Server e OS X Server).
Linux
É um sistema operacional de código aberto, o que significa que pode ser modificado
e distribuído por qualquer pessoa. Apesar de gratuito, não é muito usado em
computadores domésticos porque exige um certo grau de conhecimento para
instalação. Em contrapartida, o Linux é hegemônico entre os servidores de empresas,
pois é fácil de personalizar.
DRIVERS
Os drivers são softwares ou pequenos elementos
de softwares que ligam o SO aos dispositivos
físicos do computador.
!
Importante!
Compreender as diferenças entre hardware, software e driver
e os conceitos apresentados irão permitir a você, programador
ou programadora, o melhor gerenciamento dos recursos e da
manipulação dos itens necessários para você desenvolver o seu
projeto. Isso fará com que você compreenda, ao desenvolver um
código lógico, como o seu computador estará processando e
compartilhando essa informação.
ALGORITMOS
Conforme você viu, o desenvolvimento de qualquer software é realizado por meio
dos algoritmos, descrevendo uma sequência de passos lógicos necessários para a
execução de uma tarefa que consiste em:
É importante salientar que uma tarefa pode ser composta de várias pequenas ações
e cada uma dessas ações tem seu próprio conjunto de instruções ou algoritmo a
ser seguido.
NOTAS
• de 7 a 10 – aprovado.
• abaixo de 7 – reprovado.
Para resolução desse problema, serão necessários dois algoritmos, sendo que cada
um resolverá um pequeno problema da situação.
1º ALGORITMO
Calculará a média do aluno. Ele deve possuir como entrada as 3 notas obtidas
durante o semestre. O processamento deverá realizar o cálculo da média, somando
as notas e dividindo o resultado por 3. Por fim, a saída (ou resultado) será a média
obtida pelo aluno.
2º ALGORITMO
Verificará a situação final do aluno. Para isso, a entrada deste algoritmo será a
média obtida com o primeiro algoritmo. O processamento será a verificação
dessa média, para descobrir se foi maior ou igual a 7 ou menor que 7. Com essa
verificação, é possível definir a saída deste algoritmo, informando se o aluno foi
aprovado ou não.
A representação dos algoritmos pode ser realizada por meio de descrição narrativa,
fluxograma e pseudocódigos.
DESCRIÇÃO NARRATIVA
Utiliza palavras para expressar os algoritmos
e, por isso, é exclusivamente usada para
fins didáticos. O algoritmo apresentado
para fazer café é um exemplo desse tipo de
representação.
FLUXOGRAMA
Fluxograma é um tipo de diagrama ou uma representação gráfica que descreve as
diferentes ações a serem realizadas durante a execução de um algoritmo.
Por exemplo: não temos a água para realizar o café, o que fazer?
Perceba que o fluxograma mostra o passo a passo de cada ação. Primeiro, solicita-se
as 3 notas, utilizando um nome genérico, como notas 1, 2 e 3. Depois, é realizado
um processo para calcular a média [média = (nota 1 + nota 2 + nota 3) / 3], cujo
resultado fornece a média do aluno.
TESTANDO NA PRÁTICA
1. Nota 1: 7
2. Nota 2: 8
3. Nota 3: 8
Dica!
Há vários programas gratuitos na internet, com opções online e offline
para o desenvolvimento de fluxogramas. Conheça alguns:
E então? Qual foi a média desse aluno? Ele foi aprovado ou reprovado?
Caso você tenha encontrado outro valor, refaça os cálculos e consulte o fluxograma
abaixo.
PSEUDOCÓDIGOS
É uma forma de representação de algoritmo
semelhante à linguagem de programação,
porém utilizando palavras no idioma
escolhido.
1. Identificação do algoritmo.
2. Declaração das variantes.
3. Corpo do algoritmo.
1. algoritmo "CalcularMédia"
2. var
3. nota1, nota2, nota3, media: real
4. início
5. escrever ("digite a primeira nota:")
6. ler (nota1)
7. escrever ("digite a segunda nota:")
8. ler (nota2)
9. escrever ("digite a terceira nota:")
10. ler (nota3)
11. media<-(nota1+nota2+nota3) /3
12. escrever (media)
13. se media>=7 então
14. escrever ("Aprovado")
15. senão
16. escrever ("Reprovado")
17. fimse
18. fim
Você percebeu que foram utilizados alguns termos e símbolos específicos para
representação dos algoritmos em pseudocódigos. Conheça melhor cada um deles:
Algoritmo
Comando que define o nome do programa. Deve vir entre aspas duplas.
Var
Comando que especifica a área em que as variáveis serão declaradas.
Início
Comando que informa o início do programa. É nesse bloco que ficarão os comandos
e a lógica que será utilizada para criar o algoritmo.
Escrever
Comando que escreve na tela alguma informação ao usuário.
Ler
Comando que lê o que foi digitado pelo usuário.
Fim
Comando que informa que é o final do algoritmo.
LINGUAGEM DE PROGRAMAÇÃO
É um método padronizado, formado por um
conjunto de regras sintáticas e semânticas,
símbolos e códigos que torna possível a
execução do algoritmo.
Por ora, conheça como o exemplo do cálculo da média ficou após implementado
na linguagem JavaScript.
1. <script>
2.
3. n1 = parseFloat(prompt("digite a primeira nota"));
4. n2 = parseFloat(prompt("digite a segunda nota"));
5. n3 = parseFloat(prompt("digite a terceira nota"));
6. media = (n1 + n2 + n3) / 3;
7.
8. if(media >= 7)
9. alert("Aprovado");
10. else
11. alert("Reprovado");
12.
13. </script>
NESTE DESAFIO...
LÓGICA DE PROGRAMAÇÃO| DESAFIO 1
NO PRÓXIMO DESAFIO...
DESAFIO 2
No Desafio 1, você estudou como descrever e representar a sequência de passos
lógicos ou algoritmos necessários para a execução de uma tarefa em qualquer
sistema, seja um software, aplicativo, site etc.
TÉCNICAS DE PROGRAMAÇÃO
Agora que já sabemos o que é um algoritmo, precisamos conhecer algumas técnicas
de programação.
TIPOS DE DADOS
Os dados podem ser de vários tipos, como caracteres ou números. Isso varia de
acordo com o sistema operacional e a linguagem de programação usada.
string
O dado do tipo "string" armazena caracteres e é muito comum nas linguagens
de programação. Porém, há diferenças: algumas linguagens de programação são
case-sensitive, isto é, diferenciam caracteres maiúsculos de minúsculos, como a
linguagem C, o JavaScript e o PHP. Outras são case insensitive, como Pascal e Delphi,
que não diferenciam maiúsculas de minúsculas.
number
Para armazenar números, o JavaScript, por exemplo, usa o dado do tipo "number"
para números menores que 253 e do tipo "BigInt" para números maiores que 253.
No caso do PHP, o dado do tipo "int" armazena os números naturais e seus simétricos
negativos, e o dado do tipo "float" é usado para números reais.
boolean
O dado do tipo "boolean" armazena apenas os valores true ou false (verdadeiro ou
falso) e está presente em quase todas as linguagens de programação.
ESTRUTURA DE DADOS
Por exemplo: você deseja armazenar o nome de todos os alunos da sua turma. O
sistema deve definir a organização (como salvar) e, consequentemente, o acesso ao
conjunto de operações sobre esses dados (inserir ou remover um aluno, editar um
nome ou trocar a posição de um dado).
Lista (list)
Uma lista armazena dados do mesmo tipo em sequência. Os dados não precisam estar
necessariamente armazenados em sequência física na memória do computador, mas
há uma sequência lógica entre eles. Cada elemento da lista é chamado de nó.
As listas são subdivididas em filas, pilhas e vetores, dependendo do acesso aos nós.
Fila (queue)
A fila é uma estrutura do tipo first in first out (FIFO), na qual o primeiro elemento a
ser inserido será o primeiro a ser retirado. Assim como em uma fila de pessoas, o
primeiro que chegou no balcão, será o primeiro a ser atendido, e assim por diante.
Pilha (stacks)
A pilha é uma estrutura do tipo last in first out (LIFO). O último elemento a ser
inserido será o primeiro elemento a ser retirado. Podemos ter acesso ao topo dessa
pilha, inserir um novo item, remover o item corrente. É como uma pilha de pratos:
colocamos ou retiramos pratos no topo da pilha.
VARIÁVEIS E CONSTANTES
1. // linguagem X
2. var nomeDoEstudante: String = "Helena";
3. // var é a declaração de variável
4. // nomeDoEstudante é o nome atribuído
5. // string é o tipo de dado, pois é formado de caracteres
6. // Helena é o valor
7.
8. //linguagem Y
9. $nomedoestudante = 'Helena'
Caso o valor de uma variável não possa ser alterado, indicamos que ela é uma
constante. Como a data de nascimento de uma pessoa, no caso do programa que
calcula a idade. Assim como a variável, a declaração da constante varia de acordo
com a linguagem de programação usada.
APLICANDO ALGORITMOS
PENSE NISSO...
Imagine que uma concessionária vai realizar um evento de test drive e o cadastro
de participantes é feito através do site. Independentemente da linguagem de
programação escolhida para o sistema de cadastro, todas devem atender ao
requisito de só aceitar participantes com habilitação permanente de motorista e,
consequentemente, maiores de 18 anos.
E se um menor de idade tentar fazer o cadastro? Como fazer essa validação? Vamos
aprender?
ESTRUTURAS DE DECISÃO
COMANDOS DE DECISÃO
• SE (if )
• SE/SE NÃO (if/else)
• SE aninhado (else if )
• CASO (switch)
COMANDO SE (IF)
Código genérico
if (condição) comando
Texto
SE (senha correta) exibir "bem-vindo"
Linguagem X
1. Var senha = a1234
2. if (senha = a1234) console.log "bem-vindo"
3. //console.log é um comando para exibir uma mensagem
Aqui, o comando "SE" vem acompanhado de uma instrução caso a condição não
seja atendida, como uma bifurcação no caminho.
Código genérico
if (condição) comando
else comando
Texto
SE (senha correta) exibir "bem-vindo"
SE NÃO exibir "senha incorreta"
Linguagem X
1. Var senha = a1234
2. if (senha = a1234) console.log "bem-vindo"
3. else console.log "senha incorreta"
E caso nenhuma das duas condições seja atendida, podemos utilizar o comando
"SE" aninhado.
Código genérico
if (condição) comando
else if (condição) comando
else comando
Texto
SE (login correto) exibir "digite a senha"
E SE (senha correta) exibir "bem-vindo"
SE NÃO exibir "login ou senha incorretos"
Linguagem X
1. Var login = fulano
2. Var senha = a1234
3. if (login = fulano) console.log "digite a senha"
4. else if (senha = a1234) console.log "bem-vindo"
5. else console.log "login ou senha incorretos"
Importante!
!
Note que o código só vai verificar o segundo if se o primeiro for
atendido, ou seja, só vai verificar se a senha está correta, se o login
estiver correto. Se o login estiver incorreto, o código executará o else.
Código Genérico
switch (condição)
{
caso 1:
comando;
pare;
caso 2:
comando;
pare;
caso 3:
comando;
pare;
padrão:
comando;
}
Texto
verifique (fruta)
caso banana:
mostrar preço da banana;
pare;
caso maçã:
mostrar preço da maçã;
pare;
caso uva:
mostrar preço da uva;
pare;
padrão:
mostrar "Não temos esse produto";
Linguagem X
1. switch (fruta)
2. {
3. case banana:
4. mostrar "Bananas custam R$10 a dúzia";
5. break;
6. case maçã:
7. mostrar "Maçãs custam R$15 reais a dúzia";
8. break;
9. case uva:
10. mostrar "Uvas custam R$20 o kilo";
11. break;
12. default:
13. mostrar "Não temos essa fruta";
14. }
Importante!
A instrução opcional break associada a cada case garante que o
!
programa saia da condicional switch e execute a instrução que segue
logo após o switch. Caso break seja omitido, o programa continua a
execução para a próxima instrução dentro de switch.
ESTRUTURAS DE REPETIÇÃO
As estruturas de repetição permitem repetir
um comando ou um conjunto de instruções,
de acordo com uma condição ou um contador.
PENSE NISSO...
Por exemplo, quero um código para escrever a frase "Eu sou capaz" 10 vezes. Qual
dessas opções parece ser melhor?
OU
• ENQUANTO (while)
• FAÇA ENQUANTO (do while)
• PARA (for)
Código genérico
while (condição) {
comando;
altera contador;
}
Texto
ENQUANTO (contador < 10) {
escreva "eu sou capaz"
soma + 1 ao contador
}
Linguagem X
1. Var contador = 1
2. while (contador < 10) {
3. console.log "eu sou capaz"
4. contador = contador + 1
5. }
O comando do while é
usado quando é necessário
executar o bloco de
instruções interno pelo
menos uma vez.
Código genérico
do {
comando
}
while (condição);
Texto
FAÇA {
escreva "eu sou capaz"
soma um ao contador
}
ENQUANTO (contador < 10)
Linguagem X
1. Var contador = 1
2. do {
3. console.log "eu sou capaz"
4. contador = contador + 1
5. }
6. while (contador < 10)
Código genérico
for (contador, condição, incremento) {
comando
}
Texto
para (contador = 0, contador < 10, contador = contador +
1) {
escreva "eu sou capaz"
}
Lingugem X
1. for (contador = 0, contador < 10, contador++){
2. console.log "eu sou capaz"
3. }
OPERADORES
Operadores são símbolos que auxiliam na sintaxe de comandos, expressões e
funções.
OPERADORES ARITMÉTICOS
Multiplicação * 10*2 20
Divisão / 10/2 5
Incremento ++ 6++ 7
Decremento -- 6-- 5
OPERADORES RELACIONAIS
Diferente != X != 10
OPERADORES LÓGICOS
NESTE DESAFIO...
LÓGICA DE PROGRAMAÇÃO | DESAFIO 2
NO PRÓXIMO DESAFIO...
DESAFIO 3
Agora que você já sabe aplicar técnicas de programação para o desenvolvimento de
códigos, nesta etapa, você deverá:
LINGUAGENS DE PROGRAMAÇÃO
Quando falamos em
sintaxe e semântica, você
sabe o que significa?
?
Você sabia?
Os computadores entendem somente sequências de números
binários, ou seja, 0 e 1. Imagine se os programadores precisassem
utilizar números binários como 1011101110110110111011001100
para cada instrução do processador e para cada endereço de memória
a ser acessado.
SEMÂNTICA
A semântica de uma língua refere-se ao significado das palavras.
Vamos ao exemplo?
Em outras palavras, o código pode estar escrito de uma maneira que não tenha
nenhum sentido. Alguns exemplos de erros de semântica podem ser:
SINTAXE
INDENTAÇÃO DE CÓDIGO
Além da sintaxe e semântica, o código/algoritmo precisa estar organizado e
estruturado, de modo que haja uma hierarquia entre suas partes, facilitando sua
legibilidade. Esse processo chama-se indentação
ou identação.
Observe nesse exemplo que, com a indentação correta, é mais fácil perceber se o
algoritmo está bem organizado e se a estrutura do código está correta.
Perceba que as ações 1 e 2 estão no mesmo nível, mas a ação 3 está dentro da ação 2.
Marcação
Linguagens de marcação são utilizadas
para definir a estrutura de uma página
ou de um documento, por exemplo. Ela é
como se fosse o esqueleto de nosso corpo
que nos molda. A linguagem de marcação
HTML (Hyper Text Markup, ou Linguagem
de Marcação de Hipertexto, português) é
uma das mais comuns.
Fonte: Pixabay
Folha de estilos
Linguagens de folha de estilos são utilizadas
para estilizar os elementos de uma página
desenvolvida com uma linguagem de
marcação. Exemplo: utilizamos CSS
(Cascading Style Sheet, ou Folhas de Estilo
em Cascatas, em português) para estilizar
páginas desenvolvidas em HTML. É como
se fosse a roupa que nós vestimos.
Fonte: Pixabay
Programação
Conforme você viu, as linguagens de
programação são um conjunto de regras,
sintaxes para escrevermos instruções, que
farão com que o computador ou software
execute alguma ação.
Fonte: Pixabay
TIPOS DE LINGUAGENS
Estruturada
Trabalha apenas com um arquivo, codificando o algoritmo linha após linha seguindo
uma sequência lógica de evento. Exemplos: C#, Delphi, Dart, Java, Kotlin, PHP,
TypeScript.
Orientada a objetos
Trabalha com uma abordagem de reusabilidade de código, com o objetivo de
simplificar a manutenção de um programa. Baseado na composição e interação
entre diferentes unidades dentro do seu software. Exemplos: C++, VB .NET, Java,
Object Pascal, Objective-C, Python, SuperColider, Ruby, Smalltalk, entre outras.
As imagens a seguir mostram a diferença entre uma programação estruturada e
uma orientada a objetos.
Funcional
Atua voltada à construção por meio de funções matemáticas (ou seja, quando
chamadas mais de uma vez, possuem o mesmo resultado de saída). São aplicadas
para resolver problemas que envolvem principalmente paralelismo e/ou
processamento de quantidades grandes de dados. Exemplos: Prolog, Lisp, Scheme,
ML, Miranda, Haskell, Elixir.
Alto nível
Linguagens de alto nível são
mais intuitivas e amigáveis para o
programador. Ela é mais semântica
e mais próxima à linguagem natural,
simplificando o desenvolvimento de
algoritmos, por isso são mais utilizadas.
Baixo nível
Linguagens de baixo nível são voltadas para o entendimento da máquina. A sintaxe
costuma ser mais complexa e menos intuitiva para programador. O tempo de
aprendizado é usualmente maior em relação às linguagens de alto nível.
IMPLEMENTAÇÃO
Algumas linguagens podem possuir mais de uma implementação para o código ser
executado, sendo caracterizadas como compilada e interpretada.
Compilada
O verbo "compilar" pode transmitir a ideia de converter um objeto em outro. Assim,
podemos dizer que o processo de compilação envolve converter o nosso código
para linguagem de máquina por meio de um programa chamado compilador.
Ada, ALGOL, BASIC, C, C++, C#, CLEO, COBOL são alguns exemplos desse tipo de
linguagem.
Interpretada
Uma linguagem interpretada executa um processo similar. Ela será interpretada
por meio de um programa chamado interpretador, que irá converter nosso
código para linguagem de máquina. O interpretador realiza a conversão linha por
linha, e não o programa inteiro, diferentemente do que ocorre com o compilador.
O processo de interpretação permite uma inicialização mais rápida e mais fácil para
a execução do projeto. Sua desvantagem é que, caso tenha algum erro em sua
aplicação, ele só será apresentado no momento da execução.
ActionScript, Java, Python, APL, ASP são alguns exemplos desse tipo de linguagem.
FERRAMENTAS DE DESENVOLVIMENTO
Para a programação de qualquer
sistema, existem ferramentas e
recursos disponíveis que facilitam
muito a rotina de trabalho do
programador, permitindo que
o desenvolvimento seja mais
fácil e rápido, como bibliotecas,
frameworks e APIs.
BIBLIOTECAS
As bibliotecas são nativas da respectiva linguagem, mas você também pode importar
bibliotecas que não são nativas ou criar bibliotecas internas no seu projeto.
!
Importante!
Dependendo do contexto inserido, você pode encontrar diferentes
significados para o mesmo termo.
API
FRAMEWORKS
Sem framework
Com framework
Saiba mais
Conheça mais frameworks usados no mundo da programação:
+
https://bit.ly/3D46IyT
CONVERSÃO DE LINGUAGENS
Como você já aprendeu, para executar qualquer tarefa, o computador necessita
das instruções precisas e ordenadas, fornecidas pelos softwares. A ligação entre
computador e software é feita por meio de
uma linguagem de programação.
Era um processo complexo, extenso, lento e caro. Esse cenário levou à necessidade
de otimizar e baratear todo programação. Assim surgiram as linguagens de
programação de alto nível e os processos de conversão de linguagem.
Tradução ou compilação
Tradução ou compilação é o processo de passar a linguagem de alto nível para
linguagem de baixo nível por meio de diversas etapas de análise e traduções
intermediárias. Cada instrução do código fonte gera várias instruções para a máquina.
Montagem
A montagem é um tipo de tradução na qual cada instrução do código gera apenas
uma instrução para a máquina.
Ligação
A ligação é como chamamos a "ponte" entre as etapas intermediárias de tradução.
Interpretação
A interpretação é a conversão feita a partir do código fonte, comando por comando,
em tempo de execução. Não há fases distintas, nem etapas intermediárias. A
compilação é imediata na execução, ou seja, cada comando é lido, verificado,
convertido e executado antes que o próximo comando seja lido.
APLICAÇÕES DE PROGRAMAÇÃO
São muitas as linguagens e termos utilizados
no mundo da programação. Sempre existem
discursos sobre qual linguagem é melhor,
qual está em alta ou até qual linguagem pode
possivelmente deixar de existir. O ponto é que
as tecnologias e os novos recursos sempre estão
sendo criados e só a experiência e as referências
podem te ajudar a escolher a que melhor resolve
seu problema.
Desenvolvimento
É muito utilizada e difundida no contexto web, inteligência
Python
de ciência de dados, machine learning. artificial, ciência de
dados.
FERRAMENTAS PARA
DESENVOLVIMENTO JAVASCRIPT
Para desenvolver aplicações em JavaScript, utilizaremos duas ferramentas gratuitas:
Ele inclui suporte para depuração, controle Git incorporado, realce de sintaxe (faz
com que o editor exiba automaticamente o texto em diferentes cores/estilos),
complementação inteligente de código, snippets (pequena região de código
fonte reutilizável) e refatoração de código (processo de alterar um software de
uma maneira que não mude o seu comportamento externo e ainda melhore a sua
estrutura interna). Ele também é customizável, fazendo com que os usuários possam
mudar o tema do editor, teclas de atalho e preferências.
NODE. JS
Ele foi desenvolvido para construirmos aplicações escaláveis que são executadas ao
lado do servidor. Uma das principais características do Node.js que o diferenciam
de linguagens tradicionais é o fato de ser single-thread, ou seja, ele só irá tratar
uma requisição por vez, enquanto que nas outras linguagens, como PHP, Java,
C#, a execução é multithread, o que significa que, para cada requisição recebida,
é criada uma nova thread para tratá-la, o que consome mais memória, deixando o
processamento mais lento.
• Clique em "Executar".
Clique em "Próximo".
• Clique em "Próximo".
• Clique em "Instalar".
NODE.JS
• Clique em "Executar".
• Clique em "Next".
• Clique em "Next".
• Clique em "Install".
Você sabia?
Por que index.js? ?
A palavra index vem do Inglês e quer dizer Índice. Traduzindo para
a Internet, o arquivo index, seria a página principal, que armazena o
índice (links) e as principais funções de todo o site.
Problema/Desafio
Você deverá:
Somente poderá ser inserido aluno na lista, caso a quantidade de alunos não tenha
ultrapassado 5.
Revisitando os conhecimentos
Conforme você viu, nós utilizamos uma linguagem
de programação para resolvermos problemas do
cotidiano, de um produto ou solução.
Como estamos utilizando JavaScript, e ele é de uma tipagem dinâmica, esse valor
poderia receber um número, por exemplo, sem a necessidade de especificar o tipo
de dado.
Para executar o código e ver o resultado de cada um dos itens que criamos, abra o
terminal de comando na mesma pasta que foi criada a nossa estrutura inicial.
Com as listas, é possível armazenar uma grande quantidade de dados e fazer a busca,
adicionar novos itens, removê-los ou percorrê-los.
Para simular o resultado, copie o código acima e cole no VSCode. Salve as alterações
e digite na linha de comando do terminal node index.js.
Através do comando for é possível percorrer a partir do índice zero até o seu total,
imprimindo os valores contidos a cada passo da iteração2. Começando por Helena,
passando em Chico e, por fim, Mário.
ELEMENTO ≠ ÍNDICE
0 1 2
1. //Com o do:
2. let listaDeEstudantes = ["Helena", "Chico", "Mário"];
3. let quantidadeDeEstudantes = listaDeEstudantes.length;
4. let inicio = 0;
5.
6. do {
7. console.log(listaDeEstudantes[inicio]);
8. inicio++;
9. } while (inicio < quantidadeDeEstudantes);
10.
11. //------------------------------------------------//
12.
13. //Com o while:
14. while (inicio < quantidadeDeEstudantes) {
15. console.log(listaDeEstudantes[inicio]);
16. inicio++;
17. }
Caso queira testá-lo, copie os trechos dos códigos acima trocando as devidas
estruturas e cole no VSCode para executá-lo. Salve as alterações e digite na linha de
comando do terminal node index.js.
Saiba mais
A diferença entre o comando do…while e o while é justamente o
local onde a condição que controla o laço é testada.
+
No do…while o bloco de comandos é executado pelo menos uma vez
de forma obrigatória, independente do resultado da expressão lógica.
À variável numero será atribuído o valor inicial 1, e a cada iteração será incrementado 1 a
essa variável até que a condição <=10 seja atendida.
Para testá-lo, copie o código acima e cole no VSCode para executá-lo. Salve as
alterações e digite na linha de comando do terminal node index.js.
Para realizar o teste, copie o código acima e cole no VSCode para executá-lo. Salve as
alterações e digite na linha de comando do terminal node index.js.
4. listaDeEstudantes.push("José");
5. }
6. console.log(listaDeEstudantes);
Para realizar o teste, copie o código acima e cole no VSCode para executá-lo. Salve as
alterações e digite na linha de comando do terminal node index.js.
NESTE DESAFIO...
LÓGICA DE PROGRAMAÇÃO| DESAFIO 03
Por fim, para solucionar nosso desafio, você aprendeu a instalar as ferramentas para
devenvolvimento JavaScript e deu início a um projeto.
PARA CONCLUIR...
PARABÉNS, VOCÊ CHEGOU AO FIM
DO CONTEÚDO DE LÓGICA DE PROGRAMAÇÃO!
Durante seus estudos, você percebeu que o raciocínio lógico usado na Lógica de
Programação faz parte do seu dia a dia. Em muitas situações você cria e executa
algoritmos praticamente o tempo todo, mesmo sem perceber.
Você aprendeu que, para levar a lógica do dia a dia para a codificação, deve fazer uso
das técnicas de programação. Em outras palavras, os fluxogramas e o conhecimento
em linguagens de programação são a base para um algoritmo de software organizado
e eficiente.
Por fim, para solucionar os desafios propostos, você aprendeu a instalar duas
ferramentas de desenvolvimento JavaScript.
Você evoluiu muito em seu conhecimento e ainda há muito mais para aprender.
REFERÊNCIAS
DEVMEDIA. Os 4 pilares da Programação Orientada a Objetos. Disponível
em: <https://www.devmedia.com.br/os-4-pilares-da-programacao-orientada-a-
objetos/9264>. Acesso em: 18 fev. 2021.
MDN WEB DOCS. Sintaxe e tipos. 29 de out. de 2020. Disponível em: <https://
developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide/Values,_variables,_and_
literals>. Acesso em: 28 jan. 2021.
Créditos
CONFEDERAÇÃO NACIONAL DA INDÚSTRIA SENAI - DEPARTAMENTO REGIONAL DE
-CNI SÃO PAULO