Logo Passei Direto
Buscar

ListaExerciciosPascal2

User badge image

Enviado por Leonardo Gama em

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

1-piramide_dos_numeros
Resposta: Uma piramide de números, tendo como topo o número 1, e a cada linha, um numero a mais:
1
12
123
(...)
10-palavra_invertida.pas
{Escreva um programa que leia uma string do teclado e imprima a string invertida (de trás para frente).}
program inverte_palavra;
var palavra:string;
aux:char;
i,v:integer;
begin
	writeln('Digite uma palavra');
	readln(palavra);
	v:=Length(palavra);
	for i:=1 to (v)div(2) do
	begin
		aux:=palavra[i];
		palavra[i]:=palavra[v+1-i];
		palavra[v+1-i]:=aux;
	end;
	writeln('Palavra invertida: ',palavra);
	readln;
end.
11-palindromo.pas
{Uma palavra é palíndromo se ela não se altera quando lida da direita para esquerda. Por exemplo, raiar é
palíndromo. Escreva um programa que verifique se uma palavra dada é palíndromo.}
program palindromo;
var palavra,armaz_palavra:string;
aux:char;
i,v:integer;
begin
	writeln('Digite uma palavra');
	readln(palavra);
	armaz_palavra:=palavra;
	v:=Length(palavra);
	for i:=1 to (v)div(2) do
	begin
		aux:=palavra[i];
		palavra[i]:=palavra[v+1-i];
		palavra[v+1-i]:=aux;
	end;
	if upcase(armaz_palavra)=upcase(palavra) then
		writeln(armaz_palavra,' é um palíndromo!')
	else
		writeln(armaz_palavra,' não é um palíndromo!');
	readln;
end.
12-numero_palavras.pas
{Escreva uma função que retorne o número de palavras de uma frase dada. A frase deve ser passada como
parâmetro para a função.}
program palavras_frase;
//RESPOSTA
function Numero_Palavras(frase2:string):integer;
var i,v,j:integer;
begin
	i:=1;
	v:=Length(frase2);
	for j:=1 to v do
		if frase2[j]=' ' then
			i:=i+1;
	Numero_Palavras:=i;
end;
//FIM RESPOSTA
var frase:string;
begin
	writeln('Digite uma frase');
	readln(frase);
	writeln('Numero de palavras: ',Numero_Palavras(frase));
	readln;
end.
13-sobrenome_nome.pas
{As companhias de transportes aéreos costumam representar os nomes dos passageiros no formato
último sobrenome/nome. Por exemplo, o passageiro Alberto Costa Moreira seria indicado por
Moreira/Alberto.Escreva um programa que receba um nome da entrada de dados e o escreva na tela no
formato acima. Lembre-se que a quantidade de sobrenomes pode variar de uma pessoa para outra.}
program sobrenome_nome;
var nome_completo,nome_formato:string;
i,s,v,tam:integer;
begin
	writeln('Digite seu nome completo');
	readln(nome_completo);
	v:=Length(nome_completo);
	while (nome_completo[v])<>' ' do
		v:=v-1;
	s:=Length(nome_completo);
	tam:=s-v;
	nome_formato:=Copy(nome_completo,v+1,tam)+'/';
	i:=1;
	while (nome_completo[i])<>' ' do
		i:=i+1;
	nome_formato:=nome_formato+Copy(nome_completo,1,i);
	writeln('Nome "convertido": ',nome_formato);
	readln;
end.
	
		
14-nome_bibliografico.pas
{As normas para a exibição da bibliografia de um artigo científico, de uma monografia,de um livro,
texto, etc,exigem que o nome do autor seja escrito no formato último sobrenome, seqüência das
primeiras letras do nome e dos demais sobrenomes, seguidas de ponto final. Por exemplo,
Antônio Carlos Jobim seria referido por "Jobim, A. C.". Escreva um programa que receba um nome e
o escreva no formato de bibliografia.}
program formato_bibliografia;
function Numero_Palavras(frase2:string):integer;
var i,v,j:integer;
begin
	i:=1;
	v:=Length(frase2);
	for j:=1 to v do
		if frase2[j]=' ' then
			i:=i+1;
	Numero_Palavras:=i;
end;
var i,j,tam_sobrenome,k:integer;
nome_completo,nome_bib:string;
begin
	writeln('Digite seu nome completo');
	readln(nome_completo);
	i:=Length(nome_completo);
	while (nome_completo[i])<>' ' do
		i:=i-1;
	j:=Length(nome_completo);
	tam_sobrenome:=j-i;
	nome_bib:=(Copy(nome_completo,i+1,tam_sobrenome)+', ')+(Copy(nome_completo,1,1)+'. ');
	k:=1;
	while (nome_completo[k])<>' ' do
		k:=k+1;
	if Numero_Palavras(nome_completo)>2 then
		nome_bib:=nome_bib+(Copy(nome_completo,k+1,1)+'.');
	writeln('Nome bibliografico: ',nome_bib);
	readln;
end.
15-cadastro_funcionarios.pas
{Faça um programa que crie um arquivo (FUNC.ARQ) com os dados dos funcionários de uma empresa.
Os dados dos funcionários são: nome, cargo e salário. Os dados devem ser fornecidos pelo usuário
e gravados no arquivo criado. Para finalizar a entrada de dados, o usuário deve fornecer ‘FIM’
como nome do funcionário.}
program func_empresa;
type
	dados_funcionario=record
		nome:string;
		cargo:string;
		salario:string;
	end;
	funcs=file of dados_funcionario;
var arq_funcionarios:funcs;
r:dados_funcionario;
opcao:char;
begin
	Assign(arq_funcionarios,'FUNC.ARQ');
	Rewrite(arq_funcionarios);
	Reset(arq_funcionarios);
	while not Eof(arq_funcionarios) do
		read(arq_funcionarios,r);
	writeln('Cadastro de Funcionarios');
	//readln(opcao2);
	
//---------------------------------------------------------------\\
	
	//APENAS UM ESTUDO A MAIS PARA OS SEGUINTES CASOS
	{case opcao2 of 
		2: //EXIBIR DADOS DOS FUNCIONARIOS
		begin
			while not Eof(arq_funcionarios) do
			begin	
				read(arq_funcionarios,r);
				with r do
				writeln(r.nome);
				writeln(r.salario);
			end;
		end;
		3: //ALTERAR SALARIO DOS FUNCIONARIOS
		begin
			writeln('Digite o nome do usuario para alterar o salario');
			readln(nome_altera_salario);
			n:=0;
			while not Eof(arq_funcionarios) do
			begin
				read(arq_funcionarios,r);
				if upcase(r.nome)=upcase(nome_altera_salario) then
				begin
					readln(r.salario);
					Seek(arq_funcionarios,n);
					write(arq_funcionarios,r);
				end;
			n:=n+1;
			end;
		end;				
	end;}
	//FIM
	
//---------------------------------------------------------------\\
	
	write('Nome: ');readln(r.nome);
	while upcase(r.nome)<>'FIM' do
	begin
		write('Cargo: ');readln(r.cargo);
		write('Salario: R$');readln(r.salario);
		writeln('Deseja salvar o cadastro? (s/n)');
		readln(opcao);
		if upcase(opcao)='S' then
		begin	
			write(arq_funcionarios,r);
			writeln('Dados gravados com sucesso!');
		end;
		write('Nome: ');readln(r.nome);
	end;
		writeln;
		writeln('Pressione qualquer tecla para fechar...');
		readln;
end.
		
16-alunos_aprovados.pas
{Suponha a existência de um arquivo, ALUNOS.ARQ, com dados dos alunos de uma escola. Os dados dos
alunos são: matrícula, nome, nota1, nota2 e nota3. Faça um programa que crie um novo arquivo,
APROVADOS.ARQ, leia os dados de ALUNOS.ARQ e grave em APROVADOS.ARQ apenas os alunos que
tiveram média maior que 7,0. Os dados dos alunos em APROVADOS.ARQ devem ser: matrícula, nome e
média.}
program alunos_aprovados;
type
	talunos=record
		nome:string;
		matricula:string[10];
		nota1:real;
		nota2:real;
		nota3:real;
	end;
	taprovados=record
		nome:string;
		matricula:string[10];
		media:real;
	end;
var
dados_aluno:talunos;
dados_aprovado:taprovados;
alunos_arq:file of talunos;
aprovados_arq:file of taprovados;
media:real;
begin
	Assign(alunos_arq,'/home/leonardo/Documentos/UFBA/INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO - Cláudio Nogueira Santanna/Programas em Pascal/Segunda Lista/ALUNOS.ARQ');
	Assign(aprovados_arq,'/home/leonardo/Documentos/UFBA/INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO - Cláudio Nogueira Santanna/Programas em Pascal/Segunda Lista/APROVADOS.ARQ');
	Rewrite(aprovados_arq);
	Reset(alunos_arq);
	Reset(aprovados_arq);
	while not Eof(alunos_arq) do
	begin
		read(alunos_arq,dados_aluno);
		media:=(dados_aluno.nota1+dados_aluno.nota2+dados_aluno.nota3)/3;
		if media>7 then
		begin		
			dados_aprovado.nome:=dados_aluno.nome;
			dados_aprovado.matricula:=dados_aluno.matricula;
			dados_aprovado.media:=media;
			write(aprovados_arq,dados_aprovado);
			writeln('O(A) aluno(a) ',dados_aluno.nome,' com media ',media:0:2,' foi aprovado!');
		end
		else
			writeln('O(A) aluno(a) ',dados_aluno.nome,' com media ',media:0:2,' foi reprovado.');
	end;
	readln;
end.	
	
	
16-cadastro_alunos[EXTRA].pas
program alunos_ufba;
type
	talunos=record
		nome:string;
		matricula:string[10];
		nota1:real;
nota2:real;
		nota3:real;
	end;
var alunos_arq:file of talunos;
dados_aluno:talunos;
opcao:integer;
begin
	Assign(alunos_arq,'/home/leonardo/Documentos/UFBA/INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO - Cláudio Nogueira Santanna/Programas em Pascal/Segunda Lista/ALUNOS.ARQ');
	Reset(alunos_arq);
	while not Eof(alunos_arq) do
		read(alunos_arq,dados_aluno);
		opcao:=1;
		writeln('Digite os dados dos alunos');
		while opcao<>0 do
		begin
			readln(dados_aluno.nome);
			readln(dados_aluno.matricula);
			readln(dados_aluno.nota1);
			readln(dados_aluno.nota2);
			readln(dados_aluno.nota3);
			write(alunos_arq,dados_aluno);
			writeln('Digite 0 caso queira finalizar');
			readln(opcao);
		end;
		readln;	
end.
16-criar arquivo alunos.arq[EXTRA].pas
program alunos_ufba;
type
	talunos=record
		nome:string;
		matricula:string[10];
		nota1:real;
		nota2:real;
		nota3:real;
	end;
var alunos_arq:file of talunos;
begin
	Assign(alunos_arq,'/home/leonardo/Documentos/UFBA/INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO - Cláudio Nogueira Santanna/Programas em Pascal/Segunda Lista/ALUNOS.ARQ');
	Rewrite(alunos_arq);
end.
17-clientes_empresa.pas
{Faça um programa que cria um arquivo seqüencial (CLIENTES.ARQ) com os dados dos clientes de uma
empresa. Os dados de cada cliente são: NOME, TELEFONE e COMPRAS. COMPRAS é um vetor de 12
posições com os valores em reais das comprar realizadas pelo cliente em cada mês do ano. Os dados
devem ser fornecidos pelo usuário e gravados no arquivo criado. Para finalizar a entrada de dados,
o usuário deve fornecer ‘FIM’ como nome do cliente.}
program clientes_empresa;
type
	tcliente=record
		nome:string;
		telefone:string;
		compras:array [1..12] of real;
	end;
	tclientes=file of tcliente;
var
arq_tclientes:tclientes;
r_tcliente:tcliente;
i:integer;
confirma_gravacao:char;
begin
	Assign(arq_tclientes,'CLIENTES.ARQ');
	Rewrite(arq_tclientes);
	writeln('Digite os dados de cada cliente. Para finalizar, digite "fim" no campo "Nome"');
	write('Nome: ');
	readln(r_tcliente.nome);
	while upcase(r_tcliente.nome)<>'FIM' do
	begin
		write('Telefone: ');
			readln(r_tcliente.telefone);
		writeln('Compras do ano: ');
			for i:=1 to 12 do
			begin
				write('Compras do mes ',i,': R$');
					readln(r_tcliente.compras[i]);
			end;
		writeln('Deseja salvar os dados registrados? (s/n)');
			readln(confirma_gravacao);
		while (upcase(confirma_gravacao)<>'S') and (upcase(confirma_gravacao)<>'N') do
		begin
			writeln('Digite uma opcao valida! (s/n)');
				readln(confirma_gravacao);
		end;
		if upcase(confirma_gravacao)='S' then
		begin
			write(arq_tclientes,r_tcliente);
			writeln('Digite os dados do proximo cliente');
		end
		else
			writeln('Digite novamente os dados do cliente');
		write('Nome: ');
			readln(r_tcliente.nome);
	end;
	readln;
end.
		
		
		
18-bom_cliente.pas
{Considerando o arquivo criado no exercício anterior (exercício 18), faça um programa para
encontrar os bons clientes, aqueles que compraram mais de R$10.000,00 no ano. O programa deve 
criar um novo arquivo, BONSCLIENTES.ARQ, ler os dados de CLIENTES.ARQ e gravar em BONSCLIENTES.ARQ
apenas os clientes cujas compras anuais foram superiores a R$10.000,00. Os dados dos clientes em
BONSCLIENTES.ARQ devem ser: NOME e COMPRAS_ANO. COMPRAS_ANO deve armazenar o valor
anual das compras de cada cliente.} 
program bonsclientes;
type
	tcliente=record
		nome:string;
		telefone:string;
		compras:array [1..12] of real;
	end;
	bom_cliente=record
		nome:string;
		compras_ano:real;
	end;
	tclientes=file of tcliente;
	bons_clientes=file of bom_cliente;
var
arq_tclientes:tclientes;
r_tcliente:tcliente;
arq_bons_clientes:bons_clientes;
r_bom_cliente:bom_cliente;
soma:real;
i:integer;
begin
	Assign(arq_tclientes,'CLIENTES.ARQ'); //considerando os dois arquivos na mesma pasta
	Reset(arq_tclientes); //abrindo o arquivo ja existente
	Assign(arq_bons_clientes,'BONSCLIENTES.ARQ');
	Rewrite(arq_bons_clientes); //criando o arquivo dos bons clientes
	while not Eof(arq_bons_clientes) do
		read(arq_bons_clientes,r_bom_cliente);
	while not Eof(arq_tclientes) do
	begin
		read(arq_tclientes,r_tcliente);
		soma:=0;
		for i:=1 to 12 do
			soma:=soma+(r_tcliente.compras[i]);
		if soma>10000 then
		begin
			r_bom_cliente.nome:=r_tcliente.nome;
			r_bom_cliente.compras_ano:=soma;
			writeln(r_bom_cliente.nome,' é um bom cliente por ter comprado R$', r_bom_cliente.compras_ano:0:2,' no ano');
		end;
		write(arq_bons_clientes,r_bom_cliente);
	end;
	readln;
end.
2-potencia.pas
{Escreva um subprograma em Pascal que calcule “x elevado a y”.}
program potencia;
var x,y:integer;
{SUBPROGRAMA}
procedure elevar(a,b,c:integer);
begin
 c:=1;
 while b>0 do
 begin
 c:=c*a;
 b:=b-1;
 end;
 writeln(c);
end;
{/SUBPROGRAMA}
begin
 writeln('Escreva dois numeros para que se possa aplicar a potenciacao');
 readln(x,y);
 elevar(x,y,1);
 readln;
end.
3-checar_digitos.pas
{Escreva um subprograma em Pascal que calcule a quantidade de dígitos de um número inteiro. Para isso, use
o subprograma da questão 2.}
program quantdigitos;
//Funcao da potenciacao
function elevar(a,b,c:integer):integer;
begin
 c:=1;
 while b>0 do
 begin
 c:=c*a;
 b:=b-1;
 end;
 elevar:=c;
end;
//Procedimento do numero de digitos
procedure ChecaDigitos(x:integer);
var i:integer;
begin
	i:=1;
	repeat
		if (x)div(elevar(10,i,1))<>0 then
			i:=i+1;
	until((x)div(elevar(10,i,1))=0);
	writeln('Os calculos concluiram que ',x,' tem ',i,' digitos');
end;
//VARIAVEIS DO PROGRAMA PRINCIPAL
var n:integer;
//INICIO DO PROGRAMA PRINCIPAL
begin
	writeln('Digite um numero');
	readln(n);
	ChecaDigitos(n);
	writeln('Pressione qualquer tecla para fechar...');
	readln;
end.	
	
	
	
4-inverter_numero.pas
{Escreva um subprograma em Pascal que retorne o reverso de um número inteiro, por exemplo, 472 -> 274. O
número poderá ter qualquer quantidade de dígitos. Para isso, use os subprogramas das questões 2 e 3.}
//Funcao da potenciacao
function elevar(a,b,c:integer):integer;
begin
 c:=1;
 while b>0 do
 begin
 c:=c*a;
 b:=b-1;
 end;
 elevar:=c;
end;
//Funcao do numero de digitos
function ChecaDigitos(x:integer):integer;
var i:integer;
begin
	i:=1;
	repeat
		if (x)div(elevar(10,i,1))<>0 then
			i:=i+1;
	until((x)div(elevar(10,i,1))=0);
	ChecaDigitos:=i;
end;
//Funcao para inverter o numero
function InverteNumero(num:integer):integer;
var i,j,num_inv:integer;
begin
	num_inv:=0;
	i:=ChecaDigitos(num);
	for j:=1 to i do
	begin
		num_inv:=num_inv+(((num)mod(10))*elevar(10,i-1,1));
		num:=(num)div(10);
		i:=i-1;
	end;
	InverteNumero:=num_inv;
end;
//VARIAVEIS DO PROGRAMA PRINCIPAL
var n,n_invertido:integer;
//INICIO DO PROGRAMA
begin
	writeln('Digite um numero');
	readln(n);
	n_invertido:=InverteNumero(n);
	writeln('Numero invertido:',n_invertido);
	readln;
end.	
	
5-f(3) e f(7)
Resposta: f(3)=9 e f(7)=23
6-potencia_recursiva.pas
{Escreva uma função recursiva que calcule “x elevado a y”.}
program potenciarecursiva;
//FUNCAO RECURSIVA PARA ELABORAR UMA POTENCIACAO
function pot(a,b,c:integer):integer;
begin
 if b=0 then
 pot:=1
 else
 pot:=a*pot(a,b-1,1);
end;
var base,expoente:integer;
begin
 writeln('Digite dois numeros (x elevado a y)');
 write('X: ');readln(base);
 write('Y: ');readln(expoente);
 writeln('Resultado: ',pot(base,expoente,1));
 readln;
end.
7-fibonacci.pas
{Escreva uma função recursiva que retorne o n-ésimo termo da seqüência de Fibbonaci, n dado.}
//SEQUENCIA DE FIBONACCI DE ACORDO COM A PRIMEIRA
LISTA: 1,1,2,3,5,8,13,21...
program fibonacci;
function f(n:integer):integer;
begin
 if (n=1) then
 f:=1;
 if (n=0) then
 f:=0;
 if (n<>0) and (n<>1) then
 f:=f(n-1)+f(n-2);
end;
var num:integer;
begin
 writeln('Digite um numero');
 readln(num);
 writeln('RESPOSTA: ',f(num));
 readln;
end.
8-soma_recursiva.pas
{Escreva uma função recursiva para calcular o valor da seguinte série h(x) = 1 + 1/2 + 1/3 + 1/4 + ... + 1/x,
para um inteiro x positivo (x>0).}
function h(x:integer):real;
begin
 if x=1 then
 h:=1
 else
 h:=1+h(x-1);
end;
9-fatorial_impar_recursivo.pas
{O fatorial ímpar de um número n ímpar positivo é o produto de todos os números ímpares positivos menores
do que ou iguais a n. Indicando o fatorial ímpar de n por n| temos, n| = 1 . 3. 5 . ... . n. Por exemplo, 7| = 1 . 3 .
5 . 7 = 105. Escreva uma função iterativa e outra recursiva para determinar o fatorial ímpar de um inteiro
ímpar dado.}
program fatorialimpar;
function fatrec(n:integer):integer;
begin
 if (n=1) then
			fatrec:=1
 else
			fatrec:=n*fatrec(n-2);
end;
var n:integer;
begin
 writeln('Digite um numero impar');
 readln(n);
 while (n)mod(2)=0 do
 begin
			writeln('Digite apenas números impares');
			readln(n);
		end;
 writeln(n,'|: ',fatrec(n));
 readln;
end.
9.1-fatorial_impar_iterativo.pas
{O fatorial ímpar de um número n ímpar positivo é o produto de todos os números ímpares positivos menores
do que ou iguais a n. Indicando o fatorial ímpar de n por n| temos, n| = 1 . 3. 5 . ... . n. Por exemplo, 7| = 1 . 3 .
5 . 7 = 105. Escreva uma função iterativa e outra recursiva para determinar o fatorial ímpar de um inteiro
ímpar dado.}
program fatorialinterativo;
var n,i,fat:integer;
begin
 writeln('Digite um numero');
 readln(n);
 fat:=1;
 for i:=1 to n do
 if (i)mod(2)<>0 then
 fat:=fat*i;
 writeln(n,'! impar =',fat);
 readln;
end.
SegundaLista.pdf
Universidade Federal da Bahia
Instituto de Matemática
Disciplina – Introdução à Lógica de Programação
Segunda Lista de Exercícios
SUBPROGRAMAS
1) O que o programa abaixo imprimirá na tela?
program Linhas;
var contador : integer;
procedure ImprimeLinha(linha : integer);
var contador : integer;
begin
 for contador := 1 to linha do
 write(contador);
 writeln;
end;
begin
 for contador := 1 to 10 do 
 ImprimeLinha(contador);
end.
2) Escreva um subprograma em Pascal que calcule “x elevado a y”.
3) Escreva um subprograma em Pascal que calcule a quantidade de dígitos de um número inteiro. Para isso, use 
o subprograma da questão 2.
4) Escreva um subprograma em Pascal que retorne o reverso de um número inteiro, por exemplo, 472 -> 274. O 
número poderá ter qualquer quantidade de dígitos. Para isso, use os subprogramas das questões 2 e 3.
RECURSIVIDADE
5) Considere a seguinte função recursiva:
function f(n: integer): integer;
begin
 if (n < 4) then
 f := 3 * n;
 else
 f := 2 * f(n - 4) + 5;
 end;
Quais são os valores para f(3) e f(7)?
6) Escreva uma função recursiva que calcule “x elevado a y”.
7) Escreva uma função recursiva que retorne o n-ésimo termo da seqüência de Fibbonaci, n dado.
8) Escreva uma função recursiva para calcular o valor da seguinte série h(x) = 1 + 1/2 + 1/3 + 1/4 + ... + 1/x, 
para um inteiro x positivo (x>0).
9) O fatorial ímpar de um número n ímpar positivo é o produto de todos os números ímpares positivos menores 
do que ou iguais a n. Indicando o fatorial ímpar de n por n| temos, n| = 1 . 3. 5 . ... . n. Por exemplo, 7| = 1 . 3 . 
5 . 7 = 105. Escreva uma função iterativa e outra recursiva para determinar o fatorial ímpar de um inteiro 
ímpar dado.
STRING
10) Escreva um programa que leia uma string do teclado e imprima a string invertida (de trás para frente).
11) Uma palavra é palíndromo se ela não se altera quando lida da direita para esquerda. Por exemplo, raiar é 
palíndromo. Escreva um programa que verifique se uma palavra dada é palíndromo.
12) Escreva uma função que retorne o número de palavras de uma frase dada. A frase deve ser passada como 
parâmetro para a função.
13) As companhias de transportes aéreos costumam representar os nomes dos passageiros no formato último 
sobrenome/nome. Por exemplo, o passageiro Alberto Costa Moreira seria indicado por Moreira/Alberto. 
Escreva um programa que receba um nome da entrada de dados e o escreva na tela no formato acima. 
Lembre-se que a quantidade de sobrenomes pode variar de uma pessoa para outra.
14) As normas para a exibição da bibliografia de um artigo científico, de uma monografia, de um livro texto etc., 
exigem que o nome do autor seja escrito no formato último sobrenome, seqüência das primeiras letras do 
nome e dos demais sobrenomes, seguidas de ponto final. Por exemplo, Antônio Carlos Jobim seria referido 
por Jobim, A. C.. Escreva um programa que receba um nome e o escreva no formato de bibliografia.
REGISTROS E ARQUIVOS
15) Faça um programa que crie um arquivo (FUNC.ARQ) com os dados dos funcionários de uma empresa. Os 
dados dos funcionários são: nome, cargo e salário. Os dados devem ser fornecidos pelo usuário e gravados no 
arquivo criado. Para finalizar a entrada de dados, o usuário deve fornecer ‘FIM’ como nome do funcionário.
16) Suponha a existência de um arquivo, ALUNOS.ARQ, com dados dos alunos de uma escola. Os dados dos 
alunos são: matrícula, nome, nota1, nota2 e nota3. Faça um programa que crie um novo arquivo, 
APROVADOS.ARQ, leia os dados de ALUNOS.ARQ e grave em APROVADOS.ARQ apenas os alunos que 
tiveram média maior que 7,0. Os dados dos alunos em APROVADOS.ARQ devem ser: matrícula, nome e 
média.
17) Faça um programa que cria um arquivo seqüencial (CLIENTES.ARQ) com os dados dos clientes de uma 
empresa. Os dados de cada cliente são: NOME, TELEFONE e COMPRAS. COMPRAS é um vetor de 12 
posições com os valores em reais das comprar realizadas pelo cliente em cada mês do ano. Os dados devem 
ser fornecidos pelo usuário e gravados no arquivo criado. Para finalizar a entrada de dados, o usuário deve 
fornecer ‘FIM’ como nome do cliente.
18) Considerando o arquivo criado no exercício anterior (exercício 19), faça um programa para encontrar os bons 
clientes, aqueles que compraram mais de R$10.000,00 no ano. O programa deve criar um novo arquivo, 
BONSCLIENTES.ARQ, ler os dados de CLIENTES.ARQ e gravar em BONSCLIENTES.ARQ apenas os 
clientes cujas compras anuais foram superiores a R$10.000,00. Os dados dos clientes em 
BONSCLIENTES.ARQ devem ser: NOME e COMPRAS_ANO. COMPRAS_ANO deve armazenar o valor 
anual das compras de cada cliente.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Mais conteúdos dessa disciplina

Mais conteúdos dessa disciplina