fvox - Challenge 1 - Perl

Ir em baixo

fvox - Challenge 1 - Perl

Mensagem  fvox em Dom Jul 03, 2011 12:08 am

Hi.

Eu ia fazer em PHP, mas como o Caique já fez, acho melhor ter algo novo por aqui. =P

1 - Faça um Programa que peça cinco números separados por vírgula, e imprima o maior deles.

 1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl

use List::Util 'max';

print 'Insira 5 numeros divididos por espacos: ';
my @i = map { /(\d+)/ } split ',', <>; #captura o input filtrando por numeros e joga em um array conforme a divisao por virgulas
if(scalar(@i) == 5) { #verificao se o array possui 5 itens
print 'Max: ' . max(@i) . "\n";
}
else { #ops, alguem colocou mais de 5 numeros
print "Insira 5 numeros! Letras sao excluidas!'\n";
}


Baixe o código a cima em : http://codepad.org/BPNJOgB4


2 - Faça um Programa que peça cinco números separados por espaço e imprima o maior deles.

 1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl

use List::Util 'max';

print 'Insira 5 numeros divididos por espacos: ';
my @i = map { /(\d+)/ } split ' ', <>; #captura o input filtrando por numeros e joga em um array conforme a divisao por espacos
if(scalar(@i) == 5) { #verificao se o array possui 5 itens
print 'Max: ' . max(@i) . "\n";
}
else { #ops, alguem colocou mais de 5 numeros
print "Insira 5 numeros! Letras sao excluidas!'\n";
}


Baixe o código a cima em : http://codepad.org/yUGj1m5t


3 - Faça um Programa que verifique se uma letra digitada é "F" ou "M". Conforme a letra escrever: F - Feminino, M - Masculino, Sexo Inválido.

 1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl

use feature qw(say switch); #novas features

print 'Insira o sexo (F/M): ';
chomp(my $i = <>); #input
given($i) { #switch
when('M') { say 'Masculino' } #caso seja masculino...
when('F') { say 'Feminino' } #caso seja feminino...
default { say 'Sexo inválido' } #caso nao seja nenhum...
}

Baixe o código a cima em : http://codepad.org/ZPdH4XyJ


4 - Faça um Programa que verifique se uma letra digitada é vogal ou consoante.

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl

chomp(my $i = <>); #input
if($i =~ /[a-z]{1}/i){ #regexp que verifica se eh UMA letra
if ($i =~ /[aeiou]/i){ #regexp para vogal
print "Vogal\n";
}
else { #se eh uma letra e nao eh vogal, entao eh consoante
print "Consoante!\n";
}
}
else { #ops, alguem digitou mais de uma letra ou algo que nao eh letra
print "Digite apenas uma letra Smile\n";
}



Baixe o código a cima em : http://codepad.org/XTy1bBGI


5 - Faça um Programa que pergunte quanto você ganha por hora e o número de horas trabalhadas no mês. Calcule e mostre o total do seu salário no referido mês.

1
2
3
4
5
6
7
#!/usr/bin/perl

print 'Quanto voce ganha por hora? ';
chomp(my $q = <>); #input
print 'Quantas horas voce trabalha por mes? ';
chomp(my $h = <>); #input
print 'Salario = R$ ' . $q * $h . "\n"; #multiplacao simples


Baixe o código a cima em : http://codepad.org/NcoAMcBM


6 - Faça um programa para uma loja de tinta. O programa deverá pedir o tamanho em metros quadrados da área a ser pintada. Considere que a cobertura da tinta é de 1 litro para cada 3 metros quadrados e que a tinta é vendida em latas de 18 litros, que custam R$ 95,00. Informe ao usuário a quantidades de latas de tinta a serem compradas e o preço total.

1
2
3
4
5
6
#!/usr/bin/perl

print 'Quantos metros quadrados? ';
chomp(my $mp = <>); #input
print 'quantidade de latas: ' . ($mp / 54) . "\n"; #1 lata de tinta faz 54 metros
print 'valor das latas R$ : ' . ($mp / 54) * 95 . "\n"; #multiplicando o gasto pelo preco da lata unica


Baixe o código a cima em : http://codepad.org/4Hxpc7Gl



Tudo bem simples, nada de avançado. =)

[]'s


Última edição por fvox em Dom Jul 03, 2011 3:30 am, editado 3 vez(es)
avatar
fvox

Mensagens : 18
Data de inscrição : 02/07/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

vfox

Mensagem  Z3r0 em Dom Jul 03, 2011 12:49 am

Seja bem vindo meu velho. Iai blz?
Então, dos seus códigos apenas um está funcionando que é o 5 e o 6 está errado. Mas fico feliz por estar participando. Da uma olhadinha ai no que esteja acontecendo pois, os desafios 1,2,3,4 simplismente não rodam ( ficam travados ) e o 6 o algoritmo está incorreto.

Eu não sei perl mas vou tentar te ajudar no algoritmo do 6 em linguagem natural:

 1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl

use feature qw(say switch); #novas features

print 'Insira o sexo (F/M): ';
chomp(my $i = <>); #input
given($i) { #switch
when('M') { say 'Masculino' } #caso seja masculino...
when('F') { say 'Feminino' } #caso seja feminino...
default { say 'Sexo inválido' } #caso nao seja nenhum...
}

avatar
Z3r0

Mensagens : 149
Data de inscrição : 01/07/2011
Idade : 32

Ver perfil do usuário http://projectzim.blogspot.com

Voltar ao Topo Ir em baixo

Re: fvox - Challenge 1 - Perl

Mensagem  fvox em Dom Jul 03, 2011 1:28 am

Hi.

Lobo, os scripts não ficam travados não. Eles só estão aguardando a entrada do usuário (no caso, os X numeros). Só tá sem um print informando isso hahahah, achei desnecessário. Experimenta inserir os números ali e digitar um enter hahahah.

Quanto ao 6, na minha cabeça ainda tá certo hahahah. Vou deixar assim mesmo. =P

EDIT: Adicionei uns prints lá só pra vocês saberem quando se tem que adicionar a informação hahahah.

[]'s
avatar
fvox

Mensagens : 18
Data de inscrição : 02/07/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: fvox - Challenge 1 - Perl

Mensagem  Z3r0 em Dom Jul 03, 2011 1:49 am

fvox escreveu:Hi.

Lobo, os scripts não ficam travados não. Eles só estão aguardando a entrada do usuário (no caso, os X numeros). Só tá sem um print informando isso hahahah, achei desnecessário. Experimenta inserir os números ali e digitar um enter hahahah.

Quanto ao 6, na minha cabeça ainda tá certo hahahah. Vou deixar assim mesmo. =P

EDIT: Adicionei uns prints lá só pra vocês saberem quando se tem que adicionar a informação hahahah.

[]'s

É verdade. Perdão. Porém, o primeiro desafio ainda está errado. Pois, seu código executa 5 números em cascata sendo que o desafio é fazer com que os cinco número sejam digitado lado a lado ( 1,2,3,4,5 ), e separados por virgula. Veja:

1 - Faça um Programa que peça cinco números separados por vírgula, e imprima o maior deles. Exemplo:
Código:

Digite 5 numeros: 1,2,3,4,5
O maior numero é 5.

Além disso, no desafio 2, Insira 5 numeros divididos por espacos: 88 99 120 2 10
O resultado sai : Max: 99

Que também está errado... o.o
avatar
Z3r0

Mensagens : 149
Data de inscrição : 01/07/2011
Idade : 32

Ver perfil do usuário http://projectzim.blogspot.com

Voltar ao Topo Ir em baixo

Re: fvox - Challenge 1 - Perl

Mensagem  fvox em Dom Jul 03, 2011 3:32 am

Hi.

Po, viajei no 1. Não sei onde li que era pra pedir 5 numeros, e fiz 5 pedidos no input... LOL. Não tomei minha ritalina hoje e tenho um déficit de atenção fudido huauhauhauhuha. Já editei o 1 lá.
Quanto ao 2, esqueci do use também huahauh já editei e agora tá funcionando.

Valeu pelas observações!

[]'s
avatar
fvox

Mensagens : 18
Data de inscrição : 02/07/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: fvox - Challenge 1 - Perl

Mensagem  Z3r0 em Dom Jul 03, 2011 3:54 am

fvox escreveu:Hi.

Po, viajei no 1. Não sei onde li que era pra pedir 5 numeros, e fiz 5 pedidos no input... LOL. Não tomei minha ritalina hoje e tenho um déficit de atenção fudido huauhauhauhuha. Já editei o 1 lá.
Quanto ao 2, esqueci do use também huahauh já editei e agora tá funcionando.

Valeu pelas observações!

[]'s

De nada. Nunca tive contato com perl se não agora. E gostei do seu esforço ( o que comprova que você tem habilidade/conhecimento na linguagem ). E ao mesmo tempo, não se importou com o nível do challenge I ...simplismente veio e contribuio. Valeu man.
avatar
Z3r0

Mensagens : 149
Data de inscrição : 01/07/2011
Idade : 32

Ver perfil do usuário http://projectzim.blogspot.com

Voltar ao Topo Ir em baixo

Re: fvox - Challenge 1 - Perl

Mensagem  Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum