sexta-feira, 17 de junho de 2011

Aula 17 - 18.06.2011

Revisão da prova e entrega das notas.

Trabalho valendo nota:

 1) Desenvolva um algoritmo que apresente um menu ao usuário com as seguintes opções:


=== Sistema de Cadastro de Músicas ====
I - Incluir nova Música
A - Alterar Música
E - Excluir Música
L - Listar todas as Músicas
F - Filtrar


Funções/Procedimentos esperados:
incluir() - Deve permitir ao usuário incluir uma música com os seguintes dados: nome da música, nome da banda, tamanho da música, nota (de 0 a 10)
alterar() - Deve permitir ao usuário alterar os dados de uma música.
excluir() - Deve permitir ao usuário excluir uma música.
listar() - Deve mostrar na tela todas as músicas cadastradas, porém, deve dar a opção ao usuário poder escolher qual ordenação crescente ou decrescente por nome da música, nome da banca, tamanho ou nota, sendo o padrão por nota decrecente
filtrar() - Deve apresentar uma tela de filtragem para que se encontre as músicas desejadas: por nome, por banda, maior que tantos minutos, por nota, etc.

quarta-feira, 15 de junho de 2011

sábado, 11 de junho de 2011

Aula 15 - 11.06.2011

Continuação da lista de exercícios
----------------------------------------------------

Exemplos de funções vista em aula:
----------------------------------------------------

algoritmo "Gerar Números da Mega-sena"
var
i,j,x: inteiro
valores: vetor[1..6] de inteiro
funcao gerarNumeroAleatorio(intervalo: inteiro; consideraNegativos: logico; comecaDoUm: logico): inteiro
var r: inteiro
inicio
   r <- int(rand*intervalo)
  
   se (comecaDoUm) entao
      r <- r + 1
   fimse
   se (consideraNegativos) entao
      r <- (r - int(intervalo/2))
   fimse
  
   retorne r
fimfuncao
inicio
para j de 1 ate 10 faca
   escreva("Palpite ", j, " [")
   para i de 1 ate 6 faca
      valores[i] <- gerarNumeroAleatorio(60, falso, verdadeiro), ",")
      x <- i-1
      enquanto (x > 0) faca
         se (valores[i] = valores[x]) entao
           escreva("(Repitiu: ", valores[x], " na posição ", x, ")")
           valores[i] <- gerarNumeroAleatorio(60, falso, verdadeiro), ",")
           x <- i
         fimse
         x <- x-1
      fimenquanto
      escreva(valores[i], ",")
   fimpara
   escreval("]")
fimpara  
fimalgoritmo

----------------------------------------------------

algoritmo "GerarNumeroAleatorio"
var
 i: inteiro
funcao gerarNumeroAleatorio(intervalo: inteiro; consideraNegativos: logico; comecaDoUm: logico): inteiro
var r: inteiro
inicio
 r <- int(rand*intervalo)
 se (comecaDoUm) entao
    r <- r + 1
 fimse

 se (consideraNegativos) entao
   r <- r - int(intervalo/2)
 fimse
 retorne r
fimfuncao
inicio
para i de 1 ate 20 faca
     escreval(gerarNumeroAleatorio(10, falso, falso))
fimpara
fimalgoritmo

quinta-feira, 9 de junho de 2011

CURSO 'THE BOOK IS ON THE TABLE'

O Brasil sediará a Copa de 2014. Como muitos turistas de todo mundo estarão por aqui, é imprescindível o aprendizado de outros idiomas (em particular o inglês) para a melhor comunicação com eles.
Pensando em auxiliar no aprendizado, foi formulada uma solução prática e rápida!!
Chegou o sensacional e insuperável curso 'The Book is on the Table', com muitas palavras que você usará durante a Copa do Mundo de 2014.

Veja como é fácil!
a.) Is we in the tape!= É nóis na fita.
b.) Tea with me that I book your face= Chá comigo que eu livro sua cara.(essa é SEN-SA-CI-O-NAL !!!!! )
c.) I am more I= Eu sou mais eu.
d.) Do you want a good-good?= Você quer um bom-bom?
e.) Not even come that it doesn't have!= Nem vem que não tem!
f.) She is full of nine o'clock= Ela é cheia de nove horas.
g.) I am completely bald of knowing it= To careca de saber.
h.) Ooh! I burned my movie!= Oh! Queimei meu filme!
i.) I will wash the mare.= Vou lavar a égua.
j.) Go catch little coconuts!= Vai catar coquinho!
k..) If you run, the beast catches, if you stay the beast eats!= Se correr, o bicho pega, se ficar o bicho come!
l.) Before afternoon than never.= Antes tarde do que nunca.
m.) Take out the little horse from the rain= Tire o cavalinho da chuva.
n.) The cow went to the swamp.= A vaca foi pro brejo!
o.) To give one of John the Armless= Dar uma de João-sem-Braço.
p.) Look the bird= Olha o passarinho (essa faltou)

quarta-feira, 8 de junho de 2011

Aula 14 - 09.06.2011

Procedimentos e Funções
Forma de organizar o código-fonte que permite reutilizar operações repetitivas. 

1) Procedimentos
Não retorna valores, apenas executa algo.
Pode receber parâmetro de entrada ou não.
Estes parâmetros podem ser por valor ou por referência.


Passagem de parâmetros por valor:
algoritmo "semnome"
var
 salario: real
procedimento darAumento(s: real)
inicio
  s <- s + (s * 0.1)
fimprocedimento
inicio
 leia(salario)
 darAumento(salario)
 escreval("Infelizmente seu salário não foi aumentado: ", salario)
fimalgoritmo 
 
Passagem de parâmetros por referência:
algoritmo "semnome"
var
 salario: real

procedimento darAumento(var s: real)
inicio
  s <- s + (s * 0.1)
fimprocedimento

inicio
 leia(salario)
 darAumento(salario)
 escreval("Parabéns! Seu salário foi aumentado: ", salario)

fimalgoritmo 


2) Funções
Além de executar algo, retorna valor.
Pode receber parâmetro de entrada ou não.
Estes parâmetros podem ser por valor ou por referência.


Exemplo:
algoritmo "semnome"
var
 salario: real

funcao darAumento(s: real): real
inicio
  retorne s + (s * 0.1)
fimfuncao
inicio
 leia(salario)
 escreval("Parabéns! Seu salário foi aumentado: ", darAumento(salario))
fimalgoritmo



[Lista de Exercícios]

FÁCEIS

1)      Faça um procedimento que receba um valor inteiro e escreva, dentro do procedimento, se o número é positivo ou negativo.

2)      Faça uma função que receba um valor inteiro e retorne se o valor é positivo ou negativo.

3)      Faça um procedimento que receba um parâmetro por referência do tipo inteiro e o altere internamente para um valor 3 vezes maior caso seja ímpar e 2 vezes menor cada seja par. Mostrar o número ao final do algoritmo.

4)      Faça uma função que receba um número inteiro positivo N como parâmetro e retorne a soma dos N números inteiros existentes entre o número 1 e esse número.

5)      Faça um procedimento que substitua todos os valores negativos de um vetor de 25 números inteiros por zero sempre que a posição i do vetor for menor que zero. Faça outro procedimento que liste os 25 novos valores do vetor. Utilize os dois prccedimentos no algoritmo.

MÉDIOS

6)      Faça uma função que receba, por parâmetro, a altura e o sexo de uma pessoa e retorne o seu peso ideal. Calcular o peso ideal usando as fórmulas a seguir:
a)      Homens: Peso Ideal = 72,7 * altura − 58
b)      Mulheres: Peso Ideal = 62,1 * altura − 44,7

7)      Faça uma função que, baseado em um vetor X de 15 elementos inteiros, retorne a quantidade de valores pares.

8)      Faça uma função que receba como parâmetro o raio de uma esfera, calcule e mostre no programa principal o seu volume, dado pela seguinte fórmula:


9)      Faça uma função que receba por parâmetro um valor inteiro e positivo N e retorne o valor S.


DIFÍCEIS

10)  A prefeitura de uma cidade fez uma pesquisa entre seus habitantes, coletando dados sobre o salário e número de filhos. Faça uma função que leia esses dados para um número não determinado de pessoas e retorne a média de salário da população, a média do número de filhos, o maior salário e o percentual de pessoas com salário até R$ 350,00. Cada cálculo deve ser feito em uma função ou procedimento próprio.

11)  Foi realizada uma pesquisa entre 15 habitantes de certa região. De cada habitante foram coletados os dados “nome, idade, sexo, salário e número de filhos”. Faça um programa que leia esses dados em um vetor para cada informação (vetNome, vetIdade, vetSexo, vetSalario, vetNumeroFilhos). Faça funções que retornem a média de salário entre os habitantes, a menor e maior idade do grupo, informando o nome da pessoa, e a quantidade de mulheres com três filhos que recebe até R$ 500,00. Utilize uma função ou procedimento para cada cálculo em separado.

12)  Faça uma função que receba um valor inteiro e positivo e calcule e mostre o seu fatorial (http://pt.wikipedia.org/wiki/Fatorial)
 

sábado, 4 de junho de 2011

Aula 13 - 04.06.2011

Continuação da lista de exercícios - FINALIZAÇÃO!!!

Extra:
Segue abaixo um algoritmo feito no VisualG para servir de base para o estudo de vocês.

Para quem quiser fazer um "a mais" neste algoritmo, eu gostaria de vê-lo tendo a possibilidade de executar o jogo no formato "jogador x computador".


algoritmo "Jogo da Velha"
var
jogo_velha: vetor[1..3,1..3] de caracter
coluna, linha: inteiro
jogador1, jogador2, jogando, ganhador, letra, m: caracter
fim_do_jogo: logico
inicio
escreval(" ==== JOGO DA VELHA ==== ")
// Lendo o nome dos jogadores...
escreva("Informe nome do jogador 1: ")
leia(jogador1)
escreva("Informe nome do jogador 2: ")
leia(jogador2)
// Mostrando matriz vazia...
para linha de 1 ate 3 faca
   m <- ""
   para coluna de 1 ate 3 faca
      m <- m + "   "
      se (coluna < 3) entao
         m <- m + "|"
      fimse
   fimpara
   escreval(m)
   escreval("---|---|---")
fimpara
escreval(" ")
// Enquanto a variável 'fim_do_jogo' não for verdadeira, continue jogando...
enquanto (fim_do_jogo = falso) faca
   // Verifica qual é o jogador da jogada...
   se (jogando = jogador2) entao
      jogando <- jogador1
      letra <- "X"
   senao
      jogando <- jogador2
      letra <- "O"
   fimse
   // Solicita a coluna/linha da jogada...
   escreva(jogando, ", digite a coluna da jogada: ")
   leia(coluna)
   escreva(jogando, ", digite linha da jogada: ")
   leia(linha)
   // Verifica se a posição já não foi usada...
   enquanto (jogo_velha[coluna, linha] <> "") faca
      escreval("Posição já utilizada. Tente novamente!")
      escreva(jogando, ", digite a coluna da jogada: ")
      leia(coluna)
      escreva(jogando, ", digite linha da jogada: ")
      leia(linha)
   fimenquanto
   // Atribui a letra na coluna/linha que foi informada
   jogo_velha[coluna, linha] <- letra
  
   // Mostra a matriz na tela.
   para linha de 1 ate 3 faca
      m <- ""
      para coluna de 1 ate 3 faca
         letra <- jogo_velha[coluna, linha]
         se (letra = "") entao
            letra <- " "
         fimse
         m <- m + " " + letra + " "
         se (coluna < 3) entao
            m <- m + "|"
         fimse
      fimpara
      escreval(m)
      escreval("---|---|---")
   fimpara
   // Verifica se jogo já não acabou...
   fim_do_jogo <- verdadeiro
   para linha de 1 ate 3 faca
      para coluna de 1 ate 3 faca
         se (jogo_velha[coluna, linha] = "") entao
            fim_do_jogo <- falso
         fimse
      fimpara
   fimpara
   // Verifica se houve ganhador na jogada
   se (jogo_velha[1,1] <> "") entao
      // Testando a 1a. coluna...
      se (jogo_velha[1,1] = jogo_velha[1,2]) e (jogo_velha[1,1] = jogo_velha[1,3]) entao
         ganhador <- jogando
      fimse
      // Testando na diagonal...
      se (jogo_velha[1,1] = jogo_velha[2,2]) e (jogo_velha[1,1] = jogo_velha[3,3]) entao
         ganhador <- jogando
      fimse
      // Testando a 1a. linha...
      se (jogo_velha[1,1] = jogo_velha[2,1]) e (jogo_velha[1,1] = jogo_velha[3,1]) entao
         ganhador <- jogando
      fimse
   fimse
   se (jogo_velha[2,1] <> "") entao
      // Testando a 2a. coluna...
      se (jogo_velha[2,1] = jogo_velha[2,2]) e (jogo_velha[2,1] = jogo_velha[2,3]) entao
         ganhador <- jogando
      fimse
   fimse
   se (jogo_velha[3,1] <> "") entao
      // Testando a diagonal invertida..
      se (jogo_velha[3,1] = jogo_velha[2,2]) e (jogo_velha[3,1] = jogo_velha[1,3]) entao
         ganhador <- jogando
      fimse
      // Testando a 3a. coluna...
      se (jogo_velha[3,1] = jogo_velha[3,2]) e (jogo_velha[3,1] = jogo_velha[3,3]) entao
         ganhador <- jogando
      fimse
   fimse
   se (jogo_velha[1,2] <> "") entao
      // Testando a 2a. linha...
      se (jogo_velha[1,2] = jogo_velha[2,2]) e (jogo_velha[1,2] = jogo_velha[3,2]) entao
         ganhador <- jogando
      fimse
   fimse
   se (jogo_velha[1,3] <> "") entao
      // Testando a 3a. linha...
      se (jogo_velha[1,3] = jogo_velha[2,3]) e (jogo_velha[1,3] = jogo_velha[3,3]) entao
         ganhador <- jogando
      fimse
   fimse
   // Verifica se houve ganhador e termina o jogo
   se (ganhador <> "") entao
      fim_do_jogo <- verdadeiro
   fimse
fimenquanto
// Testando para ver se tem um ganhador...
se (ganhador = "") entao
   escreval("Não houve ganhar!!")
senao
   escreval("Parabéns ", ganhador, ". Você foi o vencedor!!")
fimse
fimalgoritmo