algoritmo "Imóveis"
var
descricao: vetor [1..100] de caracter
rua: vetor [1..100] de caracter
bairro: vetor [1..100] de caracter
cidade: vetor [1..100] de caracter
uf: vetor [1..100] de caracter
aluguel: vetor [1..100] de logico
valor: vetor [1..100] de real
proxCod: inteiro
procedimento tituloSistema()
inicio
limpatela
escreval("================================")
escreval("Sistema de Comparação de Imóveis")
escreval("================================")
escreval(" __ ")
escreval(" _________||___ ")
escreval(" /____________\ ")
escreval(" /| _ _ |\ ")
escreval(" | | | |_| | ")
escreval(" | | | | ")
escreval("--------------------------------")
fimprocedimento
procedimento menuPrincipal()
var op: caracter
inicio
enquanto (op <> "9") faca
tituloSistema()
escreval(".: MENU PRINCIPAL :. ")
escreval(" 1 - Incluir novo imóvel")
escreval(" 2 - Alterar imóvel")
escreval(" 3 - Remover imóvel")
escreval(" 4 - Listar imóveis")
escreval(" 5 - Escolher melhor imóvel")
escreval(" 9 - Sair")
escreval("--------------------------------")
op <- lerCaracter("Opção: ")
se (op = "1") entao
incluirNovoImovel()
fimse
se (op = "2") entao
alterarImovel()
fimse
se (op = "3") entao
excluirImovel()
fimse
se (op = "4") entao
listarImoveis()
fimse
fimenquanto
fimprocedimento
procedimento incluirNovoImovel()
var op: caracter
inicio
tituloSistema()
escreval("Inclusão de Imóvel")
escreval("------------------")
proxCod <- proxCod + 1
descricao[proxCod] <- lerCaracter("Digite a Descrição: ")
rua[proxCod] <- lerCaracter("Digite a Rua: ")
bairro[proxCod] <- lerCaracter("Digite o Bairro: ")
cidade[proxCod] <- lerCaracter("Digite a Cidade: ")
uf[proxCod] <- lerCaracter("Digite a UF: ")
aluguel[proxCod] <- lerLogico("É imóvel de aluguel (S/N): ")
valor[proxCod] <- lerReal("Valor: ")
escreval("------------------")
escreval("Imóvel cadastrado com sucesso!")
escreval("------------------")
escreval("Pressione ENTER para voltar ao menu.")
leia(op)
fimprocedimento
procedimento alterarImovel()
var op: caracter
cod: inteiro
inicio
tituloSistema()
escreval("Alteração de Imóvel")
escreval("-------------------")
cod <- lerInteiro("Digite o código a ser alterado: ")
se (cod < 1) ou (cod > proxCod) entao
escreval("Código inválido! Pressione ENTER para voltar ao menu.")
leia(op)
senao
mostrarImovel(cod)
escreval("------------------")
descricao[cod] <- lerCaracter("Nova Descrição: ")
rua[cod] <- lerCaracter("Nova Rua: ")
bairro[cod] <- lerCaracter("Novo Bairro: ")
cidade[cod] <- lerCaracter("Nova Cidade: ")
uf[cod] <- lerCaracter("Nova UF: ")
aluguel[cod] <- lerLogico("É imóvel de aluguel (S/N): ")
valor[cod] <- lerReal("Novo Valor: ")
escreval("------------------")
escreval("Imóvel alterado com sucesso!")
escreval("------------------")
escreval("Pressione ENTER para voltar ao menu.")
leia(op)
fimse
fimprocedimento
procedimento excluirImovel()
var op: caracter
confirmacao: logico
cod: inteiro
inicio
tituloSistema()
escreval("Exclusão de Imóvel")
escreval("------------------")
cod <- lerInteiro("Digite o código a ser excluído: ")
se (cod < 1) ou (cod > proxCod) entao
escreval("Código inválido! Pressione ENTER para voltar ao menu.")
leia(op)
senao
mostrarImovel(cod)
escreval("------------------")
confirmacao <- lerLogico("Realmente excluir este imóvel? (S/N) ")
se (confirmacao = VERDADEIRO) entao
descricao[cod] <- ""
escreval("------------------")
escreval("Imóvel excluído com sucesso!")
escreval("------------------")
escreval("Pressione ENTER para voltar ao menu.")
leia(op)
fimse
fimse
fimprocedimento
procedimento listarImoveis()
var i: inteiro
op: caracter
inicio
tituloSistema()
escreval("Lista de Imóveis")
para i de 1 ate proxCod faca
se (descricao[i] <> "") entao
mostrarImovel(i)
fimse
fimpara
escreval("----------------")
escreval("Pressione ENTER para voltar ao menu.")
leia(op)
fimprocedimento
procedimento mostrarImovel(cod: inteiro)
inicio
escreval("----------------")
escreval("Código ", cod)
escreval(" Descrição: ", descricao[cod])
escreval(" Rua: ", rua[cod], ", ", bairro[cod])
escreval(" Cidade: ", cidade[cod], "/", uf[cod])
escreval(" Aluguel: ", aluguel[cod])
escreval(" Valor: R$ ", valor[cod])
fimprocedimento
funcao lerCaracter(m: caracter): caracter
var v: caracter
inicio
escreva(m)
leia(v)
retorne v
fimfuncao
funcao lerInteiro(m: caracter): inteiro
var v: inteiro
inicio
escreva(m)
leia(v)
retorne v
fimfuncao
funcao lerReal(m: caracter): real
var v: real
inicio
escreva(m)
leia(v)
retorne v
fimfuncao
funcao lerLogico(m: caracter): logico
var v: caracter
inicio
escreva(m)
leia(v)
se (v = "S") ou (v = "s") entao
retorne verdadeiro
senao
retorne falso
fimse
fimfuncao
procedimento carregarValoresParaTeste()
inicio
proxCod <- proxCod + 1
descricao[proxCod] <- "apto 2q"
rua[proxCod] <- "ipiranga"
bairro[proxCod] <- "azenha"
cidade[proxCod] <- "poa"
uf[proxCod] <- "rs"
aluguel[proxCod] <- VERDADEIRO
valor[proxCod] <- 1000.0
proxCod <- proxCod + 1
descricao[proxCod] <- "apto 3q"
rua[proxCod] <- "azenha"
bairro[proxCod] <- "azenha"
cidade[proxCod] <- "poa"
uf[proxCod] <- "rs"
aluguel[proxCod] <- FALSO
valor[proxCod] <- 120000.0
proxCod <- proxCod + 1
descricao[proxCod] <- "casa"
rua[proxCod] <- "borges"
bairro[proxCod] <- "centro"
cidade[proxCod] <- "poa"
uf[proxCod] <- "rs"
aluguel[proxCod] <- VERDADEIRO
valor[proxCod] <- 1500.0
fimprocedimento
inicio
carregarValoresParaTeste()
menuPrincipal()
fimalgoritmo
Informática Aplicada à Engenharia
sexta-feira, 25 de novembro de 2011
Aula 31 - 25.11.2011
quarta-feira, 23 de novembro de 2011
sexta-feira, 18 de novembro de 2011
Aula 29 - 18.11.2011
Projeto "Sistema de Comparação de Imóveis"
algoritmo "Imóveis"
var
descricao: vetor [1..100] de caracter
rua: vetor [1..100] de caracter
bairro: vetor [1..100] de caracter
cidade: vetor [1..100] de caracter
uf: vetor [1..100] de caracter
aluguel: vetor [1..100] de logico
valor: vetor [1..100] de real
proxCod: inteiro
procedimento tituloSistema()
inicio
limpatela
escreval("================================")
escreval("Sistema de Comparação de Imóveis")
escreval("================================")
escreval(" __ ")
escreval(" _________||___ ")
escreval(" /____________\ ")
escreval(" /| _ _ |\ ")
escreval(" | | | |_| | ")
escreval(" | | | | ")
escreval("================================")
fimprocedimento
procedimento menuPrincipal()
var op: caracter
inicio
enquanto (op <> "9") faca
tituloSistema()
escreval("1 - Incluir novo imóvel")
escreval("2 - Alterar imóvel")
escreval("3 - Remover imóvel")
escreval("4 - Listar imóveis")
escreval("5 - Comparar imóveis")
escreval("6 - Escolher imóvel")
escreval("9 - Sair")
escreval("================================")
op <- lerCaracter("Opção: ")
se (op = "1") entao
incluirNovoImovel()
fimse
se (op = "4") entao
listarImoveis()
fimse
fimenquanto
fimprocedimento
procedimento incluirNovoImovel()
var op: caracter
inicio
tituloSistema()
escreval("Inclusão de Imóvel")
escreval("------------------")
proxCod <- proxCod + 1
descricao[proxCod] <- lerCaracter("Digite a Descrição: ")
rua[proxCod] <- lerCaracter("Digite a Rua: ")
bairro[proxCod] <- lerCaracter("Digite o Bairro: ")
cidade[proxCod] <- lerCaracter("Digite a Cidade: ")
uf[proxCod] <- lerCaracter("Digite a UF: ")
aluguel[proxCod] <- lerLogico("É imóvel de aluguel (S/N): ")
valor[proxCod] <- lerReal("Valor: ")
escreval("------------------")
escreval("Imóvel cadastrado com sucesso!")
escreva("Deseja cadastrar outro? (S/N) ")
leia(op)
se (op = "S") ou (op = "s") entao
incluirNovoImovel()
fimse
fimprocedimento
procedimento listarImoveis()
var i: inteiro
op: caracter
inicio
tituloSistema()
escreval("Lista de Imóveis")
para i de 1 ate proxCod faca
escreval("----------------")
escreval("Código ", i)
escreval(" Descrição: ", descricao[i])
escreval(" Rua: ", rua[i], ", ", bairro[i])
escreval(" Cidade: ", cidade[i], "/", uf[i])
escreval(" Aluguel: ", aluguel[i])
escreval(" Valor: R$ ", valor[i])
escreval("----------------")
fimpara
escreval("Digite para voltar ao menu principal.")
leia(op)
fimprocedimento
funcao lerCaracter(m: caracter): caracter
var v: caracter
inicio
escreva(m)
leia(v)
retorne v
fimfuncao
funcao lerInteiro(m: caracter): inteiro
var v: inteiro
inicio
escreva(m)
leia(v)
retorne v
fimfuncao
funcao lerReal(m: caracter): real
var v: real
inicio
escreva(m)
leia(v)
retorne v
fimfuncao
funcao lerLogico(m: caracter): logico
var v: caracter
inicio
escreva(m)
leia(v)
se (v = "S") ou (v = "s") entao
retorne verdadeiro
senao
retorne falso
fimse
fimfuncao
inicio
menuPrincipal()
fimalgoritmo
quarta-feira, 16 de novembro de 2011
Aula 28 - 16.11.2011
Início do trabalho final
- Biblioteca pessoal
- Código do livro, Título, Autor, Ano de publicação, Já lido, Páginas e Preço
- Cadastro de filmes
- Código, Título, Rating, Ano, Gênero, Já visto e Tempo total.
- Cadastro de veículos
- Código, Marca, Modelo, Ano, Cor, Portas, Opcionais e Preço.
- Cadastro de pessoas
- CPF, Nome, Sexo, Fone, Email, Dia e Mês de nascimento, Altura e Peso.
- Cadastro de endereços
- CEP, Rua, Bairro, Cidade, Estado, País,
- Cadastro de cidades
- Código, Nome, Estado, Qtde habitantes, Já fui, É capital e PIB anual
- Cadastro de objetos pessoais
- Código, Nome, Tipo, Comprado em (mm/aaaa), Preço, Onde está e Perdido.
- Cadastro de computadores
- Código, Marca, Processador, Qtde RAM, Qtde HD, É notebook e Preço.
- Registro de Atendimento em Clínica Médica
- Dia, mês e ano do atendimento, CPF ou RG, Nome, Sexo, Idade, Convênio e Valor.
- Controle de pet-shop
- Dia e mês, hora e minuto, nome do pet, raça, peso e descrição do serviço.
- Controle de alimentação
- Dia e mês, turno, alimento, quantidade, calorias e peso.
- Controle de Treino de Academia
- Dia, mês e ano, aparelho, exige peso, peso, séries e repetições.
- Sistema de avaliações
- Nome do aluno, Pergunta, Resposta 1, Resposta 2, Resposta 3, Resposta 4, Resposta 5, Resposta, Resposta certa. Ao final, calcular a nota do aluno.
- Cadastro de músicas
- Nome, Artista, Gênero, Ano, Tempo e se É ao vivo.
sexta-feira, 11 de novembro de 2011
Aula 27 - 11.11.2011
[Lista de Exercícios]
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 procedimentos no algoritmo.
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 procedimentos no algoritmo.
quarta-feira, 9 de novembro de 2011
Aula 26 - 09.11.2011
Procedimentos e Funções
Forma de organizar o código que permite reutilizar operações repetitivas.
Procedimentos
Não retorna valores, apenas executa algo.
Pode receber parâmetros de entrada ou não.
Estes parâmetros podem ser por valor ou por referência.
---------------------------------------------
Passagem de parâmetros por valor:
---------------------------------------------
Passagem de parâmetros por referência:
---------------------------------------------
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:
---------------------------------------------
[Lista de Exercícios]
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.
Forma de organizar o código que permite reutilizar operações repetitivas.
Procedimentos
Não retorna valores, apenas executa algo.
Pode receber parâmetros 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
---------------------------------------------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]
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.
Aula 26 - 09.11.2011 - Extra
Segue abaixo um algoritmo feito no VisualG para servir de base para o estudo.
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".
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
matriz: 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 (matriz[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
matriz[coluna, linha] <- letra
// Mostra a matriz na tela.
para linha de 1 ate 3 faca
m <- ""
para coluna de 1 ate 3 faca
letra <- matriz[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 (matriz[coluna, linha] = "") entao
fim_do_jogo <- falso
fimse
fimpara
fimpara
// Verifica se houve ganhador na jogada
se (matriz[1,1] <> "") entao
// Testando a 1a. coluna...
se (matriz[1,1] = matriz[1,2]) e (matriz[1,1] = matriz[1,3]) entao
ganhador <- jogando
fimse
// Testando na diagonal...
se (matriz[1,1] = matriz[2,2]) e (matriz[1,1] = matriz[3,3]) entao
ganhador <- jogando
fimse
// Testando a 1a. linha...
se (matriz[1,1] = matriz[2,1]) e (matriz[1,1] = matriz[3,1]) entao
ganhador <- jogando
fimse
fimse
se (matriz[2,1] <> "") entao
// Testando a 2a. coluna...
se (matriz[2,1] = matriz[2,2]) e (matriz[2,1] = matriz[2,3]) entao
ganhador <- jogando
fimse
fimse
se (matriz[3,1] <> "") entao
// Testando a diagonal invertida..
se (matriz[3,1] = matriz[2,2]) e (matriz[3,1] = matriz[1,3]) entao
ganhador <- jogando
fimse
// Testando a 3a. coluna...
se (matriz[3,1] = matriz[3,2]) e (matriz[3,1] = matriz[3,3]) entao
ganhador <- jogando
fimse
fimse
se (matriz[1,2] <> "") entao
// Testando a 2a. linha...
se (matriz[1,2] = matriz[2,2]) e (matriz[1,2] = matriz[3,2]) entao
ganhador <- jogando
fimse
fimse
se (matriz[1,3] <> "") entao
// Testando a 3a. linha...
se (matriz[1,3] = matriz[2,3]) e (matriz[1,3] = matriz[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
Assinar:
Postagens (Atom)