Você está na página 1de 3

FACULDADE BRASILEIRA

Credenciada pela Portaria/MEC No 259 de 11.02.1999 D.O.U. de 17.02.1999

1 Lista de Exerccios (Vetores, Matrizes e Caracteres)


Em todos os exerccios abaixo ser necessrio elaborar um programa (main) para obter os dados a serem
utilizados pelas funes; no apenas elaborar a funo, use a criatividade em sua programao.
Fonte: CELES, Waldemar; CERQUEIRA, Renato. Introduo Estrutura de Dados. Pginas: 115,116 e 117.

Exerccios Vetores
3.1. Implemente uma funo que receba como parmetro um vetor de nmeros reais ( vet) de tamanho n e
retorne quantos nmeros negativos esto armazenados nesse vetor. Essa funo deve obedecer ao
prottipo: int negativos (int n, float* vet);
3.2. Implemente uma funo que receba como parmetro um vetor de nmeros inteiros ( vet) de tamanho n
e retorne quantos nmeros pares esto armazenados nesse vetor. Essa funo deve obedecer ao prottipo:
int pares (int n, int* vet);
3.3. Implemente uma funo que receba como parmetro um vetor de nmero inteiros (vet) de tamanho n e
inverta a ordem dos elementos armazenados nesse vetor. Essa funo deve obedecer ao prottipo:
void inverte (int n, int* vet);
3.4. Implemente uma funo que permita a avaliao de polinmios. Cada polinmio definido por um vetor
que contm seus coeficientes. Por exemplo, o polinmio de grau 2, 3x + 2x+ 12, ter um vetor de
coeficientes igual a v[ ]={12,2,3}. A funo deve obedecer ao prottipo:
double avalia (double* poli, int grau, double x); onde o parmetro poli o vetor com os coeficientes do
polinmio, grau o grau do polinmio, e x o valor para o qual o polinmio deve ser avaliado.
3.5. Implemente uma funo que calcule a derivada de um polinmio. Cada polinmio representado como
exemplificado no exerccio anterior. A funo deve obedecer ao prottipo:
void deriva(double* poli, int grau, double* out); onde out o vetor, de dimenso grau 1, no qual a funo
deve guardar os coeficientes do polinmio resultante da derivada.
Exerccios Matrizes
4.1. Implemente duas verses de uma funo, seguindo s diferentes estratgias

discutidas para alocar matrizes, que determine se uma matriz simtrica quadrada ou
no.
Obs: Matrizes simtricas so n x n onde M[ i, j ] = M[ j , i ];
4.2. Implemente uma funo, minimizando o espao de memria utilizado, para

representar uma matriz triangular inferior. Nesse tipo de matriz, todos os elementos
acima da diagonal tm valor zero. Obs: Sero armazenados somente os elementos da
diagonal e abaixo.
4.3. Implemente uma funo, minimizando o espao de memria utilizado, para

representar uma matriz triangular superior. Em uma matriz triangular superior todos
os elementos abaixo da diagonal tm valor zero. Obs: Sero armazenados somente os
elementos da diagonal e acima.
Exerccios Caracteres
5.1. Implemente uma funo que receba uma string como parmetro e retorne como resultado o nmero de
vogais nessa string. Essa funo deve obedecer ao prottipo: int conta_vogais (char* str);
5.2. Implemente uma funo que receba como parmetro uma string e um caractere e retorne como
resultado o nmero de ocorrncias desse caractere na string. Essa funo deve obedecer ao prottipo:
int conta_char (char* str, char c);

FACULDADE BRASILEIRA
Credenciada pela Portaria/MEC No 259 de 11.02.1999 D.O.U. de 17.02.1999

FACULDADE BRASILEIRA
Credenciada pela Portaria/MEC No 259 de 11.02.1999 D.O.U. de 17.02.1999

5.3. Implemente uma funo que receba uma string como parmetro e altere nela as ocorrncia de
caracteres maisuculos para minsculos. Essa funo deve obedecer ao prottipo:
void minsculo (char* str);
5.4. Implemente uma funo que receba uma string como parmetro e substitua todas as letras por suas
sucessoras no alfabeto. Por exemplo a string Casa seria alterada para Dbtb. Essa funo deve obedecer
ao prottipo: void shifit_string (char* str); A letra z deve ser substituda pela letra a (e Z por A). Caracteres
que no foram letras devem permanecer inalterados.
5.5. Implemente uma funo que receba uma string como parmetro e substitua as ocorrncias de uma letra
pelo seu oposto no alfabeto, isto , az, by, cx, etc. Caracteres que no forem letras devem
permanecer inalterados. Essa funo deve obedecer ao prottipo: void string_oposta (char* str);
5.6. Implemente uma funo que receba uma string como parmetro e desloque os seus caracteres uma
posio para a direita. Por exemplo, a string casa ser alterada para acas. Repare que o ltimo
caractere vai para o incio da string. Essa funo deve obedecer ao prottipo: void roda_oposta (char* str);
5.7. Reimplemente as funes dos Exerccios 5.3 a 5.6 para que retornem uma nova string, alocada dentro
da funo, com o resultado esperado, preservando as strings originais inalteradas. Essas funes devem
obedecer ao seguinte prottipo: char* nome da funo (char* str);
Exerccios Tipos Estruturados
6.1. Considere uma estrutura para representar um ponto no espao 2D e implemente uma funo que
indique se um dado ponto p est localizado dentro ou fora de um retngulo. O retngulo definido por seus
vrtices inferior esquerdo v1 e superior direito v2. A funo deve retornar 1 para caso o ponto esteja
localizado dentro do retngulo, e 0 caso contrrio. Essa funo deve obedecer ao prottipo:
int dentro_Ret (Ponto* v1, Ponto* v2, Ponto* p);
6.2. Considere uma estrutura para representar um vetor no espao 3D e implemente uma funo que
calcule o produto escalar de dois vetores. Essa funo deve obedecer ao prottipo:
float dot (Vetor* v1, Vetor* v2);
6.3. Considere as declaraes a seguir para representar o cadastro de alunos de uma disciplina e
implemente uma funo que imprima o nmero de matrcula, o nome, a turma e a mdia de todos os alunos
aprovados na disciplina.
struct aluno {
char nome[81];
char matricula[8];
char turma;
float p1;
float p2;
float p3;
};
typedef struct aluno Aluno;

Assuma que o critrio para a aprovao dada pela mdia das trs provas (p1,
p2 e p3). A funo recebe como parmetro o nmero de alunos e um vetor de
ponteiros para os dados dos alunos. Essa funo deve obedecer ao prottipo:
void imprime_aprovados (int n, Aluno** turmas);

6.4. Considere as declaraes do tipo Aluno do exerccio anterior e implemente uma funo que tenha como
valor de retorno a mdia final obtida pelos alunos de uma determinada turma. A nota final de cada aluno
dada pela mdia das trs provas: float media_turma (int n, Aluno** turmas, char turma);

Você também pode gostar