Exercícios Resolvidos de Manipulando Arquivos

Ver Teoria

Enunciado

Faça um programa que leia um arquivo que contenha as dimensões de uma matriz (linha e coluna), a quantidade de posições que serão anuladas e as posições a serem anuladas. Em seguida, imprima na tela uma matriz com essas dimensões onde as posições não-nulas são preenchidas com 1 e as nulas com 0.

Exemplo de arquivo de entrada:

Matriz resultante:

0 1 1 1 0 1 1 1 0

Passo 1

Bom, nós já somos craques nisso, então... Vamos começar o nosso programa declarando as variáveis essenciais para o funcionamento dele:

Passo 2

Com todas essas variáveis declaradas, nós agora podemos abrir o arquivo que armazena as informações de nossa matriz no modo de leitura:

Passo 3

Beleza! Vamos agora analisar o arquivo exemplo mais uma vez:

Você percebe a importância da primeira linha desse arquivo?

Ela basicamente passa as informações gerais da nossa matriz: número de linhas, número de colunas e quantas posições deverão ser anuladas.

É justamente por esse motivo que antes de continuarmos nós iremos utilizar a função fscanf para ler do arquivo as informações gerais da matriz e armazená-las em variáveis do nosso programa:

Passo 4

Agora que finalmente temos informações relevantes sobre a matriz que iremos imprimir (lidas da primeira linha do arquivo), podemos finalmente declará-la com as dimensões corretas e preenchê-la com o valor 1:

Passo 5

Agora que temos uma matriz devidamente preenchida, está na hora de utilizarmos um laço de repetição para percorrermos o arquivo verificando quais posições de m a t r i z devem ser anuladas:

Ou seja, utilizaremos a função fscanf a cada loop do laço de repetição for para ler do arquivo qual posição deve ser anuladas ( a n u l a I e a n u l a J ) e, logo em seguida, atribuímos o valor 0 a essa posição de m a t r i z .

Isso deve se repetir até que todas as anulações tenham sido feitas, ou melhor, até que a quantidade de loops que o laço executou tenha atingido o valor de a n u l a d a s (variável que armazena a quantidade de anulações que devem ser feitas).

Passo 6

Após termos anulado todas as posições informadas pelo arquivo, basta imprimirmos a matriz resultante na tela:

Resposta

Ei, a resposta está no passo a passo :)