Ir para conteúdo

POWERED BY:

Arquivado

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

ajudinhop

pascal

Recommended Posts

2) Escrever um programa que lê o número de identificação, as 3 notas obtidas por n alunos nas 3 verificações e a média dos exercícios que fazem parte da avaliação. Calcular a média de aproveitamento, usando a fórmula: MA = (Notal + Nota2 x 2 + Nota3 x 3 + ME ) 17.A atribuição de conceitos obedece a tabela abaixoMédia de.Aproveitamento Conceito9,0 A7,5 e < 9,0 B6,0 e < 7,5 c450 e < 6,0 D< 4,0 E0 programa deve escrever o número do aluno suas notas., a i-nédia dos exercícios., a médiafor A B ou C e REPROVADO se o, conceito for D ou F.C iaprocedures para: ler as notas, calcular a média de aproveitamento, achar o conceito achar a situação, imprimir os dados.Parar de solicitar dados quando o número de identificação do aluno for igual 0EU TENHO QUE USAR O PROCEDURE, TENTEI FAZER ATÉ AQUI????Program media;varMA:real;procedure lernotas;varn1,n2,n3,s:integerBeginwrite('digite n1:');readln(n1);write('digite n2:');readln(n2);write('digite n3:');readln(n3);end;procedure mediaexe;varME:realprocedure mediaprov;varMA:real;beginMA:=(n1+n2*2+n3*3+ME)/7writeln('a media de aproveitamento:',MA);end;beginfaça um programa que leia uma matriz 3x3 de numeros inteiros e encontre a maior valorda matriz a seguir multiplique cada elementoda diagnal principal pela maior valor mostre a metriz apos as multiplicações este não consigui nem montar

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz o da matriz usando e nao usando vetor

 

Sem Vetor

PROGRAM matriz (input,output);VAR a11, a12, a13, a21, a22, a23, a31, a32, a33, x: INTEGER;BEGIN   WRITELN ('Entre com os valores da matriz');   READ(a11);   x := a11;   READ(a12);   IF a12 > x THEN      x := a12;   READ(a13);   IF a13 > x THEN      x := a13;   READ(a21);   IF a21 > x THEN      x := a21;   READ(a22);   IF a22 > x THEN      x := a21;   READ(a23);   IF a23 > x THEN      x := a23;   READ(a31);   IF a31 > X THEN      x := a31;   READ(a32);   IF a32 > x THEN      x := a32;   READ(a33);   IF a33 > x THEN      x := a33;   a11 := a11 * x;   a12 := a12 * x;   a13 := a13 * x;   a21 := a21 * x;   a22 := a22 * x;   a23 := a23 * x;   a31 := a31 * x;   a32 := a32 * x;   a33 := a33 * x;   WRITELN(a11, '  ', a12, '  ', a13);   WRITELN(a21, '  ', a22, '  ', a23);   WRITELN(a31, '  ', a32, '  ', a33);END.

Com Vetor

PROGRAM matriz (input,output);CONST tam = 9;TYPE VETOR = ARRAY [1..tam] OF INTEGER;FUNCTION achamaior (VAR V: VETOR): INTEGER;VAR posmaior, i: INTEGER;BEGIN   posmaior := 1;   FOR i:= 2 to tam DO      IF V[i] > v[posmaior] THEN         posmaior := i;   achamaior := V[posmaior];END;VAR x, i: INTEGER;   V: VETOR;BEGIN   WRITELN ('Entre com os valores da matriz');   FOR i := 1 TO tam DO      READ(V[i]);   x := achamaior(V);   FOR i := 1 TO tam DO      V[i] := V[i] * x;   WRITELN(V[1], '  ', V[2], '  ', V[3]);   WRITELN(V[4], '  ', V[5], '  ', V[6]);   WRITELN(V[7], '  ', V[8], '  ', V[9]);END.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teoricamente e praticamente o algoritmo com vector está melhor pois mais simples e mais pequeno!!CypherMas para que fique bem claro um procedimento (PROCEDURE), não e uma função (FUNCTION)Cypher

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz o da matriz usando e nao usando vetor

 

Com Vetor

PROGRAM matriz (input,output);CONST tam = 9;TYPE VETOR = ARRAY [1..tam] OF INTEGER;FUNCTION achamaior (VAR V: VETOR): INTEGER;VAR posmaior, i: INTEGER;BEGIN   posmaior := 1;   FOR i:= 2 to tam DO	  IF V[i] > v[posmaior] THEN		 posmaior := i;   achamaior := V[posmaior];END;VAR x, i: INTEGER;   V: VETOR;BEGIN   WRITELN ('Entre com os valores da matriz');   FOR i := 1 TO tam DO	  READ(V[i]);   x := achamaior(V);   FOR i := 1 TO tam DO	  V[i] := V[i] * x;  {**********}   WRITELN(V[1], '  ', V[2], '  ', V[3]);   WRITELN(V[4], '  ', V[5], '  ', V[6]);   WRITELN(V[7], '  ', V[8], '  ', V[9]);END.
no final do codigo exatamente onde demarquei com {**********}, ha um pequeno equivico:

o enunciado pede para multiplicar o maior valor com os valores da diagonal principal e naum com todos...

ficaria assim aquele ultimo for

FOR i := 1 TO tam DO begin  if (i=1 or i=5 or i=9) then	  V[i] := V[i] * x;end;
pronto

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.