Soluções da aula prática 12



1.
PROGRAM DobrarCapital;

Var cap, juros: real;
    ano: integer;

begin
  Writeln('Taxa de juros (%): ');
  ReadLn(juros);
  ano := 0;
  cap := 0.0;
  repeat
    cap := cap + cap*(juros/100.0);
    ano := ano+1;
  until cap>=2.0;
  writeln('numero de anos: ', ano);
end.



2.
PROGRAM Ordenar1000;

Const N = 1000;
Var ra: array[1..N] of real;
    i, j: integer;
    min: real;
    jmin: integer;
    temp: real;

begin
  for i := 1 to N do
    ra[i] := Random;
  for i := 1 to N-1 do
    begin
      min := 2.0; { com certeza maior que numero maximo do array }
      jmin := i;
        { procura minimo no resto do array }
      for j := i to N do
        if ra[j]<min then
          begin
            min := ra[j];
            jmin := j;
          end;
        { troca o numero minimo com ra[i] }
      temp := ra[i];
      ra[i] := ra[jmin];
      ra[jmin] := temp;
    end;
   { mostrar resultado }
  for i := 1 to N do
    writeln(i:4,'  ',ra[i]:0:6);
  readln;
end.



3.
Program Factorial;

Var num, somatorio, factorial: integer;

begin
  Writeln('Indique um numero inteiro');
  ReadLn(num);
  factorial := 1;
  somatorio := 0;
  while (num>0) do
    begin
      factorial := factorial * num;
      somatorio := somatorio + num;
      num := num - 1;
    end;
  writeln('Factorial ', factorial, 'Somatorio ',
          somatorio);
end.



4.
PROGRAM Distance;

type coordenate = record
  x, y, z: real;
end;

FUNCTION VectorLength(co: coordenate): real;
begin
  VectorLength := Sqrt(Sqr(co.x) + Sqr(co.y) + Sqr(co.z));
end;

begin
  { codigo principal }
end.