Sei sulla pagina 1di 6

Estrutura de Dados

Prof. Herleson Pontes


herleson@unifor.br http://www.herlesonpontes.com.br Horrio: Segundas, Quartas e Sextas (CD) Local: Salas M25 e T05 Data: Nome:

EXERCCIOS DE FIXAO MDULO 02


Observao: Todos os exerccios devem receber a entrada do usurio, alm de possuir tratamento de excees e interfaces quando necessrio.

(Os exerccios a seguir devem ser feitos utilizando vetores e matrizes) 1) Construa um algoritmo que receba 10 nmeros inteiros do usurio, armazene-os em uma matriz, e exiba esses nmeros na tela. (Nvel 100) 2) Desenvolva um algoritmo que receba 10 nmeros inteiros do usurio, armazene-os em uma matriz, e retorne o menor e maior nmero. (Nvel 200) 3) Crie um algoritmo que receba 5 nmeros inteiros do usurio, armazene-os em uma matriz, e retorne a mdia desses nmeros. (Nvel 200) 4) Desenvolva um programa que receba n nmeros inteiros positivos do usurio. Em seguida, retorne o menor, o maior e a mdia dos nmeros. (Nvel 200) 5) Desenvolva um programa que recebe n nmeros inteiros positivos informados pelo usurio, calcule e retorne os nmeros primos contidos nessa sequncia, com as suas respectivas posies. (Nvel 200) 6) Considere uma loja virtual que vende seus produtos atravs da internet. Atualmente a loja conta com 15 produtos, cada um com seu respectivo cdigo, preo e estoque. Desenvolva um programa que recebe o cdigo, o preo e a quantidade dos produtos existentes na loja, retornando em seguida o produto com menor estoque e o produto mais caro. (Nvel 200) 7) Desenvolva um programa em Java que possui dois arranjos, cada um com 10 (dez) elementos do tipo inteiro. Esse programa deve retornar a multiplicao de entre os elementos dos dois vetores que esto na mesma posio. Exemplo: Vetor A = {1, 2, 3, 4, 5} Vetor B = {2, 4, 6, 8, 10} Resultado = {2, 8, 18, 32, 50} O resultado deve ser armazenado tambm em um vetor. (Nvel 300) 8) Construa um programa em Java que receba n nmeros inteiros positivos do usurio. No entanto, o sistema no solicita ao usurio o valor de n. O sistema vai solicitando os valores at o usurio digitar o valor 0 (zero). Em seguida, o sistema deve retornar a soma de todos os elementos dessa matriz. (Nvel 300) 9) Crie um programa em Java que receba n nmeros inteiros positivos do usurio. No entanto, o sistema no solicita ao usurio o valor de n. O sistema vai solicitando os valores at o usurio digitar o valor 0 (zero). Em seguida, o usurio digitar um nmero x, e o sistema dever buscar x dentro da matriz. Se x for encontrado, o sistema retorna a posio desse nmero. (Nvel 300) 10) Faa um programa em Java que receba n nmeros inteiros positivos do usurio. No entanto, o sistema no solicita ao usurio o valor de n. O sistema vai solicitando os valores at o usurio digitar o valor 0 (zero). Em seguida, o sistema deve retornar essa matriz ordenada em sequncia crescente. (Nvel 300) 11) Construa um programa em Java que receba n nmeros inteiros positivos do usurio. No entanto, o sistema no solicita ao usurio o valor de n. O sistema vai solicitando os valores at o usurio digitar o valor 0 (zero). Em seguida, o sistema deve retornar quais desses nmeros so pares e quais so mpares, alm da soma dos elementos de cada desses grupos. (Nvel 300) 12) Crie um algoritmo em Java que receba uma matriz 3x3. Em seguida, o usurio informa os nmeros que compem essa matriz. O sistema deve retornar o valor do determinante dessa matriz. (Nvel 300) 13) Desenvolva uma calculadora em Java que realiza as quatro operaes bsicas: Adio, Subtrao, Multiplicao e Diviso. O programa deve exibir um menu onde o usurio escolhe a operao que deseja fazer. Em seguida, a Universidade de Fortaleza 1

Estrutura de Dados Mdulo 02 calculadora deve perguntar a quantidade de nmeros que receber para realizar a operao, e solicitar cada um desses nmeros. Por fim, o programa deve exibir o resultado e retornar ao menu principal. (Nvel 300) 14) Em matemtica, existe uma transformao bem conhecida em matrizes chamada de pivot. Essa operao consiste na converso de linhas em colunas e vice-versa. Crie um algoritmo em C que receba uma matriz 3x3. Em seguida, o usurio informa os nmeros que compem essa matriz. O sistema deve retornar a matriz aps uma operao de pivot. (Nvel 300) 15) Desenvolva um programa em Java que receba dois segmentos de reta, cada um com dois pontos: A(x1, y1) e B(x2, y2). Os pontos so nmeros Reais. Em seguida, o sistema deve retornar o tamanho de cada segmento, se os segmentos se cruzam e, caso se cruzem, em qual ponto ocorre esse cruzamento. (Nvel 400) 16) A busca binria um algoritmo de busca em vetores que requer acesso aleatrio aos elementos do mesmo. Ela parte do pressuposto de que o vetor est ordenado e realiza sucessivas divises do espao de busca (diviso e conquista) comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrrio, se o elemento do meio vier antes do elemento buscado, ento a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor. Desenvolva um programa em Java que recebe uma matriz com 20 elementos e realiza a busca binria nesta matriz. (Nvel 400). 17) Desenvolva um programa em Java que recebe uma matriz, e a classifica de acordo com o seu tipo. Os tipos podem ser: (Nvel 300) a) Comum b) Diagonal c) Triangular d) Simtrica e) Antissimtrica f) Esparsa

18) Matrizes especiais so aquelas que possuem como principal caracterstica a organizao dos elementos de forma particular. Implemente para cada tipo especial de matriz apresentado abaixo uma estrutura de dados que permita criar a matriz, receber os valores e escrever os valores no programa principal. As matrizes especiais so: (Nvel 400) a) Diagonal b) Triangular c) Simtrica d) Antissimtrica e) Esparsa 19) Na matemtica computacional, existe o conceito de bitmask, o qual armazena um inteiro no formato de bits. Essa representao facilita a realizao de clculos por parte do computador, e bastante utilizado para determinar grupos e permisses. Observe os exemplos: Inteiro 4 Bitmask = {0 1 0 0} Inteiro 2 Bitmask = {0 0 1 0} Inteiro 6 Bitmask = {0 1 1 0} Inteiro 9 Bitmask = {1 0 0 1} No Linux/Unix, as permisses de acesso a pastas so concedidos atravs da utilizao desse recurso. Considere as seguintes permisses em um arquivo nesse SO: Executar, Ler e Escrever, onde os seus valores seguem abaixo no formato bitmask: Executar = {0 0 1} Escrever = {0 1 0} Ler = {1 0 0} Como um usurio pode ter mais de uma permisso, possvel combinar as permisses, como no exemplo abaixo: Executar e Ler = {1 0 1} Observe que a permisso resultante a soma binria das permisses individuais. Universidade de Fortaleza 2

Estrutura de Dados Mdulo 02 Desenvolva um tipo abstrato de dados que represente um arquivo atravs das suas propriedades de nome do arquivo e permisso em inteiro. Esse tipo composto de dado deve ter uma operao que retorna ao programa principal a permisso resultante. (Nvel 400) (Os exerccios a seguir devem ser feitos utilizando arranjos de caracteres primitivos) 20) Construa um programa em Java que receba o primeiro nome do usurio, e o mesmo retorne este nome invertido. (Nvel 200). 21) Faa um programa em Java que receba o primeiro nome do usurio, e o mesmo retorne quantas letras e quantas consoantes este nome possui. (Nvel 200). 22) Desenvolva um programa em Java que valide um endereo de site brasileiro. O programa deve verificar se o endereo foi escrito corretamente. Exemplo: www.herlesonpontes.com.br (vlido); herleson.web.teste (invlido). (Nvel 300) 23) Crie um algoritmo em Java que receba uma palavra do usurio, e o sistema troque as vogais (a, e, i, o, u) pelos nmeros (1, 2, 3, 4, 5). (Nvel 300) 24) Um conceito muito utilizando em programao o da criptografia, que permite armazenar dados codificados, protegendo-os assim de acessos no autorizados. Desenvolva um sistema que oferea duas opes para o usurio: Codificar e Decodificar. No caso da primeira opo, o sistema deve receber um nome, inverter esse nome e trocar as vogais (a, e, i, o, u) pelos nmeros (1, 2, 3, 4, 5), retornando assim o texto criptografado. No caso da segunda opo, o sistema receber o nome criptografado e dever retornar o valor original. (Nvel 300). 25) Um validador muito comum nos softwares atuais o de data. Crie um programa em Java que valide uma data informada pelo usurio. Ele tem que validar dia (dois dgitos), ms (dois dgitos) e ano (quatro dgitos). No caso do ano, a faixa deve ir de 1900 at 2100. Deve-se levar em considerao quando o ano bissexto. Exemplo: 19/04/1983 (vlido); 31/02/89 (invlido). (Nvel 400) 26) Desenvolva um programa em Java que recebe a data de nascimento do usurio e a data do dia atual, e retorne a quantidade de dias que o usurio j viveu. (Nvel 400)

(Os exerccios a seguir devem ser feitos utilizando Strings) 27) Desenvolva um programa em Java que receba uma frase e retorne a quantidade de palavras que a frase possui. (Nvel 200) 28) Crie um programa em Java que receba uma frase e retorne a quantidade de vezes que cada letra aparece na frase. O programa s deve considerar as letras utilizadas na frase. (Nvel 200) 29) Implemente um programa em Java no qual uma frase inserida, e o mesmo retorna a lista de palavras utilizadas em ordem alfabtica. O programa deve ignorar artigos (o, a, os, as, um, uma, uns, umas) e preposies do tipo Essencial (Informaes: http://pt.wikipedia.org/wiki/Preposi%C3%A7%C3%A3o). (Nvel 300) 30) Construa um programa em Java que recebe uma frase digitada pelo usurio e uma palavra. O programa deve retornar se a palavra existe na frase e, caso exista, quantas vezes ela aparece na frase. (Nvel 300). 31) Desenvolva um programa em Java que recebe a data de nascimento do usurio e a data do dia atual, e retorne a idade do usurio. (Nvel 300) 32) Uma das medidas de segurana utilizadas pelas empresas refere-se a criao de logins, os quais controlam o acesso de usurios aos servios oferecidos pela rede. O Windows Server oferece um servio, conhecido como Active Directory (AD), o qual permite ao administrador de rede criar e gerenciar os logins da rede. Uma das boas prticas no processo de criao de logins a unio dos nomes do usurio para a formao do nome. Atualmente, quatro boas prticas so oferecidas pelo AD: Nome do Usurio: Herleson Sobrenome do Usurio: Pontes Boa Prtica 1: hpontes Boa Prtica 2: herlesonp Boa Prtica 3: herlesonpontes Boa Prtica 4: pontesherleson Desenvolva um programa em Java que recebe o nome e sobrenome de n usurios. Aps informado esses usurios, o programa pergunta qual a boa prtica que deseja-se utilizar para criar os logins. No final, o programa exibe para o usurio os nomes dos logins, de acordo com a boa prtica escolhida. (Nvel 400) Universidade de Fortaleza 3

Estrutura de Dados Mdulo 02 33) Uma das funcionalidades mais comuns que existem nos programas a escrita de nmeros por extenso e vice versa. Exemplo: Nmero: 153 Sada: Cento e cinquenta e trs Nmero por Extenso: Duzentos e cinquenta e dois. Sada: 252 Desenvolva um programa que pergunta ao usurio qual o tipo de converso que ele deseja fazer. Em seguida, realize a operao de acordo com a opo escolhida pelo usurio. (Nvel 400)

(Os exerccios a seguir devem ser feitos utilizando registros) 34) Construa um programa em Java que realize o cadastro de contas bancrias com as seguintes informaes: agncia, nmero da conta, nome do cliente e saldo. Cada cliente pode realizar as operaes de depsito, saque e extrato. Por fim, crie trs clientes e realize algumas operaes bancrias com cada um deles. (Nvel 200). 35) O sistema computacional do Departamento de Trnsito (DETRAN) armazena informaes sobre os veculos em circulao. Para cada veculo, o sistema cadastra Placa, Chassi e Proprietrio. Com esses dados, uma das operaes comuns a troca de proprietrio. Faa um programa em Java que receba os dados do veculo, e depois troque o proprietrio desse veculo. (Nvel 200). 36) O IBGE realizou uma pesquisa entre 500 habitantes de uma regio. De cada habitante foram coletados os dados: idade, sexo, salrio e nmero de filhos. Crie um programa em Java que represente a estrutura de dados adequada para armazenar estas informaes, alm de calcular a mdia do salrio dos habitantes. (Nvel 300) 37) Uma empresa deseja gerenciar os seus funcionrios atravs de um sistema. Cada funcionrio representado pelo seu nome, CPF, salrio, data de nascimento e sexo. O sistema deve retornar os dados do funcionrio, incluindo a idade desse. Crie um programa em Java que implementa essa estrutura de dados. (Nvel 200) 38) A Universidade Herleson Pontes (UNIHER) possui cursos de graduao nos mais diversos segmentos do saber. Na instituio existe o professor, representado pela sua matrcula, nome e e-mail. Tambm existe o aluno, representado pelos mesmos campos do professor. Por fim, cada turma na UNIHER formada por um professor e 20 alunos. Desenvolva um programa em Java que represente o cenrio da UNIHER, com as operaes necessrias para a consulta e manipulao dos dados. (Nvel 300) 39) Com a Copa do Mundo FIFA em 2014, uma das reas que mais deve cresce a aeroporturia. Por isso uma nova empresa surge, para atender as necessidades desse mercado emergente: a 14 Bis e Bits. A empresa possui vrios voos. Para cada voo, a empresa aloca um nmero, a classe (Econmica ou Primeira Classe) o preo e a quantidade de lugares. Baseado nessas informaes, crie um programa em Java que reproduza o cenrio da companhia area 14 Bis e Bits. (Nvel 300) 40) A imobiliria LocVend deseja cadastrar os imveis a serem alugados ou vendidos, contendo os seguintes dados: cdigo do imvel, tipo de imvel (Comercial, Apartamento, Casa, Terreno), endereo, bairro, valor, tipo de transao (Aluguel ou Venda). Implemente um programa em Java que reproduz as necessidades da LocVend. O programa deve retornar ao usurio os imveis disponveis, de acordo com o tipo de transao desejado. (Nvel 300) 41) Uma empresa de comrcio eletrnico decidiu desenvolver um sistema para gerenciar os dados da empresa. Esse sistema possui os seguintes requisitos: a) Deve armazenar os dados dos clientes atravs de um registro contendo o cdigo, nome, endereo, CPF do cliente. Sero, no mximo, 30 clientes cadastrados; b) Deve conter uma estrutura para armazenar e manipular vrios clientes; c) Deve realizar as seguintes operaes: i) ii) Cadastro de cliente; Visualizao de um cliente atravs do cdigo;

iii) Visualizar os dados de todos os clientes; iv) Menu principal, onde o usurio escolhe qual operao deseja realizar Desenvolva um programa em Java que implementa o sistema acima descrito. (Nvel 300) 42) O Governo do Estado realizou um censo com os municpios. O nome do municpio, sua populao e renda foram coletados. Desenvolva um programa em Java que retorne todos os municpios que iniciam com uma letra informada pelo usurio, alm de retornar os dados do municpio que contm a maior populao. (Nvel 300) Universidade de Fortaleza 4

Estrutura de Dados Mdulo 02 43) A Prefeitura Municipal fez uma pesquisa com seus habitantes, coletando dados sobre sexo, salrio, idade e nmero de filhos de cada habitante. Desenvolva um programa em Java que receba 20 habitantes, e permita calcular as seguintes informaes: (Nvel 300) a) Mdia salarial b) Mdia do nmero de filhos c) Maior e menor salrio d) Percentual de mulheres que recebem acima da mdia salarial 44) A Tenis Pro Shop uma loja especializada na venda de materiais esportivos. A empresa atualmente possui cinco filiais, cada uma com trs funcionrios e um gerente, tambm funcionrio. No intuito de otimizar o seu funcionamento, a empresa contrata voc para desenvolver um sistema, que possuir as seguintes operaes: a) Cadastrar Filial: Deve-se cadastrar o cdigo e o nome da filial. No possvel existir duas filiais com o mesmo nome b) Cadastrar Funcionrio: Deve-se cadastrar o cdigo, nome, filial, cargo e salrio do funcionrio. Dois funcionrios no podem ter o mesmo cdigo. S possvel ter um gerente por filial. Todo funcionrio deve ter uma filial. c) Listar Filiais: Exibem-se as filiais, com seus respectivos gerentes e funcionrios. Exibe-se tambm a folha de pagamento por filial e o total de todas as filiais. Baseado nos requisitos acima, crie um programa em Java que implemente a Tenis Pro Shop. (Nvel 400) 45) A oficina mecnica CarKar deseja manipular as informaes sobre os consertos realizados nos veculos de seus clientes. Para isso, deseja-se implementar as seguintes rotinas: a) Cadastrar cliente b) Cadastrar veculo do cliente c) Mostrar clientes e veculos, de acordo com a escolha do usurio. Essa escolha pode ser ordem crescente ou decrescente. d) Excluir veculo do cliente e) Excluir cliente e seus veculos Algumas regras devem ser atendidas durante a implementao desse sistema: O cliente nico dentro do sistema, e identificado pelo seu CPF e nome O veculo tambm nico dentro do sistema. identificado pela sua placa, modelo, cor e cliente O sistema deve suportar at 30 clientes, cada um com at 4 veculos

Com base nessas regras do negcio, crie um programa em Java que reproduza o sistema da CarKar. (Nvel 400) 46) A empresa de tecnologia ExperTech conhecida pelo desenvolvimento de sistema para empresas de vrios tamanhos. A empresa deseja desenvolver um sistema para gerenciar os seus projetos. Os requisitos do negcio esto apresentados abaixo: a) O sistema deve cadastrar os clientes. Cada cliente descrito pelo seu nome e CNPJ. No h limite na quantidade de clientes a serem cadastrados. No podem existir dois clientes com o mesmo CNPJ. b) O sistema deve cadastrar os projetos solicitados pelos clientes. Cada projeto pode ser descrito atravs do seu cdigo, descrio, cliente, funcionrios, valor, data de incio e prazo de entrega. O prazo representado em dias. Dois projetos no podem ter a sua entrega para o mesmo dia. Todo projeto deve ter pelo menos um funcionrio cujo o cargo seja gerente. c) A empresa precisa tambm controlar os funcionrios. Eles so representados atravs da sua matricula, nome, cargo e salrio. O sistema deve responder as seguintes perguntas: Dado um cliente, o sistema deve retornar a folha de pagamento dos funcionrios que participam de todos os projetos daquele cliente. Dado um funcionrio, o sistema deve retornar os clientes com os quais ele interage. Dado um funcionrio, o sistema deve retornar os projetos que esto com mais de 10 dias de atraso, a partir da data atual, tambm informada pelo usurio. 5

Desenvolva um sistema em Java que implementa os requisitos pedidos pela ExperTech. (Nvel ???) Universidade de Fortaleza

Estrutura de Dados (Os exerccios a seguir devem ser feitos utilizando recursividade)

Mdulo 02

47) Considere um vetor de n elementos inteiros, informados pelo usurio. Desenvolva um programa em Java que determina: (Nvel 200) a) O somatrio desses elementos b) O produto desses elementos c) O maior elemento desse vetor d) O menor elemento desse vetor e) O vetor invertido do vetor informado pelo usurio 48) Na matemtica, os Nmeros de Fibonacci so uma sequncia onde o prximo nmero da sequncia gerado a partir da soma dos seus dois antecessores, comeando com 0 e 1. Desenvolva o algoritmo que retorne os X primeiros nmeros da sequncia de Fibonacci, dado que X a quantidade de nmeros desejada pelo usurio. (Nvel 200) 49) Um dos problemas de algoritmos clssicos a Torre de Hanoi. Considere trs hastes, onde em uma foram colocados trs discos de diferentes tamanhos, conforme a figura abaixo.

O objetivo mover todas as peas entre duas hastes (Exemplo: da haste 1 para a haste 3), considerando que as peas menores sempre so colocadas sobre as maiores. Implemente em Java o programa que soluciona essa Torre de Hanoi. (Nvel 300)

Universidade de Fortaleza

Potrebbero piacerti anche