Caderno Curso Lógica de Programação Essencial (Part 2)
- #Lógica de Programação
Curso Lógica de Programação Essencial - 4h - Professor Denilson Bonatti
📚 Aula 2 - O que são linguagens de programação?
1. Linguagem de Programação:
- Linguagem escrita e formal que especifica um conjunto de instruções e regras usadas para gerar programas (software). A função dela é servir como meio de comunicação entre computadores e humanos.
Um software pode ser desenvolvido para rodar em um computador, dispositivo móvel ou em qualquer equipamento que permita sua execução. Existem basicamente 2 tipos tipos de linguagem de computação:
a) Alto nível
- São aquelas cuja sintaxe (forma que digita/o código) se aproxima mais da nossa linguagem e se distanciam mais da linguagem de máquina.
Exemplos: C, PHP, JavaScript, C#, C++, Java, Python
b) Baixo nível
- É aquela que se aproxima mais da linguagem de máquina. essas são as que você precisa ter o conhecimento direto da arquitetura do computador para fazer alguma coisa.
Exemplo: Assembly
Além disso, temos linguagens:
c) Compiladas
- O seu código fonte é executado diretamente pelo Sistema Operacional (SO) ou pelo processador, após ser traduzido por meio de um processo chamado de compilação.
Exemplos: C#, VisualBasic, Delphi, C++ -> tem que ser transformadas em um arquivo executável e ser rodadas sobre o sistema operacional.
d) Interpretadas
- O seu código fonte é executado por um programa de computador chamado interpretador, que em seguida é executado pelo S.O. ou processador.
Exemplos: JavaScript, PHP, Python
2. Pseudolinguagem Portugol
- É uma pseudolinguaguem que permite ao leito desenvolver algoritmos estruturados em português de forma simples e intuitiva, independentemente de linguagem de programação.
- Permite ao programador pensar no problema em si e não no equipamento que irá executar o algoritmo.
Para programar em portugol online, sem baixar nada: https://portugol.dev/ ou use o Google Colab
Exemplos:
programa
{
funcao inicio()
{
real nota1, nota2, nota3, nota4, media
cadeia aluno
escreva("Digite o nome do aluno:")
leia(aluno)
escreva("O seu nome é: " + aluno)
}
}
programa
{
funcao inicio()
{
real nota1, nota2, nota3, nota4, media
cadeia aluno
escreva("Digite o nome do aluno:")
leia(aluno)
escreva("Digite a nota 1:")
leia(nota1)
escreva("Digite a nota 2:")
leia(nota2)
escreva("Digite a nota 3:")
leia(nota3)
escreva("Digite a nota 4:")
leia(nota4)
media = (nota1 + nota2 + nota3 + nota4) / 4
escreva("O aluno: " + aluno + " obteve a média: " + media)
}
}
📚 Aula 3 - Aprenda a utilizar desvios condicionais e boas práticas em programação
1. Desvios Condicionais
- Conhecidos como estruturas de decisão, são ferramentas essenciais para controlar o fluxo de execução de um programa, permitindo que ele tome decisões com base em condições específicas. Essas estruturas avaliam uma condição (expressão booleana) e, dependendo do resultado (verdadeiro ou falso) executam diferentes blocos de código.
Tipos de Desvios Condicionais:
a) Desvio Condicional Se (Estrutura Condicional Simples - If):
- Executa um bloco de código apenas se a condição testada for verdadeira. Caso contrário, o bloco é ignorado.
Exemplo:
programa {
funcao inicio() {
real nota1, nota2, nota3, nota4, media
cadeia aluno
escreva("Digite o seu nome:")
leia(aluno)
escreva("Digite a nota 1:")
leia(nota1)
escreva("Digite a nota 2:")
leia(nota2)
escreva("Digite a nota 3:")
leia(nota3)
escreva("Digite a nota 4:")
leia(nota4)
media = (nota1+nota2+nota3+nota4)/4
escreva("Sua média é:"+ media)
se(media>=7) {
escreva("\n" + "Parabéns!!! Você foi aprovado")
}
}
}
b) Desvio Condicional Se-senão (Estrutura Condicional Composta If-else)
- Executa um bloco de código se a condição for verdadeira ou outro bloco se a condição for falsa.
Exemplo:
programa {
funcao inicio() {
real nota1, nota2, nota3, nota4, media
cadeia aluno
escreva("Digite o seu nome:")
leia(aluno)
escreva("Digite a nota 1:")
leia(nota1)
escreva("Digite a nota 2:")
leia(nota2)
escreva("Digite a nota 3:")
leia(nota3)
escreva("Digite a nota 4:")
leia(nota4)
media = (nota1+nota2+nota3+nota4)/4
escreva("Sua média é:"+ media)
se(media>=7) {
escreva("\n" + "Parabéns!!! Você foi aprovado")
}
senao {
escreva("\n" + "Infelizmente você foi reprovado")
}
}
}
c) Desvio Condicional Caso ( Estruturas Condicionais de Múltipla Escolha switch-case):
- Similar aos comandos se e senão, reduz a complexidade na escolha de diversas opções. Apesar de suas similaridades com o se, ele possui algumas diferenças, neste comando não é possível o uso de operadores lógicos, ele apenas trabalha somente com valores definidos.
Assim, um bloco de código específico é executado de acordo com o caso correspondente pedido.
Exemplos:
programa {
funcao inicio()
{
escreva("Escolha uma das opções: 1 - Abrir Netflix 2 - Abrir Amazon Prime 3 - Abrir HBO GO 4 - Sair")
inteiro menu = 0
escreva("\n" + "Sua escolha:")
leia(menu)
escolha(menu)
{
caso 1: //testa se o valor é igual a 1
escreva("OK! Abrir Netflix!!")
pare
caso 2: //testa se o valor é igual a 2
escreva("OK! Abrir Amazon Prime!!")
pare
caso 3: //testa se o valor é igual a 3
escreva("OK! Abrir HBO GO!!")
pare
caso 4:
escreva("Saindo do menu....")
pare
caso contrario:
escreva("Você deve escolher as opções 1, 2, 3 ou 4")
}
}
}
programa {
funcao inicio()
{
escreva("1 - Abrir Netflix 2 - Abrir Amazon Prime 3 - Abrir HBO GO 4 - Sair")
inteiro menu = 0
escreva("\n" + "Sua opção:")
leia(menu)
se (menu = 1)
{
escreva("OK!! Abrir Netflix!!")
}
se (menu = 2)
{
escreva("OK!! Abrir Amazon Prime!!")
}
se (menu = 3)
{
escreva("OK!! Abrir HBO GO!!")
}
se (menu = 4)
{
escreva("Saindo do menu......")
}
}
}
d) Estruturas Condicionais Encadeadas (if-else if-else) - (fonte google):
- Permitem verificar múltiplas condições sequencialmente. O primeiro bloco de código cujo teste lógico for verdadeiro será executado.
Exemplo:
if (condicao1) {
// Código a ser executado se condicao1 for verdadeira
} else if (condicao2) {
// Código a ser executado se condicao1 for falsa e condicao2 for verdadeira
} else {
// Código a ser executado se todas as condições anteriores forem falsas
}
2. Comentários:
Comentários em código:
- Servem para ajudar outros membros da equipe (ou até você mesmo no futuro) a entender o que o código está realizando ou qual é a sua função.
- É importante utilizar comentários para destacar pontos relevantes do código, facilitando o trabalho em equipe e a manutenção do programa.
- Podem ser colocados no início do código para descrever a função principal do programa, instruções de uso ou explicações sobre trechos importantes.
Obs.: Em Portugol (ou em muitas linguagens de programação), utiliza-se // para inserir comentários de uma linha.
📚 Aula 4 - Trabalhando com laços de repetição em Portugol
1. Laços de Repetição
- Estrutura que permite executar mais de uma vez o mesmo comando ou um conjunto de comandos, de acordo com uma condição ou com um contador.
Exemplos
funcao inicio()
{
inteiro contador, limite, resultado
contador = 0
limite = 10
faca
{
resultado = 9 * contador
escreva("9 X " + contador + "=" + resultado + "\n")
contador++
} enquanto (contador <= limite)
}
programa
{
funcao inicio()
{
inteiro contador, limite, resultado, tabuada
contador = 0
limite = 10
escreva("Qual tabuada você quer que eu resolva?:")
leia(tabuada)
faca
{
resultado = tabuada * contador
escreva(tabuada + " X " + contador + " = " + resultado + "\n")
contador++
} enquanto (contador <= limite)
}
}
Obs.: Contador++ X Contador+1
1. contador++
- Significado: Incrementa o valor da variável
contador
em 1 e já atribui o novo valor à variável. - Equivalente a:
contador = contador + 1
.
contador = 5
contador++
// Agora contador vale 6
2. contador + 1
- Significado: Apenas faz a operação matemática de somar 1 ao valor de
contador
, mas não altera o valor original da variável, a menos que você atribua o resultado a ela.
contador = 5
contador + 1 // contador continua valendo 5, porque não houve atribuição
- Se você quiser realmente atualizar, precisaria escrever:
contador = contador + 1
📚 Aula 5 - Aplicação prática com matrizes e vetores
1. Matrizes:
- Coleção de variáveis do mesmo tipo, acessíveis através de um único nome e armazenadas de forma contígua (em sequência) na memória.
Ela pode ter duas ou mais dimensões, sendo útil para representar tabelas, grades ou estruturas semelhantes.
2. Vetores:
- É um caso especial de matriz, possuindo apenas uma dimensão.
A identificação de cada elemento do vetor é feita por meio de índices, que indicam a posição de cada valor armazenado.
Exemplo:
programa
{
funcao inicio()
{
cadeia frutas[4]
inteiro contador = 0
frutas[0] = "Maçã"
frutas[1] = "Pera"
frutas[2] = "Uva"
frutas[3] = "Java"
faca
{
escreva(frutas[contador] + "\n")
contador++
} enquanto (contador <= 3)
}
}
programa
{
funcao inicio()
{
inteiro contador = 0
cadeia cesta[][] = {{"Pera","100"},{"Jaca","200"},{"Maçã","900"},{"Uva","89"}}
faca
{
escreva("Produto: " + cesta[contador][0] + " Quantidade: " + cesta[contador][1] + "\n")
contador++
} enquanto (contador <= 3)
}
}
Fonte: Curso DIO Lógica de Programação Essencial - https://web.dio.me/course/logica-de-programacao-essencial/learning/aea1ea26-fd56-417d-8272-6e15253f4405?autoplay=1