Sistemas Operacionais e Introdução a Programação - atividades extraclasse 2010-1
Lógica de Programação
Semana 1
São vistos os conceitos básicos de lógica de programação: instrução, algoritmo, sintaxe.
Para fins didáticos, pode-se usar a linguagem Logo através do programa Kturtle.
Linguagem Logo
Para desenhos simples, bastam apenas as seguintes instruções:
- reset
- forward NÚMERO
- turnright NÚMERO
- turnleft NÚMERO
Baseado nesse conjunto de instruções, desenhe:
- Um triângulo equilátero.
- Um triângulo isósceles.
- Um triângulo escaleno.
- Um hexágono.
- Um octógono.
- 7 hexágonos interligados (um central e seis periféricos).
- Uma espiral
Agora, o processo reverso: que desenho será gerado a partir do algoritmo abaixo?
reset repeat 6 { forward 70 turnleft 60 } repeat 6 { forward 70 turnright 60 } turnleft 120 repeat 6 { forward 70 turnleft 60 } forward 70 turnright 60 repeat 6 { forward 70 turnleft 60 } forward 70 turnright 60 repeat 6 { forward 70 turnleft 60 } forward 70 turnright 60 repeat 6 { forward 70 turnleft 60 } forward 70 turnright 60 repeat 6 { forward 70 turnleft 60 }
Jogo: Light Bot
Neste jogo, Light Bot, deve-se programar os movimentos do personagem para avançar à próxima fase.
Semana 2
- A partir dessa semana, seré usado o Portugol IDE como ferramenta didática.
Atividades-problema
- Apresente um programa que mostre, em sequência: 9, 9^2 (ao quadrado), 9^3 (ao cubo) e a soma desses 3 números.
inicio inteiro VAR1 VAR1 <- 9 escrever VAR1 escrever "\n" inteiro VAR2 VAR2 <- 9 * 9 escrever VAR2 escrever "\n" inteiro VAR3 VAR3 <- 9 * 9 * 9 escrever VAR3 escrever "\n" inteiro SOMA SOMA <- VAR1 + VAR2 + VAR3 escrever SOMA fim
- A sequência de Fibonacci: apenas os primeiros 10 números da sequência.
INICIO INTEIRO VARIAVEL_1 INTEIRO VARIAVEL_2 INTEIRO SOMA VARIAVEL_1 <- 1 VARIAVEL_2 <- 1 ESCREVER VARIAVEL_1, "\n" ESCREVER VARIAVEL_1, "\n" SOMA <- VARIAVEL_1 + VARIAVEL_2 ESCREVER SOMA, "\n" VARIAVEL_1 <- VARIAVEL_2 VARIAVEL_2 <- SOMA SOMA <- VARIAVEL_1 + VARIAVEL_2 ESCREVER SOMA, "\n" VARIAVEL_1 <- VARIAVEL_2 VARIAVEL_2 <- SOMA SOMA <- VARIAVEL_1 + VARIAVEL_2 ESCREVER SOMA, "\n" VARIAVEL_1 <- VARIAVEL_2 VARIAVEL_2 <- SOMA SOMA <- VARIAVEL_1 + VARIAVEL_2 ESCREVER SOMA, "\n" VARIAVEL_1 <- VARIAVEL_2 VARIAVEL_2 <- SOMA SOMA <- VARIAVEL_1 + VARIAVEL_2 ESCREVER SOMA, "\n" VARIAVEL_1 <- VARIAVEL_2 VARIAVEL_2 <- SOMA SOMA <- VARIAVEL_1 + VARIAVEL_2 ESCREVER SOMA, "\n" VARIAVEL_1 <- VARIAVEL_2 VARIAVEL_2 <- SOMA SOMA <- VARIAVEL_1 + VARIAVEL_2 ESCREVER SOMA, "\n" VARIAVEL_1 <- VARIAVEL_2 VARIAVEL_2 <- SOMA SOMA <- VARIAVEL_1 + VARIAVEL_2 ESCREVER SOMA, "\n" VARIAVEL_1 <- VARIAVEL_2 VARIAVEL_2 <- SOMA SOMA <- VARIAVEL_1 + VARIAVEL_2 ESCREVER SOMA, "\n" FIM
- O mesmo problema acima, desta vez resolvido com apenas duas variáveis (solução do Luiz Henrique)
inicio inteiro var1, var2 var1 <- 1 escrever var1 escrever "\n" escrever var1 escrever "\n" var2 <- var1 + var1 escrever var2 escrever "\n" escrever var1 + var2 var1 <- var1 + var2 escrever "\n" escrever var1 + var2 var2 <- var1 + var2 escrever "\n" escrever var2 + var1 var1 <- var2 + var1 fim
Atividade-problema
Crie um conversor de decimal para binário (limite: 4 bits).
inicio inteiro dividendo <- 9 constante inteiro divisor <- 2 inteiro quociente inteiro resto inteiro segundoResto inteiro terceiroResto quociente <- dividendo / divisor resto <- dividendo % divisor dividendo <- quociente quociente <- dividendo / divisor segundoResto <- dividendo % divisor dividendo <- quociente quociente <- dividendo / divisor terceiroResto <- dividendo % divisor escrever quociente, terceiroResto, segundoResto, resto fim