terça-feira, 2 de agosto de 2011

PASCAL, vetores e CASE

Na aula de ontem estavamos estudando vetores, e o uso do CASE. A questão da prova apresentou o seguinte:

Elabore um algoritmo que, dados dois vetores inteiros de 20 posições, efetue as respectivas operações indicadas por outro vetor de 20 posições de caracteres também fornecido pelo usuário, contendo as quatro operações aritméticas em qualquer combinação e armazenando os resultados em um terceiro vetor.

Entre as várias formas de responder, eis uma que atende as exigências da pergunta:

program vetores;

var
v1,v2:  array   [1..10] of integer;
v3:     array   [1..10] of char;
vrs:    array   [1..10] of real;
i      :integer;

begin
     writeln('---------------------------');
     writeln('         VETOR V1          ');
     writeln('---------------------------');
          for i:= 1 to 10 do
               BEGIN
               write('Vetor 1: ',i,' posicao: ');
               readln(v1[i]);
               end
          ;

     writeln('---------------------------');
     writeln('         VETOR V2          ');
     writeln('---------------------------');
          for i:= 1 to 10 do
               BEGIN
               write('Vetor 2: ',i,' posicao: ');
               readln(v2[i]);
               end
          ;

       writeln('---------------------------');
     writeln('         VETOR V3          ');
     writeln('---------------------------');

          for i:= 1 to 10 do
           BEGIN
               write('Vetor 3: ',i,' posicao: ');
               readln(v3[i]);
               case (v3[i]) of
               '*': vrs[i]:=(v1[i]*v2[i]);
               '+': vrs[i]:=(v1[i]+v2[i]);
               '-': vrs[i]:=(v1[i]-v2[i]);
               '/': vrs[i]:=(v1[i]/v2[i]);
               end
           END
          ;
     writeln('---------------------------');
     writeln('         VETOR RESULTADO   ');
     writeln('---------------------------');
          for i:= 1 to 10 do
               BEGIN
               writeln(' Gravado em [ ',i,']: ', vrs[i]:3:2);
               end
          ;
END.

Nenhum comentário:

Postar um comentário