UFCD 784

Programação em C/C++ - Funções e Estruturas

Formador: Bruno Silva

Objetivos

Identificar as funções e estruturas constantes na linguagem de programação C/C++.

Reflexão

A linguagem C contém quatro tipos básicos de dados: int, float, char e double. Estes tipos de dados nem sempre são suficientes para representar os dados num determinado algoritmo. São necessários assim novos tipos, denominados por dados estruturados, a partir da composição dos tipos básicos. Estes novos tipos têm uma estrutura que define como estarão organizados.

Nesta UFCD, começámos por abordar os dados estruturados. Nas UFCDs anteriores utilizámos os tipos de dados simples: onde cada variável opera apenas com um valor de cada vez. No entanto, vimos agora que é possível associar um conjunto de dados a uma variável. Para isso, foi-nos introduzido o conceito de array, que é um tipo estruturado e que pode ser classificado como:

Vetor (estrutura unidimensional) - que é um conjunto de elementos representados por um índice e um valor;

Matriz (estrutura multidimensional) - que é um conjunto de elementos representados por um identificador e um índice, com duas ou mais dimensões.

Para avaliar os nossos conhecimentos nestes conteúdos, realizámos o primeiro trabalho prático com um sorteio do Euromilhões, onde utilizei os vetores, as funções, os procedimentos e as estruturas de repetição.

Depois disso avançámos para o conceito de ponteiro. Um ponteiro é uma variável que contém o endereço de outra variável. A sua declaração é feita usando o tipo da variável para a qual se quer apontar, seguido de asterisco (*). O endereço de uma variável pode ser obtido através do operador & (endereço de). Os ponteiros são um mecanismo particularmente flexível de manipulação dos dados, pois permitem manipular os dados contidos nos endereços específicos da memória. Podem ser aplicados para strings, aritmética, ponteiros e funções. Para este tema realizámos um quiz de avaliação.

Dando continuidade ao módulo, vimos que uma estrutura é um conjunto de uma ou mais variáveis, possivelmente de tipos diferentes, colocadas juntas sob um único nome para a sua manipulação conveniente. As estruturas auxiliam na organização de dados complexos, particularmente em grandes programas, porque em muitas situações elas permitem que um agrupamento de variáveis inter-relacionadas seja tratado como um todo em vez de como entidades separadas. Em termos de avaliação, realizámos o terceiro trabalho prático, que teve em ênfase um programa de registos estruturados. Aqui utilizei as estruturas ligadas visíveis em todo o programa, iniciei a variável como um vetor, usei estruturas de repetição para inserir e mostrar registos e ainda uma estrutura de decisão para mostrar uma mensagem no ecrã de aprovado ou reprovado, entre outras operações.

Por último falámos em uniões, onde esta pode ser vista como uma lista de variáveis e cada uma delas pode ter qualquer tipo. A ideia básica de uma união é criar apenas um tipo de dados que contem vários membros. Tanto a declaração quanto o acesso aos elementos de uma união são muito parecidos com uma estrutura. Contudo, diferentemente de uma estrutura, todos os elementos de uma união ocupam o mesmo espaço físico em memória. Uma estrutura reserva espaço de memória para todos os seus elementos, enquanto que uma união reserva espaço em memória para um elemento de cada vez e partilha esse espaço com todos os membros.

As minhas dificuldades incidiram nos vetores e nos ponteiros, mas com a devida prática e estudo ao longo do tempo, irei desenvolver os meus conhecimentos. Achei bastante úteis todos os conteúdos para desenvolver algoritmos e programas mais complexos. Ainda preciso de mais prática e aperfeiçoamento de código mas sei que com a minha dedicação e esforço irei conseguir perceber e implementar melhor e com mais otimização.

icon