Um problema a ser resolvido pode ser codificado em instruções que em sequência vão gradativamente oferecendo as funcionalidades desejadas a um software. Mas há casos onde a complexidade é maior e escrever um código em uma sequência única pode ser uma tarefa mais árdua e menos eficaz. Assim, existe a possibilidade de se utilizar sub-rotinas em linguagem C de forma a oferecer mecanismos para que instruções sejam encapsuladas em uma sub rotina, sendo executadas apenas quando a mesma seja solicitada.
A seguir analise as afirmações:
I – Funções são tipos de sub rotinas capazes de processar dados a partir das instruções contidas em sua implementação, mas não pode receber dados de fora, advindos de alguma parte do código que execute a função.
II – Em linguagem C, as sub rotinas são utilizadas como funções que podem receber valores de entrada chamados de parâmetros e ao final de seu processamento, retornar algum valor determinado pela função.
III – Nem todo tipo de estrutura de dados pode ser utilizado em funções, pois existem limitações na implementação da linguagem como não aceitar dados do tipo texto quando passados por valor.
É correto o que se afirma em:
a) I apenas
b) II apenas
c) III apenas
d) I e II apenas
e) II e III apenas
Soluções para a tarefa
Resposta:
CORREÇÃO
e) II e III apenas.
Explicação:
I - Esta afirmação está incorreta. Pois funções são sub-rotinas que retornam algum valor e podem sim receber dados de fora.
Uma explicação do que é função:
Uma função também é uma sub-rotina, que tem como objetivo desviar a execução do programa principal para realizar uma tarefa específica, com uma única diferença: sempre retorna um valor.
Um exemplo de função:
int multiplica(int N1, int N2) {
int resultado;
resultado = N1 * N2;
return(resultado);
}
Neste exemplo a função multiplica vai receber(de fora) dois valores inteiros e retornar um resultado.
II - Esta afirmação está correta. Pois funções são sub-rotinas que podem receber valores de entradas (no exemplo anterior, int N1 e int N2) que são chamados de parâmetros e ao processar os dados retorna um valor.
III - Esta afirmação está correta. No caso de strings, vetores ou matrizes devem ser passados por refêrencia (utilizando ponteiros), uma vez que não é possível passar uma string por valor.
Peço desculpas pela correção :(