Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida


Quel

Pergunta

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

  • 0

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 then
else MaiorElem:=1[/code] primeira coisa, acho que if é sem dois pontos não?? so assim:
[code]If MaiorElem=1 then
else 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 do
for J:=1 to NC do
If MaiorElem<Mat[I, J] then
MaiorElem:=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!!

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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[/code] se fosse so assim beleza:
[code]
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;[/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 do
for J:=1 to NC do
If MaiorElem<Mat[I, J] then
MaiorElem:=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.

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0
Guest André Padial

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 se

A 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!!!

Link para o comentário
Compartilhar em outros sites

  • 0
var

Mat:=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:=array

I,J,MaiorElem:=integer

O 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 por paulo_linux
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...