# Visão Geral da Linguagem de Programação Portugol A linguagem de programação Portugol é uma ferramenta fundamental no aprendizado de lógica de programação. Este resumo destaca suas estruturas básicas, estruturas avançadas, tipos de dados, operações aritméticas, operações de comparação e comandos, fornecendo uma compreensão abrangente. ## Introdução Portugol é uma linguagem educacional projetada para facilitar a transição para linguagens de programação mais complexas. Seu uso é prevalente em cursos introdutórios de programação, oferecendo uma abordagem didática para construção de algoritmos. ## Estruturas Básicas ### 1. Estrutura Sequencial - Execução passo a passo, de cima para baixo. - Utilização dos comandos `Escreva` e `Leia`. - Exemplo: ```portugol inteiro idade Escreva("Digite sua idade: ") Leia(idade) ``` ### 2. Estrutura de Decisão (Seleção) - Comandos `se` e `senao` para tomada de decisões. - Exemplo: ```portugol inteiro idade Leia(idade) se idade >= 18 entao Escreva("Você é maior de idade.") senao Escreva("Você é menor de idade.") fimse ``` ### 3. Estrutura de Repetição (Iteração) - Comandos `enquanto`, `para` e `escolha caso` para controle de fluxo. - Exemplo: ```portugol inteiro opcao Escreva("Escolha uma opção (1 a 3): ") Leia(opcao) escolha caso opcao caso 1 Escreva("Você escolheu a opção 1.") caso 2 Escreva("Você escolheu a opção 2.") caso 3 Escreva("Você escolheu a opção 3.") senao Escreva("Opção inválida.") fimescolha ``` ### 3. Estrutura de Repetição (Iteração) - Comandos `enquanto`, `faça enquanto`, `para` e `escolha caso` para controle de fluxo. - Exemplo ` enquanto`: ```portugol inteiro contador = 1 enquanto contador <= 5 faca Escreva("Contagem: ", contador) contador = contador + 1 fimenquanto ``` - Exemplo com `faça enquanto`: ```portugol inteiro senha faca Escreva("Digite a senha: ") Leia(senha) enquanto senha != 1234 ``` ``` portugol algoritmo exemplo_faca_enquanto var contador: inteiro inicio contador <- 1 faca escreva("Contagem:", contador) contador <- contador + 1 ate contador > 5 escreva("Fim do programa.") fimalgoritmo ```` - Exemplo com `para`: ```portugol para (x=1; x<=5 ; x++) faca { Escreva("Iteração: ", i) fimpara } ``` ## Estruturas Avançadas ### 4. Vetores e Matrizes - Declaração e manipulação de vetores e matrizes. - Exemplo de Vetor: ```portugol inteiro numeros[5] para inteiro i de 0 ate 4 faca Escreva("Digite o número ", i + 1, ": ") Leia(numeros[i]) fimpara Escreva("Valores do vetor: ") para inteiro i de 0 ate 4 faca Escreva(numeros[i], " ") fimpara ``` - Exemplo de Matriz: ```portugol inteiro matriz[3][3] para (i=0; i<=2; i++)faca { para (j=0; j=2; j++) faca{ Escreva("Digite o valor para a posição [", i, "][", j, "]: ") } Leia(matriz[i][j]) } fimpara fimpara Escreva("Valores da matriz: ") para (i=0; i=2; i++)faca{ para (j=0; j=2; j++) faca{ Escreva(matriz[i][j], " ") } fimpara Escreva() fimpara ``` ### 5. Funções - As funções em Portugol permitem modularizar o código, dividindo-o em partes menores e mais gerenciáveis. - Exemplo de Declaração e Uso de Função: ```portugol // Função para calcular a soma de dois números inteiros funcao soma(a, b) retorne a + b fimfuncao // Utilizando a função inteiro resultado resultado = soma(3, 5) Escreva("A soma é: ", resultado) ``` - Exemplo de Função com Parâmetros e Retorno: ```portugol // Função que verifica se um número é positivo, negativo ou zero funcao classificarNumero(numero) se numero > 0 entao retorne "Positivo" senao se numero < 0 entao retorne "Negativo" senao retorne "Zero" fimse fimfuncao // Utilizando a função inteiro num = -10 caractere classificacao classificacao = classificarNumero(num) Escreva("O número ", num, " é ", classificacao) ``` - Observação: Funções facilitam a reutilização de código e tornam o programa mais modular e legível. ### 6. Sub-rotinas (Funções e Procedimentos) - Modularização do código para facilitar a manutenção. - Exemplo: ```portugol funcao soma(a, b) retorne a + b fimfuncao inteiro resultado resultado = soma(3, 5) ``` ## Tipos de Dados - `Inteiro` - `Real` - `Lógico` - `Caractere` - `Texto` - `Data` - `Vetor` - `Matriz` ### Exemplos - `real preco = 29.99` - `inteiro idade = 25` - `logico aprovado = verdadeiro` - `caracter letra = 'A'` - `texto nome = "João"` - `vetor nomes [5] = ["João", "Ana", "Paulo", "Denis", "Matheus"]` - `matriz numeros [3][3] = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]` ## Constantes - `LETRA_MAIUSCULA` ## Operações Aritméticas - `+` (Soma) - `-` (Subtração) - `*` (Multiplicação) - `/` (Divisão) - `%` (Resto da Divisão - Mod) ## Operações de Comparação - `>` (Maior) - `<` (Menor) - `>=` (Maior ou Igual) - `<=` (Menor ou Igual) - `==` (Igual) - `<>` (Diferente) # Operandos para atribuição de valores: ## Operadores de Atribuição Composta em C++ ## Operadores de Atribuição Composta em C++ | Operador | Descrição | | -------- | --------------------------------------------------------------- | | `+=` | Soma o valor de `variavel2` à `variavel1` | | `-=` | Subtrai o valor de `variavel2` da `variavel1` | | `*=` | Multiplica `variavel1` por `variavel2` | | `/=` | Divide `variavel1` por `variavel2` | | `%=` | Obtém o resto da divisão de `variavel1` por `variavel2` | | `&=` | Efetua a operação AND bit a bit entre `variavel1` e `variavel2` | | `^=` | Efetua a operação XOR bit a bit entre `variavel1` e `variavel2` | | `++` | Incrementa `variavel1` em 1 | | `--` | Decrementa `variavel1` em 1 | **Observações:** * Os operadores `^=`, `|=` e `&=` são usados para operações bit a bit, e só funcionam com tipos de dados inteiros. * Os operadores `++` e `--` podem ser usados como prefixo ou sufixo. No caso de prefixo, o valor é incrementado/decrementado antes de ser usado na expressão. No caso de sufixo, o valor é incrementado/decrementado depois de ser usado na expressão. # Comandos, Tipos de Dados e Estruturas em Portugol e JavaScript | Portugol | JavaScript | |----------------------|---------------------| | `algoritmo` | `console.log` | | `declare` | `let` ou `const` | | `escreva` | `console.log` | | `leia` | `prompt` | | `se...senão` `Senão Se` | `if...else` `else if` | | `para...faça` | `for` | | `enquanto` | `while` | | `faca...enquanto` | `do...while` | | `escolha...caso` | `switch...case` | | `funcao` | `function` | | `retorne` | `return` | | `vetor` | `Array` | | `matriz` | `Array` de `Array` | | `inteiro` | `number` | | `real` | `number` | | `lógico` | `boolean` | | `caractere` | `string` | | `texto` | `string` | | `data` | `Date` | # Conclusão - Resumo das principais características e vantagens do Portugol. - Destaque para aplicações específicas e limitações. - Incentivo ao aprendizado contínuo de programação.