Ferramentas Pessoais
Você está aqui: Página Inicial » Cursos » Algoritmos e Programação » 2a Lista de Exercícios

2a Lista de Exercícios

Document Actions
  1. Escreva um programa que leia duas cadeias de caracteres A e B e diga se A é uma sub-seqüência de B. A é uma sub-seqüência de B se todos os elementos de A podem ser encontrados em B na mesma ordem que aparecem em A (possivelmente separados por elementos de B que não aparecem em A). Assim, por exemplo, "abc" é uma sub-seqüência de "xaycbxadc", mas não é sub-seqüência de "ybazcxd".
  2. Escreva um programa que leia um texto e imprima ao final uma estatística onde constem: número total de caracteres, número total de linhas, número total de palavras, maior palavra (isto é, palavra com mais caracteres) e palavra mais freqüente.
  3. Suponha que você vai fazer um sistema de banco de dados (em memória) para um banco comercial. Assuma que o banco tem uma lista de clientes, sendo que cada cliente pode ter várias contas e, em cada conta, vários lançamentos podem ser feitos (débitos ou créditos). Pede-se:
    1. Que estruturas de dados você usaria para implementar o banco de dados desse banco?
    2. Ilustre como usar essas estruturas de dados escrevendo trechos de código para as seguintes operações:
      1. Cadastrar um novo cliente com nome dado por Nome.
      2. Cadastrar uma nova conta para o cliente Nome. O resultado deve ser um número inteiro ainda não usado por cliente nenhum e que será usado para identificar a nova conta.
      3. Fazer um lançamento de Valor na conta Conta. 
      4. Obter o extrato da conta Conta, isto é, uma listagem com todos os lançamentos e o saldo.
      5. Obter o saldo de todas as contas pertencentes a Nome
  4. Escreva um programa para gerenciar diagramas de palavras cruzadas. A entrada para o programa deve ser lida do teclado numa lista de tuplas onde cada tupla contém:
    • Coordenadas x e y da primeira letra da palavra, onde as coordenadas x=1, y=1 correspondem ao canto superior esquerdo do diagrama.
    • Tipo da entrada: 'H' para horizontal e 'V' para vertical.
    • A palavra armazenada como uma string.
    O seu programa deverá:
    1. Fazer a leitura dos dados e colocá-los na forma de uma lista de tuplas como descrito acima.
    2. Dizer se os dados são consistentes para um diagrama de palavras cruzadas, isto é, entradas não devem ser superpor no diagrama e, caso o façam (uma entrada horizontal e outra vertical, por exemplo), devem ter letras coincidentes nas casas comuns. Também deve verificar se duas entradas horizontais na mesma linha ou duas entradas verticais da mesma coluna possuem ao menos uma casa vazia entre elas.
    3. Imprimir os dados na forma de um diagrama de palavras cruzadas usando caracteres ascii para emoldurar as casas. Uma casa em branco não deve ser emoldurada, a menos que seja vizinha a casas com letras dos 4 lados. Nesse caso, deve ser preenchida com asteriscos. Por exemplo, a entrada
      • A entrada dada por:
        2 1 V AMA
        4 1 V MARTE
        1 2 H IMPAR
        3 4 H ITA
      • Gera a saída:
            +---+   +---+
        | A | | M |
        +---+---+---+---+---+
        | I | M | P | A | R |
        +---+---+---+---+---+
        | A |***| R |
        +---+---+---+---+
        | I | T | A |
        +---+---+---+
        | E |
        +---+

« Julho 2006 »
Do Se Te Qu Qu Se Sa
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
12-07-2006
13:30-15:00 Illustrative Scientific Visualization
Próximos Eventos
 
 

Powered by Plone

Este site está em conformidade com os seguintes padrões: