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

Sign in to follow this  
milagem

Portugues estruturado para python. (Dúvida)

Recommended Posts

milagem

  Sendo o primeiro tópico no forum deixo uma pequena apresentação pessoal. Tenho 22 anos sou do porto e estou a estudar Tecnologias de Comunicação e multimédia e tenho pouca experiencia em programação. A minha dúvida é esta: Tenho de elaborar um programa que leia duas matrizes A e B, cada uma de duas dimensões com cinco linhas e três coluna. Construir uma matriz C de mesma dimensão, que seja formada pela soma do elementos da matriz A com os elementos da matriz B. Apresentar os elementos da matriz C.

Em portugues estruturado ficaria algo do genêro:

Var

  A, B, C : Conjunto[1..5,1..3] de Inteiro

  I, J : Inteiro

Início

  Para I de 1 até 5 Passo 1 Faça

    Para J de 1 até 3 Passo 1 Faça

      Leia A[i,J]

    Fim_para

  Fim_para

  Para I de 1 até 5 Passo 1 Faça

    Para J de 1 até 3 Passo 1 Faça

      Leia B[i,J]

    Fim_para

  Fim_para

  Para I de 1 até 5 Passo 1 Faça

    Para J de 1 até 3 Passo 1 Faça

      C[i,J] ← A[i,J] = B[i,J]

    Fim_para

  Fim_para

  Para I de 1 até 5 Passo 1 Faça

    Para J de 1 até 3 Passo 1 Faça

      Escreva C[i,J]

    Fim_para

  Fim_para

Fim

  Não consigo traduzir para linguagem python, a minha grande duvida é como se cria uma matriz de duas dimensões em python, principalmente esta parte:

  Para I de 1 até 5 Passo 1 Faça

    Para J de 1 até 3 Passo 1 Faça

      Leia B[i,J]

Agradeço desde já qualquer atenção a este problema!

Share this post


Link to post
Share on other sites
pedrotuga

Ok percebe primeiro o algoritmo antes de o tentar traduzir. Uma vez percebido o algoritmo tenta implementa-lo.

Mas para responder à tua pergunta, de como se cria uma matriz bidimensional...

uma forma simples é uma lista de listas

Olha neste exemplo como eu crio uma matriz e lhe saco o elemnto (0,0)

>>> matriz=[[1,2],[3,4]]
>>> 
>>> matriz
[[1, 2], [3, 4]]
>>> 
>>> (matriz[0])[0]
1

eu nesse pseudo-código (é mesmo o nome, não é sarcasmo) não entendo o que quer dizer 'passo 1' aí a seguir a 'para de 1 até 5'. Mas isso são ciclos.

O que querem é

algo tipo

for i in range(5):
     #fazer aqui o que há a fazer....

Agora, eu estou a atalhar muito. Começa por ler estes dois links, são um bom começo:

http://docs.python.org/tutorial/introduction.html

http://docs.python.org/tutorial/controlflow.html

Share this post


Link to post
Share on other sites
milagem

Talvez seja mais facil de perceber o que pretendo com linguagem python:

Matriz : Tabela 5x3

A = []

for i in range(1, 5, 1): # Posição indice

    for j in range(1, 3, 1): # Posição coluna / elemento

        a.append(input[i,j]) # Esta parte está errada! Preciso do "j" e do "i" para que o input coloque os "valores" corretamente na tabela atraves dos 2 ciclos incodicionais(for).

Share this post


Link to post
Share on other sites
pedrotuga

Ok... não estou a perceber o que queres fazer. O que queres dizer com "colocar os valores correctamente na tabela"?

O que é o input? Um objecto de que tipo?

coloca aí um

print input

e afixa aqui o resultado.

Essa linha tem um erro de sintaxe.

a[b,c] <--- não é python válido

Share this post


Link to post
Share on other sites
milagem

Obrigado pela ajuda pedrotuga.

Solução:

a = []
tabela1 = []
for i in range(5):
    for j in range(3):
        a.append(input())
for i in range(0, 15, 3):
    tabela1.append(a[i: i+3])

b = []
tabela2 = []
for i in range(5):
    for j in range(3):
        b.append(input())
for i in range(0, 15, 3):
    tabela2.append(b[i: i+3])

c = []
tabela3 = []
for i in range(15):
    soma = a[i] + b[i]
    c.append(soma)
for i in range(0, 15, 3):
    tabela3.append(c[i: i+3])
    
print tabela3




Ainda sou um novato em programação não liguem a forma como esta escrito o algoritmo em python...  :D Se existir uma solução mais facil é postar pf!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.