O documento apresenta exemplos de códigos em diferentes linguagens (VisuAlg, Pascal, C, Java e PHP) para ler dados de um arquivo de entrada, realizar operações com esses dados e escrever os resultados em um arquivo de saída. As linguagens demonstram como abrir e fechar arquivos, ler e escrever dados, e usar estruturas de repetição para lidar com múltiplas entradas.
Cap15 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de Computadores Autores JR., Dilermando
1. página: 1
Resposta dos Exercícios Propostos
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de Mendonça
Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
C A P Í T U L O 1 5 - A r q u i v o s
Exercício
A. VisuaAlg
Em VisuAlg, arquivos podem ser usados apenas para entrada de dados.
Arquivo “entrada.txt”
var
n1,n2:inteiro
inicio
leia(n1)
leia(n2)
escreva1 (n1+n2)
fimalgoritmo
Arquivo “entrada.txt”
var
n1,n2:inteiro
inicio
repita
leia(n1)
leia(n2)
escreva1 (n1+n2)
ate n1=0 e n2=0
fimalgoritmo
B. Pascal
program le;
var
n1,n2: integer;
2. página: 2
Resposta dos Exercícios Propostos
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de Mendonça
Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
ent,sai:text;
begin
assign(ent, ‘Entrada.txt’);
assign(sai,’Saida.txt’);
reset(ent);
rewrite(sai);
read(ent,n1);
read(ent,n2);
write(sai,n1+n2);
close(ent);
close(sai);
end.
program le_varios;
var
ent,sai:text;
begin
assign(ent, ‘Entrada.txt’);
assign(sai,’Saida.txt’);
reset(ent);
rewrite(sai);
repeat
read(ent,n1);
read(ent,n2);
write(sai,n1+n2);
until (n1=0) and (n2=0);
close(ent);
close(sai);
end.
C. C
int main()
{
int n1, n2;
FILE *ent, *sai ;
ent = fopen(”Entrada.txt”, ”r”);
sai = fopen(”Saida.txt”, ”w”);
fscanf(ent,”%d %d”, &n1, &n2);
fprintf(sai, “%d ”, n1+n2);
fclose(ent);
fclose(sai);
}
3. página: 3
Resposta dos Exercícios Propostos
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de Mendonça
Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
int main()
{
int n1, n2;
FILE *ent, *sai ;
ent = fopen(”Entrada.txt”, ”r”);
sai = fopen(”Saida.txt”, ”w”);
do{
fscanf(ent,”%d %d”, &n1, &n2);
fprintf(sai, “%d ”, n1+n2);
} while ((n1!=0)||(n2!=0));
fclose(ent);
fclose(sai);
}
D. Java
public class Main
{
public static void main(String[] args)
throws Exception
{
//Usado para escrever no arquivo de saida
Formatter saida = new Formatter("Saida.txt");
//Usado para leitura do arquivo de entrada
Scanner entrada = new Scanner(
new File("Entrada.txt"));
int n1, n2;
n1 = entrada.nextInt();
n2 = entrada.nextInt();
saida.format( "%d", n1+n2 );
saida.close();
entrada.close();
}
}
public class Main {
public static void main(String[] args)
throws Exception
{
//Usado para escrever no arquivo de saida
Formatter saida = new Formatter("Saida.txt");
//Usado para leitura do arquivo de entrada
4. página: 4
Resposta dos Exercícios Propostos
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de Mendonça
Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
Scanner entrada = new Scanner(
new File("Entrada.txt"));
int n1, n2;
do
{
n1 = entrada.nextInt();
n2 = entrada.nextInt();
saida.format( "%d n", n1+n2 );
}while(n1 != 0 && n2 != 0);
//Poderia se usar o entrada.hasNext()
saida.close();
entrada.close();
}
}
E. PHP
Código para entrada única
$arquivo_entrada = fopen("entrada.txt", "r") or die("Erro ao abrir o
arquivo.");
$entrada = fgets($arquivo_entrada);
fclose($arquivo_entrada);
$valores = explode(" ", $entrada); // Explode é similar ao
// TRIM, ou seja, nesse caso ele vai separar tudo que está entre
// espaços em um array
$arquivo_saida = fopen("saida.txt", "w+");
$i = 0;
if ($valores[$i] != NULL && $valores[$i + 1] != NULL) {
$soma = $valores[$i] + $valores[$i + 1];
fwrite($arquivo_saida, $valores[$i] . " + " . $valores[$i + 1] . " = " .
$soma . " n");
fclose($arquivo_saida);
} else {
print("Erro com o conteúdo do arquivo!!!");
}
Código para várias entradas
5. página: 5
Resposta dos Exercícios Propostos
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de Mendonça
Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
$arquivo_entrada = fopen("entrada.txt", "r") or die("Erro ao abrir o
arquivo.");
$entrada = fgets($arquivo_entrada);
fclose($arquivo_entrada);
$valores = explode(" ", $entrada);
// Explode é similar ao TRIM, ou seja, nesse caso ele vai
// separar tudo que está entre espaços em um array
$arquivo_saida = fopen("saida.txt", "w+");
$i = 0;
if ($valores[$i] != NULL && $valores[$i + 1] != NULL) {
do {
$soma = $valores[$i] + $valores[$i + 1];
fwrite($arquivo_saida, $valores[$i] . " + " . $valores[$i + 1] . " = "
. $soma . " n");
$i+=2;
} while ($valores[$i] != NULL && $valores[$i+1] != NULL);
fclose($arquivo_saida);
} else {
print("Erro com o conteúdo do arquivo!!!");
}