Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e...

40
Portugol Linguagens de Programação

Transcript of Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e...

Page 1: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Portugol

Linguagens de Programação

Page 2: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Objetivo Principal

• O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação de algoritmos e programas elementares.

Page 3: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Contextualizando

• As técnicas de programação serão vistas através da utilização de uma pseudolinguagem em português, denominada "Portugol". Assim, o aluno poderá escrever algoritmos e aplicar as técnicas de desenvolvimento para serem usadas com qualquer linguagem de programação.

Page 4: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Portugol - Objetivo

• Introdução ao Portugol para o desenvolvimento de algoritmos, declaração de variáveis, desvio condicional, laços de repetição.

Page 5: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Algoritmo• Algoritimo é um conjunto de instruções executadas em sequência

até determinada condição. Digamos assim, para nós humanos é muito fácil mandar alguém abrir uma porta. A pessoa vai e abre, mas imagine se você fosse pedir para um computador/robô abrir uma porta. O que aconteceria? Para o computador/robô conseguir abrir a porta você teria que colocar uma série de comandos em sequência para que ele executasse um por um até abrir a porta.Ex: 1º - Levante, 2º Vire-se 30 graus para a direita, 3º Dê 5 passos para frente, 4º levante o braço 25 cm, 5º coloque a mão na maçaneta, 6º Gire a maçaneta 90 graus no sentido anti horário, 7º Puxe a porta.

• A máquina precisa receber todos os passos de um processo para conseguir executá-lo, como se fosse uma receita. Isso é algoritmo.

Page 6: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Algoritmo – Resumindo...

• Algoritmo = como definir o problema, esquematizar, exercício do raciocínio;

• Técnicas de programação = como operacionalizar, recursos, exercício da implementação.

Page 7: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Exemplo

a) Seqüência de ações para chegar ao trabalho/universidade:

Acordar → levantar → tomar café → pegar o ônibus Ou → chegar ao destino

→ pegar o carro

• Note que, para cada ação acontecer, é necessário que a ação imediatamente anterior tenha sido executada.

• Note também que, cada ação pode conter outros eventos associados (outros algoritmos).

Page 8: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Algoritmo em Portugol• Um algoritmo é de forma geral, uma descrição

passo a passo de como um problema pode ser solucionado. A descrição deve ser finita, e os passos devem ser bem definidos sem ambiguidades" [Terada] . A razão da existência do algoritmo vem da dissonância entre um estado desejado e aquele observado na realidade.

• Algoritmo não é a solução de um problema, mas é o meio de obtê-la. A resolução de um problema envolve vários parâmetros que devem ser organizados através de alguma técnica formal.

Page 9: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Algoritmo em Portugol

As técnicas de desenvolvimento estruturado de algoritmos, tem o objetivo de:

• Facilitar o desenvolvimento de algoritmos;• Facilitar o seu entendimento pelos operadores;• Antecipar a correção;• Facilitar manutenção e modificações;• Permitir que o desenvolvimento seja feita por

uma equipe de pessoas.

Page 10: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Algoritmo em Portugol

• Uma técnica formal afasta a possibilidade de uma ambiguidade. Ou seja, a partir de dadas condições iniciais a execução do algoritmo será realizada por um mesmo "caminho" (sequência de ações), que deve resultar num mesmo estado final. Uma destas técnicas é o Portugol.

Page 11: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Algoritmo em Portugol• Portugol é uma pseudolinguagem que permite ao

programador pensar no problema em si e não no equipamento que irá executar o algoritmo. Devem ser considerados a sintaxe (em relação à forma) e a semântica (em relação ao conteúdo ou seu significado). Em Portugol a sintaxe é definida pela linguagem e a semântica depende do significado que quer se dar ao algoritmo.

• No Portugol e nas linguagens de programação, basicamente têm-se comandos e variáveis que operacionalizam a execução de um algoritmo. Estes comandos são executados sequencialmente, de forma que um comando só será executado após a finalização do comando anterior.

Page 12: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Algoritmo em Portugol

A estrutura de um algoritmo em portugol pode ser dada como:

• Exemplo:início

<declarações de variáveis><comandos>

fim

Page 13: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Variáveis

• Variáveis como o próprio nome diz, são as partes de um algoritmo que vão variar. Elas podem servir para armazenar resultados de operações, armazenar a entrada de dados do usuário e por aí vai. De um modo geral variáveis servem para armazenar na memória RAM de um computador dados que posteriormente serão processados.

Page 14: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Tipos de VariáveisNo Portugol, os tipos básicos de variáveis são:

• Inteiro: Qualquer número inteiro (negativo, nulo ou positivo).Exemplo: -100, 0, 1, 2, 1250.

• Real: Qualquer número real, nulo ou positivo.Exemplo: -10, -1.5, 11.2, 0,1, 2, 50.

• Caracter: Caracteres alfanuméricos.Exemplo: casa, Win31, 123, alfa#2, etc...

• Lógico: valor lógico verdadeiro ou falsoExemplo: x > y ?

Page 15: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Constante

• Uma constante é um valor fixo, que não se modifica ao longo do tempo, durante a execução do programa. Em algoritmos representaremos constantes pelo tipo const. Exemplo: const M 10;

Page 16: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Operadores AritméticosOs símbolos das operações básicas são:• A multiplicação é dada através do operador * (asterisco);– Exemplo: z <- x * y;

• A soma é realizada através do operador + ;– Exemplo: z <- x + y;

• A subtração é dada através do operador -;– Exemplo: z <- x - y;

• A divisão para real será dada por / ;– Exemplo: z <- x / y;

• A divisão para inteiro será dada por div ;– Exemplo: z <- x div y;

• O resto de uma divisão é dada pelo comando mod .– Exemplo: z <- x mod y;

• O cálculo de x elevado à y é dado pelo símbolo ^ .– Exemplo: z <- x^y;

• A raiz de uma valor é extraída através do comando raiz() .– Exemplo: z <- raiz(x);

Page 17: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Exemplo

Page 18: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Observações sobre o exemplo• O inconveniente deste algoritmo é que sempre

fornecerá o mesmo resultado, o que não é interessante. De maneira mais correta, os valores de x e y podem ser fornecidos pelo usuário, permitindo ao algoritmo que efetue a soma de dois números quaisquer.- Neste exemplo podemos observar que o resultado da soma de x + y será armazenado em z. Como o usuário ficará sabendo da resposta ? É necessário usar comandos de escrita, para apresentar os resultados.

Page 19: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Entrada e Saída de Dados

• Na construção de algoritmos, é conveniente que o usuário possa informar dados externos, para serem operados pelo programa. Assim, um programa pode receber um dado informado por um operador através de um comando de leitura. Da mesma forma, pode ser necessário conhecer o resultado de determinada operação executada pelo computador, então será necessária uma forma de exibir os dados.

Page 20: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Entrada e Saída de Dados

• Cada linguagem tem uma forma específica para entrada e saída de dados. Em algoritmos usaremos os comandos genéricos leia() e escreva(), para realizar a interface com o usuário.

Page 21: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Entrada e Saída de Dados

Page 22: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Regras para escrever Algoritmos em Portugol

• Incluir comentários pelo menos nas linhas mais importantes do programa;• Usar nomes significativos para as variáveis e constantes, que possam identificar o conteúdo;• Grifar as palavras chaves do Portugol;• Alinhar os comandos facilita a legibilidade do algoritmo e reduz a possibilidade de erros.

Page 23: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Exemplo AlgoritmoInicio algoritmo “Exemplo”;

variaveisidade: inteiro;nome: caractere;

inicioescreva “Informe seu nome: “;leia nome;escreva “Informe sua idade: “;leia idade;escreva “Você se chama”, nome, “epossui”, idade, “anos!”;

fimFim algoritmo

Page 24: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Exercícios

• Em uma folha nomeada, elabore os algoritmos a seguir:

Page 25: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Exercício 1

• Desenvolva um algoritmo em Portugol para multiplicar 3 valores a serem informados pelo usuário e que seja demonstrado em tela.

Page 26: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Exercício 2

• Desenvolva um algoritmo em Portugol para somar 4 valores a serem informados pelo usuário e que seja demonstrado em tela.

Page 27: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Exercício 3

• Desenvolva um algoritmo em Portugol para subtrair 2 valores a serem informados pelo usuário e que seja demonstrado em tela.

Page 28: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Exercício 4

• Desenvolva um algoritmo em Portugol para dividir 2 valores para tipo Real a serem informados pelo usuário e que seja demonstrado em tela.

Page 29: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Exercício 5

• Desenvolva um algoritmo em Portugol para dividir 2 valores para tipo Inteiro a serem informados pelo usuário e que seja demonstrado em tela.

Page 30: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Exercício 6

• Desenvolva um algoritmo em Portugol para elevar o número 5 à terceira potência e que seja demonstrado em tela.

Page 31: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Exercício 7

• Desenvolva um algoritmo em Portugol para encontrar a raíz quadrada do número 49 e que seja demonstrado em tela.

Page 32: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Exercício 8

• Desenvolva um algoritmo em Portugol com as variáveis “nome” e “matrícula” donde o usuário digite as informações e que seja demonstrado em tela.

Page 33: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Estruturas Condicionais

• As estruturas condicionais são utilizadas quando há uma condição que desvia o fluxo do programas para diferentes partes, dependendo do fato de a condição ser verdadeira ou falsa. Na condição das estruturas condicionais, utilizam-se os operadores relacionais (<, >, =, <=, >=, <>) para as comparações, observando suas características particulares

Page 34: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

• As estruturas condicionais dividem-se em estrutura SE e estrutura ESCOLHA/CASO.

• A estrutura condicional SE é a estrutura mais flexível, podendo acontecer de várias formas, dependendo do fato de a condição ser satisfeita ou não e do fato de cada desvio do fluxo poder ou não ter outros comandos antes da finalização da estrutura.

• a) Estrutura Condicional SE Simples• As instruções contidas dentro do laço condicional SE

serão executadas somente se a condição retornar um resultado verdadeiro

Page 35: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

se (A = 1) entãoescreva “Um”;

fim_se;se (A = 2) então

escreva “Dois”;fim_se;se (A = 3) então

escreva “Três”;fim_se.

Page 36: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Inicio algoritmo “ExMedia”;variáveis

nome: caractere;nota_1, nota_2, media: real;contador: inteiro;

iníciomedia ← 0;contador ← 1;enquanto (contador<=30) faça

escreva (“Nome do aluno: “);leia(nome);escreva (“Primeira nota: “);leia(nota_1);escreva(“Segunda nota: “);leia(nota_2);media ← (nota_1 + nota_2)/2;

se (media<=3,0) entãoescreva(nome, media, ”Rep.”);

senãose(media>=6,0) então

escreva(nome, media, “Apr.”);senão

escreva(nome, media, “Rec.”);fim se;

fim se;contador ← contador + 1;

fim enquanto;Fim.

Page 37: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Exercícios

• Escreva um algoritmo em Portugol para calcular a média entre dois números quaisquer.

Page 38: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Resposta Algoritmo• A idéia principal do algoritmo está centrada na expressão

matemática utilizada no cálculo da média (M) entre dois números, N1 e N2, dada por:M = (N1 + N2) / 2

• Para que o valor de M possa ser calculado pelo algoritmo, é necessário que os valores de N1 e N2 tenham sido fornecidos ao mesmo com antecedência. Portanto, a primeira etapa do algoritmo consiste da obtenção (leitura) dos valores de N1 e N2 e armazenamento dos mesmos em posições distintas de memória (variáveis).

• Na seqüência, o valor da média deve ser calculado por meio de uma expressão apropriada e atribuído a uma terceira variável (M).

• Por fim, deve-se relatar ao usuário o valor calculado por meio de uma instrução primitiva de saída de dados.

Page 39: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

Resposta Algoritmo• A transformação do fluxograma em pseudocódigo exige a

disponibilidade de algumas informações adicionais concernentes ao tipo das variáveis utilizadas. Como o algoritmo opera apenas com dados numéricos, certamente as variáveis utilizadas serão do tipo inteiro ou real. Como se deseja calcular a média entre dois números quaisquer, então as variáveis N1 e N2 devem ser capazes de armazenar números com ou sem parte fracionária e, portanto, é necessário que estas sejam do tipo real. Como o valor médio entre dois números reais é um número que pode ou não ter parte fracionária, então a variável M também deve ser do tipo real.

• De posse dessa informação, pode-se escrever o pseudocódigo do algoritmo em questão, a partir de seu fluxograma.

Page 40: Portugol Linguagens de Programação. Objetivo Principal O aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação.

SoluçãoAlgoritmo MEDIAVar N1, N2, M : realInícioEscreva “Algoritmo para calcular a média entre dois números”Escreva “Digite o primeiro número: ”Leia N1Escreva “Digite o segundo número: ”Leia N2M ← (N1 + N2) / 2Escreva “O valor da média é:”, M

• Fim.