Baixe o app para aproveitar ainda mais
Prévia do material em texto
Observações gerais: 1) Preencher os dados do cabeçalho do bloco de provas; 2) Preencher o cabeçalho da folha de questões com o nome e a turma; 3) Não utilizar a folha de questões como rascunho. O rascunho, se necessário, deverá ser feito nas folhas do caderno de prova; 4) Ao final da prova entregar ao professor ou fiscal a folha de questões e o caderno de prova; 5) Cada quesito vale 5 pontos. 1º quesito: Fazer um programa em Pascal para: a) Ler do teclado um número N, no intervalo de 2 <= N <= 100, que corresponde ao tamanho da matriz armazenada no arquivo “MATRIZ.ARQ”. b) Ler do arquivo “MATRIZ.ARQ” a matriz de números reais de tamanho NxN; c) Calcular a norma infinita da matriz lida do arquivo; d) Imprimir o valor da norma na tela. A norma da matriz A é o valor máximo entre os somatórios dos valores absolutos de cada linha. O cálculo da norma infinita é dado por: Obs.: o aluno pode escolher se a forma de armazenamento da matriz no arquivo é binária ou texto. Program Quesito1; Type Matriz = Array[1..100,1..100] of Real; Var N, i, j:Integer; Soma, Norma: Real; Arq: File of Matriz; M:Matriz; Begin Repeat Write('Digite o valor de N: '); Readln(N); Until (N<2) AND (N>100); Assign(Arq,'MATRIZ.ARQ'); Reset(Arq); Read(Arq,M); Norma:=0; For i:=1 to N do Begin Soma:=0; For j:=1 to N do Begin Soma := Soma + ABS(M[i][j]); End; If Soma > Norma Then Norma := Soma; End; Writeln('O valor da Norma da Matriz [',N,']','[',N,']: ',Norma:4:2); Close(Arq); End. ÁREA II – CCEN / UFPE Disciplina: IF 165 – Computação Eletrônica – 2º Chamada 2012.1 Data: 03/07/ 2012 Nome legível do aluno: .......................................................................................... Turma ......... 2º quesito: Uma empresa de pagamentos possui 200 clientes, e quer informatizar seu banco de dados. Faça um programa em Pascal que: a) Crie um arquivo chamado ‘CLIENTES.ARQ’; b) Leia e salve no arquivo os seguintes dados sobre os clientes: Após a criação do arquivo de cadastro a empresa gostaria de fazer um levantamento dos valores pagos por seus clientes nos anos de 2011 e 2012. Implemente as seguintes consultas no arquivo de ‘CLIENTES.ARQ’ e imprima seu resultado na tela: c) Qual o valor pago pelos seus clientes em 08/2010? d) Qual o montante recebido no ano de 2011? e) Qual o maior pagamento de 06/2012? f) Quantos clientes quitaram todos os seus débitos com a empresa (Valor da dívida = R$ 0,00)? Program Quesito2; Type Cliente = Record Nome: String[20]; Nasc, Fone, MesPgto, AnoPgto: Integer; ValorDiv, ValorPago: Real; Ender : Record Rua: String[30]; Bairro: String[20]; Num: Integer; End; End; Var C: Cliente; Arq: File of Cliente; Cadastrar: Char; SomaPgtos2010, SomaPgtos2011, maiorValor2012: Real; nQuitados: Integer; Begin Assign(Arq,'CLIENTES.ARQ'); Rewrite(Arq); Repeat Write('Digite sobre o cliente o Nome, Nascimento, Fone, Rua, Bairro e Numero da casa:'); Readln(C.Nome); Readln(C.Nasc); Readln(C.Fone); Readln(C.Ender.Rua); Readln(C.Ender.Bairro); Readln(C.Ender.Num); Write('Digite o Valor da Dívida, Valor pago, Mês e Ano do pagamento:'); Readln(C.ValorDiv, C.ValorPago, C.MesPgto, C.AnoPgto); Write(Arq,C); Writeln('Deseja cadastrar novo cliente (S/N): '); Readln(Cadastrar); Dados Pessoais Nome Ano Nascimento Fone Endereço Valor Dívida Valor Pago Mês Pagto Ano Pagto String[20] Integer Integer Rua Bairro Número da Casa Real Real Integer Integer String[30] String[20] Integer Until Cadastrar='N'; Close(Arq); Assign(Arq,'CLIENTES.ARQ'); Rewrite(Arq); SomaPgtos2010 :=0; SomaPgtos2011 :=0; maiorValor2012 :=0; nQuitados := 0; While not EOF(Arq) do Begin Read(Arq,C); If (C.MesPgto = 8) AND (C.AnoPgto = 2010) Then SomaPgtos2010 := SomaPgtos2010 + C.ValorPago; If (C.AnoPgto = 2011) Then SomaPgtos2011 := SomaPgtos2011 + C.ValorPago; If (C.MesPgto = 6) AND (C.AnoPgto = 2012) Then If C.ValorPago > maiorValor2012 Then maiorValor2012 := C.ValorPago; If (C.ValorDiv = 0) Then nQuitados := nQuitados + 1; End; Close(Arq); Writeln('Valores pagos em 08/2010: ', SomaPgtos2010:4:2); Writeln('Valores pagos em 2011: ', SomaPgtos2011:4:2); Writeln('Maior pagamento em 06/2012: ', maiorValor2012:4:2); Writeln('Quantidade de clientes que quitaram seus débitos: ', nQuitados); End.
Compartilhar