SOP-2010-1-tiago
Diário de aula de SOP - 2010-1 - Prof. Tiago Semprebom
Lógica de Programação
Segundo módulo da disciplina de Sitemas Operacionais. Baseado no material Lógica de Programação, de Paulo Sérgio de Moraes - uma das referências bibliográficas da disciplina.
08/04: Introdução
- Tópicos: instrução, sequência, problemas do dia a dia.
- Páginas da apostila: 4 a 7.
09/04: Desenvolvendo algoritmos
- Tópicos: resolvendo problemas, linguagens e instrução disponíveis (vocabulário).
- Páginas da apostila: 8 a 11.
Exercícios: desenho de figuras geométricas
- Usando apenas as instruções:escreva algoritmos para desenhar as seguintes figuras:
limpa avança X giraDireita angulo giraEsquerda angulo
- triângulo equilátero
- triângulo isósceles
- triângulo escaleno
- quadrado
- hexágono
- octógono
- 7 hexágonos interligados (um central e seis periféricos).
- kturtle é um software educacional para ajudar no ensino de matemática, geometria e introdução à programação. Ele possibilita fazer desenhos facilmente, seguindo um programa com instruções de desenho. Usando as instruções: ... escreva programas para os algoritmos criados no ítem anterior.
reset forward X turnright angulo turnleft angulo
15/04: Pseudocódigo e diagrama de blocos
- Adoção do Portugol IDE como ferramenta didática.
- Páginas da apostila: 12 a 14.
Portugol
As aulas de Lógica de Programação usarão um software de auxílio ao ensino de algoritmos chamado Portugol, desenvolvido na Escola Superior de Engenharia do Instituto Politécnico de Tomar, em Portugal.
Guia rápido de instalação e utilização do Portugol
Abaixo segue uma breve ajuda de como obtê-lo, instalá-lo e usá-lo. Esse guia assume que você esteja usando o Ubuntu Linux 9.04 ou superior.
- Faça o download do Portugol.
- Descompacte-o com o seguinte comando:
tar xzf portugol23.tar.gz
- Repare que existe agora um subdiretório portugol no diretório onde você o descompactou. Execute o Portugol com o seguinte comando: Obs: você precisará ter Java instalado. Caso não o tenha, execute o comando:
java -jar portugol/Portugol.jar
sudo apt-get install openjdk-6-jre
- Copie esse arquivo para poder ver fluxogramas coloridos, e grave-o no memso diretório onde está o Portugol.
- Veja a ajuda do Portugol, e use-a sempre que tiver dúvidas !
A tela inicial do Portugol segue abaixo, junto com um programa demonstrativo.
Exemplos de programas iniciais em Portugol:
- Lendo um número e mostrando-o na tela em seguida:
Inicio inteiro x Escrever "Digite um numero: ", Ler X Escrever "Numero digitado: ", x Fim
- Lendo dois números, somando-os e mostrando o resultado na tela: O programa abaixo é equivalente:
Inicio inteiro x, y Escrever "Digite um numero: ", Ler x Escrever "Digite outro numero: ", Ler y Escrever "Soma = ", x+y Fim
Inicio inteiro x, y, z Escrever "Digite um numero: ", Ler x Escrever "Digite outro numero: ", Ler y z <- x + y Escrever "Soma = ", z Fim
Atividades
- Média de três números: escreva um programa para calcular a média de três números.
Inicio Inteiro n1, n2, n3, r Escrever "Primeiro numero: " ler n1 Escrever "Segundo numero: " ler n2 Escrever "Terceiro numero: " ler n3 r <- (n1 + n2 + n3) /3 Escrever "Media=", r Fim
- Sequência de Fibonacci: em matemática corresponde aos números: ... que pode ser descrita pela relação de recorrência
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
... com valores iniciais e .
Numerosas formas na natureza apresentam essa sequência, como neste girassol (cujas flores se dispõem em uma espiral):
Usando o Portugol escreva um programa que mostre os 10 primeiros números dessa sequência.
16/04: Fluxogramas, constantes e Variáveis
- Diagrama de blocos (fluxograma)
- Variáveis e constantes
Fluxogramas
Diagramas de bloco para auxiliar a descrição de algoritmos. Ajudam na compreensão do algoritmo, por poder visualizar o fluxo de execução.
Fluxograma para o algoritmo da média de trẽs números.
Blocos de uso mais comum
Obs: Arquivo de configuração das cores do fluxograma do Portugol.
Variáveis e constantes
- Variável: capaz de guardar um dado a ser usado no algoritmo. Pode ser entendida como uma caixa, onde se coloca um dado e se pode consultá-lo quantas vezes for necessário. O dado pode ser modificado (substituído por outro). Exemplo em Portugol: Nesse exemplo há duas variáveis: dias e anos
Inicio inteiro anos, dias Escrever "Quantos anos se passaram ? " Ler anos dias <- anos * 365 Escrever "... então se passaram ", dias, " dias" Fim
- Constante: semelhante à variável, porém o dado armazenado não pode ser modificado. Exemplo em Portugol:Nesse exemplo há uma constante: diasPorAno
Inicio constante inteiro diasPorAno <- 365 inteiro anos, dias Escrever "Quantos anos se passaram ? " Ler anos dias <- anos * diasPorAno Escrever "... então se passaram ", dias, " dias" Fim
Variáveis e constantes devem ser declaradas antes de serem usadas (algumas poucas linguagens, como Python e Perl, não exigem isto). A declaração consiste do tipo e identificador da variável. O tipo corresponde ao tipo de valor que pode ser guardado, e o identificador é o nome da variável. No exemplo abaixo:
constante inteiro diasPorAno <- 365
inteiro anos, dias
Fim
Há duas variáveis do tipo inteiro, e seus identificadores são dias e anos. O tipo inteiro indica que essas variáveis podem guardar somente números inteiros.
Tipos de variáveis e constantes no Portugol:
Tipo | Descrição | Exemplo |
---|---|---|
Inteiro | Número inteiro entre -2 147 483 648 e 2 147 483 647 | Inteiro x <- 10 |
Real | Número real entre -1.7 E 308 e 1.7 E 308 | Real y <- 10.789 |
Lógico | Valor booleano, com valores "Verdadeiro" e "Falso" | Logico ok <- Falso |
Caracter | Um caractere da tabela ASCII | Caracter letra <- "A" |
Texto | Uma sequência de caracteres (ou string) | Texto palavra <- "um teste" |
A declaração de constantes é semelhante à de variáveis, bastanto prefixá-las com a palavra-chave constante.
Atividade
Para os exercícios abaixo, desenhe o fluxograma e escreva o algoritmo no Portugol.
- Faça um algoritmo que calcule a média de quatro números, porém mostrando as casas decimais (caso existam).
- Escreva um algoritmo que calcule a raiz de uma equação de 1o grau.
- Escreva um algoritmo que leia o nome, sobrenome e idade de uma pessoa, e escreva na tela:
sobrenome, nome idade anos