quinta-feira, 7 de junho de 2012

Lista de exercícios - modularização, apontadores e recursividade


algoritmo Banco
    declare
    var Registro Conta{
                nro:numerico
                nome:literal
                saldo:numerico
            }
           
    var vetConta[1..50]:Conta
    var opcao:numerico
   
    opcao <- 0
   
    zerarVetor($vetConta) //passagem por referência
   
    enquanto opcao <> 6 então
        escreva '1-cadastrar 2-remover 3-depositar 4-sacar 5-consultar 6-sair'
        leia opcao
       
        escolha opcao
            caso 1:
                cadastrar($vetConta)
            caso 2:
                remover($vetConta)
            caso 3:
                depositar($vetConta)
            caso 4:
                sacar($vetConta)
            caso 5:
                consultar($vetConta)
        fim_escolha
       
    fim_enquanto
   
fim_algoritmo

subrotina zerarVetor(vetConta[1..50])
    var i:numerico
    para i <- 1 até 50 faça
        vetConta[i].nro <- 0
        vetConta[i].nome <- NULO
        vetConta[i].saldo <- 0
    fim_para
fim_subrotina

subrotina cadastrar(vetConta[1..50)
    var i, aux:numerico
   
    aux <- -1
   
    para i <- 1 até 50 faça
        se vetConta[i].nro = 0 então
            aux <- i
        fim_se
    fim_para
   
    se aux = -1 então
        escreva 'Não há espaço suficiente para realizar um novo cadastro de conta'
    senão
        escreva 'Informe o número da conta:'
        leia vetConta[aux].nro
       
        escreva 'Informe o nome do cliente:'
        leia vetConta[aux].nome
       
        vetConta[aux].saldo <- 0
       
        Escreva 'Conta cadastrada com sucesso!'
    fim_se
fim_subrotina

subrotina remover(vetConta[1..50])
    var i, aux, nro:numerico
   
    aux <- -1
   
    escreva 'Informe o número da conta que deseja remover:'
    leia nro
   
    para i <- 1 até 50 faça
        se nro = vetConta[i].nro então
            aux <- i
        fim_se
    fim_para
   
    se aux = -1 então
        escreva 'Não foi encontrada nenhuma conta com o número informado, por favor verifique o número e repita a operação!'
    senão
        vetConta[aux].nro <- 0
        vetConta[aux].nome <- NULO
        vetConta[aux].saldo <- 0
        escreva 'Conta removida com sucesso!'
    fim_se
fim_subrotina

subrotina depositar(vetConta[1..50])
    var i, aux, nro, valor:numerico
   
    aux <- -1
   
    escreva 'Informe o número da conta:'
    leia nro
   
    para i <- 1 até 50 faça
        se nro = vetConta[i].nro então
            aux <- i
        fim_se
    fim_para
   
    se aux = -1 então
        escreva 'Essa conta não está cadastrada!'
    senão
        escreva 'Informe o valor que deseja depositar:'
        leia valor
       
        se valor > então
            vetConta[aux].saldo <- vetConta[aux].saldo + valor
            escreva 'Depositado realizado com sucesso!'
        senão
            escreva 'Valor inválido!'
    fim_se
fim_subrotina

subrotina sacar(vetConta[1..50])
    var i, aux, nro, valor:numerico
   
    aux <- -1
   
    escreva 'Informe o número da conta:'
    leia nro
   
    para i <- 1 até 50 faça
        se nro = vetConta[i].nro então
            aux <- i
        fim_se
    fim_para
   
    se aux = -1 então
        escreva 'Essa conta não está cadastrada!'
    senão
        escreva 'Informe o valor que deseja sacar:'
        leia valor
       
        se valor > 0 então
            vetConta[aux].saldo <- vetConta[aux].saldo - valor
            escreva 'Saque realizado com sucesso!'
        senão
            escreva 'Valor inválido!'
        fim_se
fim_subrotina

subrotina consultar(vetConta[1..50])
    var i, aux, nro:numerico
   
    aux <- -1
   
    escreva 'Informe o número da conta:'
    leia nro
   
    para i <- 1 até 50 faça
        se nro = vetConta[i].nro então
            aux <- i
        fim_se
    fim_para
   
    se aux = -1 então
        escreva 'Essa conta não está cadastrada!'
    senão
        escreva 'Número: ', nro
        escreva 'Cliente: ', vetConta[aux].nome
        escreva 'Saldo: ', vetConta[aux].saldo
    fim_se
fim_subrotina


Nenhum comentário:

Postar um comentário

Novidade!!! Agora vamos ter canal no Youtube =D

Fala pessoal tudo beleza, estou sumido a correria está forte por aqui. Estou querendo dar um start em um projeto antigo que vem desde o temp...