segunda-feira, 9 de maio de 2016

10 Fases para Criar uma Identidade Visual



Muitos autores referem que a primeira manifestação de Identidade Visual está relacionada com a pré-história e com o registro da mão humana nas paredes das cavernas. Não é completamente errado, embora, essas mãos registradas só comecem a aparecer depois de o homem passar de nômade a sedentário. Há muito tempo atrás, bem antes desses episódios de “registro de identidade” nas paredes das cavernas o homem era nômade e um caçador nato. Reparem como era fantástico, através de uma “MARCA” no chão, ele conseguia interpretar:

a) O tamanho do animal;
b) A direção que o animal seguia;
c) A espécie do animal;
d) Se era apenas um animal ou vários;
e) Se a pegada era recente ou antiga;
f) Se era alimento, perigo (ou ambos)…

Hoje a “MARCA” ou Identidade Visual ainda está relacionada com isso. Impressionante não é?
A Marca é Friendly? Fun? Séria? Atual? Grande/pequena? É frágil ou Forte? É um grupo? Uma extensão? Já alguma vez tinham pensado nisso?
Nós designers, somos “os caçadores” e quando trabalhamos com Identidades Visuais temos de colocar todos os nossos sentidos a funcionar. Desta forma, é bom que façamos a nossa própria metodologia. Relembro que uma metodologia não é para limitar as ações mas sim para nos ajudar a completar o processo sem que nada seja esquecido. Design é dar soluções a problemas e cá vamos nós!
Análise ao Problema

1- Analisar o problema – Neste ponto poderá ser-nos entregue um brief, mas por vezes não nos é entregue nada! Somos nós que temos de absorver o máximo de informações sobre o projeto, devemos de colocar todas as questões ao nosso cliente, sobre a empresa/produto/marca ou serviço. Devemos de resumir todos os pontos essenciais para que consigamos entender exatamente qual é o problema. Público-alvo, Segmentação, Posicionamento, Análise SWOT, Estratégia de Comunicação e Marketing Mix, parece matéria de Marketeer mas é crucial entender neste ponto. Albert Einstein dizia “Um problema bem definido já é a metade da solução”.
Pesquisa

2- Pesquisa Interna/Externa
– Depois de identificar qual o problema, devemos de fazer uma pesquisa profunda internamente (à empresa/serviço/produto) e externamente (à concorrência). Podemos abranger essa pesquisa não só à concorrência nacional como também internacional. Saber não ocupa espaço e quanto mais conhecimento tivermos sobre as outras soluções possíveis dos concorrentes, melhor será a minha solução. Aproveite e pesquise ainda sobre tendências gráficas, cores, padrões, case studies, fontes…etc…
Conceito

3- Brainstorming / Conceito
– Faça-se acompanhar da pesquisa do ponto 2, tenha ideias, muitas ideias para conseguir chegar a um conceito ou mais conceitos (registe-as)! Tenha sempre em mente o problema inicial que já deverá estar muito bem definido. Ilustre os seus conceitos numa parede com imagens (concept board) e com cores (color board). Inspire-se em Keywords que transmitam esse conceito e esquematize (Ex: P+D=B). Refina, filtre, discuta, peça opiniões e escolha os 3+.
Estudo da Forma


4- Estudo
 da forma– Inicie os seus rabiscos baseado-se nos pontos anteriores (Brief/Pesquisa/Conceptual). Utilize apenas preto e branco para controlar a força das formas. Aquí entram também outras disciplinas e teorias – pregnancia, semântica, sintaxe, morfologia, gestalt, ergonomia, psicologia, sociologia…etc. Desenhe e redesenhe sobre papel opaco as suas 500 ideias gráficas. O papel vegetal é super importante, pois é agora que devemos de seguir o raciocínio de fazer junções e alterar registros gráficos, com pontos, linhas, texturas…redesenhando cada vez com mais precisão. Lembre-se o computador é apenas uma ferramenta que nos ajuda, mas se este processo analógico não for realizado, o computador limita-nos a criatividade. Tenha atenção com as linhas muito finas, e lembre-se que o estilo iconográfico é mais perceptível que o estilo realista. Escolha a/s formas que melhor comunicam, desenhe-as com a maior perfeição possível. Fotografe/scane, e passe para o computador para vetorizar a forma num programa vetorial! (esqueça o photoshop). Adapte o seu símbolo a uma grelha de construção geométrica.
Estudo do Lettering

5- Estudo do lettering
– Depois de ter a forma bem desenhada vetorialmente a preto e branco, é altura de estudar vários estilos de lettering de maneira a entendermos qual o estilo que melhor comunica e se adequa ao conceito pretendido. Lembre-se que deverá de imprimir os testes, para poder ver na realidade a força da forma + lettering. Lembre-se também que a tipografia tem regras de legibilidade e existem fontes mais legíveis que outras. Escolha sempre boas fontes!
Estudo das Proporções

6- Estudo das Proporções
– Esta é a fase em que devemos de entender que a força do lettering é tão importante quanto a força do símbolo, deverá de haver unidade, equilíbrio e máxima legibilidade. Para que haja sempre legibilidade na redução de um logotipo poderá se apoiar neste artigo que é uma boa ajuda. Faça testes impressos de redução mínima ao logo, depois de ter entendido exactamente quais as proporções entre forma e lettering, comece a estudar outras possibilidades de assinaturas da marca (sempre a preto e branco).
Estudo da Cor

7- Estudo da cor
– Depois de ter já a forma/lettering/proporção definida, é altura de estudarmos outra das questões mais importantes da Identidade Visual – As Cores. Apoie-se no Color Board do ponto 2 e faça vários testes de cor, junções de cor, misturas, gradiantes, texturas, use lapis de cera, pastel, aguarelas, e até cor impressa na sua impressora. (Tire uma escala de cores na sua impressora, poderá ajudar na maquetização final). Perceba que a cor transmite vários estados de espírito (sinestesia), há significados diferentes para cada cor, e cada cultura atribui às cores o seu próprio significado. Tenha em atenção neste ponto a reprodução da identidade na gráfica, pois o uso da cor se não for bem trabalhado poderá influenciar em muito o orçamento. Também existem cores que têm um processo de conversão mais complicado (diferente) de Pantone/CMYK/RGB/Hexadecimal/RAL…em papeis uncoated e coated

Teste e analise os resultados


8- Teste e analise os resultados
 – Seleccione 3 Identidades diferentes e junto do público-alvo faça o teste de legibilidade, morfologia, sintaxe, semântica, pregnancia …e entenda quais as preferências do público. Utilize essas 3 propostas e os respectivos resultados para comprovar ao seu cliente que já está mais à frente, e que o seu trabalho é sustentado em factos verídicos e reais.

Aplicações Gráficas

9- Aplicação da Identidade Visual
– Aplique a identidade mais votada (no ponto 8) em peças necessárias ao seu cliente justificando, e apresente peças que traga mais valias para o negócio. Surpreenda-o e faça-o entender que você é atento, culto e pensa fora da caixa. Não caia no erro de fazer as peças todas iguais sempre com o mesmo grafismo (chapa7), lembre-se que pode haver uniformidade em todas as peças sendo elas todas diferentes, por isso conte uma história em cada peça. Caso ele entenda que a proposta da identidade visual que você desenvolveu não é a preferida dele, informe-o que está a ir de encontro à analise realizada mas que poderá sempre ajustar o projeto ao que ele pretende.
Apresentação

10- Faça uma apresentação brilhante
– Faça algo original, provoque a emoção UAUHHH. Para além das maquetes rigorosas e impressas leve também uma animação introdutória, home do website, brindes, propostas de promoções, redes sociais etc… também poderá consultar este outro artigo! Faça uma apresentação 360º, apaixonada, carregada de crença e optimismo.
Desta forma conseguimos separar as águas e justificar ao cliente o porquê do nosso valor. Não se salta para o computador e faz-se um logotipo por 25€. Esse é um problema que leio muitas vezes por aí (o sobrinho que faz mais barato) o sobrinho vai ser a sentença do cliente, mas como é da família é… muito talentoso. A diferença tem que saltar à vista pela qualidade e fundamentação. Bons projetos a todos, muito ânimo e sejam sempre fiéis à ética profissional.


quinta-feira, 28 de abril de 2016

Exercicios Pascal



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
   begin
   r:= 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édia aritmética, harmônica e geométrica correspondente.
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;
 
var
nf, 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.
 


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 fixo por mês, mais uma  comissão também fixa para cada carro vendido e mais 5%  do valor das 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
   begin
   aux:=a;
   a:=c;
   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 os escreva. 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
   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 vendedor de 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 vendas por ele efetuadas.
A comissão é de 3% sobre o total de vendas até $ 1.000,00  e 5% sobre o que ultrapassa este valor.
Escrever o número do vendedor, o total de suas vendas,  seu salário fixo e seu salá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<=1000 then
   begin
   st:= sf + tv * 3 / 100;
   end
else
   begin
   st:= sf + (tv-1000) * 5 / 100 + 30;
   end;
writeln('O vendedor ', nv, ' recebe um salario total de R$ ', st:0:2);
readkey;
end.

11. Escrever um algoritmo/programa em Pascal que lê 3 comprimentos de lados a, b, c e os ordena em ordem decrescente, de modo que o a represente o maior dos 3 lados lidos.
Determine, a seguir, o tipo de triângulo que estes 3 lados formam, com base nos seguintes casos escrevendo sempre os valores lidos e uma mensagem adequada:
    Se a > 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.
    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<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 a>b+c then
   begin
   writeln('Nao forma triangulo.');
   end
else
    begin
    if sqr(a) = sqr(b)+sqr(c) then writeln('Formam um triangulo retangulo.');
    if sqr(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.


12. Escrever um algoritmo/programa em Pascal que lê a hora de início de um jogo  e a hora do final do jogo (considerando apenas horas inteiras) e calcula a duração do jogo em horas, sabendo-se que o  tempo máximo de duração do jogo é de 24 horas 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 seus funcionários de acordo com a tabela abaixo:

Salário Atual    Índice De Aumento
0 - 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 seu nú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);
write('Informe o salario atual: ');
readln(sa);
if sa<=400 then pa:=15;
if (sa>400) and (sa<=700) then pa:=12;
if (sa>700) and (sa<=1000) then pa:=10;
if (sa>1000) and (sa<=1800) then pa:=7;
if (sa>1800) and (sa<=2500) then pa:=4;
if (sa>2500) 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 de cada 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<0 then cont:=cont+1;
    end;
writeln('Existem ',cont,' valores negativos.');
readkey;
end.

18. Escrever um algoritmo/programa em Pascal que escreve os números pares entre 100 e 200.
program ex18;
uses crt;

var i: integer;

begin
clrscr;
writeln('Os numeros pares de 100 a 200 sao: ');
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úmeros entre 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úmeros pares 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);
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úmeros que não são múltiplos de 13 entre 100 e 200.

program ex22;
uses crt;

var i, soma: integer;

begin
clrscr;
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;
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 (x<=25)  then cont1:=cont1 + 1;
    if (x>25) and (x<=50)  then cont2:=cont2 + 1;
    if (x>50) and (x<=75)  then cont3:=cont3 + 1;
    if (x>75) and (x<=100) then cont4:=cont4 + 1;
    end;
writeln('No intervalo  0 -  25 existem ', cont1, ' numeros.');
writeln('No intervalo 26 -  50 existem ', cont2, ' numeros.');
writeln('No intervalo 51 -  75 existem ', cont3, ' numeros.');
writeln('No intervalo 76 - 100 existem ', cont4, ' numeros.');
readkey;
end.

24. Escrever um algoritmo/programa em Pascal semelhante ao anterior que calcula as médias aritméticas de cada intervalo e as escreve, juntamente com o número de valores de cada intervalo.

program ex24;
uses crt;

var
i, x, cont1, cont2, cont3, cont4, soma1, soma2, soma3, soma4: integer;
m1, m2, m3, m4: real;

begin
clrscr;
cont1:=0; cont2:=0; cont3:=0; cont4:=0;
soma1:=0; soma2:=0; soma3:=0; soma4:=0;

for i:= 1 to 20 do
    begin
    write('Informe um valor (0-100): ');
    readln(x);
    if (x>=0) and (x<=25)  then
       begin
       cont1:=cont1 + 1;
       soma1:=soma1 + x;
       m1:=soma1 / cont1;
       end;
    if (x>25) and (x<=50)  then
       begin
       cont2:=cont2 + 1;
       soma2:=soma2 + x;
       m2:=soma2 / cont2;
       end;
    if (x>50) and (x<=75)  then
       begin
       cont3:=cont3 + 1;
       soma3:=soma3 + x;
       m3:=soma3 / cont3;
       end;
    if (x>75) and (x<=100) then
       begin
       cont4:=cont4 + 1;
       soma4:=soma4 + x;
       m4:=soma4 / cont4;
       end;
    end;
writeln('No intervalo  0 -  25 existem ', cont1, ' numeros e a media e: ', m1:0:2);
writeln('No intervalo 26 -  50 existem ', cont2, ' numeros e a media e: ', m2:0:2);
writeln('No intervalo 51 -  75 existem ', cont3, ' numeros e a media e: ', m3:0:2);
writeln('No intervalo 76 - 100 existem ', cont4, ' numeros e a media e: ', m4:0:2);
readkey;
end.

25. Escrever um algoritmo/programa em Pascal que lê um número e calcula e escreve quantos divisores ele possui.

program ex25;
uses crt;

var x, i, cont: integer;

begin
clrscr;
write('Informe um numero: ');
readln(x);
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 e escreve 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
    if x mod i = 0 then cont:=cont + 1;
    end;
if cont<=2 then
   begin
   writeln('O numero ', x, ' e primo.');
   end
else
    begin
    writeln('O numero ', x, ' nao e primo.');
    end;
readkey;
end.

28. Escrever um algoritmo/programa em Pascal que escreve os números múltiplos de 7 entre 100 e 200, bem como a soma destes números.

program ex28;
uses crt;

var i, soma: integer;

begin
clrscr;
soma:=0;
writeln('Os numeros multiplos de 7 de 100 a 200 sao:');
for i:= 100 to 200 do
    begin
    if i mod 7 = 0 then
       begin
       write(i:8);
       soma:= soma + i;
       end;
    end;
writeln;
writeln;
writeln('A soma dos numeros multiplos de 7 de 100 a 200 e: ', soma);
readkey;
end.

29. Escrever um algoritmo/programa em Pascal que lê um número não conhecido de valores, um de cada vez, e conta quantos deles estão em  cada um dos intervalos  [0, 50], (50, 100], (100,200]. O programa deve encerrar quando for informado um valor fora dos intervalos.

Questão do Trabalho.
30. Escrever um algoritmo/programa em Pascal que lê um número não determinado de valores para m, todos inteiros e positivos, um de cada vez. Se m for par, verificar quantos divisores possui e  escrever esta informação. Se m for ímpar e menor do que 12 calcular e escrever o fatorial de m. Se m for ímpar e maior ou igua1 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ão determinados de valores a, todos inteiros e positivos, um de cada vez, e calcule e escreva a média aritmética dos valores lidos, a quantidade de valores pares, a quantidade de valores impares, a percentagem de valores pares e a percentagem de valores ímpares.

Questão do Trabalho.
32. Escrever um algoritmo/programa em Pascal que escreve os números primos entre 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
    begin
    cont:=0;
    for i:= 1 to x do
        begin
        if x mod i = 0 then cont:=cont + 1;
        end;
    if cont<=2 then
       begin
       writeln('O numero ', x, ' e primo.');
       end;
    end;
readkey;
end.

33. Escrever um algoritmo/programa em Pascal que lê 5 conjuntos de 4 valores a, b, c, d, um conjunto por vez e os escreve assim como foram lidos. Em seguida, ordene-os em ordem decrescente e escreva-os novamente.

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<b then
       begin
       aux := a;
       a   := b;
       b   := aux;
       end;
    if a<c then
       begin
       aux := a;
       a   := c;
       c   := aux;
       end;
    if a<d then
       begin
       aux := a;
       a   := d;
       d   := aux;
       end;
    if b<c then
       begin
       aux := b;
       b   := c;
       c   := aux;
       end;
    if b<d then
       begin
       aux := b;
       b   := d;
       d   := aux;
       end;
    if c<d then
       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 de cada vez, todos inteiros e positivos, e para cada n lido, escreva a tabuada de 1 até n de 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 inteiros pares 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
    write('Informe um n£mero: ');
    readln(a);
    write('Informe um n£mero: ');
    readln(b);
    if a>b then
       begin
       aux:=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ão respectivamente 0 e 1. A partir deles, os demais termos são construídos pela seguinte regra: tn = tn-1 + tn-2. Escrever um algoritmo/programa em Pascal que gera os 10 primeiros termos da Série de Fibonacci e calcula  e escreve a soma destes 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.

39. Escrever um algoritmo/programa em Pascal que lê 5 conjuntos de 2 valores, o primeiro representando o número de um aluno e o segundo representando a sua altura em centímetros. Encontrar o aluno mais alto e o mais baixo e escrever seus nú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 primeiros números perfeitos. Um número perfeito é aquele que é igual a soma dos seus divisores. (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;

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 a 1999 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 e escreve 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
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  produto dos números primos entre 92 e 1478.

Questão do Trabalho.
45. Escrever um algoritmo/programa em Pascal que lê N, inteiro e positivo e calcula e escreve o termo de ordem N da sucessão abaixo: ordem:      1    2    3    4    5    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;
    end;
readkey;
end.

47.Escrever um algoritmo/programa em Pascal que lê um vetor V[6] e o escreve. Conte, a seguir quantos valores de V são negativos e escreva esta 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]<0 then
       begin
       cont:=cont+1;
       end;
    end;
writeln('Existem ',cont,' valores negativos.');
readkey;
end.
 
48. Escrever um algoritmo/programa em Pascal que lê um vetor X(100) e o  escreve. Substitua, a seguir, todos os valores nulos de X por 1   e escreva novamente o vetor  x
 
program ex48;
uses crt;
var
x: array[1..100] of integer;
i: integer;
begin
clrscr;
for i:= 1 to 100 do
    begin
    writeln('Informe o ', i ,'§ valor: ');
    readln(x[i]);
    end;
for i:= 1 to 100 do
    begin
    writeln(x[i]);
    end;
for i:= 1 to 100 do
    begin
    if x[i]=0 then
       begin
       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;
for i:= 1 to 80 do
    begin
    writeln(n[i]);
    end;
m:=n[1];
p:=1;
for i:= 1 to 80 do
    begin
    if n[i]<m then
       begin
       m:=n[i];
       p:=i;
       end;
    end;
writeln('O menor valor e: ', m, ' e esta na posicao ', p);
readkey;
end.
 
 
 
51. Escrever um a1goritmo que lê um vetor A[15] e o escreve. Ordene, a seguir os elementos de A em ordem crescente e escreva novamente A.
 
program ex51;
uses crt;
var
a: array[1..15] of integer;
aux, j, i: integer;
begin
clrscr;
for i:= 1 to 15 do
    begin
    writeln('Informe o ', i ,'§ valor: ');
    readln(a[i]);
    end;
writeln('Vetor original: ');
for i:= 1 to 15 do
    begin
    write(a[i]:5);
    end;
for i:= 1 to 14 do
    begin
    for j:= i+1 to 15 do
       begin
       if a[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.
 
 
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
    begin
    if i mod 2<>0 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º de acertos e ca1cular a nota.
        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;
var
g, 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
       begin
       writeln('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;
var
k, n, m: array[1..10] of integer;
i: integer;
begin
clrscr;
for i:= 1 to 10 do
    begin
    writeln('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]);
    end;
repeat
clrscr;
writeln('Informe o Numero do Cartao (0 para sair): ');
readln(numcart);
if numcart>0 then
   begin
   writeln('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 do
    begin
    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.
 
 
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<=2 then
   begin
   contprimo:=contprimo+1;
   x[contprimo]:=num;
   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];
    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
    begin
    for 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
        begin
        gotoxy(j*6,i+1);
        write(m[i,j]:6);
        end;
    end;
readkey;
clrscr;
writeln('Troca da linha 2 com a linha 8:');
for j:= 1 to 10 do
    begin
    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 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 linha 5 com a coluna 10:');
for i:= 1 to 10 do
    begin
    aux:=m[5,i];
    m[5,i]:=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;
end.
 

Modelo 2 Tec Meio Ambiente.

Modelo