Escolar Documentos
Profissional Documentos
Cultura Documentos
Lista de Exerccio 7
1. Escreva uma funo que aceite uma matriz celular de cadeia de caracteres e
classifique em ordem ascendente de acordo com a ordem lexicogrfica do conjunto
de caracteres ASCII (Voc pode utilizar a funo c_strcmp para comparao se
quiser).
2. Escreva uma funo que aceite uma matriz celular de cadeia de caracteres e
classifique em ordem ascendente de acordo com a ordem alfanumrica (isso
implica que voc deve tratar A e a como a mesma letra).
3. Crie uma matriz esparsa 100 x 100 a qual cerca de 5% dos elementos
contenham valores aleatrios distribudos normalmente, e todos os outros
elementos sejam zero (use a funo sprandn para gerar esses valores). A seguir,
estabelea que todos os elementos da diagonal da matriz sejam 1. Em seguida,
defina uma matriz de coluna esparsa com 100 elementos b, e inicie essa matriz
com 100 valores distribudos uniformemente, produzidos pela funo rand.
Responda s seguintes questes sobre essas matrizes:
a. Crie uma matriz completa a_full a partir da matriz esparsa a. Compare a memria
necessria para armazenar a matriz completa e a matriz esparsa. Qual mais
eficiente?
b. Faa um diagrama da distribuio de valores na matriz a, usando a funo spy.
c. Crie uma matriz completa b_full a partir da matriz esparsa b. Compare a
memria necessria para armazenar a matriz completa e a matriz esparsa. Qual
mais eficiente?
d. Resolva o sistema de equaes a*x=b para x usando ambas as matrizes, completa
e esparsa. Como os dois conjuntos de respostas se comparam? Mea o tempo para
as duas solues. Qual a mais rpida ?
4. Crie uma funo que aceite qualquer nmero de argumentos numricos de
entrada e faa a soma de todos os elementos individuais em todos os argumentos.
Teste sua funo passando por ela os quatro argumentos a= 10,
1 0 3
c 5 1 2
1 2 0
4
b 2
2
e d=[1 5 -2].
5. Modifique a funo do exerccio anterior de modo que ela possa aceitar matrizes
numricas comuns ou matrizes celulares com valores numricos. Teste sua funo
Departamento de Matemtica.
2 1
1 4
a
2 3
, b{1}=[1 5 2] e
6. Crie uma matriz estrutura que contenha todas as informaes necessrias para
construir um diagrama de um conjunto de dados. No mnimo, a matriz estrutura
deve conter os seguintes campos:
x_data
y_data
type
plot_title
x_label
y_label
x_range
y_range
Voc pode acrescentar campos adicionais que aumentem seu controle sobre o
diagrama final.
Depois de criar essa matriz estrutura, crie uma funo que aceite uma
matriz dessa estrutura e produza um diagrama para cada estrutura da matriz. A
funo deve aplicar caractersticas iniciais inteligentes se alguns campos de dados
estiverem faltando. Por exemplo, se o campo plot_title for uma matriz vazia, a
funo no deve colocar um ttulo no grfico. Pense cuidadosamente sobre as
caractersticas iniciais adequadas antes de comear a escrever a sua funo!
Para testar sua funo, crie uma matriz estrutura que contenha os dados
para trs diagramas de trs tipos diferentes e passe aquela matriz estrutura para a
sua funo. A funo deve construir corretamente diagramas para todos os
conjuntos de dados, em trs janelas diferentes de figuras.
7 Faa um programa que realize o cadastro de contas bancrias com as seguintes
informaes:
Numero da conta
Nome do cliente
Saldo
O banco permitir o cadastramento de apenas quinze contas e no poder haver
mais que uma conta com o mesmo nmero. Crie o menu de opes a seguir.
Menu de opes:
1. Cadastrar contas.
2. Visualizar todas as contas de determinado cliente.
3. Excluir a conta com o menor saldo (supondo a no- existncia de saldos
iguais).
4. Sair
Algoritmo Soluo:
Algoritmo
Declare conta[15] REGISTRO (num, saldo NUMERICO, nome LITERAL)
Departamento de Matemtica.
LEIA nome_cliente
Achou = 0
PARA i=1 ATE posi-1 FAA
INICIO
Se conta[i].nome = nome_cliente
ENTAO INICIO
ESCREVA conta[i].num, conta[i].saldo
Achou = 1
FIM
FIM
Se achou = 0
ENTAO ESCREVA No existe conta cadastrada para este cliente
FIM
Se op=3
ENTAO INICIO
Se posi = 1
ENTAO ESCREVA Nenhuma conta foi cadastrada
SENAO INICIO
Menor_saldo = conta[i].saldo
Achou = 1
i=2
ENQUANTO i < posi FAA
INICIO
Se conta[i].saldo < menor_saldo
ENTAO INICIO
Menor_saldo = conta[i].saldo
Achou = 1
FIM
i=i+1
FIM
PARA i=achou ate posi-1 FAA
INICIO
Conta[i-1].num = conta[i].num
Conta[i-1].nome = conta[i].nome
Conta[i-1].saldo = conta[i].saldo
FIM
ESCREVA Conta excluda com sucesso
Posi = posi 1
FIM
FIM
ATE op = 4
FIM_ALGORITMO
8 Uma Auto-Escola possui um cadastro de alunos, no ordenado. Cada item do
cadastro possui as informaes definidas no registro abaixo. Fazer a definio do
registro, em C++ que encontre o aluno mais novo que pertence ou pertenceu a
escola e escreva seus dados: (Max. 50 alunos).
Departamento de Matemtica.
Obs.: Idade deve ser real pois o aluno pode possuir 18.1 anos.(Supor que no
existam dois alunos com a mesma idade).
/*Algoritmo que l o cadastro de alunos de uma auto-escola, encontra o aluno mais
novo e escreve seus dados. */
incio
// Defnio de constantes
constante QTDE_MAX_ALUNOS=50, TAM_NOME=50;
// Definio de novos tipos
registro DATA // Definio do registro de uma data
incio
inteiro dia, mes, ano;
fim
registro fichaAlunoAutoEscola // Definio da Ficha de um aluno da
auto escola
incio
caracter nomeAluno[TAM_NOME+1],
endereco[TAM_ENDERECO+1];
DATA dataInsc, dataCarta;
real idade;
fim;
// Declarao de Variveis
fichaAlunoAutoEscola aluno[QTDE_MAX_ALUNOS];
inteiro contAluno; // Contador de quantidade de alunos informada
inteiro posicaoMenorIdade; // posicao do aluno com menor idade
inteiro qtdeAlunos; // Quantidade total de alunos informada
real idadeMenor; // Menor idade de todos os alunos
caracter temAluno; // Auxiliar no controle de entrada de dados de
aluno
// Desenvolvimento do algoritmo
contAluno = -1;
// Leitura dos dados de todos os Alunos
escreva ("Tem dados de aluno? (S/N):"); leia( temAluno );
enquanto((( temAluno == 'S') OU (temAluno == 's')) E (contAluno <
QTDE_MAX_ALUNOS))
innio
Departamento de Matemtica.
);
escreva(aluno[posicaoIdadeMenor].dataCarta.ano );
escreva(" foi o aluno que tirou carta com menor idade
nesta auto escola.");
fim
fim
9 Dado o Registro de um funcionrio de uma empresa com o layout abaixo:
Pede-se:
a) Definir o tipo do registro com o nome
TRFUNC.
b) Fazer um programa C++ que leia as
fichas de funcionrios, a seguir, leia
nmeros de funcionrios encontre o
registro correspondente e escreva seus
dados. Caso contrrio escrever a
mensagem "funcionrio inexistente". O
trmino da busca ocorre quando
fornecido nmero do funcionrio igual a
-1.
Sada do Programa.
Valor a Pagar
A - 1 curso
B - 2 cursos
C - 3 cursos
D - outros
R$ 30,00
R$ 60,00
R$ 90,00
R$100,00
Departamento de Matemtica.