• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

JoaoRodrigues

[Resolvido e com código] Contar o maior número de uma sucessão

5 mensagens neste tópico

A pergunta é simples: Escreva um programa que avalie uma sucessão de inteiros positivos, indique qual o maior número que a compõe e diga quantas vezes ele aparece..

Eu tou a arder com a resposta..  até agora tenho a parte do avaliar o maior número... Alguem ajuda com o resto?

program tpc374v2(input, output);


var num: char;
ant, greatest, greater: integer;

begin

writeln('Digite uma sucessao de caracteres terminada em #');

num := '0';
ant := 0;
greatest := 0;

(* Avalia o maior numero da sucessao *)

while num<>'#' do
begin
read(num);
if (ord(num)<=57) and (ord(num)>=48) {verifica a condicao: numero}
	then 
		begin
		if ord(num)-ord('0') > ant {compara o numero com o anterior}
			then greater := ord(num)-ord('0');
		if greater > greatest {compara o numero com o maior que ja foi detectado}
			then greatest := greater	
		end;
end;

writeln('O maior numero da sucessao e ',greatest);

end.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para saber quantos são, só tens de inicializar um contador de cada vez que encontrares um numero que seja maior que o descoberto até à altura e incrementar esse contador cada vez que ele for encontrado... se encontrares um maior, o contador volta a 1, visto que o que encontraste já conta...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Menz, és o maior! Eu já tinha feito isto, mas o meu problema era ONDE punha o código. Fizeste a lampada aqui em cima acender :D Damn, duvida estupida ;)

program tpc374v2(input, output);


var num: char;
ant, greatest, greater, count: integer;

begin

writeln('Digite uma sucessão de caracteres terminada em #');

num := '0';
ant := 0;
greatest := 0;

(* Avalia o maior número da sucessão e conta quantas vezes ele aparece *)

while num<>'#' do
begin
read(num);
if (ord(num)<=57) and (ord(num)>=48) {verifica a condição: número}
	then 
		begin
		if ord(num)-ord('0') > ant {compara o numero com o anterior}
			then greater := ord(num)-ord('0');


		if greater > greatest {compara o numero com o maior que já foi detectado}
			then begin 
				greatest := greater;
				count := 1;
			     end
		else if greater = greatest
			then count := count+1
		end;
end;

writeln('O maior número da sucessão é ',greatest, ' e aparece ',count' vezes.');

end.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

só não coloquei o código porque já estou enferrujado com o pascal ;):D :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora