Quel Postado Agosto 4, 2006 Denunciar Share Postado Agosto 4, 2006 Olá pessoal,estou com uma dúvida em Pascal,será que alguém pode me ajudar fazendo favor? É o seguinte: . Faça um programa que leia uma matriz de ordem 3 x 5 de elementos inteiros, calcular e exibir:o maior elemento da matriz; Eu to fazendo assim Program Matriz; Uses Crt; constNL:=3 {numero de linhas}NC:=5 {numero de colunas} varMat:=array[1..NL..,1..NC] of integer;I,J,MaiorElem:=integer; begin{leitura da matriz} for I:=1 to NL do for J:=1 to NC do readln(Mat[i,j]); end; {Calculo do maior elemento da matriz} MaiorElem:=Mat[1,1]; for I:=1 to NL do for J:=1 to NC do If MaiorElem:=1 then else MaiorElem:=1 End. Sera que está certo? Preciso colocar mais alguma coisa? Obrigada Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 4, 2006 Denunciar Share Postado Agosto 4, 2006 nossa, não lembro nd de pascal!!!tipo você abre o for (for J:=1 to NC do) mas não tem que fechar??? tipo um next, alguma coisa??você testou o programa?? funcionou???acho que tem erro aqui:If MaiorElem:=1 thenelse MaiorElem:=1[/code] primeira coisa, acho que if é sem dois pontos não?? so assim: [code]If MaiorElem=1 thenelse MaiorElem:=1 bom na verdade, não lembro agora, mas acho que dois pontos é so pra atribuir valor. otra coisa, qual o sentido de você comparar com 1 toda vez??? o certo acho que seria assim: MaiorElem:=Mat[1,1];for I:=1 to NL dofor J:=1 to NC doIf MaiorElem<Mat[I, J] thenMaiorElem:=Mat[I, J][/code] a também não lembro, mas não teria ponto e virgula nessa linha? [code]MaiorElem:=Mat[I, J];então, compila aí e testa pra ver se da certo!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Agosto 5, 2006 Denunciar Share Postado Agosto 5, 2006 nossa, não lembro nd de pascal!!!tipo você abre o for (for J:=1 to NC do) mas não tem que fechar??? tipo um next, alguma coisa??Você só precisa utilizar begin... end se existir mais de uma linha a ser executada dentro do loop, exemplo:for j:=1 to NC do begin // primeira linha; // segunda linha; end;Do contrário, você só precisa usar o ponto-e-vírgula na linha. O mesmo vale se a próxima instrução também for desse tipo (como um if).Certo? ;)Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 5, 2006 Denunciar Share Postado Agosto 5, 2006 eu lembrava que dava pra fazer com if, com for nem sei se eu sabia. e isso eu lembrava do delphi, que de pascal não lembro nd d nd, não sei mais nem declarar variavel (a e em delphi também não, porque deve ser igual ahhaha).mas o que eu achei estranho foram os dois fors na sequencia. tipo for I:=1 to NL dofor J:=1 to NC doIf MaiorElem:=1 thenelse MaiorElem:=1[/code] se fosse so assim beleza: [code]for J:=1 to NC doMaiorElem:=1; porque é so uma linha, so um comando. agora tipo, dentro do primeiro for são dados dois comandos, usando ainda tres linhas. pra mim seria normal pelo menos assim: for I:=1 to NL dobegin for J:=1 to NC do If MaiorElem:=1 then else MaiorElem:=1;end;[/code] meu olhando assim confunde, é o costume de usar o maldito visual basic. alias, aquele codigo que eu passei não tem erro de sintaxe? [code] MaiorElem:=Mat[1,1];for I:=1 to NL dofor J:=1 to NC doIf MaiorElem<Mat[I, J] thenMaiorElem:=Mat[I, J];o legal é que agora vo aprender essas linguagens td de novo na faculdade, ai fazendo d novo aqueles programas no papel almaço nas provas, não tem como esquecer. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Agosto 5, 2006 Denunciar Share Postado Agosto 5, 2006 eu lembrava que dava pra fazer com if, com for nem sei se eu sabia. e isso eu lembrava do delphi, que de pascal não lembro nd d nd, não sei mais nem declarar variavel (a e em delphi também não, porque deve ser igual ahhaha).mas o que eu achei estranho foram os dois fors na sequencia. tipo for I:=1 to NL do for J:=1 to NC do If MaiorElem:=1 then else MaiorElem:=1 se fosse so assim beleza: for J:=1 to NC do MaiorElem:=1; porque é so uma linha, so um comando. agora tipo, dentro do primeiro for são dados dois comandos, usando ainda tres linhas. pra mim seria normal pelo menos assim: for I:=1 to NL do begin for J:=1 to NC do If MaiorElem:=1 then else MaiorElem:=1; end; Também pode ser assim. Mas o primeiro não está errado. É só identar o código que você vai perceber: for I:=1 to NL do for J:=1 to NC do If MaiorElem:=1 then MaiorElem:=1;Sem o begin... end, cada instrução aceita uma outra única instrução. A única instrução do primeiro for é outro for, e a única instrução do segundo for (que está dentro do primeiro) é um if. As instruções estão em cascata e é por isso que não se precisa de begin... end neste caso.o legal é que agora vo aprender essas linguagens td de novo na faculdade, ai fazendo d novo aqueles programas no papel almaço nas provas, não tem como esquecer.Sim, realmente. :)Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest André Padial Postado Abril 13, 2007 Denunciar Share Postado Abril 13, 2007 Boa tarde, espero que esteja td bem com você. Entaum eu vo tenta aqui t da uma ajuda, você faz o seguinte cria uma variavel denominada MAIOR e inicia ela com um valor baixo, por exemplo 1.Dai no seu laço de repetição FOR ou WHILE você vai criar um IF Se maior < matriz[j] então maior = matriz[j]; Fim seA partir dai, da 2ª posição em diante como há valores nas posições ele compara novamente por causa do laço FOR, por ex.: suponhamos que na posição tenha o valor 5 e na posição 2 tenha o valor 3, vai acontecer, que na 1ª ela armazena 5 pois 5 é maior do que 1, na 2ª vez ele pergunta 5 < 3, não entaum vai para a proxima posição, se achar um valor maior do que o atual ele armazena e vai para a proxima, caso contrario mantem o valor e vai para proxima.Feito isso você encontrará o maior valor na matriz.Espero ter podido ajudar.Um abraço!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 paulo_linux Postado Abril 14, 2007 Denunciar Share Postado Abril 14, 2007 (editado) varMat:=array[1..NL..,1..NC]of integer;I,J,MaiorElem:=integer;Estou vendo que o pessoal do SB já está lhe ajudando, mais estou vendo ainda um erro gravíssimo em seu código...Declaração de variável, você não coloca ela receber, como você fez aí abaixo...Mat:=arrayI,J,MaiorElem:=integerO certo é você inserir dois pontos (:) ficando assim...Mat : array Mat : array Aqui está a sua declaração correta... var Mat : array[1..NL..,1..NC] of integer; I,J,MaiorElem : integer; Editado Abril 14, 2007 por paulo_linux Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Quel
Olá pessoal,estou com uma dúvida em Pascal,será que alguém pode me ajudar fazendo favor?
É o seguinte:
. Faça um programa que leia uma matriz de ordem 3 x 5 de elementos inteiros, calcular e exibir:
o maior elemento da matriz;
Eu to fazendo assim
Program Matriz;
Uses Crt;
const
NL:=3 {numero de linhas}
NC:=5 {numero de colunas}
var
Mat:=array[1..NL..,1..NC] of integer;
I,J,MaiorElem:=integer;
begin
{leitura da matriz}
for I:=1 to NL do
for J:=1 to NC do
readln(Mat[i,j]);
end;
{Calculo do maior elemento da matriz}
MaiorElem:=Mat[1,1];
for I:=1 to NL do
for J:=1 to NC do
If MaiorElem:=1 then
else MaiorElem:=1
End.
Sera que está certo? Preciso colocar mais alguma coisa?
Obrigada
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.