Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

milagem

Portugues estruturado para python. (Dúvida)

Mensagens Recomendadas

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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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!

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.