Baixe o app para aproveitar ainda mais
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
Compartilhar