Ir ao conteúdo
  • Cadastre-se

Pedroso90

Membro Júnior
  • Posts

    11
  • Cadastrado em

  • Última visita

Reputação

9
  1. Galera alguém pode me ajudar a tirar três dúvidas sobre ponteiros em pascal? Coisa rápida, estou fazendo um exercício aq e estou travado porque não estou sabendo como: Comparar para ver se tem nomes iguais em um ponteiro; Mostrar maior valor armazenado no ponteiro; Mostrar menor valor armazenado em um ponteiro todas essas dúvidas são desse exercício abaixo, eu preciso cadastrar uns times, mas pra isso não pode haver times com nomes iguais, e tem que mostrar o time com mais gols e o que sofreu mais gols, se alguèm puder me dar uma força rápida com isso eu ficaria muito feliz mesmo Poderiam me ajudar Mestres? @DiF@Simon Viegas Program EX4; type ponteiro_time = ^time; time = record nome:string[30]; qtdpontos :integer; golsmarcados:integer; golssofridos:integer; proximo:ponteiro_time; end; var pAtual, pInicio, pAnterior, pAux: ponteiro_time; mais:char; achou:boolean; maior,puxa_func1,i:integer; ma_gols,nome_aux:string; Procedure CadastraTimes; begin repeat write('Digite o nome do time: '); new(pAtual); read(pAtual^.nome); // while pAtual <> nil do begin achou:=false; if pAtual^.nome = pAnterior^.nome then begin achou:=true; end; if(achou) then begin writeln('Digite outro nome'); end; pAtual:=pAtual^.proximo; end; // write('Digite o numero de pontos: '); read(pAtual^.qtdpontos); write('Digite a quantidade de gols marcados: '); read(pAtual^.golsmarcados); write('Digite a quantidade de gols sofridos: '); read(pAtual^.golssofridos); if pInicio = nil then pInicio:=pAtual; if pAnterior <> nil then pAnterior^.proximo:=pAtual; pAnterior:=pAtual; pAtual:=pInicio; writeln; write('Quer cadastrar mais um time? (Digite S para "sim" ou N para "não")'); readln(mais); mais:=upcase(mais); writeln; until mais = 'N'; { pAtual:=pInicio; while pAtual <> nil do begin writeln('nome: ',pAtual^.nome); writeln('Pontos:',pAtual^.qtdpontos); writeln('Gols Marcados ',pAtual^.golsmarcados); writeln('Gols Sofridos: ',pAtual^.golssofridos); writeln; pAtual:=pAtual^.proximo; end;} end; function Mais_Gols(ma:integer):integer; begin for i:= 1 to pAtual^.golsmarcados do begin if pAtual^.golsmarcados > ma then begin ma:=999999; ma:= pAtual^.golsmarcados; end; end; Mais_Gols:=ma end; Begin CadastraTimes; puxa_func1:=Mais_gols(maior); write(puxa_func1); End.
  2. @Simon Viegas Consegue me ajudar a desenvolver a partir do que eu já fiz? EU realmente não tenho ideia nenhuma de como fazer
  3. Seria isso? program ex2; uses crt; var Ch: char; Txt: TEXT; { definição do arquivo tipo texto } begin clrscr; Assign(Txt, 'C:\Users\Windows\Desktop\Exercicios\origem.Txt'); // rewrite(txt); append(txt); writeln(txt,'Isso eh apenas um teste.'); close(txt); Reset(Txt); while not Eof(Txt) do { lê o arquivo até o final } begin while not Eoln(Txt) do { lê uma linha completa do arquivo } begin Read(Txt, Ch); { lê um caractere do texto } write(Ch); delay(50); end; writeln; Readln(Txt); { posiciona na próxima linha do texto } end; Close(Txt); readkey; end.
  4. Alguém poderia por favor me ajudar nessa questão, comecei a estudar agora arquivos de texto no pascal e estou com bastante dificuldade de como fazer esse exercício: Um arquivo origem.txt contém um texto (distribuído em várias linhas) cujas palavras estão separadas por um ou mais espaços em branco. Faça um programa em Pascal que determine quantas letras tem a maior palavra contida no texto. Favor desconsiderar todo e qualquer caractere que não seja uma letra ou um espaço em branco. Fiz bem pouca coisa pois estou muito perdido pra falar a verdade, e tenho que entregar essa tarefa ainda hoje Program ex2; var arqv:text; texto,letra:string; tamanho,i:integer; begin Assign(arqv,'C:\Exercicios\origem.txt'); Append(arqv); writeln('Digite um texto: '); read (texto); writeln(arqv,texto); while not EOF(arqv) do begin writeln(arqv,texto); tamanho:= length(texto); for i:= 1 to tamanho do begin letra:=texto[i] end; writeln(letra); end; Close(arqv); end.
  5. Boa noite pessoal, tranquilo? Então, eu estava fazendo alguns exercícios de pascal e me deparei com uma dúvida que já está martelando minha cabeça faz um bom tempo, estou com dificuldade para somar todos os termos de uma determinada sequência como pede o exercício abaixo, eu fiz o modelo todo do programa praticamente, só falta acertar esse detalhe, se alguém puder me dar uma mão, creio que deve ser uma coisa fácil, mas realmente não estou conseguindo pensar em nada. Exercicio: Faça um procedimento (procedure) que receba como parâmetro um valor inteiro e positivo N, indicando a quantidade de parcelas de uma soma S, calculada pela fórmula: S = 2/4 + 5/5 + 10/6 + 17/7 + 26/8 + ... + (n2 + 1) / (n + 3) Program EX5; var s,s2,aux1:real; i,n:integer; procedure CalcSoma; begin s:=0; aux1:=1; //while for i:=1 to n do begin s:= ((n*n)+1)/(n+3); end; end; Begin write('Digite a quantidade de parcelas da soma: '); readln(n); CalcSoma; writeln; writeln; write('O resultado da soma é: ',s:0:2); readkey; End.
  6. @Simon Viegas Muito obrigado meu amigo! Eu até tinha pensado nessa ideia de usar uma variável boolean, mas não estava conseguindo encaixar direito, sua ajuda foi muito esclarecedora, me ajudou muito! Obrigado mesmo!
  7. Boa tarde amigos tudo bem? Estou precisando de ajuda em uma parte de um exercício sobre Pascal que estou fazendo, uma das partes desse exercício pede para eu cadastrar o número do carro, mas tem um porém, não pode haver dois números iguais, e eu estou com muita dificuldade em achar um jeito para fazer o programa exibir uma mensagem falando que o número já foi digitado e fazer essa mensagem não sair até o usúario digitar um número diferente, pode parecer uma dúvida meio boba, mas estou quebrando a cabeça com isso, se alguém puder me dar uma luz agradeço, o exercício pede mais coisa, mas só preciso de ajuda nisso mesmo, o resto estou conseguindo fazer. exercício: Uma empresa patrocinadora de corridas deseja ter controle preciso sobre os participantes e os resultados, a fim de realizar adequadamente o pagamento dos prêmios. Dessa maneira, precisa cadastrar algumas informações, conforme apresentado a seguir: Corrida (número da corrida, data, hora de início, código do carro vencedor) Carro/Corrida (número da corrida, número do carro participante, hora de chegada) Carro (número do carro, nome do carro, ano de fabricação) Crie um programa em Pascal (utilizando registros – records) que realize as seguintes rotinas: • Cadastrar os carros, não permitindo dois carros com o mesmo número (deve ser definido espaço para seis carros); o que eu estou tentando fazer: program EX1; type registroCorrida = record num_corrida: integer; data_corrida: string; horain_corrida: string; codigo_vencedor: integer; end; registroCarroCorrida = record num_corrida: integer; num_carro: integer; hora_chegada: string; end; registroCarro = record num_carro: integer; nome_carro: string; ano_fab: integer; end; var carros_cadastro: array[1..6] of registroCarro; i,cont: integer; corrida_cadastro: array[1..3] of registroCorrida; begin //cadastrando os carros; for i:= 1 to 6 do begin write('Digite o número do ' ,i, 'º carro: '); readln(carros_cadastro[i].num_carro); if (carros_cadastro[i].num_carro) = (carros_cadastro[i+1].num_carro) then begin cont:=cont+1; if cont > 0 then begin while cont <> 0 do begin writeln('Digite outro numero tonto!'); end; end; end; write('Digite o nome do ', i, 'º carro: '); readln(carros_cadastro[i].nome_carro); write('Digite o ano de fabricaçao do ', i, 'º carro: '); readln(carros_cadastro[i].ano_fab); end; //cadastrando as corridas; // for i:=1 to 3 do end.
  8. Faça um programa em Pascal que receba um valor inteiro x, maior que 0 e menor que 20, e crie uma matriz quadrada preenchida da seguinte maneira: Comecei a desenvolver esse exercício, mas eu não entendi a lógica dele, por isso acabei travando no início mesmo, eu to quebrando a cabeça aqui, se alguém puder me ajudar, agradeço muito. Program EX1; var mat:array[1..7,1..7] of integer; i,j: integer; Begin while (mat[i,j] > 0) and (mat[i,j] < 20) do if (mat[i,j] < 0) and (mat[i,j] > 20) then writeln('Digite um valor maior que 0 e menor que 20!'); for i:=1 to 7 do begin for j:=1 to 7 do begin writeln('Digite o valor',i,'-',j,' '); readln(mat[i,j]); End.
  9. Boa tarde amigos, tudo bem? Primeiramente, obrigado pela ajuda no outro tópico sobre as estruturas de repetição, agradeço muito! Mas enfim, hoje estava fazendo esse exercício para faculdade utilizando a estrutura for, pois não aprendi sobre vetores ainda e etc: Faça um programa em Pascal que receba um valor (inteiro) N. Após isso, devem ser inseridos os nomes de N pessoas e seus respectivos pesos e idades. Ao final seu algoritmo deve mostrar: O nome e peso da pessoa mais pesada. O nome e peso da pessoa mais leve. O nome e idade da pessoa mais velha. O nome e idade da pessoa mais nova. e me deparei com o seguinte erro: Meu programa só moistra a pessoa mais velha e a mais pesada, ele simplesmente ignora a mais nova e a mais leve, alguém poderia me mostrar onde estou errando por favor? Preciso entregar esse exercicio hoje. meu código: Program EX4; var idade,pessoas,maisvelho,idademenor,cont,cont2: integer; peso,maispesado,pesoleve: Real; nome,nome1,nome2,nome3,nome4: string; Begin writeln('Digite a quantidade de pessoas'); readln(pessoas); clrscr; for cont:=1 to pessoas do begin; writeln('Digite o ',cont,'º nome:'); readln(nome); writeln(''); writeln('Digite a ',cont,'ª idade:'); readln(idade); writeln(''); writeln('Digite o ',cont, 'º peso em kg:'); readln(peso); if(peso>maispesado) then begin; maispesado:=peso; nome1:=nome end; if(peso<pesoleve) then begin; pesoleve:=peso; nome2:=nome; end; if(idade>maisvelho) then begin; maisvelho:=idade; nome3:=nome; end else if(idade<idademenor) then begin idademenor:=idade; nome4:=nome; end; end; writeln('A pessoa mais pesada é: ',nome1,' pesando: ',maispesado,'kg'); writeln('A pessoa mais leve é: ',nome2,' pesando: ',pesoleve,'kg'); writeln('A pessoa mais velha é: ',nome3,' com a idade: ',maisvelho,' anos '); writeln('A pessoa mais nova é: ',nome4,' com a idade: ',idademenor,' anos '); readkey; End.
  10. Bom dia galera, tudo bem? Comecei faz pouco tempo a estudar Pascal, até agora entendi bastante coisa já, mas o que estou com muita dificuldade são nas estruturas de repetição (for, while, repeat) e em relação aos contadores também, comecei a fazer esse exercício: Utilizando as estruturas de repetição estudadas em sala de aula, faça um programa em Pascal que receba dez idades, pesos e alturas, calcule e mostre: A média das idades das dez pessoas; A quantidade de pessoas com peso superior a 90 quilos e altura inferior a 1,50 metros; A percentagem de pessoas com idade entre 10 e 30 anos entre as pessoas que medem mais de 1,90 metros. Consegui fazer somente a primeira exigência, as duas últimas eu travei, se alguém puder me ajudar, segue abaixo o que já fiz: program EX2; {$CODEPAGE UTF8} //para permitir acentos nas string em alguns compiladores [Não necessário no PascalZim, mas pode deixar] var cont, cont2, cont3, cont90, cont150, idade, somaidade: integer; pesoalt, altura, somaalt150, alt150, peso90, peso, somapeso90, media: real; begin for cont := 1 to 10 do begin; writeln('Digite a idade'); readln(idade); writeln('Digite a altura em metros'); readln(altura); writeln('Digite o peso'); readln(peso); somaidade := somaidade+idade; media := somaidade/10; clrscr end; writeln('A média das idades é: ', media:10:2); if (peso>90) then begin cont90 := cont90+1; somapeso90 := cont90; end; //begin; if (altura<1.50) then begin cont150 := cont150+1; somaalt150 := cont150; end; pesoalt := somapeso90+somaalt150; writeln('A quamtidade de pessoas com mais de 90kg e menores que 1.50m é de:', pesoalt:10:2); E se alguém conseguir me ajudar com esse outro que é quase o mesmo estilo: Faça um programa em Pascal que receba um valor (inteiro) N. Após isso, devem ser inseridos os nomes de N pessoas e seus respectivos pesos e idades. Ao final seu algoritmo deve mostrar: O nome e peso da pessoa mais pesada. O nome e peso da pessoa mais leve. O nome e idade da pessoa mais velha. O nome e idade da pessoa mais nova. Creio que com isso vou conseguir entender melhor essas questões

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!