Buscar

Lab2 Revisão de Ponteiros e Funções

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

DAS 5102 Fundamentos da Estrutura da Informação 2011/II 
 
Prof. Dr. rer. nat. Daniel Duarte Abdala 
abdala@das.ufsc.br 
Lab2: Revisão de Ponteiros e Funções 
 
Objetivos: 
• Revisar a passagem de parâmetros por referência para funções; 
• Revisar os métodos de iteração e recursão. 
 
Exercício 1: Crie um arquivo chamado < malloc_free.c> utilizando um editor de textos padrão 
(vi, pico, xemacs, gedit) e digite o seguinte programa: 
///////////////////////////////////////////////////// 
//malloc_free 
//Desc: programa demonstrativo para utilização 
//das funções para alocação dinâmica malloc e free 
// 
//DDA 16/08/11 
///////////////////////////////////////////////////// 
#include <stdio.h> 
#include <stdlib.h> 
 
int main( void ) 
{ 
 int numInteiros = 0; 
 int *pInt, *pIntInit; 
 int tempInt; 
 int count; 
 printf( "Digite o numero de inteiros a ser lido:" ); 
 scanf( "%d", &numInteiros ); 
 
 if ( !(pInt = malloc( numInteiros * sizeof( int ) ) ) ){ 
 printf("sem memória!\n"); 
 exit( 1 ); 
 } 
 pIntInit = pInt; 
 for(count = 0; count < numInteiros; count++){ 
 printf( "\n Digite o inteiro [%d]:",count ); 
 scanf( "%d", &tempInt ); 
 *pInt = tempInt; 
 pInt++; 
 } 
 int acc = 0; 
 pInt = pIntInit; 
 for(count = 0; count < numInteiros; count++){ 
 acc = acc + *pInt; 
 pInt++; 
 } 
 printf("%d", acc); 
 free( pIntInit ); // libera a memória alocada dinâmicamente 
 pIntInit = pInt = NULL; 
 exit( 0 ); 
} 
Como compilar o programa: 
>> gcc malloc_free.c –o malloc_free 
Com relação ao programa acima: 
a) Escreva uma função que receba o vetor de inteiros “pInt” passado como parâmetro e 
inverta a ordem dos números; (DICA, gere uma cópia temporária do vetor de inteiros ); 
b) Escreva uma função que receba o vetor de inteiros “pInt” passado como parâmetro por 
referência e substitua todos os números do vetor pelas seus quadrados. 
 
Exercício 2: Crie um programa que leia do usuário um número. Este número deve ser maior que 
0 e menor que 20. Em seguida o programa deve calcular a série de Fibonacci deste número. 
Todos os elementos da série de Fibonacci devem ser salvos em um vetor alocado 
dinamicamente. 
FN = FN – 1 + FN – 2, N>=2, F0= F1 = 1

Continue navegando