4) { while ($ads2 == $ads1) { $ads2 = rand(1, $slides); } } $ads3 = rand(1, $slides); if ($slides > 4) { while (($ads3 == $ads2) || ($ads3 == $ads1)) { $ads3 = rand(1, $slides); } } ?>
INF1007 - PROGRAMAÇÃO II  
LISTA DE EXERCÍCIOS 1  
1
. Crie um programa contendo o seguinte trecho de código:  
int a = 25;  
int *pa = &a;  
int b = *pa + a;  
printf("%d %d %d %d %d %d\n", a, pa, &a, *pa, b, &b);  
a) Qual o resultado da execução do programa?  
b) Qual o significado de cada um dos valores escritos na tela?  
2
. Crie um programa para calcular a área e o perímetro de um hexágono. O seu programa  
deve implementar uma função chamada calcula_hexagono que calcule a área e o  
perímetro de um hexágono regular de lado L. A função deve obedecer o seguinte  
protótipo:  
void calcula_hexagono(float l, floar *area, float *perimetro);  
Para os cálculos, obrigatoriamente você deve utilizar as funções sqrte powda biblioteca  
math.h.  
Em seguida crie a função principal do programa e utilize a função calcula_hexagono  
para calcular a área e o perímetro de um hexágono de lado l informado pelo usuário.  
3
. Escreva uma função que determine a média e a situação de um aluno em uma disciplina. A  
função recebe como parâmetros as três notas de um aluno (p1, p2, e p3), seu número de  
faltas (faltas), o número total de aulas da disciplina (aulas) e o ponteiro para uma  
variável (media), conforme o seguinte protótipo:  
char situacao(float p1, float p2, float p3, int faltas,  
int aulas, float *media);  
Na variável indicada pelo ponteiro media, a função deve armazenar a média do aluno,  
calculada como a média aritmética das três provas. Além disso, a função deve retornar um  
caractere indicando a situação do aluno no curso, definido de acordo com o seguinte  
critério:  
Em seguida, escreva a função principal de um programa que utiliza a função anterior para  
determinar a situação de um aluno. O programa deve:  
Ler do teclado três números reais e dois números inteiros, representando as notas  
da p1, p2 e p3, o número de faltas e o número de aulas, respectivamente;  
Chamar a função desenvolvida na primeira questão para determinar a média e a  
situação do aluno na disciplina;  
Exibir a média (com apenas uma casa decimal) e a situação do aluno, isto é,  
APROVADO”, “REPROVADO” ou “REPROVADO POR FALTAS”, dependendo do  
caractere retornado pela função, conforme a tabela acima.  
4
. Crie um programa para manipular vetores. O seu programa deve implementar uma função  
chamada inverte_vetor,que recebe como parâmetro dois vetores V1 e V2, ambos  
de tamanho N. A função deve copiar os elementos de V1 para V2 na ordem inversa. Ou  
seja, se a função receber V1 = {1,2,3,4,5}, a função deve copiar os elementos para V2 na  
seguinte ordem: V2 = {5,4,3,2,1}. Além disso, a função também deve retornar o maior  
valor encontrado em V1. A função deve obedecer ao seguinte protótipo:  
int inverte_vetor(int *v1, int *v2, int n);  
Em seguida, implemente no mesmo modulo outra função chamada  
multiplica_escalar, que recebe como parâmetro dois vetores V1 e V2 (ambos de  
tamanho N), e um número inteiro X. A função deve multiplicar cada um dos elementos de  
V1 por X e armazenar os resultados em V2.  
A função deve obedecer ao seguinte protótipo:  
void multiplica_escalar(int *v1, int *v2, int x, int n);  
Em seguida crie a função principal do programa utilizando as funções inverte_vetor  
e multiplica_escalar para inverter um vetor de tamanho 10 fornecido pelo  
usuário e em seguida multiplicar esse vetor por um escalar também fornecido pelo  
usuário. Por ultimo, o programa deverá exibir o vetor resultante.