Você está na página 1de 11

MCTA028 – Programação Estruturada

Aula Prática 05

3Q-2019

1
Exercício 1 (Parâmetros por referência)

Faça uma função que recebe um vetor de números e retorne:


Média
Menor e maior número
Todos esses valores devem ser retornados com parâmetros
passados por referência.

2
Exercício 2 (Aloca vetor na função)

Escreva uma função que receba uma string e retorne outra


string com todos os caracteres invertidos (a string original
não deve ser alterada):

char *inverte_texto(char *texto);

Por exemplo, para “abcde” deve retornar “edcba”;


Pode usar strlen para obter o comprimento da string (está no
string.h).

3
Exercício 3 (Aritmética de ponteiros)

Crie um programa que leia um valor n e então crie um vetor


com n valores aleatórios na faixa de 20 a 50  use rand();
Imprima o vetor gerado (crie uma função para isso);
Depois leia um índice k e insira o número 999 na posição k
do vetor; Para isso, será preciso deslocar elementos à direita
no vetor (a partir do índice k). O último elemento será
perdido.
Imprima o vetor alterado;

Importante: antes de inserir o elemento, verifique se foi


passado um índice válido!
NÃO use colchetes! Portanto, será preciso usar malloc e
aritmética de ponteiros.

4
Exercício 4 (Ponteiro duplo)

Implemente as #include <stdio.h>


#include <stdlib.h>
funções sorteio, void sorteio(int **sorteado) {
ganhou e // Sorteia uma sequencia de 3 números: retorna um vetor
// de tamanho 3 pelo parametro sorteado
imprime_nume }
int ganhou(int *n_usuario, int *sorteado) {
ro. // Compara se as duas sequencias de tres numeros sao iguais
}
Não modifique o void imprime_numero(int *numeros) {
// Imprima a sequencia de 3 numeros
main; A única }

modificação int main() {


int *n_user = malloc(sizeof(int) * 3);
permitida é scanf("%d %d %d", &n_user[0], &n_user[1], &n_user[2]);

adicionar os int *num_sorteio;


frees na área sorteio(&num_sorteio);

indicada. imprime_numero(n_user);
imprime_numero(num_sorteio);
if (ganhou(num_sorteio, n_user))
printf("Ganhou!!!\n");
else
printf("NAO Ganhou!\n");
// Adicione os frees aqui
return 0;
}
5
Aula prática 04

Algumas possíveis
soluções

6
Exercício 1 (Parâmetros por referência)

7
Exercício 2 (Aloca vetor na função)

8
Exercício 3 (Aritmética de ponteiros)

9
Exercício 4 (Ponteiro duplo)

10
Exercício 4 (Ponteiro duplo)

11

Você também pode gostar