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 que crie um arquivo de produtos e permita a pesquisa de um produto solicitado pelo usuário. O programa deve criar o arquivo "PRODUTOS.DAT" para armazenar os dados do produto com a seguinte estrutura: Código Nome Fabricante Preço Inteiro Caracteres com 30 posições Caracteres com 15 posições Real O programa principal deve permitir cadastrar tantos produtos, quanto o usuário desejar. Para isso, sempre que for feito o cadastro de um novo produto, o programa deve perguntar se o usuário deseja cadastrar um novo produto (‘S/N’ como resposta). Caso o usuário digite ‘N’, o programa deve parar o cadastro. Após o cadastro, o programa deve perguntar ao usuário um preço limite, que será usado como argumento de pesquisa para localização de produtos com preço menor ou igual dentro do arquivo “PRODUTOS.DAT”. Em seguida, o programa deve exibir o número total de produtos encontrado e uma lista com "Nome" e "Preço" dos produtos encontrados. Caso não exista nenhum produto com preço menor ou igual ao limite estabelecido, deve ser impresso na tela "Não existem produtos com preço inferior ao limite estabelecido". Program Quesito1; Type Prod = Record Cod:Integer; Nome:String[30]; Fabricante:String[15]; Preco:Real; End; Var produto:Prod; arq: file of Prod; cad: Char; preco: Real; nProd:Integer; Begin Assign(arq,'Produtos.arq'); Rewrite(arq); cad := 'S'; nProd := 0; While cad = 'S' do Begin Writeln('Digite o Codigo do Produto, Nome, Fabricante e Preço:'); Readln(produto.Cod); Readln(produto.Nome); Readln(produto.Fabricante); Readln(produto.Preco); ÁREA II – CCEN / UFPE Disciplina: IF 165 – Computação Eletrônica – 3º Exercício Escolar 2012.1 Data: 28/06/ 2012 Nome legível do aluno: ........................GABARITO....................................................... Turma Write(arq,produto); Write('Deseja Cadastrar mais um produto? (S/N): '); Readln(cad); End; Close(arq); Assign(arq,'Produtos.arq'); Reset(arq); Write('Preço limite para busca no arquivo: '); Read(preco); While not Eof(arq) Do Begin Read(arq,produto); Writeln('Lista de produtos com preço menor ou igual a R$',preco:5:2); Writeln('Nome Preço'); If produto.Preco <= preco Then Begin Writeln(produto.Nome,' ',produto.Preco:5:2); nProd := nProd+1; End; End; If nProd = 0 Then Writeln('Não existem produtos com preço inferior ao limite estabelecido.'); Else Writeln('Total de produtos encontrados: ',nProd); End. 2º quesito: Faça um programa em Pascal que leia do teclado um inteiro N (2<= N <=100) que representa a quantidade de países participantes dos Jogos Olímpicos - Londres 2012. O Programa principal deve implementar a leitura de N a ser validado de forma repetitiva até que N seja válido. Em seguida, o programa principal deve exibir um Menu com as Opções a seguir. O programa principal deve ser executado até que a opção sair seja escolhida. Menu de Opções 1 - Cadastrar Informações 2 - Consultar País 3 - Listar todas as medalhas de ouro 4 - Sair Construa um procedimento chamado CADASTRO que receba como argumento N e um VETOR DE REGISTRO a ser utilizado para armazenar os dados de N países. As informações a serem cadastradas de cada país são: Código (Inteiro), Nome (String com 20 posições), Número de Medalhas de Ouro (Inteiro), Número de Medalhas de Prata (Inteiro) e Número de Medalhas de Bronze (Inteiro). Caso o usuário escolha a Opção 2, o programa principal deve solicitar que o usuário digite um valor para uma variável chamada PAÍS (String com 20 posições) e em seguida chamar uma função de nome CONSULTA, que recebe o VETOR DE REGISTRO, o valor de N e o PAÍS lido. A função deverá identificar o país procurado e retornar o número total de medalhas para ser impresso no programa principal. Caso não exista nenhum país com o nome informado, retornar o valor 0 através da função. Por fim, caso o usuário escolha a opção 3, chamar o procedimento LISTAR, que recebe o VETOR DE REGISTRO e o valor de N. O Procedimento deverá exibir a lista completa de países, imprimindo na tela o nome do país e a quantidade de medalhas de ouro: Brasil - 45 Argentina - 23 Rússia – 51 Program Quesito2; Type Cad = Record Cod:Integer; Nome:String[20]; nOuros,nPratas,nBronzes:Integer; End; Vet = array[1..100] of Cad; Procedure Cadastro(var vetInf:Vet; N:Integer); Var i:Integer; Begin For i:=1 to N do Begin Writeln('Digite o codigo, Nome e número de medalhas de Ouro, Prata e Bronze do País ',i); Readln(vetInf[i].Cod); Readln(vetInf[i].Nome); Readln(vetInf[i].nOuros); Readln(vetInf[i].nPratas); Readln(vetInf[i].nBronzes); End; End; Function Consulta(vetInf:Vet; N:Integer; Nome:String[20]):Integer; Var i, nMedalhas:Integer; Begin nMedalhas:=0; For i:=1 to N do Begin If vetInf[i].Nome = Nome Then nMedalhas := vetInf[i].nOuros + vetInf[i].nPratas + vetInf[i].nBronzes; End; Consulta:=nMedalhas; End; Procedure Listar(vetInf:Vet; N:Integer); Var i:Integer; Begin Writeln('Lista de Países'); Writeln('Nome - Ouros'); For i:=1 to N do Begin Writeln(vetInf[i].Nome, ' - ', vetInf[i].nOuros); End; End; Var Pais:Cad; N:Integer; VetPais:Vet; NomePais:String[20]; Sair, nMedalhas:Integer; Begin Repeat Write('Digite a quantidade de países participantes das Olimpíadas 2012: '); Readln(N); Until (N>=2) AND (N<=100); Repeat Writeln('Menu de Opções:'); Writeln('1 - Cadastrar Informações'); Writeln('2 - Consultar País'); Writeln('3 - Listar todas as medalhas de ouro'); Writeln('4 - Sair'); Write(' Digite sua opção: '); Readln(Sair); Case Sair of 1: Cadastro(VetPais,N); 2: Begin Write('Digite o nome do país que deseja consultar: '); Read(NomePais); nMedalhas := Consulta(VetPais,N,NomePais); Writeln('Numero de medalhas de ',NomePais, ' ', nMedalhas); End; 3: Listar(VetPais,N); End; Until (Sair = 4); End.
Compartilhar