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

Guest s33k_

ajuda

13 mensagens neste tópico

escreva uma função que receba um parametro inteiro e desenho um triangulo rectangulo do tamanho fornecido utilizando asteriscos

por exemplo ao cahamar a funcao da seguinte forma:

triangulo(4)

obteríamos o seguinte

*

**

***

****

alguem me pode ajudar a fazer este programa?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Primeiro, bem vindo ;)

Segundo, para construires algo desse género tens que ter:

1) Uma variavel que receba input do utilizador com o lado (no teu exemplo: 4)

2) Um ciclo que te vá imprimindo para o ecrã sucessivamente uma soma de asteriscos ATÉ que sejam o valor da tal variável.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se sabes definir funções, por isso aqui fica um exemplo de como o podes fazer:

def funcao(argumento):
    print "O argumento passado foi " + argumento
    return argumento

Em relação à função em si, o que tens de fazer é:

-> Fazeres um loop de 1 até {argumento passado}, incrementando uma variável (i por exemplo) a cada iteração.

---> Nesse loop, mostras os asteriscos i vezes.

Mais que isto, só dando a resolução. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só nao percebo onde por os asteriscos. a função em si até é facil mas os asteriscos é que me estao a baralhar :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O asterisco é um simples caracter, imprimes da mesma maneira que um B por exemplo.

print "*"
print "**"
print "***"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui fica uma forma simples de como fazer:

def trig(n):
    for i in range(1,n+1):
        print i*"*"

>>> trig(4)

*

**

***

****

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui fica uma forma simples de como fazer:

def trig(n):
    for i in range(1,n+1):
        print i*"*"

>>> trig(4)

*

**

***

****

Eheh, das pelhores soluções possíveis. ;)

No entanto, estás a usar coisas (o range()) que não existem noutras linguagens (ou pelo menos, só existem em algumas).

Se ele tiver a começar a programar, era preferível ele fazer algo como:

def trig(n):
    nivel = 0
    while nivel <= n:
        nivel += 1
        i = 0
        while i < nivel:
            print "*",
            i += 1
        print 

É mais trabalhoso de escrever, mas desta maneira é exactamente como se processam as coisas. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

djthyrax, mas dessa maneira não está a aprender Python.

Acho que é esse o objectivo e não estar a aprender técnicas arcaicas. Aprender técnicas à muito esquecidas só é necessário quando for aprender linguagens igualmente arcaicas ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

djthyrax, mas dessa maneira não está a aprender Python.

Acho que é esse o objectivo e não estar a aprender técnicas arcaicas. Aprender técnicas à muito esquecidas só é necessário quando for aprender linguagens igualmente arcaicas ;)

Se ele tiver a começar a programar, (...)

Ou seja, se ele quer entender como funcionam, tem de olhar para além de um simples for i in range(1, 5): print i*"*", não pode ficar dependente das características da linguagem, tem que aprender a lógica e a sintaxe vai e vem. Se não for assim, como vai ter ele bases para progredir noutra linguagem? :)

E só pus aqui este método porque ele não diz se está a aprender a programar ou se está a aprender Python.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E só pus aqui este método porque ele não diz se está a aprender a programar ou se está a aprender Python.

Mas aí está uma das vantagens de se aprender Python como primeira linguagem. Não tens que aceder a lógicas tão rudimentares logo no inicio.

Achas que é bom para uma pessoa se estiver a aprender programação darem-lhe logo código com aritmética de apontadores, chamadas directas ao assembly, etc?

Claro que não, isso fica para quando o programador tiver maior maturidade e decidir investigar um pouco mais fundo. Óbvio que o teu código não é algo tão bruto, mas dá para passar a ideia.

Para além que o código do Triton para quem está a aprender é muito mais interessante, já que introduz mais conceitos base da linguagem em questão. É feita uma referência a um ciclo (for) como no teu código tem os while. Depois ainda introduz o conceito de range e o conceito de multiplicação entre tipos diferentes. Tudo noções base do Python que se deve aprender no inicio, para além que é uma forma mais correcta de programar em Python.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pronto, não discuto mais! ;) Eu pessoalmente acho que primeiro deve-se saber a lógica e só depois aperfeiçoar com "manhosices" como o range() e lambda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tks pelas ajudas .

Estou no 11º ano do curso tecnologico de informatica e estou a iniciar a aprender python.

Alguem me pode dizer ou disponibilizar qual o melhor tutorial para ler sobre iniciantes ?

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