EXERCÍCIOS DE COMPUTAÇÃO I - UNIOESTE

Propaganda
EXERCÍCIOS DE COMPUTAÇÃO
Prof. Jorge Habib /Teresinha Arnauts / Itamar Nieradka
1.
UNIOESTE/PTI
Implementar 𝒊𝒔𝒗𝒐𝒈𝒂𝒍 que retorna 𝑇𝑅𝑈𝐸 (1) se o parâmetro for um caractere que representa uma vogal e 𝐹𝐴𝐿𝑆𝐸
(0) em caso contrário.
int isvogal (char c);
2.
Implementar 𝒗𝒐𝒈𝒂𝒍𝒖𝒑𝒓 que converte as vogais de uma string para maiúsculo. A função retorna a quantidade de
vogais convertidas.
int vogalupr (char *s);
3.
Implementar 𝒖𝒑𝒓𝒍𝒘𝒓 que converte alternadamente os caracteres alfabéticos de uma string em maiúsculo e
minúsculo. O argumento será uma string contendo entre 1 e 50 caracteres ('A' - 'Z', 'a' - 'z' ou espaço ''), inclusive,
ou, pelo menos, uma letra ('A' - 'Z', 'a '-'z'). Os espaços em branco deverão ser preservados.
int uprlwr (char *s);
4.
Implementar 𝒅𝒆𝒍𝒗𝒐𝒈𝒂𝒊𝒔 que dada uma string 𝑠𝑟𝑐 preenche a string 𝑑𝑠𝑡 com os caracteres de 𝑠𝑟𝑐 que não são
vogais. Como resultado a função retorna 𝑑𝑠𝑡.
char *delvogais (char *dst, char *src);
5.
Implementar 𝒎𝒂𝒕𝒄𝒉 que dada uma string 𝑠 contendo sequência apenas de caracteres [ ′(′ ′)′] abre e fecha
parênteses, retorna TRUE se há um perfeito casamento entre eles, conforme as regras de expressões.
int match (char *s);
6.
Implementar 𝒊𝒔𝒑𝒓𝒊𝒎𝒐 que retorna 𝑇𝑅𝑈𝐸 se um determinado número é primo e 𝐹𝐴𝐿𝑆𝐸 em caso contrário.
int isprimo (int a);
7.
Implementar 𝒅𝒊𝒈𝒊𝒕𝒔 que retorna a quantidade de dígitos decimais de um número inteiro. Considerar que o número
0 tem um dígito.
int digits (int x);
8.
Implementar 𝒍𝒐𝒂𝒅 que preenche o vetor 𝑣 com os números inteiros fornecidos via teclado. A quantidade de
números é armazenada no endereço fornecido por 𝑛.
int load (int *v, int *n);
9. Implementar 𝒑𝒐𝒔𝒙 que retorna a posição da primeira ocorrência que um determinado inteiro 𝑥 se encontra no vetor
𝑣 com 𝑛 elementos. No caso de 𝑥 não ser encontrado em 𝑣 a função deverá retornar −1.
int posx (int *v, int n, int x);
10. Implementar 𝒅𝒆𝒍𝒓𝒆𝒑 que preenche o vetor 𝑣𝑏 com os elementos de 𝑣𝑎, porém sem repetição. A quantidade de
elementos inseridos em 𝑣𝑏 deve ser guardada no endereço indicado por 𝑛𝑏. Sugere-se utilizar a função 𝑝𝑜𝑠𝑥 como
apoio.
int delrep (int *va, int na, int *vb, int *nb);
11. Implementar 𝒔𝒉𝒐𝒘𝒗𝒆𝒕 que imprime na tela cada um dos 𝑛 elementos de 𝑣.
int showvet (int *v, int n);
12. Implementar 𝒄𝒐𝒑𝒚 que dada uma string 𝑠𝑟𝑐 é efetuada a cópia para a string 𝑑𝑠𝑡 dos 𝑐 caracteres de 𝑠𝑟𝑐 a partir da
posição 𝑖𝑛𝑖, inclusive. Como resultado a função retorna 𝑑𝑠𝑡.
EXERCÍCIOS DE COMPUTAÇÃO
Prof. Jorge Habib /Teresinha Arnauts / Itamar Nieradka
UNIOESTE/PTI
char *copy (char *dst, char *src, int ini, int c);
13. Implementar 𝒔𝒕𝒓𝒕𝒐𝒗𝒆𝒕 que preenche um vetor 𝑣 com os números inteiros 𝑥𝑥𝑥 extraídos de uma string cujo padrão
é dado por:
“[𝒙𝒙𝒙] [𝒙𝒙𝒙] [𝒙𝒙𝒙] . . . [𝒙𝒙𝒙]”
O vetor 𝑣 deverá ser preenchido com o equivalente numérico do texto contido entre colchetes. A quantidade de
dígitos dos números pode variar.
int *strtovet (int *v, int *n, char *s);
14. Implementar uma função que armazena em um vetor de inteiros 𝑣 os índices de onde um determinado caractere 𝑐ℎ
aparece em uma string s.
int poschar (char *s, char ch, int *v, int *n);
1
2
012345678901234567890123456789
“engenharia eletrica – unioeste”
‘e’
0 3 11 13 26 29
6
s
ch
v
n
in
out
15. Escrever functions para preencher uma determinada matriz de ordem 𝑁 conforme os padrões que seguem:
1
0
0
0
[0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1]
0
1
b) 2
3
[4
0
1
2
3
4
0
1
2
3
4
0
1
2
3
4
0
1
2
3
4]
1
0
d) 0
0
[0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1]
1
1
1
1
[1
1
2
2
2
1
1
2
3
2
1
1
2
2
2
1
1
1
1
1
1]
a)
e)
c)
0
0
0
0
[1
f)
0
5
10
15
[20
0
0
0
1
0
0
0
1
0
0
1
6
11
16
21
0
1
0
0
0
1
0
0
0
0]
2
7
12
17
22
3
8
13
18
23
4
9
14
19
24]
16. Implementar uma função que retorna a soma dos elementos da diagonal principal de uma matriz quadrada 𝑚𝑛×𝑛 .
int somadiag (int m[][MAXC], int n);
17. Dizemos que uma matriz inteira 𝐴𝑛×𝑛 é uma matriz de permutação se em cada linha e em cada coluna houver 𝑛 −
1 elementos nulos e um único elemento igual a 1. Exemplo:1
A matriz abaixo é de permutação
0
0
[
1
0
1
0
0
0
0
1
0
0
0
0
]
0
1
A matriz abaixo não é de permutação
2
[−1
0
−1
2
0
0
0]
1
Pede-se: Dada uma matriz inteira 𝐴𝑛×𝑛 , verificar se 𝐴 é de permutação.
1
Parte dos exercícios que seguem foram extraídos de http://www.ime.usp.br/~macmulti/exercicios/
EXERCÍCIOS DE COMPUTAÇÃO
Prof. Jorge Habib /Teresinha Arnauts / Itamar Nieradka
UNIOESTE/PTI
18. Dada uma matriz 𝐴𝑚×𝑛 , imprimir o número de linhas e o número de colunas nulas da matriz.
Exemplo: 𝑚 = 4 e 𝑛 = 4
1 0 2 3
4 0 5 6
[
]
0 0 0 0
0 0 0 0
tem 2 linhas nulas e 1 coluna nula.
19. Dizemos que uma matriz quadrada inteira é um quadrado mágico se a soma dos elementos de cada linha, a soma
dos elementos de cada coluna e a soma dos elementos das diagonais principal e secundária são todas iguais.
Exemplo: A matriz
8
[4
3
0
5
10
7
6]
2
é um quadrado mágico.
Dada uma matriz quadrada 𝐴𝑛×𝑛 , verificar se 𝐴 é um quadrado mágico.
20. Dadas duas matrizes 𝐴𝑙𝑎×𝑐𝑎 e 𝐵𝑙𝑏×𝑐𝑏 efetuar o produto matricial gerando resultado em 𝐶𝑙𝑐×𝑐𝑐 .
21. Implementar 𝒎𝒂𝒕𝒕𝒐𝒗𝒆𝒕 que preenche o vetor 𝑣 com os elementos da matriz 𝑚𝑙𝑖𝑛×𝑐𝑜𝑙 . A quantidade de elementos
inseridos em 𝑣 deve ser guardada no endereço indicado por 𝑛. A função retorna 𝑣.
int *mattovet (int *v, int *n, int m[][MAXC], int lin, int col);
22. Implementar 𝒗𝒆𝒕𝒕𝒐𝒎𝒂𝒕 que preenche a matriz 𝑚𝑙𝑖𝑛×𝑐𝑜𝑙 com os elementos dados pelo vetor 𝑣. Se o tamanho do
vetor não for suficiente para preencher a matriz, o vetor deverá ser percorrido novamente. Se o vetor contiver mais
elementos do que o previsto para a matriz, os excedentes deverão ser desconsiderados.
void vettomat (int m[][MAXC], int lin, int col, int *v, int n,);
APOIO:
char *strcpy (char *dest, char *src);
Retorna o comprimento do string s terminado com
𝑁𝑈𝐿 (‘\0’);
concatena strings => dest = dest + src. Retorna dest.
Retorna o endereço da primeira ocorrência de um char
em um. O caracter 𝑁𝑈𝐿 é considerado parte da string.
Retorna 𝑁𝑈𝐿𝐿 se não encontrar.
Retorna o endereço da primeira ocorrência de um char
em uma string na busca reversa. O caracter 𝑁𝑈𝐿 é
considerado parte da string. Retorna 𝑁𝑈𝐿𝐿 se não
encontrar.
copia string => dest = src; e retorna dest.
int toupper ( int c );
Converte minúsculo para maiúsculo
int tolower ( int c );
char *strupr (char *s);
Converte maiúsculo para minuscule
Se s1 < s2 retorna negativo
Se s1 == s2 retorna zero
Se s1 > s2 retorna positivo
converte a string para maiúsculo. Retorna s.
char *strlwr (char *s);
converte a string para minúsculo. Retorna s.
char *strset (char *s, char c);
preenche uma string com um char. Retorna s.
char *strrev (char *s);
inverte a string. Retorna s.
int
strlen (char *s);
char *strcat (char *dest, char *src);
char *strchr (char *s, char c);
char *strrchr (char *s, char c);
int strcmp (char *s1, char *s2);
Download