• Nenhum resultado encontrado

Lista9

N/A
N/A
Protected

Academic year: 2021

Share "Lista9"

Copied!
5
0
0

Texto

(1)

9ª LISTA DE EXERCÍCIOS NOVOS TIPOS Disciplina: PC-I

Exercício 1: Criar um tipo VINT cujos campos são:

• nElem – Número de elementos atualmente armazenados em um vetor de inteiros. • Elem – Vetor de tamanho 100 que armazena os elementos do tipo int de VINT. Para testar este novo tipo realize as seguintes tarefas:

(A) Criar uma função VINT fillVint(VINT V, int n, int a, int b) que preenche o vetor V com n elementos inteiros gerados aleatoriamente no intervalo [a, b]. Se n for maior que 100, então, será mostrada a mensagem “Valor de n maior que 100 !” e V será preenchido com 100 elementos. Caso contrário, V será preenchido com n elementos.

(B) Criar uma função void mostraVint(VINT V) que mostra todos os elementos de V.

(C) Criar uma função int maiorVint(VINT V) que mostra o maior valor contido em V.

(D) Criar uma função int menorVint(VINT V) que mostra o menor valor contido em V.

(E) Criar uma função int mediaVint(VINT V) que mostra a média dos elementos de V.

(F) Na função principal criar uma variável V1 do tipo VINT com n = 10, a = 1 e b = 6. Depois utilizar e mostrar o funcionamento das seguintes funções: fillVint, mostraVint, maiorVint, menorVint e mediaVint.

Exercício 2: Criar um tipo CONTA que representa a conta corrente de um dado cliente de um Banco. O tipo CONTA deve possuir os seguintes campos:

• Nome – Nome do correntista.

• NumCC – Número da conta corrente (sem traço). • Senha – Número correspondente a senha do cliente. Para testar este novo tipo realize as seguintes tarefas:

(A) Criar uma função CONTA fillConta(CONTA C1) que preenche os campos da variável C1, do tipo CONTA, com informações de um dado correntista.

(B) Criar uma função void mostraConta(CONTA C1) que imprime na tela os dados relativos aos campos de uma variável C1 do tipo CONTA.

(2)

(C) Criar uma função int validaSenha(CONTA C1, char CH1[], int S1) que verifica se o valor digitado e armazenado na variável S1 corresponde a senha previamente armazenada em C1 no campo Senha, bem como o nome digitado e armazenado em CH1 corresponde ao nome do correntista armazenado em C1 no campo Nome. (D) Testar as funções desenvolvidas nos itens anteriores através do programa principal que realiza as seguintes ações:

(D.1) Criar um vetor V1 do tipo CONTA de tamanho 5.

(D.2) Empregar um laço para preencher os elementos de V1 através da função fillConta.

(D.3) Mostrar cada um dos elementos de V1 com um laço que chama a função mostraConta.

(D.4) Pedir ao usuário um Nome e Senha e depois verificar se os mesmos existem no vetor V1 através de um laço e o uso da função validaSenha. Se o usuário não existir, então, mostra a mensagem “Usuário inexistente !”. Se o usuário existir e a senha não for adequada, então, apresentar a mensagem “Usuário %s: senha inválida !”. Se o usuário existir e a senha for correta, então, apresentar a mensagem “Bem vindo ao sistema %s ! ”.

Exercício 3: Criar um tipo MINT que representa uma matriz cujos componentes são valores inteiros e deve possuir os seguintes campos:

• m – Número de linhas. • n – Número de colunas.

• Elem – Matriz 100 x 100 que armazena os elementos de uma variável do tipo MINT.

Para testar este novo tipo realize as seguintes tarefas:

(A) Criar uma função MINT fillMint(MINT M, int m, int n, int a, int b) que preenche as m linhas e n colunas do campo Elem da variável M com valores aleatórios inteiros entre a e b. Se m e/ou n excederem o valor 100, então, uma mensagem deverá ser mostrada dizendo “Tamanho máximo de linhas ou colunas é 100 !” e modificar m e/ou n para 100.

(B) Criar uma função void mostraMint(MINT M) que mostra todos os elementos de M.

(C) Criar uma função int maiorVint(MINT M) que mostra o maior valor contido em M.

(D) Criar uma função int menorVint(MINT M) que mostra o menor valor contido em M.

(E) Criar uma função int mediaVint(MINT M) que mostra a média dos elementos de M.

(3)

(F) Na função principal criar uma variável M1 do tipo MINT com m = n = 10, a = 1 e b = 6. Depois utilizar e mostrar o funcionamento das seguintes funções: fillVint, mostraVint, maiorVint, menorVint e mediaVint.

Exercício 4: Criar um tipo número complexo z, indicado pela palavra COMPLEX, tal que possui os seguintes campos:

• x – parte real do número complexo z = x + i*y.

• y – parte imaginário do número complexo z = x + i*y.

(A) Criar uma função COMPLEX fillC(COMPLEX C, int a, int b) que preenche os componentes real (x) e imaginário (y) de uma variável C do tipo COMPLEX com valores aleatórios no intervalo [a, b].

(B) Criar uma função void mostraC(COMPLEX C) que mostra todos os componentes de uma variável C que armazena um número complexo.

(C) Na função principal criar uma variável C1 do tipo COMPLEX com a = 1 e b = 6. Depois utilizar e mostrar o funcionamento das seguintes funções: fillC e mostraC.

Exercício 5: Criar um tipo Aluno e um tipo Materia tal como dado abaixo: typedef struct Aluno

{ int matricula;

float vNotas[5]; // Armazena as 5 notas do ano. char nome[100];

}Aluno;

typedef struct Materia { Aluno V[200];

float media[5]; // Armazena as 5 médias do ano.

int nAlunos // Número de alunos matriculados no curso. }Materia;

(A) Criar uma função Aluno fillAluno(Aluno a1) que preenche os campos de uma variável a1 do tipo Aluno e retorna essa variável preenchida.

(B) Criar uma função Materia fillMateria(Materia m1, int numAlunos) que preenche os campos de uma variável m1 do tipo Materia realizando chamadas a função fillAluno em um número de vezes igual ao número contido na variável numAlunos.

(C) Criar uma função int mediaMateria(Materia m1) que fornece a média de cada prova do ano para os alunos contidos na variável m1 e assim preenche o campo media de m1.

(4)

(D) Criar uma função void mostraMateria(Materia m1) que mostra as informações dos alunos contidas na variável m1.

(E) Criar um programa que ilustra o funcionamento das funções anteriores. Para tanto, o programa deve possuir uma variável pc1 do tipo Materia com 4 alunos. Depois, serão utilizadas as seguintes funções: fillMateria (que emprega fillAluno), mediaMateria e mostraMateria.

Exercício 6: Criar um tipo Livro e um tipo Biblioteca tal como dado abaixo: typedef struct Livro

{ int ano;

char titulo[100]; char autor[100];

int nVolume; // Número de exemplares de um dado livro. float preco;

}Livro;

typedef struct Biblioteca { Livro V[200];

int nLivros // Número de livros existentes na biblioteca. }Biblioteca;

(A) Criar uma função Livro fillAluno(livro l1) que preenche os campos de uma variável l1 do tipo Livro e retorna essa variável preenchida.

(B) Criar uma função Biblioteca fillBiblioteca(Biblioteca b1, int numLivros) que preenche os campos de uma variável b1 do tipo Biblioteca realizando chamadas a função fillLivro em um número de vezes igual ao número contido na variável numLivros.

(C) Criar uma função int valorBiblioteca(Biblioteca b1) que fornece o montante gasto para se comprar todos os exemplares existentes na biblioteca.

(D) Criar uma função int maiorBiblioteca(Biblioteca b1) que fornece o livro com maior número de exemplares existente na variável b1.

(E) Criar um programa que ilustra o funcionamento das funções anteriores. Para tanto, o programa deve possuir uma variável feg do tipo Biblioteca com 4 livros (1 livro de ALCV, 1 de PC-I, 1 de Cálculo I e 1 de Física I). Depois, serão utilizadas as seguintes funções: fillBiblioteca (que emprega fillLivro), valorBiblioteca e maiorBiblioteca.

(5)

Exercício 7: Criar um tipo CARRO cujos campos são fornecidos na Tabela 1. Nome do campo Informação a ser armazenada

Ano Informar o ano de fabricação do Veículo > 1995.

Marca Fiat, Chevrolet, Ford e Volkswagen são alguns exemplos. Modelo Palio, Celta, Ford KA e Gol são alguns exemplos.

Combustivel Indica o tipo de combustível por siglas ou combinação delas: A – Álcool

G – Gasolina S – Gás

AG – Flex com Álccol e Gasolina

Motor Indica a potência do motor com valores como 1.0 ou 2.0 Tabela 1: Informações que podem ser armazenadas nos campos do tipo CARRO. Elaborado o tipo CARRO, deve-se criar a função CARRO initCarro(CARRO) que cada vez que é invocada pede para o usuário inserir os campos descritos na Tabela 1 e retorna um valor do tipo CARRO. Construa um programa que permite testar a função initCARRO através de uma chamada da mesma na função principal main(). Exercício 8: Modificar a função initCarro de forma que os campos descritos na Tabela 1 sejam preenchidos aleatoriamente empregando apenas as informações exemplo descritas na Tabela 1. Por exemplo, para o campo Motor deve-se realizar uma seleção aleatória entre o valor 1.0 ou 2.0. Para o campo Marca só serão possíveis as strings Fiat, Chevrolet, Ford e Volkswagen e assim por diante. Além disso, a função initCarro deverá ser chamada 100 vezes para preencher um vetor de tamanho 100 cujos elementos são do tipo CARRO. Após isso, criar uma função void relat(CARRO V[]) cujo parâmetro de entrada é um vetor cujos elementos são do tipo CARRO e sua saída é a impressão de um relatório com as informações Marca, Ano e número de carros em uma tabela conforme o modelo da Tabela 2:

Marca Ano Número de Carros

Fiat 1995-2004 2005-2009 Chevrolet 1995-2004 2005-2009 Ford 1995-2004 2005-2009 Volkswagen 1995-2004 2005-2009

Referências

Documentos relacionados

As repetições de curta duração I podem servir de base para a solicitação de qualquer uma das zonas de intensidade, dependendo a sua eficácia da relação trebalho:pausa e do volume

However, about 80% of the total energy required to produce the emulsions was dissipated into heat (Q/W u ) and such energy dissipation was higher for higher rotation speed and

Além disso, em ensaios de suscetibilidade in vitro para agentes da CBM são utilizados esporos e hifas, e não as células muriformes, que sabidamente são mais resistentes e

IV– ultimada a apuração, o Presidente do Conselho Deliberativo fixará as nominatas das chapas habilitadas a concorrer à eleição do Presidente e dos Vice- Presidentes

b) Os alunos chineses envolvidos em cursos de B2 manifestam uma compreensão idêntica aos alunos com uma origem linguística e cultural mais próxima do português

Following this perspective, this study aimed to evaluate the accumulation and partitioning of biomass nitrogen (N), phosphorus (P) and potassium (K) in corn and Brachiaria

Vimos que neste período do capitalismo os lucros gerados pelas empresas eram, quase na sua totalidade, direcionados para a realização de investimentos produtivos, seja na produção

RESUMO: A pesquisa teve como objetivo geral construir uma metodologia aplicável à Microrregião Homogênea do Seridó Paraibano para recuperação de áreas degradadas através