Buscar

Lista II

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE DA INTEGRAÇÃO INTERNACIONAL DA LUSOFONIA 
AFRO-BRASILEIRA 
INSTITUTO DE ENGENHARIA E DESENVOLVIMENTO SUSTENTÁVEL 
DISCIPLINA: TÉCNICAS DE PROGRAMAÇÃO I 
PROF. CARLOS EDUARDO BARBOSA 
 
REVISÃO PARA PROVA 
LISTA DE EXERCÍCIOS 02 
 
I. Vetores 
1. Faça um programa que possua um vetor denominado A que armazene 6 números inteiros. O 
programa deve executar os seguintes passos: 
(a) Atribua os seguintes valores a esse vetor: 1, 0, 5, -2, -5, 7. 
(b) Armazene em uma variável inteira (simples) a soma entre os valores das posições 
A[0], A[1] e A[5] do vetor e mostre na tela esta soma. 
(c) Modifique o vetor na posição 4, atribuindo a esta posição o valor 100. 
(d) mostre na tela cada valor do vetor A (um em cada linha). 
 
2. Faça um programa que leia um vetor de 8 posições e, em seguida, leia também dois valores x 
e y quaisquer correspondentes a duas posições no vetor. Ao final seu programa deverá escrever 
a soma dos valores encontrados nas respectivas posições x e y. 
 
3. Faça um programa que receba do usuário um vetor com 10 posições. Em seguida deverá ser 
impresso o maior e o menor elemento do vetor. 
 
4. Crie um programa que lê 6 valores inteiros pares e, em seguida, mostre na tela os valores lidos 
na ordem inversa. 
 
5. Fazer um programa para ler 5 valores e, em seguida, mostrar a posição onde se encontram o 
maior e o menor valor. 
 
6. Faça um programa que leia um vetor de 10 posições e verifique se existem valores iguais e os 
escreva na tela. 
 
7. Faça um vetor de tamanho 50 preenchido com o seguinte valor: (i + 5 ∗ i)%(i + 1), sendo 
i a posição do elemento no vetor. Em seguida imprima o vetor na tela. 
Atenção: % significa Módulo ou resto da divisão. 
 
8. Faça um programa que receba do usuário dois vetores A e B, com 10 números inteiros cada. 
Crie um novo vetor denominado C calculando C = A - B. Mostre na tela os dados do vetor C. 
Exemplo: 
 A 
5 2 -3 4 20 7 8 13 -10 2 
 
B 
9 3 6 7 10 8 10 3 -9 5 
 
C 
-4 -1 -9 -3 10 -1 -2 10 -1 -3 
 
9. Deseja-se publicar o número de acertos de cada aluno em uma prova em forma de testes. A 
prova consta de 30 questões, cada uma com cinco alternativas identificadas por A, B, C, D e E. 
Para isso são dados: 
 O cartão gabarito; 
 O cartão de respostas do aluno, contendo suas respostas. 
 
O gabarito tem que ser fornecido pelo sistema e não pelo usuário. Já o cartão de respostas deve 
ser inserido pelo usuário. No final, o programa deve fornecer quantas questões o aluno acertou 
no teste. 
 
10. Dados dois strings (um contendo uma frase e outro contendo uma palavra), determine o 
número de vezes que a palavra ocorre na frase. 
Exemplo: Para a palavra ANA e a frase: 
ANA E MARIANA GOSTAM DE BANANA 
Temos que a palavra ANA ocorre 4 vezes na frase. 
 
II. Matrizes 
1. Leia uma matriz 4 x 4, conte e escreva quantos valores maiores que 10 ela possui. 
 
2. Declare uma matriz 5 x 5. Preencha com 1 a diagonal principal e com 0 os demais elementos. 
Escreva ao final a matriz obtida. 
 
3. Faça um programa que preenche uma matriz 4 x 4 com o produto do valor da linha e da coluna 
de cada elemento. Em seguida, imprima na tela a matriz. 
Exemplo: a12 = 1*2 = 2 
 
4. Gerar e imprimir uma matriz de tamanho 10 x 10, onde seus elementos são da forma: 
 
 
5. Dadas duas matrizes reais Amxn e Bnxp, calcular o produto de A por B. 
6. Leia uma matriz de 3 x 3 elementos. Calcule e imprima a sua transposta. 
7. Leia uma matriz 4 x 4, imprima a matriz e retorne a localização (linha e a coluna) do ˜ maior 
valor. 
8. Leia uma matriz 5 x 5. Leia também um valor p. O programa deverá fazer uma busca desse 
valor na matriz e, ao final, escrever a localização (linha e coluna) ou uma mensagem de “não 
encontrado! ” 
9. Leia duas matrizes 4 x 4 e escreva uma terceira com os maiores valores de cada posição das 
matrizes lidas. 
10. Leia uma matriz de 3 x 3 elementos. Calcule a soma dos elementos que estão na diagonal 
principal. 
 
III. Ponteiros 
1. Procure determinar quais valores são impressos ao final deste programa. Confira sua resposta 
testando o programa. Execute-o passo a passo conferindo o valor das variáveis em cada 
momento. 
a) void main(){ 
 int a,b,*c; 
 a = 3; 
 b = 4; 
 c = &a; 
 b++; 
 *c = a+2; 
 printf("%d %d", a, b); 
 } 
 
b) void main(){ 
 int a, b,*c; 
 a = 4; 
b = 3; 
c = &a; 
*c = *c +1; 
c = &b; 
b = b+4; 
 printf("%d %d %d", a, b,*c); 
 } 
 
c) void main() { 
int a,b,*c,*d,*f; 
a = 4; 
b = 3; 
c = &a; 
d = &b; 
*c /= 2; 
f = c; 
c = d; 
d = f; 
 printf("%d %d",*c,*d); 
 } 
 
d) int calcula(int); 
 void main() { 
 int a,b,c; 
 char d; 
 a=1;b=2;c=3;d='A'; 
 a+=b*c; 
 d=(a>7)?d-1:d+1; 
 b = calcula(b); 
 c = calcula(calcula(a)); 
 a = c++; 
 printf("%d - %d - %d - %c\n",a,b,c,d); 
 } 
int calcula(int x) { 
 int i; 
 if ((x=x*2)>5) return(x+3); 
 for(i=0;i<10;i++){ 
if (i<5) continue; 
if (x>8) break; 
x+=2; 
} 
 return(x); 
 } 
 
2. Escreva um programa que declare um inteiro, um real e um char, e ponteiros para inteiro, 
real e char. Associe as variáveis aos ponteiros (use &). Modifique os valores de cada variável 
usando os ponteiros. Imprima os valores das variáveis antes e após a modificação. 
 
3. Escreva um programa que contenha duas variáveis inteiras. Compare seus endereços e ´ exiba 
o maior endereço. 
 
4. Faça um programa que leia 2 valores inteiros e chame uma função que receba estas 2 variáveis 
e troque o seu conteúdo, ou seja, esta função e chamada passando duas variáveis A e B por 
exemplo e, após a execução da função, A conterá o valor de B e B terá o valor de A. 
 
5. Implemente uma função que calcule a área da superfície e o volume de uma esfera de raio R. 
Essa função deve obedecer ao protótipo: 
void calc_esfera(float R, float *area, float *volume) 
 
A área da superfície e o volume são dados, respectivamente, por: 
 
 
IV. Recursão 
1. Crie uma função recursiva que receba um número inteiro positivo N e calcule o somatório 
dos números de 1 a n. 
2. Faça uma função recursiva que calcule e retorne o fatorial de um número inteiro n. 
3. Escreva uma função recursiva que calcule a soma dos primeiros n cubos: 
𝑆(𝑛) = 13 + 23 + 33 + ⋯ + 𝑛3 
 
4. Crie uma função recursiva que receba dois inteiros positivos k e n e calcule kn. 
5. Faça uma função recursiva que calcule e retorne o N-ésimo termo da sequência Fibonacci. 
Alguns números desta sequência são: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89... 
6. Faça uma função recursiva que receba um número inteiro positivo impar N e retorne o fatorial 
duplo desse número. O fatorial duplo é definido como o produto de todos os números naturais 
ımpares de 1 até algum número natural ımpar N. Assim, o fatorial duplo de 5 é: 
 
7. Faça uma função recursiva que receba um número inteiro positivo N e retorne o super fatorial 
desse número. O super fatorial de um numero N é definida pelo produto dos N primeiros 
fatoriais de N. Assim, o super fatorial de 4 é: 
 
V. TAD 
1. O que é um Tipo Abstrato de Dados (TAD) e qual a característica fundamental na sua 
utilização? 
2. Quais as vantagens de se programar com TADs? 
3. Desenvolva um TAD para um cubo. Inclua as funções de inicializações necessárias e as 
operações que retornem os tamanhos de cada lado, a sua área e o seu volume. 
4. Desenvolva um TAD para um cilindro. Inclua as funções de inicializações necessárias e as 
operações que retornem sua altura e raio, a sua área e o seu volume. 
5. Desenvolva um TAD para uma esfera. Inclua as funções de inicializações necessárias e as 
operações que retornem seu raio, a sua área e o seu volume. 
 
VI. Listas1. Faça uma função para concatenar duas listas em uma terceira lista que deverá ser retornada 
pela função. Não use funções já implementadas. 
2. Faça uma função para remover os n primeiros elementos de uma lista. A função deve retornar 
se a operação foi possível ou não. 
3. Faça uma função para buscar a posição e o valor do maior elemento da lista, os quais deverão 
ser retornados por referência. A função deve retornar se a operação foi possível ou não. 
4. Considere que a struct abaixo está armazenada na sua lista. Faça uma função para buscar o 
produto de menor preço. A função deve retornar se a operação foi possível ou não. 
struct produto { 
int codProd; //código do produto 
char nomeProd[10]; //nome do produto 
float valor; //valor do produto 
int qtdeEstoque; //quantidade disponível em estoque 
}

Outros materiais