Ir ao conteúdo

Matriz 2x2 apresentar nome e idade


ggdd

Posts recomendados

Postado

Boa noite, estou com o seguinte exerc;

algoritmo "semnome"
// Função :
// Autor :
// Data : 30/10/2013
// Seção de Declarações
var
v1: vetor [1..2,1..2] de caractere
i,j,k:inteiro
inicio
// Seção de Comandos
para i de 1 ate 2 passo 1 faca
para j de 1 ate 2 passo 1 faca
escreval ("digite o nome ")
leia (v1[i,j])
escreval ("digite sua idade")
leia (v1[i,j])
fimpara
fimpara
fimalgoritmo

O problema, ocorre, na memória, quando se pede para digitar o nome, e depois a idade, a IDADE salva em cima da memória do NOME, já usei um contado, mas não resolve, qual o problema? O que deve seguir para o nome ir na matriz [1,1], e a idade [1,2], o 2° nome ir em [2,1] e idade ir [2,2]? aguardo!!!! grato!!!

Postado

ggdd,

Declare um vetor exclusivo para a idade:

vIdade: vetor [1..2,1..2] de inteiro

e faça a leitura da idade da mesma forma:

escreval ("digite sua idade")
leia (vIdade[i,j])

O VisuAlg não permite o uso de registros (Estrutura de Dados Heterogêneas), o que evitaria essa declaração à parte de outro vetor.

[]'s

LNW

Postado

Rode o algoritmo com a tecla F8, você verá passo a passo como funciona, com 2 laços assim ele não vai funcionar! A variável k você nem usa! Experimente usando um comando "para" e sem "passo" só " para i de 1 ate 2 faca, incremente o "j" com 1 no começo "j<-1" vai vai ler o primeiro nome com i valendo 1 e j valendo 1, vai ler a idade, ai que vem o segredo, mande ler v1[i,j+1] ele vai alocar em [1,2], vai voltar o laço e i será 2 e j ainda será 1, vai ler o segundo nome em [2,1] e a idade em [2,2] vai terminar o laço e pronto! Para mandar escrever é só usar o mesmo laço sem o leia.

Postado
ggdd,

Declare um vetor exclusivo para a idade:

vIdade: vetor [1..2,1..2] de inteiro

e faça a leitura da idade da mesma forma:

escreval ("digite sua idade")
leia (vIdade[i,j])

O VisuAlg não permite o uso de registros (Estrutura de Dados Heterogêneas), o que evitaria essa declaração à parte de outro vetor.

[]'s

LNW

ok, obrigado! irei ver como fica!

Rode o algoritmo com a tecla F8, você verá passo a passo como funciona, com 2 laços assim ele não vai funcionar! A variável k você nem usa! Experimente usando um comando "para" e sem "passo" só " para i de 1 ate 2 faca, incremente o "j" com 1 no começo "j<-1" vai vai ler o primeiro nome com i valendo 1 e j valendo 1, vai ler a idade, ai que vem o segredo, mande ler v1[i,j+1] ele vai alocar em [1,2], vai voltar o laço e i será 2 e j ainda será 1, vai ler o segundo nome em [2,1] e a idade em [2,2] vai terminar o laço e pronto! Para mandar escrever é só usar o mesmo laço sem o leia.

obrigado, irei ver este método!

ok, obrigado! irei ver como fica!

obrigado, irei ver este método!

Olá, tentei dos 2 jeitos, não está indo, primeiro que se eu criar um outro vetor, ele irá ler 2 vezes, "idade", e "nome"

Bom, deste jeito ele da erro ao ler ; (v1[i,j+1])!

Galera, tem como me postar qual maneira deve ser feito este exercício? Aguardo!!

Postado

ggdd,

Olá, tentei dos 2 jeitos, não está indo, primeiro que se eu criar um outro vetor, ele irá ler 2 vezes, "idade", e "nome"

Você precisa definir bem a estrutura de dados que deseja. Dependendo da escolha, poderemos estar falando de um simples vetor ou de uma matriz.

O seu programa sugere o uso deste tipo de estrutura:

  Nome   |  Nome
Idade | Idade
[1,1] | [1,2]
------------------
Nome | Nome
Idade | Idade
[2,1] | [2,2]

Você tem 2 linhas e 2 colunas, totalizando 4 células, certo? Se são 4 células, você fará a leitura de Nome e Idade em cada célula. Neste tipo de configuração, você precisará de uma matriz para os nomes e outra para as idades (conforme sugerido no post anterior).

Se o que você imagina é o seguinte:

| Nome | | Idade |
| [1] | | [1] |
|------| |-------|
| Nome | | Idade |
| [2] | | [2] |

Então, você não tem como mais usar uma matriz, mas terá de lançar mão de 2 vetores: um para os nomes e o outro para as idades. No VisuAlg, não há como meter um dado do tipo caractere e inteiro na mesma matriz.

Reflita, pense e depois diga o que deseja realmente.. ;)

[]'s

LNW

Postado

Boa noite, a compreensão do que se pede foi entendida, o que complica e executar, o loop, para que leia 2 vezes de "NOME"/"IDADE" [1..1,1..2] E "NOME"/"IDADE" [2..1,2..2]. Poderia estar colocando o código, para ser explicado? Reaproveitar o cod de cima, e posta-lo? Aguardo

O problema mesmo, é ler "2 VEZES", pois ele grava na memória anterior! Quando le 1 vez, ele ocorre normal!

Postado
O problema mesmo, é ler "2 VEZES", pois ele grava na memória anterior! Quando le 1 vez, ele ocorre normal!

Cara, veja se é isso que você quer:

algoritmo "semnome"
// Função :
// Autor :
// Data : 30/10/2013
// Seção de Declarações
var
v1: vetor [1..2,1..2] de caractere
i :inteiro

inicio
// Seção de Comandos
para i de 1 ate 2 passo 1 faca
escreval ("digite o nome ")
leia (v1[i,1])
escreval ("digite sua idade")
leia (v1[i,2])
fimpara

escreval
escreval

para i de 1 ate 2 passo 1 faca
escreval("Nome: ", v1[i,1], " - Idade: ", v1[i,2])
fimpara

fimalgoritmo

LNW

Postado

LNW, é isto mesmo. Pois, a entrada, estava alocando em cada "célula", muito obrigado! O problema foi usar 2 looping, no caso "i" e "j". Você leu como leia(v1[i,j]), Quando você lê; leia(v1[i,1]) isto se refere ao conjunto [1..2]? e leia (v1[i,2]) ao conjunto [1..2]?

Oi LNW, no caso, o exercício anterior ficou isto?

sadsd.jpg

Postado
LNW, é isto mesmo. Pois, a entrada, estava alocando em cada "célula", muito obrigado! O problema foi usar 2 looping, no caso "i" e "j". Você leu como leia(v1[i,j]), Quando você lê; leia(v1[i,1]) isto se refere ao conjunto [1..2]? e leia (v1[i,2]) ao conjunto [1..2]?

Oi LNW, no caso, o exercício anterior ficou isto?

sadsd.jpg

Sim, ficou.

Respondendo à sua outra pergunta. Na verdade, são as dimensões da matriz.

Nesta dimensão, [1..2, 1..2]:

1..2: representa o número de linhas (2);

1..2: representa o número de colunas (2).

[1,1] | [1,2]
-------------
[2,1] | [2,2]

Sendo que o ideal neste caso seria ter um vetor de caracteres para os nomes e outro de inteiros para as idades, como mostrei acima.

Como falei acima, você não pode ter uma matriz com dois tipos diferentes de dados (caractere e inteiro) ao mesmo tempo. Entende esta parte sobre os tipos de dados (inteiro e caractere)? Idades normalmente são lidas como um número inteiro, e não como caractere.

Mas o programa atende literalmente ao que você pediu.

[]'s

LNW

  • Moderador
Postado

Caso o autor necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!