Urgente, Matlab

peters_b

Power Member
W=input ('Introduza o número de paredes, W: ')
while(W~=0)
if (W>0) & (W<=4)
for I=1:W
A(I)=input (
'Introduza a área da parede, A(I): ')
n(I)=input (
'Introduza o número de camadas da parede, n(I): ')
end
end
W=input ('Introduza valor correcto para o número de paredes, W: ')
end

Tenho exa parte do programa e pretendo k ao pedir o "A" e o "n",o I varie conforme os diferentes W's,ou seja,se colocar W=2 dps vai pedir A(1) e A(2) e a msm coisa para o "n",nao sei se me fiz entender.:confused:

Quem me puder ajudar agradeço,é URGENTE.;)

cumps
 
Linguagem pretendida? duvidas concretas? não esperes que alguém te faça o tpc, porque ninguém o fará, no entanto, esclarecemos dúvidas e ajuda-mos no que for preciso
 
Sinceramente nao estou a perceber a tua duvida! Penso que o queres ja esta implementado! O I ja esta a variar ate W no ciclo for
Explica-te melhor
 
Linguagem pretendida? duvidas concretas? não esperes que alguém te faça o tpc, porque ninguém o fará, no entanto, esclarecemos dúvidas e ajuda-mos no que for preciso
Faxo das minhas palavras as do HecKel.;)
Se foxe para me fazerem o trabalho eu tinha posto o trabalho aqui todo e acredita k ixo comparado com o trabalho n é nada,mas se tiveres interessado em ver o trabalho eu dps coloco-o aki.

http://img135.imageshack.us/img135/7188/iplr0.jpg

Eu n pexo a ngm pa me fazer o trabalho pk n funciono axim,se bem k era o melhor k eu fazia pk o prof n sabe explicar akilo.

cumps
 
Após pensar um pouco sobre o problema, perguntei-me se o que tu querias era um output do género:

Introduza o numero de paredes: 9
Introduza o valor correcto para o numero de paredes: 0
Introduza o valor correcto para o numero de paredes: 2
Introduza a area da parede 1: 23
Introduza o numero de camadas da parede 1: 3
PAREDE 1
AREA: 23
NUMERO DE CAMADAS: 3

Introduza a area da parede 2: 44
Introduza o numero de camadas da parede 2: 6
PAREDE 2
AREA: 44
NUMERO DE CAMADAS: 6
Se sim, o que tens de fazer é isto (não sei MatLab mas vê se consegues perceber):

Código:
W=input ('Introduza o número de paredes, W: ')
while(W<=0 || W>4)  [color=red]//enquanto o W for menor ou igual a 0 ou maior que 4[/color]
    W=input ('Introduza valor correcto para o número de paredes, W: ')
end
for I=1:W
    A(I)=input ('Introduza a área da parede, A(I): ')
    n(I)=input ('Introduza o número de camadas da parede, n(I): ')
end
O problema é que acho que estavas a fazer ali um ciclo infinito com o while(W~=0).
 
Após pensar um pouco sobre o problema, perguntei-me se o que tu querias era um output do género:

Se sim, o que tens de fazer é isto (não sei MatLab mas vê se consegues perceber):

Código:
W=input ('Introduza o número de paredes, W: ')
while(W<=0 || W>4)  [COLOR=red]//enquanto o W for menor ou igual a 0 ou maior que 4[/COLOR]
    W=input ('Introduza valor correcto para o número de paredes, W: ')
end
for I=1:W
    A(I)=input ('Introduza a área da parede, A(I): ')
    n(I)=input ('Introduza o número de camadas da parede, n(I): ')
end
O problema é que acho que estavas a fazer ali um ciclo infinito com o while(W~=0).
Brigadão. Resoveu um problema k estava a aparecer mas a minha duvida era aparecer isto:
Introduza a area da parede 1: 23
Introduza o numero de camadas da parede 1: 3
e que continua a não aparecer mas obrigado na msm,deu pa resolver um problema.;)

cumps
 
Para isso tens que mandar para o output os valores que inseres. Em C ficaria:

Código:
printf("Introduza a area da parede [COLOR=Red]%d[/COLOR]:",[COLOR=Red]i[/COLOR]);
onde o %d era associado ao i (o i é uma variável que recebe o nº da parede sobre a qual o programa está a iterar).

Fica aqui o código em C se quiseres ver:

Código:
#include <stdio.h>

int main() {
    int i,w,a,n;
    printf("Introduza o numero de paredes:");
    scanf("%d",&w);
    while (w<=0 || w>4) {
             printf("Introduza o valor correcto para o numero de paredes:");
             scanf("%d",&w);
      }
      
    for (i=1;i<=w;i++) {
        printf("Introduza a area da parede %d:",i);
        scanf("%d",&a);
        printf("Introduza o numero de camadas da parede %d:",i);
        scanf("%d",&n);
        printf("\t\tPAREDE %d\n\t\t\tAREA: %d\n\t\t\tNUMERO DE CAMADAS: %d\n\n",i,a,n);
        }
    
    getchar();getchar();
    return 0;
}
 
Para isso tens que mandar para o output os valores que inseres. Em C ficaria:

Código:
printf("Introduza a area da parede [COLOR=red]%d[/COLOR]:",[COLOR=red]i[/COLOR]);
onde o %d era associado ao i (o i é uma variável que recebe o nº da parede sobre a qual o programa está a iterar).

Fica aqui o código em C se quiseres ver:

Código:
#include <stdio.h>
 
int main() {
    int i,w,a,n;
    printf("Introduza o numero de paredes:");
    scanf("%d",&w);
    while (w<=0 || w>4) {
             printf("Introduza o valor correcto para o numero de paredes:");
             scanf("%d",&w);
      }
 
    for (i=1;i<=w;i++) {
        printf("Introduza a area da parede %d:",i);
        scanf("%d",&a);
        printf("Introduza o numero de camadas da parede %d:",i);
        scanf("%d",&n);
        printf("\t\tPAREDE %d\n\t\t\tAREA: %d\n\t\t\tNUMERO DE CAMADAS: %d\n\n",i,a,n);
        }
 
    getchar();getchar();
    return 0;
}
É o primeiro ano k estou a ter programação,entrei agora pa faculdade,portanto o k percebo é so do matlab e msm axim é pouco.
Axo k o "printf" em C corresponde ao "disp" no matlab,ou seja, é um output,e se eu fizer;

while(W<=0 || W>4)
W=input (
'Introduza valor correcto para o número de paredes, W: ');
end
for
I=1:W
A(I)=input (
'Introduza a área da parede, A(I): ');
disp ('I')
n(I)=input (
'Introduza o número de camadas da parede, n(I): ');
...
o matlab apresenta o valor de I correcto,no casso de W=2,primeiro aparece I=1 e dps I=2 k é +/- o k eu pretendo,a diferença é k eu pretendo k ixo apareça no A(I) e dps no n(I).
Eu amanhã vou perguntar ao prof a ver o k ele diz.

Obrigado na msm.
Já agora,para quem tem mais experiencia nisto e viu o trabalho,o k axou do grau de dificuldade?

cumps
 
Experimenta assim:

Código:
sprintf('Introduza o número de paredes: ')
sscanf(W,'%d')
while(W<=0 || W>4)
    sprintf('Introduza o valor correcto para o numero de paredes: ')
    sscanf(W,'%d')
end
for I=1:W
    sprintf('Introduza a área da parede %d: ',I)
    sscanf(A,'%d')
    sprintf('Introduza o numero de camadas da parede %d: 'I)
    sscanf(N,'%d')
    sprintf('\t\tPAREDE %d\n\t\t\tAREA: %d\n\t\t\tNUMERO DE CAMADAS: %d\n\n',I,A,N)
end

Utilizei as funções sprintf e sscanf em vez de input e disp.
 
Experimenta assim:

Código:
sprintf('Introduza o número de paredes: ')
sscanf(W,'%d')
while(W<=0 || W>4)
    sprintf('Introduza o valor correcto para o numero de paredes: ')
    sscanf(W,'%d')
end
for I=1:W
    sprintf('Introduza a área da parede %d: ',I)
    sscanf(A,'%d')
    sprintf('Introduza o numero de camadas da parede %d: 'I)
    sscanf(N,'%d')
    sprintf('\t\tPAREDE %d\n\t\t\tAREA: %d\n\t\t\tNUMERO DE CAMADAS: %d\n\n',I,A,N)
end

Utilizei as funções sprintf e sscanf em vez de input e disp.
Yah se eu fizer axim aparece o valor do "I" mas na linha seguinte e eu keria k aparecesse na linha do input km texto.Eu amanha ja pergunto ao prof e dps digo kal a soluçao.
Código:
[FONT=Courier New][SIZE=2][COLOR=#0000ff]for[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#000000] I=1:W[/COLOR][/SIZE][/FONT]
disp(I)
[FONT=Courier New][SIZE=2]A(I)=input ([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza a área da parede, A(I): '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2])
n(I)=input ([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza o número de camadas da parede, n(I): '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2])
[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff]   for[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2] I=1:n
           L(I)=input ([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza a largura de cada camada da parede, L(I): '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2])
           K(I)=input ([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza o valor da condutibilidade térmica de cada camada, K(I): '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2])
[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff]   end
end[COLOR=white]
[/COLOR]
Aquele disp deveria aparecer na zona a roxo,mas o matlab n permite 2 ordens na msm linha.E agora tb me está a aparecer outro erro pk do n,enfim so problemas e mais problemas.

Muito obrigado pela ajuda k têm prestado,em especial ao Baderous que tem andado empenhado nisto,mt obrigado.;)

cumps
[/COLOR][/SIZE][/FONT]
 
o programa a meu ver parece funcionar bem, nao percebo muito bem o que queres que o disp(I) faça...

(ja li e re-li o topico, e fiquei na mesma :D)

qual é o problema que isso apresenta?
 
Última edição:
Código:
[FONT=Courier New][SIZE=2]W=input ([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza o número de paredes, W: '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]);[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff]while[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#000000](W<=0 || W>4) [/COLOR][/SIZE][/FONT]
[SIZE=2][FONT=Courier New]W=input ([/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza valor correcto para o número de paredes, W: '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]);[/SIZE][/FONT]
[FONT=Courier New][SIZE=2][COLOR=#0000ff]end[/COLOR][/SIZE][/FONT]
[SIZE=2][FONT=Courier New][COLOR=#0000ff]for[/COLOR][/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#000000] I=1:W[/COLOR][/SIZE][/FONT]
[SIZE=2][FONT=Courier New]   A(I)=input (strcat([/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza a área da parede, A('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(I),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'): '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]));[/SIZE][/FONT]
[SIZE=2][FONT=Courier New]   n(I)=input (strcat([/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza o número de camadas da parede, n('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(I),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'): '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]));[/SIZE][/FONT]
[FONT=Courier New][SIZE=2][COLOR=#0000ff]      for[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2] c=1:n[/SIZE][/FONT]
[SIZE=2][FONT=Courier New]          L(c)=input (strcat([/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza a largura(L) da camada n('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(c),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]') da parede W('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(I),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'), L: '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]));[/SIZE][/FONT]
[SIZE=2][FONT=Courier New]          K(c)=input (strcat([/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza o valor da condutibilidade térmica(K) da camada n('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(c),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]') da parede W('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(I),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'), K: '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]));[/SIZE][/FONT]
[FONT=Courier New][SIZE=2][COLOR=#0000ff]      end[/COLOR][/SIZE][/FONT]
[SIZE=2][FONT=Courier New][COLOR=#0000ff]end[/COLOR][/FONT][/SIZE]

Está ai o k pretendo e um pouco mais completo,kem tiver matlab pode correr o programa.Mas agora tenho o problema do "n" k apenas assume o 1ºvalor k o utilizador define, assim quando temos 2 paredes e elas têm "n"(camadas) diferentes so vai pedir o "L" e o "K", "n" vezes.
Ex: W=2
A(1)=21
n(1)=1
L(1)=22
K(1)=35;
A(2)=22
n(2)=2
L(2)=24
K(2)=23
faz isto mas devia ainda pedir outro L(2)=? e outro K(2)=?, pk a 2ªparede tem 2 camadas(n).

Fiz os possiveis por me fazer entender.:D

cumps
 
O que tu queres dizer é que o 'c' devia começar sempre com o valor 1 sempre que começasse o ciclo interior. Ou seja era esperado algo do género:

Ex: W=2
A(1)=21
n(1)=1
L(1)=22
K(1)=35;
A(2)=22
n(2)=2
L(1)=12
K(1)=15

L(2)=24
K(2)=23

O que está a vermelho é o que não está a aparecer certo?
Só que não encontro erros no código. Será por estares a usar o 'c' e o 'n' em minúscula?
A mim (feito em C tal e qual como o teu está) deu-me tudo bem...
 
O que tu queres dizer é que o 'c' devia começar sempre com o valor 1 sempre que começasse o ciclo interior. Ou seja era esperado algo do género:

Ex: W=2
A(1)=21
n(1)=1
L(1)=22
K(1)=35;
A(2)=22
n(2)=2
L(1)=12
K(1)=15
L(2)=24
K(2)=23

O que está a vermelho é o que não está a aparecer certo?
Só que não encontro erros no código. Será por estares a usar o 'c' e o 'n' em minúscula?
A mim (feito em C tal e qual como o teu está) deu-me tudo bem...
O 'c' só lá está para aparecer os números correctos no texto a apresentar mas experimentei trocar e não resultou.
Se no primeiro 'n' colocarms '1' e no segundo 'n' colocarms '2' ele so apresenta uma vez o 'L' e o 'K' em vez de apresentar 2 vezes,o k eu penso é k ele definiu o n=1 e n o altera quando escolhems n=2.
Mas amanha tiro esta duvida com o prof.
Isto já me está a dar a volta à cabeça.

cumps
 
aha ja descobri...:D:

o teu "numero de camadas" n(I) é um vector, ou seja:
se a parede 1 tem 2 camadas: I=1 e n(I)=2
se a parede 2 tem 3 camadas: I=2 e n(I)=3
ficas com n = [2,3]

ao fazeres: for c=1:n o matlab vai fazer (por omissão): c=1:n(1)

por isso, e uma vez que o 2º for se encontra dentro do primeiro pode fazer for c=1:n(I), que te vai buscar o valor correcto:

fica então:
Código:
 W=input ('Introduza o número de paredes, W: ');while(W<=0 || W>4) 
W=input ('Introduza valor correcto para o número de paredes, W: ');
end
for I=1:W
   A(I)=input (strcat('Introduza a área da parede, A(',num2str(I),'): '));
   n(I)=input (strcat('Introduza o número de camadas da parede, n(',num2str(I),'): '));
      for c=1:n(I)
          disp(c)
          L(c)=input (strcat('Introduza a largura(L) da camada n(',num2str(c),') da parede W(',num2str(I),'), L: '));
          K(c)=input (strcat('Introduza o valor da condutibilidade térmica(K) da camada n(',num2str(c),') da parede W(',num2str(I),'), K: '));
      end
end
 
Última edição:
aha ja descobri...:D:

o teu "numero de camadas" n(I) é um vector, ou seja:
se a parede 1 tem 2 camadas: I=1 e n(I)=2
se a parede 2 tem 3 camadas: I=2 e n(I)=2
ficas com n = [2,3]

ao fazeres: for c=1:n o matlab vai fazer (por omissão): c=1:n(1)

por isso, e uma vez que o 2º for se encontra dentro do primeiro pode fazer for c=1:n(I), que te vai buscar o valor correcto:

fica então:
Código:
 W=input ('Introduza o número de paredes, W: ');while(W<=0 || W>4) 
W=input ('Introduza valor correcto para o número de paredes, W: ');
end
for I=1:W
   A(I)=input (strcat('Introduza a área da parede, A(',num2str(I),'): '));
   n(I)=input (strcat('Introduza o número de camadas da parede, n(',num2str(I),'): '));
      for c=1:n(I)
          disp(c)
          L(c)=input (strcat('Introduza a largura(L) da camada n(',num2str(c),') da parede W(',num2str(I),'), L: '));
          K(c)=input (strcat('Introduza o valor da condutibilidade térmica(K) da camada n(',num2str(c),') da parede W(',num2str(I),'), K: '));
      end
end
Era msm isso,apenas (I) e fazia o k eu keria, impresionante...loool
Muito obrigado.;)

cumps
 
Espero k seja a minha ultima dúvida...
Código:
[FONT=Courier New][SIZE=2]
T1=input ([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza valor da temperatura do ar interior, T1: '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]);
T2=input ([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza valor da temperatura do ambiente exterior, T2: '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]);
W=input ([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza o número de paredes, W: '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]);
[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff]while[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#000000](W<=0 | W>4) [/COLOR]
W=input ([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza valor correcto para o número de paredes, W: '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]);
[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff]end
for[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#000000] I=1:W[/COLOR]
        A(I)=input (strcat([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza a área da parede, A('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(I),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'): '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]));
        n(I)=input (strcat([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza o número de camadas da parede, n('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(I),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'): '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]));
[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff]     while[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2](n<1 | n>3)
              n(I)=input (strcat([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza um valor correcto para o número de camadas da parede, n('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(I),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'): '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]));
[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff]     end
[/COLOR][/SIZE][/FONT][FONT=Courier New][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff]     for[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2] c=1:n(I)
             L(c)=input (strcat([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza a largura(L) da camada n('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(c),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]') da parede W('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(I),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'), L: '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]));
             K(c)=input (strcat([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza o valor da condutibilidade térmica(K) da camada n('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(c),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]') da parede W('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(I),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'), K: '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]));
[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff]     end
end[COLOR=white]
[/COLOR]
A questão está quando eu introduzo um valor não válido para o 'n' ele apresenta a mensagem a pedir ao utilizador para introduzir um valor correcto mas apenas apresenta no primeiro n,ou seja se tiverms 2 paredes(W) tms d ter 2 'n's mas o prog so diz exa msg para o primeiro 'n' e se introduzirms um valor não valido para o 2º'n' ele deixa passar e n dá erro.
Alguém sabe como resolver isto?

Obrigado e pexo desculpa estar a chatear-vos otra vez.

cumps
[/COLOR][/SIZE][/FONT]
 
trata-se do mesmo erro por causa do 'n' ser um vector

se puseres:

Código:
[FONT=Courier New][SIZE=2]while (n(I)<1 | n(I)>3)
n(I)=input (strcat([/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'Introduza um valor correcto para o número de camadas da parede, n('[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],num2str(I),[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#a020f0]'): '[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]));[/SIZE][/FONT]
em principio terás o problema resolvido ;)
 
Back
Topo