Ir ao conteúdo
  • Cadastre-se

Preciso de ajuda com dois exercícios.


Visitante: Batgirl

Posts recomendados

Visitante: Batgirl
 

Olá pessoal, pode parecer simples para alguns, mas minha cabeça já está em chamas..me ajudem a resolver o exercicío por favor.,

1)Faça um programa que escreva os números pares existentes entre 1 e 20.

2) Faça um programa que lê 5 valores e encontre o maior e o menor deles. Mostre o

resultado.

Faça um programa que lê uma variável n e, calcule a tabuada de 1 até n, mostrando a

tabuada na forma de:

1 x n = n

2 x n = 2n

3 x n = 3n

...

n x n = n2.

tô tendo muita dificuldade, o que eu faço até roda no Pascal. mas não alcança o objetivo.

ajudem...

:(

Link para o comentário
Compartilhar em outros sites

Visitante: Batgirl
 

Obrigada, Anderson pela dica.

tipo consegui fazer algo, nem posso chamar de programa ainda.. ele roda. mas não acho que alcança o objetivo.

verifica pra mim.. e me vê se acha que tenho que melhorar, onde ?

grata.

Program NumerosPares_entre_1_e_20;
Var num,i,numpar:integer;
Begin
i:=0;
While num<=20 do
Begin
Writeln('Digite um numero');
Readln(num);
if num mod 2 = 0 then
numpar:=numpar+1;
if numpar<=20 then
Writeln(numpar);
end;
End.

Assim, como está o programa, mostra os que são pares. e conta eles, quando digito um numero impar, ele aparece, mas não acrescenta na contagem. Mas sei lá.. o Objetivo do Programa é escrever os números pares entre 1 e 20.. e não contar eles....

Arrrgggg. Me ajuda.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Obrigada, Anderson pela dica.

tipo consegui fazer algo, nem posso chamar de programa ainda.. ele roda. mas não acho que alcança o objetivo.

verifica pra mim.. e me vê se acha que tenho que melhorar, onde ?

grata.


Var num,i,numpar:integer;
Begin
i:=0;
While num<=20 do
Begin
Writeln('Digite um numero');
Readln(num);
if num mod 2 = 0 then
numpar:=numpar+1;
if numpar<=20 then
Writeln(numpar);
end;
End.
Program NumerosPares_entre_1_e_20;

Assim, como está o programa, mostra os que são pares. e conta eles, quando digito um numero impar, ele aparece, mas não acrescenta na contagem. Mas sei lá.. o Objetivo do Programa é escrever os números pares entre 1 e 20.. e não contar eles....

Arrrgggg. Me ajuda.

Olá,

A base para solução dos problemas é justamente o entendimento do mesmo (problema), ou seja, antes de qualquer coisa temos que entender mais ou menos do que trata, para daí buscar as soluções. Por exemplo, analisando esta primeira questão...

1)Faça um programa que escreva os números pares existentes entre 1 e 20.

A resposta poderia ser obtida com apenas 1 instrução... Duvida? Olha o código 1 abaixo:

Código 1


[color=#000000]writeln[/color][color=#000000]([/color][color=#000000]2[/color][color=#000000],[/color][color=#a31515]' '[/color][color=#000000],[/color][color=#000000]4[/color][color=#000000],[/color][color=#a31515]' '[/color][color=#000000],[/color][color=#000000]6[/color][color=#000000],[/color][color=#a31515]' '[/color][color=#000000],[/color][color=#000000]8[/color][color=#000000],[/color][color=#a31515]' '[/color][color=#000000],[/color][color=#000000]10[/color][color=#000000],[/color][color=#a31515]' '[/color][color=#000000],[/color][color=#000000]12[/color][color=#000000],[/color][color=#a31515]' '[/color][color=#000000],[/color][color=#000000]14[/color][color=#000000],[/color][color=#a31515]' '[/color][color=#000000],[/color][color=#000000]16[/color][color=#000000],[/color][color=#a31515]' '[/color][color=#000000],[/color][color=#000000]18[/color][color=#000000]);[/color]
[color=#0000ff]END[/color][color=#000000].[/color]
[color=#0000ff]BEGIN[/color]

Poderia ser assim também

Código 2


num [color=#000000]:[/color][color=#0000ff]integer[/color][color=#000000];[/color]
[color=#0000ff]BEGIN[/color]
[color=#2b91af]for[/color] num[color=#000000]:=[/color][color=#000000]1[/color] [color=#2b91af]to[/color] [color=#000000]9[/color] [color=#2b91af]do[/color]
[color=#000000]write[/color][color=#000000]([/color]num[color=#000000]*[/color][color=#000000]2[/color][color=#000000],[/color][color=#a31515]' '[/color][color=#000000]);[/color]
[color=#0000ff]END[/color][color=#000000].[/color]
[color=#0000ff]var[/color]

ou

Código 3


num [color=#000000]:[/color][color=#0000ff]integer[/color][color=#000000];[/color]
[color=#0000ff]BEGIN[/color]
num[color=#000000]:=[/color][color=#000000]2[/color][color=#000000];[/color] [color=#008000]{primeiro par}[/color]
[color=#2b91af]while[/color] num[color=#000000]<=[/color][color=#000000]18[/color] [color=#2b91af]do[/color]
[color=#0000ff]begin[/color]
[color=#000000]write[/color][color=#000000]([/color]num[color=#000000],[/color][color=#a31515]' '[/color][color=#000000]);[/color]
num[color=#000000]:=[/color]num[color=#000000]+[/color][color=#000000]2[/color][color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]
[color=#0000ff]END[/color][color=#000000].[/color]
[color=#0000ff]var[/color]

Por ai vai... as possibilidades são infinitas.

Mas, creio eu, que está subentendido que você "deve analisar todos números inteiros entre 1 e 20, e imprimi-los somente o que o programa identifique que é par", ou seja, a definição do que é par ou não é par deve ser feita pelo próprio algoritmo, e não diretamente pelo programador, como foi demonstrado, por exemplo, nos meus códigos acima.

Então, você precisa que o programa verifique cada uns desses 18 números (2 a 19) e quando for par imprima. A maneira mais prática é usando um for mesmo, já que ele já tem embutido a auto-incrementação que será útil para esse caso.

Já está meio caminho andado. Com o for, você pode se basear no código 2, com while, você pode se basear no 3..

Boa sorte.

PS: Se consegui, poste o seu código aqui para analisarmos.

No aguardo

Abraços

Link para o comentário
Compartilhar em outros sites

Visitante: Batgirl
 

Olá.. !

Estilingueatômico... original esse apelido.

Obrigada, por me orientar.

Um Dia quero ser um dos que ajuda os novatos na área.

Fico grata a cada um de vocês. que tiveram boa votande de me ajudar.

Aqui está o código, analise pra mim por favor. Obrigada desde de já;

Program Numeros_Pares;
Var num,numpar,i:integer;
Begin
i:=0;
For i:=1 to 20 do
Begin
Writeln('Digite um Número');
Readln(num);
If num mod 2 = 0 then
numpar:=num;
If numpar<=20 then
Writeln(Numpar);
Readln;
End;

End.

Link para o comentário
Compartilhar em outros sites

Visitante: Batgirl
 

:).. É isso mesmo, AndersonDanilo, o outro colega tinha postado códigos que alcançava o obejtivo solicitado no enunciado, mas é que eu não tinha visto, não abri, mas depois que postei o código aí vi.. Muito Obrigada pela ajuda de vocês.

Procurei o Professor do meu curso, ele me orientou novamente. os códigos dos outros dois exercícios.. podem analisar. pra mim.

//Faça Programa que lê 5 valores e encontre o Maior e Menor Deles. Mostre o Resultado.//

Program Maior_Menor_Valor;

var

i,valor,maior,menor:integer;

Begin

i := 0;

menor:=100000;

for i:= 1 to 5 do

begin

writeln ('informe um valor ');

readln (valor);

if (maior<valor) then

maior := valor;

if valor<menor then

Menor:=valor;

end;

writeln ('O maior valor informado foi ',maior,' E o menor valor infomado foi ' ,menor);

readln;

Readln;

End.

//Faça um programa que lê uma variável n e, calcule a tabuada de 1 até n, mostrando a

//tabuada na forma de 1 x n = n , 2 x n = 2n, 3 x n = 3n ...n x n = n2 //

Program Tabuada_1_ate_N;

var

i, num, result: integer;

Begin

writeln (' Informe qual a tabuada desejada');

readln (num);

for i:= 1 to 10 do

begin

result:= i * num;

writeln (num, ' x ', i, ' = ', result)

end;

readln;

readln;

End.

Link para o comentário
Compartilhar em outros sites

Visitante: Sandrelle
 

Assim, não tenho muita certeza para analisar o primeiro codigo.

porém o segundo, se você colocasse na mensagem ''informe o numero'' fica melhor por a tabuada ja é vezes(x)...e também o seu programa ta pedindo pra calcular de 1 até num (no caso o numero informado)...então assim acho que no FOR você tem que por de '1 ate num'.

Program Tabuada_1_ate_N;

var

i, num, result: integer;

Begin

writeln (' Informe o numero');

readln (num);

For i := 1 to num do

Begin

result:= i * num;

writeln (num, ' x ', i, ' = ', result)

end;

readln;

readln;

End.

Espero ajudar, disculpas se estiver errada....também sou nova nesse area!:D

Link para o comentário
Compartilhar em outros sites

Visitante: Sandrelle
 

Ei moça eu fiz meu cadastro ontem, e acertei responder msg, mas ainda não sei comecar uma conversa com um tema que estou com duvida! Será que pode me ajudar...Por favor!?

Agradeço se puder!

Tenha uma Boa Tarde! :)

Link para o comentário
Compartilhar em outros sites

Visitante: Batgirl
 

Obrigada.

Pra criar novo tópico com sua dúvida.

Vai lá na página inicial do Fórum; Faz assim:

Vai lá no topo da página e clica em 'Fórum do Clube do Hardware'(página inicial);

Vai visualizar um série de títulos, assuntos, verifique o que melhor se encaixa no assunto(dúvida), que você tem.

Note, que tem subtítulos filtrando mais o assunto, escolha dentre eles, clica

na sua opção.

Aí vai visualizar na página, lá em cima, onde agora nessa página aparece um botão "responder", na página que você abrir depois de escolher sua opção vai ver o botão "novo tópico", pronto aí é só criar seu título, respeitando as regras.. e postar. Por ex. o tópico que eu criei está em:

Fórum do Clube do Hardware > Software > Programação e Desenvolvimento > Pascal/Delphi>(meu tópico);

Eu também sou nova, na área e no fórum, mas te adianto, que o pessoal aqui ajuda mesmo.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

:).. É isso mesmo, AndersonDanilo, o outro colega tinha postado códigos que alcançava o obejtivo solicitado no enunciado, mas é que eu não tinha visto, não abri, mas depois que postei o código aí vi.. Muito Obrigada pela ajuda de vocês.

Procurei o Professor do meu curso, ele me orientou novamente. os códigos dos outros dois exercícios.. podem analisar. pra mim.

//Faça Programa que lê 5 valores e encontre o Maior e Menor Deles. Mostre o Resultado.//

Program Maior_Menor_Valor;

var

i,valor,maior,menor:integer;

Begin

i := 0;

menor:=100000;

for i:= 1 to 5 do

begin

writeln ('informe um valor ');

readln (valor);

if (maior<valor) then

maior := valor;

if valor<menor then

Menor:=valor;

end;

writeln ('O maior valor informado foi ',maior,' E o menor valor infomado foi ' ,menor);

readln;

Readln;

End.

//Faça um programa que lê uma variável n e, calcule a tabuada de 1 até n, mostrando a

//tabuada na forma de 1 x n = n , 2 x n = 2n, 3 x n = 3n ...n x n = n2 //

Program Tabuada_1_ate_N;

var

i, num, result: integer;

Begin

writeln (' Informe qual a tabuada desejada');

readln (num);

for i:= 1 to 10 do

begin

result:= i * num;

writeln (num, ' x ', i, ' = ', result)

end;

readln;

readln;

End.

Olá,

Vou falar sobre os seus 2 novos programas:

1) Exércicio 1

//Faça Programa que lê 5 valores e encontre o Maior e Menor Deles. Mostre o Resultado.//

Logo na 2ª linha do programa principal existe um erro:

menor:=100000;

Veja que menor é do tipo integer, logo ele só abrangerá valores de -32768 a 32767, ou seja, 100000 ultrapassa a capacidade da variável.

Veja mais aqui.

Logo, menor deverá conter o valor 32767!!!

A mesmas regra deve ser aplicada a "maior", logo contendo o menor valor possível!

Abaixo seu código corrigido:


[color=#0000ff]program[/color] Maior_Menor_Valor[color=#000000];[/color]
[color=#0000ff]var[/color]
i[color=#000000],[/color]
valor[color=#000000],[/color]
maior[color=#000000],[/color]
menor [color=#000000]:[/color][color=#0000ff]integer[/color][color=#000000];[/color]
[color=#0000ff]begin[/color]
menor[color=#000000]:=[/color][color=#000000]32767[/color][color=#000000];[/color] [color=#008000]{maior valor possível}[/color]
maior[color=#000000]:=-[/color][color=#000000]32768[/color][color=#000000];[/color] [color=#008000]{menor valor possível}[/color]
[color=#2b91af]for[/color] i[color=#000000]:=[/color][color=#000000]1[/color] [color=#2b91af]to[/color] [color=#000000]5[/color] [color=#2b91af]do[/color]
[color=#0000ff]begin[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'Informe um valor '[/color][color=#000000]);[/color]
[color=#000000]readln[/color][color=#000000]([/color]valor[color=#000000]);[/color]
[color=#2b91af]if[/color] maior[color=#000000]<[/color]valor [color=#2b91af]then[/color]
maior [color=#000000]:=[/color] valor[color=#000000];[/color]
[color=#2b91af]if[/color] valor[color=#000000]<[/color]menor [color=#2b91af]then[/color]
menor[color=#000000]:=[/color]valor[color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'O maior valor informado foi '[/color][color=#000000],[/color]maior[color=#000000]);[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'O menor valor informado foi '[/color][color=#000000],[/color]menor[color=#000000]);[/color]
readln[color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000].[/color]
[color=#008000]//Faça Programa que lê 5 valores e encontre o Maior e Menor Deles. Mostre o Resultado.//[/color]

Na prática, quando é atribuindo um valor fora da faixa, ele meio que vai "subtraindo" a sua capacidade do numero até que caiba na sua faixa.

Ex.:

menor:=100000; {o valor deveria está entre -32768 e 32767}

Como o valor é maior que 32767 (maior valor possível), ele subtrai 65536 (quantidade de números possíveis no integer), daí sobra 34464!

Como 34464 ainda é maior que 32767, ele subtrai por 65536 novamente, que dá -31072.

ou seja, menor=100000 vai dar o mesmo que menor=-31072.

Faça um teste exibindo a variável...

Begin

i := 0;

menor:=100000;

writeln(menor);

readln;

PS: Se tiver alguma coisa errada avisem!!!

2) Exercício 2

Basta verificar a postagem de Sandrelle. Precisa ajustar exatamente o que ele comenta...

***

Qualquer coisa é só postar

Abraços

Simon Viegas

Link para o comentário
Compartilhar em outros sites

Visitante: Batgirl
 

Boa Tarde!!

Gente muito obrigada, pela ajuda.

e Se possível, me ajudem por favor.. nesses dois códigos não consigo finalizar;

Quanto a informação sobre o maior e menor número possíveis a ser usado no código,, Eu realmente não sabia... até falei com o professor por que ele não tinha explicado.

Muito obrigada, por me dizer que não podia e explicar o motivo.

no entanto eu consegui rodar o programa como ele estava.. com aquele nº e alcançava o objetivo, mostrava o valor maior e menor.

Mas sou grata, por me ensinar a fazer do jeito certo.

//Foi feita uma pesquisa entre os habitantes de uma região. Foram coletados os dados de

//idade, sexo e salário. Para encerrar a leitura, pergunte ao usuário se ele deseja continuar

//coletando (lendo) os dados. Faça um programa que informe:

//a média de salário do grupo;

//b) maior e menor idade do grupo;

//c) quantidade de mulheres com salário até R$ 800,00.

Program Pzim ;

Var i,idade,idademaior,idademenor,quantM:Integer;

mediaSal,sal: Real;

sexo,fem,mas,Resposta,sair:String;

Begin

i:=1;

idademenor:=200;

quantM:=0;

Repeat

Writeln(' Qual o sexo da Pessoa?');

Readln(sexo);

writeln('Qual a Idade ?');

Readln(idade);

Writeln('Informe o Salário');

Readln(sal);

Writeln('Se deseja continuar?);

mediaSal:=Sal+1/i;

If idade>idademaior then

idademaior:=idade;

If idade<idademenor then

idademenor:=idade;

If (sexo= fem) and (Sal<=800) then

quantM:=quantM+1;

Writeln(' A Média de salário do Grupo é ', mediaSal );

Writeln('A Pessoa com a maior idade do grupo tem ', idademaior , ' e a que tem a menor idade tem ', idademenor);

writeln('No grupo há ', quantM , 'que tem salário até 800,00');

readln;

End.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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!