lfasfas

Upload: ayrton-wagner

Post on 05-Jul-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/15/2019 Lfasfas

    1/36

    Lista de Exercícios (Resolvidos) - Pascal

    1. Escreva um programa em Pascal para ler, calcular e escrever a média aritmética entre dois

    números. 

    program ex1;

    uses crt;

    var n1, n2, m: real;

    begin

    clrscr;

    write('Informe um numero: ');

    readln(n1);

    write('Informe outro numero: ');

    readln(n2);

    m:=(n1+n2)/2;writeln('A media ‚: ',m:0:2); 

    readkey;

    end.

    2. Escreva um programa em Pascal para ler um número positivo qualquer, calcular e escrever

    o quadrado e a raiz quadrada do mesmo. 

    program ex2;uses crt;

    var x, q: integer;

    r: real;

    begin

    clrscr;

    write('Informe um numero: ');

    readln(x);

    q:= sqr(x);

    writeln('O quadrado de ', x, ' ‚ ', q); 

    if x>=0 then

    beginr:= sqrt(x);

    writeln('A raiz quadrada de ', x, ' ‚ ', r:0:2); 

    end

    else

    begin

    writeln('Nao existe raiz de ',x);

    end;

    readkey;

    end.

    3. Escrever um programa em Pascal que leia 3 valores: a, b, c e calcule e escreva a médiaaritmética, harmônica e geométrica correspondente. 

  • 8/15/2019 Lfasfas

    2/36

    program ex3;

    uses crt;

    var a, b, c, ma, mg, mh: real;

    begin

    clrscr;write('Informe o primeiro numero: ');

    readln(a);

    write('Informe o segundo numero: ');

    readln(b);

    write('Informe o terceiro numero: ');

    readln(c);

    ma:= (a+b+c)/3;

    mh:= 3/(1/a + 1/b +1/c);

    mg:= exp(ln(a*b*c)*(1/3));

    writeln('Media Aritmetica: ',ma:0:2);

    writeln('Media Harmonica: ',mh:0:2);

    writeln('Media Geometrica: ',mg:0:2);

    readkey;

    end.

    4. Escrever um programa em Pascal que lê o número de um funcionário, seu número de

    horas trabalhadas, o valor que recebe por hora, e o número de filhos com idade menor do

    que 14 anos e calcula o salário deste funcionário. 

    program ex4;

    uses crt;

    varnf, nfil: integer;

    nht, vph, sf, st: real;

    begin

    clrscr;

    write('Informe o numero do funcionario: ');

    readln(nf);

    write('Informe o numero de horas trabalhadas: ');

    readln(nht);

    write('Informe o valor que recebe por hora: ');

    readln(vph);

    write('Informe o numero de filhos: ');

    readln(nfil);

    write('Informe o valor do salario familia: ');

    readln(sf);

    st:= nht * vph + nfil * sf;

    writeln('O funcionario ', nf, ' recebe um salario total de R$ ',

    st:0:2);

    readkey;

    end.

  • 8/15/2019 Lfasfas

    3/36

    5. Escrever um programa em Pascal que lê o número de um vendedor, o seu salário-fixo, o

    tota1 de vendas por ele efetuadas e o percentual que ganha sobre o total de vendas.

    Calcular o salário tota1 do vendedor. Escrever número do vendedor e o salário total. 

    program ex5;

    uses crt;

    var

    nv: integer;

    sf, tv, per, st: real;

    begin

    clrscr;

    write('Informe o numero do vendedor: ');

    readln(nv);

    write('Informe o salario fixo: ');

    readln(sf);

    write('Informe o total de vendas: ');

    readln(tv);

    write('Informe o percentual sobre as vendas: ');

    readln(per);

    st:= sf + tv * per / 100;

    writeln('O vendedor ', nv, ' recebe um salario total de R$ ', st:0:2);

    readkey;

    end.

    6. Escrever um programa em Pascal que lê 3 valores a, b, c que são lados de um triângulo e

    calcule a área deste triângulo.

    program ex6;

    uses crt;

    var a, b, c, s, at: real;

    begin

    clrscr;

    write('Informe o primeiro numero: ');

    readln(a);

    write('Informe o segundo numero: ');

    readln(b);

    write('Informe o terceiro numero: ');

    readln(c);

    s:= (a+b+c)/2;

    at:=sqrt(s*(s-a)*(s-b)*(s-c));

    writeln('Area do triangulo: ',at:0:2);

    readkey;

    end.

    7. Uma revendedora de carros usados paga a seus funcionários vendedores, um salário fixopor mês, mais uma comissão também fixa para cada carro vendido e mais 5% do valor das

  • 8/15/2019 Lfasfas

    4/36

    vendas por ele efetuadas. Escrever um programa em Pascal que lê o número do vendedor, o

    número de carros por ele vendidos, o valor tota1 de suas vendas, o salário fixo e o valor

    que recebe por carro vendido e calcula o salário mensal do vendedor, escrevendo-o

     juntamente com o seu número de identificação. 

    program ex7;uses crt;

    var

    nv, ncv: integer;

    sf, tv, vpcv, st: real;

    begin

    clrscr;

    write('Informe o numero do vendedor: ');

    readln(nv);

    write('Informe o numero de carros vendidos: ');

    readln(ncv);

    write('Informe o total de vendas: ');readln(tv);

    write('Informe o salario fixo: ');

    readln(sf);

    write('Informe o valor por carro vendido: ');

    readln(vpcv);

    st:= sf + tv * 5 / 100 + ncv * vpcv;

    writeln('O vendedor ', nv, ' recebe um salario total de R$ ', st:0:2);

    readkey;

    end.

    8. Escrever um programa em Pascal que lê 3 valores a, b, c, e escreva os 3 valores em ordem

    crescente.

    program ex8;

    uses crt;

    var a, b, c, aux: integer;

    begin

    clrscr;

    write('Informe o primeiro numero: ');readln(a);

    write('Informe o segundo numero: ');

    readln(b);

    write('Informe o terceiro numero: ');

    readln(c);

    if a>b then

    begin

    aux:=a;

    a:=b;

    b:=aux;

    end;

    if a>c then

    beginaux:=a;

    a:=c;

  • 8/15/2019 Lfasfas

    5/36

      c:=aux;

    end;

    if b>c then

    begin

    aux:=b;

    b:=c;

    c:=aux;end;

    writeln('Valores em ordem crescente: ', a:6, b:6, c:6);

    readkey;

    end.

    9. Escrever um algoritmo/programa em Pascal que lê um conjunto de 4 valores i,a, b, c, onde i é um valor inteiro e positivo e a, b, c, são quaisquer valores reais e osescreva. A seguir:Se i = 1 escrever os 3 valores a, b, c em ordem crescente.Se i = 2 escrever os 3 valores a, b, c em ordem decrescente.Se i = 3 escrever os 3 valores de forma que o maior valor entre a, b, c fica entre os

    outros 2. 

    program ex9;

    uses crt;

    var i, a, b, c, aux: integer;

    begin

    clrscr;

    write('Informe um valor [1, 2, 3]: ');

    readln(i);

    write('Informe o primeiro numero: ');

    readln(a);write('Informe o segundo numero: ');

    readln(b);

    write('Informe o terceiro numero: ');

    readln(c);

    if a>b then

    begin

    aux:=a;

    a:=b;

    b:=aux;

    end;

    if a>c then

    begin

    aux:=a;a:=c;

    c:=aux;

    end;

    if b>c then

    begin

    aux:=b;

    b:=c;

    c:=aux;

    end;

    if i=1 then

    begin

    writeln('Valores em ordem crescente: ', a:6, b:6, c:6);

    end;if i=2 then

    begin

  • 8/15/2019 Lfasfas

    6/36

      writeln('Valores em ordem decrescente: ', c:6, b:6, a:6);

    end;

    if i=3 then

    begin

    writeln('Maior Valor no meio: ', a:6, c:6, b:6);

    end;

    readkey;end.

    10. Escrever um algoritmo/programa em Pascal que lê o número de um vendedorde uma empresa, seu salário fixo e o total de vendas por ele efetuadas.Cada vendedor recebe um salário fixo, mais uma comissão proporcional às vendaspor ele efetuadas.A comissão é de 3% sobre o total de vendas até $ 1.000,00 e 5% sobre o queultrapassa este valor.

    Escrever o número do vendedor, o total de suas vendas, seu salário fixo e seusalário total. 

    program ex10;

    uses crt;

    var

    nv: integer;

    sf, tv st: real;

    begin

    clrscr;

    write('Informe o numero do vendedor: ');

    readln(nv);write('Informe o total de vendas: ');

    readln(tv);

    write('Informe o salario fixo: ');

    readln(sf);

    if tv b + c não formam triângulo algum.Se a2 = b2 + c2 formam um triângulo retângulo.Se a2 > b2 + c2 formam um triângulo obtusângulo.Se a2 < b2 + c2 formam um triângulo acutângulo.

  • 8/15/2019 Lfasfas

    7/36

      Se forem todos iguais formam um triângulo equilátero.Se a = b ou b = c ou a = c então formam um triângulo isósceles 

    program ex11;

    uses crt;

    var a, b, c, aux: integer;

    begin

    clrscr;

    write('Informe o primeiro numero: ');

    readln(a);

    write('Informe o segundo numero: ');

    readln(b);

    write('Informe o terceiro numero: ');

    readln(c);

    if a sqr(b)+sqr(c) then writeln('Formam um triangulo

    obtusangulo.');

    if sqr(a) < sqr(b)+sqr(c) then writeln('Formam um triangulo

    acutangulo.');if (a=b) and (b=c) then

    begin

    writeln('Formam um triangulo equilatero.');

    end

    else

    begin

    if (a=b) or (a=c) or (b=c) then writeln('Formam um triangulo

    isosceles.');

    end;

    end;

    readkey;

    end.

  • 8/15/2019 Lfasfas

    8/36

    12. Escrever um algoritmo/programa em Pascal que lê a hora de início de um jogoe a hora do final do jogo (considerando apenas horas inteiras) e calcula a duraçãodo jogo em horas, sabendo-se que o tempo máximo de duração do jogo é de 24horas e que o jogo pode iniciar em um dia e terminar no dia seguinte. program ex12;

    uses crt;

    var

    hi, hf, dj: integer;

    begin

    clrscr;

    write('Informe a hora inicial do jogo: ');

    readln(hi);

    write('Informe a hora final do jogo: ');

    readln(hf);

    if hf > hi then

    begin

    dj:=hf - hi;

    writeln('O jogo durou ',dj,' horas.');

    end

    else

    begin

    dj:=hf - hi + 24;

    writeln('O jogo durou ',dj,' horas.');

    end;

    readkey;

    end.

    15. A empresa Enxuga Gelo SA decidiu conceder um aumento de salários a seusfuncionários de acordo com a tabela abaixo:

    Salário Atual Índice De Aumento0 - 400,00 15%400,01 - 700,00 12%700,01 - 1.000,00 10%1.000,01 - 1.800,00 7%1.800,01 - 2.500,00 4%acima de 2.500,00 sem aumento

    Escrever um algoritmo/programa em Pascal que lê, para cada funcionário, o seunúmero e o seu salário atual e escreve o numero do funcionário, seu salário atua1,o percentual de seu aumento e o valor do salário corrigido. 

    program ex15;

    uses crt;

    var

    nf: integer;

    pa, sc, sa: real;

    begin

    clrscr;write('Informe o numero do funcionario: ');

    readln(nf);

  • 8/15/2019 Lfasfas

    9/36

    write('Informe o salario atual: ');

    readln(sa);

    if sa400) and (sa700) and (sa1000) and (sa1800) and (sa2500) then pa:=0;

    sc:=sa + sa * pa/100;

    writeln('Funcionario: ', nf);

    writeln('Salario Atual: ',sa:0:2);

    writeln('Percentual de Aumento: ',pa:0:2,'%');

    writeln('Salario Corrigido: ',sc:0:2);

    readkey;

    end.

    end.

    17. Escrever um algoritmo/programa em Pascal que lê 5 valores para a, um decada vez, e conta quantos destes valores são negativos, escrevendo esta informação.

     program ex17;

    uses crt;

    var i, a, cont: integer;

     begin

    clrscr;

    cont:=0;

    for i:= 1 to 5 do

     begin

    write('Informe um valor: ');

    readln(a);

    if a

  • 8/15/2019 Lfasfas

    10/36

    for i:= 100 to 200 do

     begin

    if i mod 2 = 0 then

     begin

    write(i:8);

    end;end;

    readkey;

    end.

    19. Escrever um algoritmo/programa em Pascal que escreve a soma dos númerosentre 0 e 100.

     program ex19;

    uses crt;

    var i, soma: integer;

     begin

    clrscr;

    soma:=0;

    for i:= 0 to 100 do

     begin

    soma:= soma + i;

    end;

    writeln('A soma dos numeros de 0 a 100 e: ', soma);

    readkey;

    end.

    20. Escrever um algoritmo/programa em Pascal que escreve a soma dos númerospares entre 0 e 100.

     program ex20;

    uses crt;

    var i, soma: integer;

     begin

    clrscr;

    soma:=0;

    for i:= 0 to 100 do

     begin

    if i mod 2 = 0 then

     begin

    soma:= soma + i;

    end;

    end;writeln('A soma dos numeros pares de 0 a 100 e: ', soma);

  • 8/15/2019 Lfasfas

    11/36

    readkey;

    end.

    21. Escrever um algoritmo/programa em Pascal que escreve a soma dos números

    múltiplos de 7 entre 100 e 200.

     program ex21;

    uses crt;

    var i, soma: integer;

     begin

    clrscr;

    soma:=0;

    for i:= 100 to 200 do begin

    if i mod 7 = 0 then

     begin

    soma:= soma + i;

    end;

    end;

    writeln('A soma dos numeros multiplos de 7 de 100 a 200 e: ', soma);

    readkey;

    end.

    22. Escrever um algoritmo/programa em Pascal que escreve a soma dos númerosque não são múltiplos de 13 entre 100 e 200.

     program ex22;

    uses crt;

    var i, soma: integer;

     beginclrscr;

    soma:=0;

    for i:= 100 to 200 do

     begin

    if i mod 13 0 then

     begin

    soma:= soma + i;

    end;

    end;

    writeln('A soma dos numeros nao multiplos de 13 de 100 a 200 e: ', soma);

    readkey;

  • 8/15/2019 Lfasfas

    12/36

    end.

    23. Escrever um algoritmo/programa em Pascal que lê 20 valores, um de cada vez,e conta quantos deles estão em cada um dos intervalos [0, 25], (25, 50], (50, 75],

    (75, 100], escrevendo esta informação

     program ex23;

    uses crt;

    var i, x, cont1, cont2, cont3, cont4: integer;

     begin

    clrscr;

    cont1:=0; cont2:=0; cont3:=0; cont4:=0;

    for i:= 1 to 20 do begin

    write('Informe um valor (0-100): ');

    readln(x);

    if (x>=0) and (x25) and (x50) and (x75) and (x

  • 8/15/2019 Lfasfas

    13/36

    for i:= 1 to 20 do

     begin

    write('Informe um valor (0-100): ');

    readln(x);

    if (x>=0) and (x25) and (x50) and (x75) and (x

  • 8/15/2019 Lfasfas

    14/36

    cont:=0;

    for i:= 1 to x do

     begin

    if x mod i = 0 then cont:=cont + 1;

    end;

    writeln('O numero ', x, ' possui ', cont, ' divisores.');readkey;

    end.

    26. Escrever um algoritmo/programa em Pascal que lê um número e calcula eescreve o seu fatorial.

     program ex26;

    uses crt;

    var x, i: integer;

    fat: longint;

     begin

    clrscr;

    write('Informe um numero: ');

    readln(x);

    fat:=1;

    for i:= 1 to x do

     begin

    fat:=fat * i;

    end;

    writeln('O fatorial de ', x, ' e: ', fat);

    readkey;

    end.

    27. Escrever um algoritmo/programa em Pascal que lê um número e escreva se ele"é primo" ou "não é primo"

     program ex27;

    uses crt;

    var x, i, cont: integer;

     begin

    clrscr;

    write('Informe um numero: ');

    readln(x);

    cont:=0;

    for i:= 1 to x do begin

  • 8/15/2019 Lfasfas

    15/36

      if x mod i = 0 then cont:=cont + 1;

    end;

    if cont

  • 8/15/2019 Lfasfas

    16/36

    30. Escrever um algoritmo/programa em Pascal que lê um número nãodeterminado de valores para m, todos inteiros e positivos, um de cada vez. Se m forpar, verificar quantos divisores possui e escrever esta informação. Se m for ímpare menor do que 12 calcular e escrever o fatorial de m. Se m for ímpar e maior ouigua1 a 12 calcular e escrever a soma dos inteiros de l até m.

    Questão do Trabalho.

    31. Escrever um algoritmo/programa em Pascal que lê um número nãodeterminados de valores a, todos inteiros e positivos, um de cada vez, e calcule eescreva a média aritmética dos valores lidos, a quantidade de valores pares, aquantidade de valores impares, a percentagem de valores pares e a percentagem devalores ímpares.

    Questão do Trabalho.

    32. Escrever um algoritmo/programa em Pascal que escreve os números primosentre 100 e 200, bem como a soma destes números.

     program ex32;

    uses crt;

    var x, i, cont: integer;

     begin

    clrscr;

    for x:= 100 to 200 do

     begincont:=0;

    for i:= 1 to x do

     begin

    if x mod i = 0 then cont:=cont + 1;

    end;

    if cont

  • 8/15/2019 Lfasfas

    17/36

     

     program ex33;

    uses crt;

    var i, a, b, c, d, aux: integer;

     begin

    clrscr;

    for i:= 1 to 5 do

     begin

    write('Informe um valor: ');

    readln(a);

    write('Informe um valor: ');

    readln(b);

    write('Informe um valor: ');

    readln(c);

    write('Informe um valor: ');readln(d);

    writeln('Numeros digitados: ', a:6, b:6, c:6, d:6);

    if a

  • 8/15/2019 Lfasfas

    18/36

      begin

    aux := c;

    c := d;

    d := aux;

    end;

    writeln('Em ordem decrescente: ', a:6, b:6, c:6, d:6);readkey;

    end;

    end.

    34. Escrever um algoritmo/programa em Pascal que lê 10 valores para n, um decada vez, todos inteiros e positivos, e para cada n lido, escreva a tabuada de 1 até nde n.

     program ex34;uses crt;

    var i, j, n: integer;

     begin

    clrscr;

    for i:= 1 to 10 do

     begin

    write('Informe um n£mero: ');

    readln(n);

    for j:= 1 to n do

     begin

    writeln(j, ' x ', n, ' = ', j * n);

    end;

    end;

    readkey;

    end.

    35. Escrever um algoritmo/programa em Pascal que lê 5 pares de valores a, b,

    todos inteiros e positivos, um par de cada vez, e com a < b, e escreve os inteirospares de a até b, incluindo o a e b se forem pares.

     program ex35;

    uses crt;

    var i, j, a, b, aux: integer;

     begin

    clrscr;

    for i:= 1 to 5 do begin

  • 8/15/2019 Lfasfas

    19/36

      write('Informe um n£mero: ');

    readln(a);

    write('Informe um n£mero: ');

    readln(b);

    if a>b then

     beginaux:=a;

    a:=b;

     b:=aux;

    end;

    for j:= a to b do

     begin

    if j mod 2 = 0 then writeln(j);

    end;

    end;

    readkey;

    end.

    36. A série de Fibonacci tem como dados os 2 primeiros termos da série que sãorespectivamente 0 e 1. A partir deles, os demais termos são construídos pelaseguinte regra: tn = tn-1 + tn-2. Escrever um algoritmo/programa em Pascal quegera os 10 primeiros termos da Série de Fibonacci e calcula e escreve a somadestes termos.

     program ex36;

    uses crt;

    var ult, pen, nt, i: integer;

     begin

    clrscr;

    writeln('Termos Serie Fibonacci:');

     pen:=0;

    ult:=1;

    writeln(pen);

    writeln(ult);for i:= 1 to 8 do

     begin

    nt:=ult + pen;

    writeln(nt);

     pen:=ult;

    ult:=nt;

    end;

    readkey;

    end.

  • 8/15/2019 Lfasfas

    20/36

    39. Escrever um algoritmo/programa em Pascal que lê 5 conjuntos de 2 valores, oprimeiro representando o número de um aluno e o segundo representando a suaaltura em centímetros. Encontrar o aluno mais alto e o mais baixo e escrever seusnúmeros, suas alturas e uma mensagem dizendo se é o mais alto ou o mais baixo.

    Questão do Trabalho.

    40. Escrever um algoritmo/programa em Pascal que gera e escreve os 5 primeirosnúmeros perfeitos. Um número perfeito é aquele que é igual a soma dos seusdivisores. (Ex.: 6 = l + 2 + 3; 28 = 1 + 2 + 4 + 7 + 14 etc.).

     program ex40;

    uses crt;

    var cont, x, soma, i: integer;

     begin

    clrscr;

    cont:=0;

    x:=0;

    writeln('Os numeros perfeitos sao: ');

    repeat

    x:=x+1;

    soma:=0;

    for i:= 1 to x-1 do

     begin

    if x mod i = 0 then soma:=soma + i;

    end;

    if soma = x then

     begin

    writeln(x);

    cont:=cont+1;

    end

    until cont=4;

    writeln('Pressione qualquer tecla para finalizar...');

    readkey;end.

    41. Escrever um algoritmo/programa em Pascal que lê 50 valores, um de cada vez,e encontra e escreve o maior deles.

     program ex41;

    uses crt;

    var i, x, m: integer;

  • 8/15/2019 Lfasfas

    21/36

     begin

    clrscr;

    for i:= 1 to 50 do

     begin

    write('Informe o ',i,'.o valor: ');

    readln(x);if i=1 then

     begin

    m:=x;

    end;

    if x > m then

     begin

    m:=x;

    end;

    end;

    writeln('O maior valor e: ', m);

    readkey;end.

    42. Escrever um algoritmo/programa em Pascal que gera os números de 1000 a1999 e escreve aqueles que divididos por 11 dão um resto igual a 5.

     program ex42;

    uses crt;

    var

    i: integer;

     begin

    clrscr;

    for i:= 1000 to 1999 do

     begin

    if i mod 11 = 5 then write(i:8);

    end;

    readkey;

    end.

    43. Escrever um algoritmo/programa em Pascal que lê um valor N e calcula eescreve os 20 primeiros termos da série: 1 + 1/x2 + 1/x3 + 1/x4 + ...

     program ex43;

    uses crt;

    var

    x, i: integer;

    t, soma: real; begin

  • 8/15/2019 Lfasfas

    22/36

    clrscr;

    soma:=0;

    write('Informe um valor: ');

    readln(x);

    writeln('Termos:');

    t:=1;writeln(t:0:8);

    soma:=soma+t;

    for i:= 2 to 20 do

     begin

    t:= 1/ (exp(ln(x)*i));

    writeln(t:0:8);

    soma:=soma+t;

    end;

    writeln('A soma e: ', soma:0:8);

    readkey;

    end.

    44. Escrever um algoritmo/programa em Pascal que calcula e escreve o produtodos números primos entre 92 e 1478.

    Questão do Trabalho.

    45. Escrever um algoritmo/programa em Pascal que lê N, inteiro e positivo ecalcula e escreve o termo de ordem N da sucessão abaixo: ordem: 1 2 3 45 6 7 8 ... sucessão: -1 0 5 6 11 12 17 18 ...

     program ex45;

    uses crt;

    var x, i, nro: integer;

     begin

    clrscr;

    write('Informe um numero: ');

    readln(x);nro:=-1;

    for i:= 1 to x do

     begin

    write(nro:4);

    if i mod 2 0 then

     begin

    nro:=nro+1;

    end

    else

     begin

    nro:=nro+5;end;

  • 8/15/2019 Lfasfas

    23/36

      end;

    readkey;

    end.

    47.Escrever um algoritmo/programa em Pascal que lê um vetor V[6] e oescreve. Conte, a seguir quantos valores de V são negativos e escrevaesta informação.

    program ex47;

    uses crt;

    var v: array[1..6] of integer;

    i, cont: integer;

    begin

    clrscr;

    for i:= 1 to 6 do

    begin

    writeln('Informe o ', i ,'§ valor: ');

    readln(v[i]);

    end;

    for i:= 1 to 6 do

    begin

    writeln(v[i]);

    end;

    cont:=0;

    for i:= 1 to 6 do

    begin

    if v[i]

  • 8/15/2019 Lfasfas

    24/36

      x[i]:=1;

    end;

    end;

    for i:= 1 to 100 do

    begin

    writeln(x[i]);

    end;readkey;

    end.

    49. Escrever um algoritmo/programa em Pascal que lê um vetor C[50] e o

    escreve. Encontre, a seguir, o maior elemento de C e o escreva.

    program ex49;

    uses crt;

    var

    c: array[1..50] of integer;

    m, i: integer;

    begin

    clrscr;

    for i:= 1 to 50 do

    begin

    writeln('Informe o ', i ,'§ valor: ');

    readln(c[i]);

    end;

    for i:= 1 to 50 do

    begin

    writeln(c[i]);

    end;

    m:=c[1];

    for i:= 1 to 50 do

    begin

    if c[i]>m then

    begin

    m:=c[i];

    end;

    end;

    writeln('O maior valor e: ', m);

    readkey;

    end.

    50. Escrever um algoritmo/programa em Pascal que lê um vetor N[80] e o

    escreve. Encontre, a seguir, o menor elemento e a sua posição no vetor

    N e escreva: "o menor elemento de n é = ", M, "e a sua posição é = ",P.

    program ex50;

    uses crt;

    var

    n: array[1..80] of integer;

    m, p, i: integer;

    begin

    clrscr;

    for i:= 1 to 80 do

    begin

    writeln('Informe o ', i ,'§ valor: ');

    readln(n[i]);end;

  • 8/15/2019 Lfasfas

    25/36

    for i:= 1 to 80 do

    begin

    writeln(n[i]);

    end;

    m:=n[1];

    p:=1;

    for i:= 1 to 80 dobegin

    if n[i]a[j] then

    begin

    aux:=a[i];a[i]:=a[j];

    a[j]:=aux;

    end;

    end;

    end;

    writeln;

    writeln('Vetor em ordem crescente: ');

    for i:= 1 to 15 do

    begin

    write(a[i]:5);

    end;

    readkey;

    end.

  • 8/15/2019 Lfasfas

    26/36

     

    52. Escrever um algoritmo/programa em Pascal que lê um vetor N[20] e o

    escreve. Troque, a seguir, o 1º elemento com o último, o 2º com o

    penúltimo, etc., até o 10º com o 11º e escreva o vetor N assim

    modificado.

    program ex52;uses crt;

    var

    n: array[1..20] of integer;

    aux, i: integer;

    begin

    clrscr;

    for i:= 1 to 20 do

    begin

    writeln('Informe o ', i ,'§ valor: ');

    readln(n[i]);

    end;

    writeln('Vetor original: ');

    for i:= 1 to 20 do

    begin

    write(n[i]:5);

    end;

    for i:= 1 to 10 do

    begin

    aux:=n[i];

    n[i]:=n[21-i];

    n[21-i]:=aux;

    end;

    writeln;

    writeln('Vetor alterado: ');

    for i:= 1 to 20 do

    begin

    write(n[i]:5);

    end;

    readkey;

    end.

    53. Escrever um algoritmo/programa em Pascal que lê um vetor K(20) e o

    escreve. Troque, a seguir, os elementos de ordem ímpar com os de ordem

    par imediatamente seguintes e escreva o vetor k modificado.

    program ex53;

    uses crt;

    var

    k: array[1..20] of integer;aux, i: integer;

    begin

    clrscr;

    for i:= 1 to 20 do

    begin

    writeln('Informe o ', i ,'§ valor: ');

    readln(k[i]);

    end;

    writeln('Vetor original: ');

    for i:= 1 to 20 do

    begin

    write(k[i]:5);

    end;for i:= 1 to 20 do

  • 8/15/2019 Lfasfas

    27/36

      begin

    if i mod 20 then

    begin

    aux:=k[i];

    k[i]:=k[i+1];

    k[i+1]:=aux;

    end;end;

    writeln;

    writeln('Vetor alterado: ');

    for i:= 1 to 20 do

    begin

    write(k[i]:5);

    end;

    readkey;

    end.

    54. Escrever um algoritmo/programa em Pascal que lê um vetor N[20] e o

    escreve. Troque, a seguir, o 1º elemento com 11º, o 2º com o 12º,

    etc., até o 10º com o 20º e escreva o vetor assim modificado.

    program ex54;

    uses crt;

    var

    n: array[1..20] of integer;

    aux, i: integer;

    begin

    clrscr;

    for i:= 1 to 20 do

    begin

    writeln('Informe o ', i ,'§ valor: ');

    readln(n[i]);

    end;

    writeln('Vetor original: ');

    for i:= 1 to 20 do

    begin

    write(n[i]:5);

    end;

    for i:= 1 to 10 do

    begin

    aux:=n[i];

    n[i]:=n[10+i];

    n[10+i]:=aux;

    end;

    writeln;

    writeln('Vetor alterado: ');for i:= 1 to 20 do

    begin

    write(n[i]:5);

    end;

    readkey;

    end.

    55. Escrever um algoritmo/programa em Pascal que lê um vetor G[20]

    (gabarito) e a seguir lê um número não determinado de números de

    alunos e vetores R[20] (resposta), um número e um vetor R de cada vez.

    O número representa o número de um aluno e o vetor R representa o

    conjunto de respostas daquele aluno. Para cada aluno calcular o nº deacertos e ca1cular a nota.

  • 8/15/2019 Lfasfas

    28/36

      nota = número de acertos * 0.5

    Escrever o nº do aluno, sua nota e a mensagem "aprovado" se tiver

    nota maior ou igual a 5 ou "reprovado" se a nota for menor do que 5.

    program ex55;

    uses crt;

    varg, r:array[1..20] of integer;

    numal, acertos, i: integer;

    nota: real;

    begin

    clrscr;

    writeln('Informe o Gabarito: ');

    for i:= 1 to 20 do

    begin

    write('Resposta ',i,': ');

    readln(g[i]);

    end;

    repeat

    clrscr;

    writeln('Informe o Numero do Aluno (0 para sair): ');

    readln(numal);

    if numal>0 then

    begin

    writeln('Informe as respostas do aluno ',numal);

    for i:= 1 to 20 do

    begin

    write('Resposta ',i,': ');

    readln(r[i]);

    end;

    acertos:=0;

    for i:= 1 to 20 do

    begin

    if r[i]=g[i] then

    begin

    acertos:=acertos+1;

    end;

    end;

    nota:=acertos * 0.5;

    writeln('O aluno ', numal, ' obteve a nota ', nota:0:1);

    if nota>=5 then

    begin

    writeln('Esta aprovado!')

    end

    else

    beginwriteln('Esta reprovado!');

    end;

    readkey;

    end;

    until numal=0;

    end.

    56. Escrever um algoritmo/programa em Pascal que lê 2 vetores K[10] e

    N[10] e os escreve. Crie, a seguir, um vetor M que seja a diferença

    entre K e N (M = K - N) e escreva o vetor M.

    program ex56;uses crt;

  • 8/15/2019 Lfasfas

    29/36

    var

    k, n, m: array[1..10] of integer;

    i: integer;

    begin

    clrscr;

    for i:= 1 to 10 do

    beginwriteln('Informe o ', i ,'§ valor do vetor N: ');

    readln(n[i]);

    end;

    for i:= 1 to 10 do

    begin

    writeln('Informe o ', i ,'§ valor do vetor K: ');

    readln(k[i]);

    end;

    for i:= 1 to 10 do

    begin

    m[i]:=k[i]-n[i];

    end;

    writeln('Vetor N: ');

    for i:= 1 to 10 do

    begin

    write(n[i]:5);

    end;

    writeln;

    writeln('Vetor K: ');

    for i:= 1 to 10 do

    begin

    write(k[i]:5);

    end;

    writeln;

    writeln('Vetor M: ');

    for i:= 1 to 10 do

    begin

    write(m[i]:5);

    end;

    readkey;

    end.

    57. Escrever um algoritmo/programa em Pascal que lê um vetor G[13] que

    é o Gabarito de um teste da loteria esportiva, contendo os valores 1

    (coluna 1), 2(coluna 2), e 3 (coluna do meio). Ler, a seguir, para

    cada apostador, o nº de seu cartão e um vetor Resposta R[13].

    Verificar para cada apostador o nº de acertos e escrever o nº do

    apostador e seu número de acertos. Se tiver 13 acertos, acrescentar

    a mensagem: "ganhador, parabéns!".

    program ex57;

    uses crt;

    var

    g, r:array[1..13] of integer;

    numcart, acertos, i: integer;

    begin

    clrscr;

    writeln('Informe o Resultado da Loteria (Gabarito): ');

    for i:= 1 to 13 do

    begin

    write('Jogo ',i,': ');readln(g[i]);

  • 8/15/2019 Lfasfas

    30/36

      end;

    repeat

    clrscr;

    writeln('Informe o Numero do Cartao (0 para sair): ');

    readln(numcart);

    if numcart>0 then

    beginwriteln('Informe as respostas do cartao ',numcart);

    for i:= 1 to 13 do

    begin

    write('Jogo ',i,': ');

    readln(r[i]);

    end;

    acertos:=0;

    for i:= 1 to 13 do

    begin

    if r[i]=g[i] then

    begin

    acertos:=acertos+1;

    end;

    end;

    writeln('O cartao ', numcart, ' obteve ', acertos,' acertos!');

    if acertos=13 then

    begin

    writeln('Ganhador, Parabens!')

    end;

    readkey;

    end;

    until numcart=0;

    end.

    58. Escrever um algoritmo/programa em Pascal que lê, um vetor V[20] e

    o escreve. Compacte, a seguir, o vetor Y, retirando dele todos os

    valores nulos ou negativos e escreva o vetor compactado.

    program ex58;

    uses crt;

    var

    v, y: array[1..20] of integer;

    cont, i: integer;

    begin

    clrscr;

    for i:= 1 to 20 do

    begin

    writeln('Informe o ',i, '§ valor: ');

    readln(v[i]);end;

    cont:=0;

    for i:= 1 to 20 do

    begin

    if v[i]>0 then

    begin

    cont:=cont+1;

    y[cont]:=v[i];

    end;

    end;

    clrscr;

    writeln('Vetor original:');

    for i:= 1 to 20 dobegin

  • 8/15/2019 Lfasfas

    31/36

      write(v[i]:5);

    end;

    writeln;

    writeln('Vetor compactado: ');

    for i:= 1 to cont do

    begin

    write(y[i]:5);end;

    readkey;

    end.

    59. Escrever um algoritmo/programa em Pascal que lê um vetor V(20) e o

    escreve. Retire, a seguir, os elementos em duplicata, compactando o

    vetor Y, e escrevendo o vetor compactado.

    program ex59;

    uses crt;

    var

    v, y: array[1..20] of integer;

    contpos,cont, i, j: integer;

    begin

    clrscr;

    for i:= 1 to 20 do

    begin

    writeln('Informe o ',i, '§ valor: ');

    readln(v[i]);

    end;

    contpos:=0;

    for i:= 1 to 20 do

    begin

    cont:=0;

    for j:=1 to contpos do

    begin

    if y[j]=v[i] then

    begin

    cont:=cont+1;

    end;

    end;

    if cont=0 then

    begin

    contpos:=contpos+1;

    y[contpos]:=v[i];

    end;

    end;

    clrscr;

    writeln('Vetor original:');for i:= 1 to 20 do

    begin

    write(v[i]:5);

    end;

    writeln;

    writeln('Vetor compactado: ');

    for i:= 1 to contpos do

    begin

    write(y[i]:5);

    end;

    readkey;

    end.

  • 8/15/2019 Lfasfas

    32/36

    61. Escrever um algoritmo/programa em Pascal que lê o 1º termo e a

    razão de uma progressão aritmética e gera os vinte termos seguintes

    desta progressão, armazenando-os em 2 vetores de 10 elementos cada, no

    1º os termos de ordem ímpar de geração e no 2º os de ordem par de

    geração. Escreva a seguir os 2 vetores de forma que os termos

    apareçam na ordem em que foram gerados.

    program ex61;

    uses crt;

    var

    vpar, vimpar: array[1..10] of integer;

    t1, r, x, i: integer;

    begin

    clrscr;

    writeln('1.o termo: ');

    readln(t1);

    writeln('Razao: ');

    readln(r);

    x:=t1;

    for i:= 1 to 10 do

    begin

    vimpar[i]:=x;

    x:=x+r;

    vpar[i]:=x;

    x:=x+r;

    end;

    for i:= 1 to 10 do

    begin

    write(vimpar[i]:5, vpar[i]:5);

    end;

    readkey;

    end.

    62. Escrever um algoritmo/programa em Pascal que gera os 10 primeiros

    números primos acima de 100 e os armazena em um vetor X(10)

    escrevendo, no final, o vetor X.

    program ex62;

    uses crt;

    var

    x: array[1..10] of integer;

    i, num, contdiv, contprimo: integer;

    begin

    clrscr;

    contprimo:=0;

    num:=100;repeat

    num:=num+1;

    contdiv:=0;

    for i:= 1 to num do

    begin

    if num mod i=0 then

    begin

    contdiv:=contdiv+1;

    end;

    end;

    if contdiv

  • 8/15/2019 Lfasfas

    33/36

      end;

    until contprimo=10;

    writeln('Os numeros primos sao: ');

    for i:= 1 to 10 do

    begin

    writeln(x[i]);

    end;readkey;

    end.

    63. Escreva um algoritmo/programa em Pascal que lê uma matriz M(5,5) e

    calcula as somas:

    a) da linha 4 de M

    b) da coluna 2 de M

    c) da diagonal principal

    d) da diagonal secundária

    e) de todos os elementos da matriz

    Escreva estas somas e a matriz.

    program ex63;

    uses crt;

    var

    m: array[1..5,1..5] of integer;

    i, j, sl4, sc2, sdp, sds, soma: integer;

    begin

    sl4:=0; sc2:=0;

    sdp:=0; sds:=0;

    soma:=0;

    clrscr;

    writeln('Informe a matriz: ');

    for i:= 1 to 5 do

    begin

    for j:= 1 to 5 do

    begin

    gotoxy(j*6,i+1);

    readln(m[i,j]);

    end;

    end;

    clrscr;

    writeln('Matriz: ');

    for i:= 1 to 5 do

    begin

    for j:= 1 to 5 do

    begin

    gotoxy(j*6,i+1);

    write(m[i,j]:6);end;

    end;

    for j:= 1 to 5 do

    begin

    sl4:=sl4+m[4,j];

    end;

    for i:= 1 to 5 do

    begin

    sc2:=sc2+m[i,2];

    end;

    for i:= 1 to 5 do

    begin

    sdp:=sdp+m[i,i];sds:=sds+m[i,6-i];

  • 8/15/2019 Lfasfas

    34/36

      end;

    for i:= 1 to 5 do

    begin

    for j:= 1 to 5 do

    begin

    soma:=soma+m[i,j];

    end;end;

    writeln;

    writeln('Soma linha 4: ',sl4);

    writeln('Soma coluna 2: ',sc2);

    writeln('Soma diagonal principal: ',sdp);

    writeln('Soma diagonal secundaria: ',sds);

    writeln('Soma de toda matriz: ',soma);

    readkey;

    end.

    64. Escrever um algoritmo/programa em Pascal que lê uma matriz M(6,6)

    e calcula as somas das partes hachuriadas.

    x X X X X X X X X X X x x X X X X x x x x x x x

    x x X X X X X X X X x x x x X X x x X x x x x x

    x x x X X X X X X x x x x x x x x x X X x x x x

    x x x x X X X X x x x x x x x x x x X X x x x x

    x x x x x X X x x x x x x x x x x x X x x x x x

    x x x x x x x x x x x x x x x x x x x x x x x x

    Escrever a matriz M e as somas calculadas

    65. Escrever um algoritmo/programa em Pascal que lê uma matriz

    M(10,10) e a escreve. Troque, a seguir:

    - a linha 2 com a linha 8.

    - a coluna 4 com a coluna 10

    - a diagonal principal com a secundária

    - a linha 5 com a coluna 10

    Escreva a matriz assim modificada.

    program ex65;

    uses crt;

    var

    m: array[1..10,1..10] of integer;

    aux, i, j: integer;

    begin

    clrscr;

    writeln('Informe a matriz: ');

    for i:= 1 to 10 do

    beginfor j:= 1 to 10 do

    begin

    gotoxy(j*6,i+1);

    {readln(m[i,j]);}

    m[i,j]:=(i-1)*10+j;

    end;

    end;

    clrscr;

    writeln('Matriz: ');

    for i:= 1 to 10 do

    begin

    for j:= 1 to 10 do

    begingotoxy(j*6,i+1);

  • 8/15/2019 Lfasfas

    35/36

      write(m[i,j]:6);

    end;

    end;

    readkey;

    clrscr;

    writeln('Troca da linha 2 com a linha 8:');

    for j:= 1 to 10 dobegin

    aux:=m[2,j];

    m[2,j]:=m[8,j];

    m[8,j]:=aux;

    end;

    for i:= 1 to 10 do

    begin

    for j:= 1 to 10 do

    begin

    gotoxy(j*6,i+1);

    write(m[i,j]:6);

    end;

    end;

    readkey;

    clrscr;

    writeln('Troca da coluna 4 com a coluna 10:');

    for i:= 1 to 10 do

    begin

    aux:=m[i,4];

    m[i,4]:=m[i,10];

    m[i,10]:=aux;

    end;

    for i:= 1 to 10 do

    begin

    for j:= 1 to 10 do

    begin

    gotoxy(j*6,i+1);

    write(m[i,j]:6);

    end;

    end;

    readkey;

    clrscr;

    writeln('Troca da diagonal principal com a secundaria:');

    for i:= 1 to 10 do

    begin

    aux:=m[i,i];

    m[i,i]:=m[i,11-i];

    m[i,11-i]:=aux;

    end;

    for i:= 1 to 10 dobegin

    for j:= 1 to 10 do

    begin

    gotoxy(j*6,i+1);

    write(m[i,j]:6);

    end;

    end;

    readkey;

    clrscr;

    writeln('Troca da linha 5 com a coluna 10:');

    for i:= 1 to 10 do

    begin

    aux:=m[5,i];m[5,i]:=m[i,10];

  • 8/15/2019 Lfasfas

    36/36

      m[i,10]:=aux;

    end;

    for i:= 1 to 10 do

    begin

    for j:= 1 to 10 do

    begin

    gotoxy(j*6,i+1);write(m[i,j]:6);

    end;

    end;

    readkey;

    end.