User Tools

Site Tools


exercicios
  • Para compilar este programa em Pascal, descubra os erros e os corrija.
(* programa que le um numero e retorna o ultimo algarismo *)
(* escrito por Marcos Castilho em 22/10/2002, com erros.  *)
program ultalgarismo;
begin
        read (A)
        writeln (A mod 10);
end.
  • Seja o seguinte programa em Pascal:
program  Misterio;
var nota1,nota2,media: integer;
begin
     readln(nota1,nota2)
     while nota1 <> 0 do
          media:=nota1+nota2/2;
          writeln(nota1,nota2,media);
          readln(nota1,nota2);
end.
  • Quantos são, e quais são, os erros de compilação deste programa?
  • Considerando que você corrigiu os erros de compilação corretamente, o que faz este programa? Por exemplo, tente entrar com as notas 5 e 5. Depois tente com 0, 5. Rode o programa e veja se você acertou.
  • Considerando a estrutura do programa, os nomes das variáveis e a endentação usada, podemos afirmar que o programador cometeu alguns erros de lógica. Quantos são e quais são estes erros?
  • O que faz o programa faz após estas correções? Rode novamente com as notas 5 e 5 e depois 0 e 5 e confira se você acertou.
  • Enumere e explique todos os erros contidos no seguinte código Pascal:
program misterio2;
var
  m, g: real;
  N1, N2: integer;
begin
  readln(N1, N2);
  if (N1 > N2) then
    m := N2
  else
    m := N1;
  g:= 1;
  while g do
  begin
    if (N1 mod m = 0) AND (N2 mod m = 0) then
      g := 0;
    else
      m := m - 1;
  end;
  if (m := N1) then
    writeln('O valor resultante eh: ' m);
end.
  • Considere o seguinte programa em Pascal.
program soma_dois;
var a, b, soma: longint;
 
begin
   read (a,b);
   soma:= a + b;
   writeln (a+b);
end.

É importante entender as mensagens de erro do compilador. Por isso, sugere-se que o leitor produza erros de sintaxe na sua cópia deste programa-fonte (que está correto sintaticamente) e que explore o compilador para começar a compreender as mensagens de erro e a procurar corrigi-los.

Experimente, por exemplo, as seguintes alterações:

  • escreva program errado, por exemplo, pogram;
  • escreva writeln errado, por exemplo, writenl;
  • apague o ponto final após o end na última linha;
  • esqueça de abrir ou de fechar as aspas da mensagem;
  • esqueça de abrir ou de fechar os parênteses;
  • escreva alomamãe com til na linha 1.

Faça uma alteração por vez e observe quais mensagens de erro serão retornadas pelo compilador.

  • No programa abaixo, determine o tipo de dados das variáveis. Algumas delas podem ser tanto inteiras como reais, enquanto que algumas só podem ser de um tipo específico. Se puder, prefira um tipo ordinal.
Program ex1;
var 
   A: <completar>;
   B: <completar>;
   C: <completar>;
   D: <completar>;
   E: <completar>;
 
begin        
     A := 1 + 2 * 3;
     B := 1 + 2 * 3 / 7;
     C := 1 + 2 * 3 \ DIV \ 7;
     D := 3 \ DIV \ 3 * 4.0;
     E := A + B * C - D
end.
  • Fazer um programa em Free Pascal que leia do teclado um número real C representando uma temperatura na escala Celsius e imprima na tela a correspondente temperatura na escala Farenheit (F) calculada segundo a fórmula: C = 5*(F-32)/9. Veja um exemplo de execução incluindo entrada e saída:

Exemplo de entrada: 28.7

Saída esperada para a entrada acima: 8.3659999999999997E+001

  • Fazer um programa em Free Pascal que leia do teclado um número real K representando uma velocidade em Kilômetros por hora (km/h) e imprima na tela a velocidade correspondente em milhas por hora (ml/h), lembrando que 1 milha = 1.609344 km.

Exemplo de entrada: 105.4

Saída esperada para a entrada acima: 6.5492523661815000E+001

  • Fazer um programa em Free Pascal que leia do teclado um número inteiro que representa uma quantidade de segundos (unidade de medida de ângulo geométrico) e que imprima na tela o seu valor equivalente em graus, minutos e segundos. Se a quantidade de segundos for insuficiente para dar o valor 1 (um) em graus, o valor em graus deve ser 0 (zero). A mesma observação vale em relação aos minutos e segundos.

Exemplo de entrada 1: 3600

Saída esperada para a entrada acima: 1 graus, 0 minutos e 0 segundos

Exemplo de entrada 2: 3500

Saída esperada para a entrada acima: 0 graus, 58 minutos e 20 segundos

  • Fazer um programa em Free Pascal que leia seis números (a11, a12, b1, a21, a22, b2) e imprima uma solução para o sistema de equações lineares abaixo:
 a11 x + a12 y = b1
 a21 x + a22 y = b2

O método de cálculo do sistema é indiferente, desde que o resolva independente dos valores informados. Veja um exemplo de execução incluindo entrada e saída:

Exemplo de entrada: 2.0 1.0 11.0 5.0 7.0 13.0

Saída esperada para a entrada acima: x = 7.111 y = -3.222

exercicios.txt · Last modified: 2019/04/30 10:44 by castilho