paulo1205
(usa Ubuntu)
Enviado em 09/11/2012 - 18:59h
Tenha em mente que são raras as arquiteturas capazes de operar sobre todas os elementos de uma matriz de uma só vez, porque isso implica não apenas ter um processador capaz de executar muitas operações ao mesmo tampo, mas também memória que permita acessos simultâneos. E isso fica ainda mais difícil no caso de operaçẽos de entra e saída de dados. Mesmo as máquinas que são capazes de tal feito costumam ter um limite máximo para as matrizes em que conseguem operar, de modo que matrizes maiores têm de ser divididas em blocos que caibam nesse limite, e a operação sobre a matriz original se dará somente pela operação sucessiva sobre os blocos menores que a compõem.
Também linguagens de programação de alto nível e/ou especializadas que permitem expressar operações com matrizes no fundo escondem essa divisão em blocos menores. Na prática, num computador que não é muito especializado, o que acontece é que esses blocos menores são quase sempre exatamente do tamanho de um elemento (no máximo, numa máquina dual core, por exemplo, um programa poderia ser construído de modo ter cada core operando paralelamente sobre metade da matriz, mas aida elemento a elemento).
C é uma linguagem simples e de baixo nível, pensada para um computador genérico (quase abstrato) que não supõe execução em paralelo. Ela não tem "ler matriz inteira de uma vez" porque, sendo de baixo nível e genérica, nem mesmo matriz como tipo de dados ela tem (o que se costuma chamar de "matrizes" em C são disposições de arrays de arrays de um dado tipo de elemento), de modo que você é obrigado a explicitar que está trabalhando com os blocos menores (i.e.: cada elemento) que compõem a matriz.
O que pode ajudar notacionalmente é fazer funções que recebam as matrizes como parâmetros e apenas internamente façam a manipulação necessária de cada elemento, mas exponham para o unoverso externo à função apenas a ilusão de que se opera sobre a matriz inteira de uma vez (que é o equivalente ao que fazem as linguagens especializadas acima mencionadas).