Академический Документы
Профессиональный Документы
Культура Документы
a) 37 mod 7
b) trunc(45.3)
c) abs(round(-6.7))
d) sqr(3.5)
e) not(not(93>57))
f) 91 div 8
g) (7>6) and (3<=4)
h) 2.0+3.0*4.0-7.0/7.0+4.5
002 )
Escreva a saída que será dada pelo computador ao executar o trecho de programa abaixo:
........
a:=40;
write ('votos nulos, ');
writeln ('brancos e ');
write ('abstencoes chegam ');
write ('a',a:3,' %');
........
003 )
Substitua cada um dos pares de comandos de atribuição abaixo por um único comando de
atribuição:
a) l:=a+5;
l:=b-2;
b) m:=a+5;
m:=m*2;
c) n:=2*n-2;
n:=n div 2 - 3
004 )
005 )
A)
B)
006 )
Escreva um programa Pascal para ler do teclado as medidas de dois ângulos, ambas
expressas por valores inteiros de graus, minutos e segundos, e em seguida calcular e
imprimir a medida da soma destes dois ângulos, também em graus, minutos e segundos.
007 )
O algoritmo a seguir, criado pelo astrônomo napolitano Aloysius Lilius e pelo matemático e
jesuíta alemão Christopher Clavius, no fim do século 16, é utilizado para calcular a data do
domingo de Páscoa para qualquer ano após 1582.
2. Cálculo do século
C = {Y/100} + 1
3. Correções
X = {3C / 4} - 12
Z = {(8C+5) / 25 } - 5
X é o número de anos, como 1990, que não são bissextos, Z é uma correção especial
para sincronizar a Páscoa com a órbita lunar.
4. Achar o domingo
D = {5Y / 4} - X - 10
5.
E = (11G + 20 + Z - X) MOD 30
Se E = 25 e G é maior que 11, ou se E = 24, então some 1 a E
7. Avanço do domingo
N = N + 7 - (( D + N ) MOD 7)
8. Cálculo do mês
Se N > 31 então a data é (N-31) de abril senão é N de março.
Faça um programa que siga esses passos e calcule o domingo de Páscoa em um ano
fornecido pelo usuário, imprimindo nos formato:
11/4/1993
ou
31 de março de 1991
008 )
Mostre o que será impresso quando o programa Q1 for executado com cada um dos cinco
conjuntos de dados abaixo.
program Q1;
var
x, y : real;
begin
writeln ('Entre com as coordenadas do ponto');
readln (x, y);
if x < 0.0
then if y < (x-4.0)/2.0
then writeln ('Mensagem 1')
else writeln ('Mensagem 2')
else if x = 0.0
then writeln ('Mensagem 3')
else if x < 4.0
then if (y > (x-4.0)/2.0) and (y < 0.0)
then writeln ('Mensagem 4')
else writeln ('Mensagem 5')
else if x = 4.0
then writeln ('Mensagem 6')
else if (y < (x-4.0)/2.0) and (y > 0.0)
then writeln ('Mensagem 7')
else writeln ('Mensagem 8');
writeln ('Mensagem 9');
end.
Dados:
8.0 4.0
-4.0 -6.0
1.0 -1.0
10.0 2.0
-6.0 -4.0
009 )
Complete o programa CEDULAS dado abaixo. Este programa deve ler um inteiro N,
calcular e imprimir a quantidade mínima de cédulas de R$ 500, R$ 100, R$ 50, R$ 10, R$
5, R$ 1 que são necessárias para pagar exatamente a importância dada pelo inteiro N. Por
exemplo, se a importância a pagar for R$ 309 então o programa deverá imprimir :
3 cedula(s) de R$ 100
1 cedula(s) de R$ 5
4 cedula(s) de R$ 1
Nota: As cedulas com quantidade igual a zero não devem ser listadas.
program CEDULAS;
var
N : integer; {importancia a pagar}
a, b, c, d, e, f : integer; {quantidade de cedulas}
begin
writeln ('Entre com a importancia a ser paga')
readln (N);
if N >= 500 then
...
end.
010 )
Para cada uma das expressões Pascal abaixo, indique a ordem de execução e o tipo de
resultado (inteiro, real ou booleano) de cada operação e do valor final da expressão:
011 )
Escreva um programa Pascal que leia os valores x (real) e n (inteiro) e calcule o valor da
série abaixo:
012 )
Considere a última expressão de cada um dos dois trechos de programa Pascal abaixo. Para
cada uma destas expressões indique a ordem de avaliação, o valor e o tipo de cada resultado
intermediário bem como o valor final da expressão e seu tipo.
program primeiro;
var a,b,c : real;
r1 : ... ;
begin
a := 2.0; b:= -14.0; c:= 24.0;
r1:= (-b+sqrt(sqr(b)-4*a*c))/(2*a);
...
end.
program segundo;
var x,y,z: integer;
r2 : ... ;
begin
x:= 3; y:= 7; z:= 9;
r2:= odd(trunc(sqrt(z/x*z*y)) mod y div 2) and (x+y=z+1);
...
end.
013 )
Mostre o que aparecerá na tela do terminal quando o programa teste for executado para
cada um dos conjuntos de dados abaixo:
a) 5 9 4
b) 4 4 3
c) 3 5 -2
program teste ;
var a,c,d: integer;
b : boolean;
begin
writeln ('Entre com tres numeros inteiros: ');
readln (a,c,d);
if (a>=c-d div 2) or (c>d-2) and (d>c mod 2)
then b:= a= c
else b:= a= round (c/2);
writeln ('O teste deu ', b);
end.
014 )
Pede-se escrever um programa Pascal para ler os valores reais das coordenadas x e y de um
ponto P do plano, fornecidas pelo usuário por meio do teclado, e em seguida determinar e
exibir na tela se o ponto P está na região 1 ou na região 2 ou na região 3 ou em nenhuma
das três regiões consideradas.
015 )
A e B são dois números inteiros maiores que zero. Escrever um programa Pascal para ler os
valores de A e B fornecidos pelo teclado, e em seguida exibir na tela todos os divisores
comuns de A e B, isto é, todos os números que simultâneamente, dividem A e B.
016 )
V é um vetor de vinte elementos reais, cujo índice é do tipo 1 .. 20. Pede-se um programa
Pascal para ler os valores dos vinte elementos de V fornecidos pelo usuário através do
teclado e, em seguida determinar e exibir na tela (com mensagem apropriada) o maior valor
da diferença entre cada elemento V[i] e o elemento V[i-1], isto é, o maior valor das
diferenças
V[2] - V[1]
V[3] - V[2]
V[4] - V[3]
...
V[20] - V[19]
017 )
Escreva um programa Pascal que leia um número inteiro positivo cujo valor esteja
compreendido entre 100 e 999 inclusive (100 <= N <= 999) e apresente no vídeo em linhas
diferentes os 3 dígitos que compõem o número submetido.
Ex: N = 609
6
0
9
019 )
Program questao4;
var
a, b, c, I : integer;
F: boolean;
begin
F:= false;
c:= 6;
read (a, b);
for I := 1 to 4 do
begin
if c mod b = 0
then begin
c := c + a;
write (a, F);
end
else begin
c := c - b;
b := b + 1;
end;
F := F or (a=b);
a := a div 2;
writeln (b, c);
end;
end.
020 )
Escreva um programa em Pascal que a partir de um número N real lido do terminal calcule
o valor da série abaixo:
021 )
V é um vetor com n <= 50 elementos reais. Escreva um programa Pascal para obter pelo
teclado o inteiro n e em seguida os n valores reais para os n primeiros elementos de V.
O seu programa deve então mostrar na tela os n elementos do vetor dado, bem como todos
os pares de valores
Vi e Vi+1
para os quais
Vi > Vi+ 1
022 )
No plano XOY considere os quadrados ABCD e EFGH:
A(5.0, 5.0), B(-5.0, 5.0), C(-5.0, -5.0), D(5.0, -5.0)
E(3.0, 3.0), F(-3.0, 3.0), G(-3.0, -3.0), H(3.0, -3.0)
Estes quadrados determinam três regiões no plano XOY:
023 )
x = 15.2 y = 11.4 w = 23 z = 7 ,
024 )
Escreva um programa Pascal para ler um número inteiro N e em seguida ler N números
reais, todos dados pelo teclado. Determinar e apresentar na tela quantos destes N números
reais são negativos, quantos são nulos e quantos são positivos.
025 )
Faça um programa em Pascal para calcular e mostrar no vídeo o valor aproximado para PI
obtido por meio da soma dos primeiros 200 termos da série dada abaixo:
026 )
Faça um progama para escrever uma tabela de 20 linhas e 5 colunas contendo na primeira
coluna os números de 1 a 20, na segunda seus quadrados, na terçeira suas raízes quadradas,
na quarta seus cubos e na quinta suas raízes cúbicas. Os valores devem ser apresentados
com quatro casas decimais.
027 )
Se n > 0,
028 )
Escreva um programa Pascal para ler um número real, positivo T, calcular e imprimir o
valor de :
f(T) =
No cálculo de f(T) considere a soma dos 50 primeiros termos da série, isto é, os termos em
w1, w3, w5 ..., w99.
030 )
Faça um programa Pascal que leia um valor real, armazenando em um vetor e verifique se o
mesmo já foi digitado anteriormente. Caso este valor já tenha sido digitado, substitua o
valor anterior por zero e interrompa imediatamente o processo de pesquisa.
O programa terminará quando 100 valores forem digitados.
Imprima os 100 valores armazenados.
031 )
Cria um programa Pascal, no qual a partir de três valores ele diga o tipo de triângulo
existente.
{Marcus Vinicius de Araujo Lessa}
{28/03/2001}
032 )
Faça um programa pascal que diga se três pontos estao sobre uma mesma reta ou não!
{Flavio de Souza Gatto DRE: 101133182}
{02/04/2001}
033 )
Faça um programa Pascal que dado 2 pontos de coordenada XoY dar a equação da reta.
{Flavio de Souza Gatto DRE 101133182}
{02/04/2001}
034 )
Faça um programa que calcule a distância entre dois pontos fornecidos na forma P(X,Y):
{RAFAEL OLIVEIRA DA MOTA DRE: 101128616}
{02/04/2001}
035 )
Faça um programa para o calculo da velocidade media em plano inclinado em cm/s. Seu
programa deverá ler os valores da altura e comprimento do plano inclinado e as distâncias
percorridas nos instantes t1 e t2.
{Danielly de Azevedo Pereira DRE: 100179664}
{06/04/2001}
036 )
Faça um programa para o cálculo da idade de uma pessoa. Seu programa deve perguntar a
data de nascimento e a data de hoje e apresentar apenas quantos anos a pessoa possui.
{Danielly de Azevedo Pereira DRE: 100179664}
{06/04/2001}
037 )
038 )
Fazer um programa que pergunte ao usuário o tamanho do quadrado, feito somente com a
letra x conforme exemplos abaixo.
{Thiago R. Takaki DRE: 100113090}
{06/04/2001}
xxxxx
xxxx
x x
x x
x x
x x
x x
xxxx
xxxxx
4x4
5x5
039 )
José tem cartões de creditos de dois bancos. Para saques em dinheiro sobre cartão, o Banco
Popular cobra juros simples de 0,41333% ao dia sobre a quantia inicialmente emprestada.
O Banco Estrelas cobra uma taxa fixa (independente do valor) de R$20,00 para cada
operação de saque em dinheiro mais juros simples de 0,26666% ao dia sobre a quantia
inicialmente emprestada. Fazer um programa para que o computador diga a José qual dos
dois cartões ele deve usar. O programa pergunta a quantia e o numero de dias até a data
prevista do pagamento do saque sobre o cartão. Logo em seguida indica o cartão mais
vantajoso (aquele que resultará no menor pagamento) escrevendo uma mensagem com o
nome do banco. Exemplo:
-------------------------tela deexecução---------------------------------------
PROGRAMA DE APOIO À DECISÃO FINANCEIRA
De quanto será o emprestimo? R$540,00
Por quantos dias? 8
O cartão mais vantajoso é o do Banco Popular.
-------------------------------------------------------------------------------------
{Thiago R. Takaki DRE: 100113090}
{06/04/2001}
040 )
Faça um programa que leia três valores e apresente como resultado uma mensagem
indicando se estes formam um triângulo.
{Anderson Teixeira Kreischer DRE: 101105804}
{06/04/2001}
041 )
Faça um programa Pascal que determine o número de vertices d um poliedro convexo que
tem 3 faces triangulares, 1 face quadrangular , 1 pentagonal e 1 hexagonal.
{Diane Yuki Murayama DRE: 101120870}
{06/04/2001}
042 )
Faça um programa Pascal que calcule a área de um certo triângulo equilátero inscrito em
uma circunferência com raio a ser fornecido.
{Diane Yuki Murayama DRE: 101120870}
{06/04/2001}
043 )
Um hotel que recebe hóspedes em regime de pensão completa tem preços diferenciados por
idade e sexo conforme está indicado abaixo:
Faça um programa que primeiro pergunte a idade do hóspede e depois, somente se for
necessário,o sexo, para em seguida fornecer o preço da diária. Uma possível tela de
execução do seu programa seria:
044 )
045 )
046 )
número : xyzw
(xy + zw)2 = xyzw
047 )
Este programa nos indica entre um número n de clientes, aquele que fez a maior solicitação
de empréstimo ao banco.
Uma tela possível de seu programa seria:
048 )
Faça um programa para calcular a equação da reta dado dois pontos ou o angulo da reta e
um ponto.
049 )
Faça um programa Pascal para calcular a soma dos N primeiros termos da série dada
abaixo:
050 )
Faça um programa Pascal para ler 200 notas e apresentar uma mensagem se todas as notas
são válidas ou seja, se todas as notas estão no intervalo de 0 à 10. Após apresentação da
mensagem apresentar a média apenas dos valores válidos e em seguida apresentar estes
valores.
051 )
Ex:
Informação de Entrada:
9621453
Informação de Saída:
Ano: 96
Semestre: 2
Carreira: 14
Aluno: 53
052 )
O país está vivendo uma crise no setor energético. Para melhor planejar os investimentos
no setor é preciso saber a média do consumo no período diurno e no noturno. O período
diurno vai de 7 h até às 19 h e o noturno das 19h até às 7h.
Faça um programa que leia o consumo de 0h até 1h, de 1h até 2h, de 2h até às 3h etc
(obedecendo esta ordem), e imprima as médias referentes aos períodos diurno e noturno.
053 )
Faça um programa que leia 50 valores reais e imprima quantas vezes o último valor foi
digitado.
054 )
Faça um programa em pascal onde uma matriz [3*3] será preenchida com zeros, exceto a
diagonal principal, onde cada elemento receberá 1.
program DECIDE;
var
N : integer;
begin
write ('Forneca valor : ');
readln (N);
if primo
then writeln (N:5, ' E UM NUMERO PRIMO')
else writeln (N:5, 'NAO E UM NUMERO PRIMO');
end.
TA = ABWZCDEFG A = 9 TN = WZ N = 2 P = 2
program questao;
const lim=10;
var
mat: array [1..lim,1..lim] of integer;{matriz }
dim1,dim2:integer; {dimensões da matriz}
ind1,ind2:integer; {índices da matriz}
begin
writeln ('Forneca as dimensoes da matriz');
readln ( dim1,dim2);
for ind1:=1 to dim1 do
begin
for ind2:=1 to dim2 do read ( mat[ind1,ind2] );
readln;
end ;
for ind2:=1 to dim2 do
begin
for ind1:=1 to dim1 do write(mat[ind1,ind2]:3);
writeln;
end;
end.
Dados fornecidos pelo teclado para este exercício:
34
40
6789
56349
5
7
82105662
060 )
O programa abaixo lê um nome e determina quantas vogais existem neste nome. Prepare
uma função de nome NumVogais que determina quantas vogais existem no nome,
retornando um número inteiro como valor. O nome é fornecido somente com letras
minúsculas.
program questao2;
type str=array [1..50] of char;
var nome:str;
{------------------------------}
procedure LeNome( var dados:str);
var k,n:integer; {contadores}
begin
k:=1;
while not eoln and (k<51) do
begin
read(dados[k]);
k:=k+1
end;
for n:=k to 50 do dados[n]:=' ';
readln;
end {LeNome};
{------------------------------}
function NumVogais( ...
PREPARE ESTA FUNÇÃO
{------------------------------}
begin
writeln('Forneca um nome com ate 50 caracteres');
LeNome ( nome);
writeln ('Este nome contem ', Numvogais(nome):3, ' vogais');
end.
061 )
Prepare um programa que:
a-Leia VÁRIOS conjuntos de 3 coeficientes da equação da parábola: y= a*x*x + b*x + c,
b-Discuta a equação, escrevendo as seguintes mensagens:
062 )
Se abs(x) for maior ou igual a 1 o programa emite mensagem de erro: 'Não há definição
para valor fornecido'.
Calcular a série até que o valor absoluto de termo seja menor que 1.0E-20.
063 )
Exemplo:
fornecido -- 1.0 5.0 3.0 4.0 8.0 9.0 7.0 5.0 3.0 1.0
calculado -- 3.0 3.0 4.0 5.0 7.0 8.0 7.0 5.0 3.0 2.0
064 )
Mostre o que será impresso pelo programa questao2. O valor dado para x é o inteiro 4.
Justifique sua resposta.
program questao2;
var x : integer;
{------------------------------}
procedure pa( var y:integer);
begin
y := y*2;
end {pa};
{------------------------------}
procedure pb (x : integer);
begin
x := x + 5;
end {pb};
{------------------------------}
begin
writeln('Entre com um valor inteiro para x');
readln (x);
pb(x);
writeln (x);
pa(x);
writeln (x);
end.
065 )
program questao3;
const TamMax = 10;
type matriz = array [1..TamMax, 1..TamMax] of real;
var A, B, C : matriz;
m, n : integer;
procedure le (p, q : integer; var x : matriz);
var i, j : integer;
begin
for i := 1 to p do
begin
writeln ('Entre com os elementos da linha', i:4);
for j := 1 to q do read (x[i,j]);
readln;
end;
end;
procedure constroi (.....);
{ voce deve escrever a definição deste procedimento }
066 )
067 )
program fatorial;
var num, i, fat: integer;
begin
write ('Qual o numero?');
readln (num);
if num < 0 then
writeln ('OPS!!!')
else
begin
fat :=1;
for i :=1 to num do
fat := fat * i;
writeln ('Fatorial',fat);
end;
end.
068 )
Reescreva o programa abaixo substituindo o procedimento CALCULA por uma função que
não utiliza variáveis globais.
program q2;
const NT=5;
type p = array [1 .. NT] of integer;
var i, result: integer;
pol : p;
procedure calcula (pol:p);
begin
result := 1;
for i := 1 to NT do
result := result+i*pol[i];
end;
begin
for i := 1 to NT do
read (pol [i]);
calcula (pol);
writeln (result);
end.
069 )
Escolha e escreva uma sequencia de 6 números inteiros ao acaso. O que será impresso pelo
programa q3 abaixo quando fornecida a sequencia escolhida?
program q3;
const
NL=2;
NC=3;
type
IL = 1..NL;
IC = 1..NC;
var
l,c,i,j, elem : integer;
mat: array[IL, IC] of integer;
begin
for l:= 1 to NL do
for c:= 1 to NC do
begin
read (elem);
if odd (elem) then
mat [l,c]:= 2*elem
else
mat[l,c]:=elem div 2;
end;
for i:= 1 to NC do
begin
for j:=1 to NL do
write (mat [j,i]);
writeln;
end;
end.
070 )
Escolha e escreva uma sequencia de 5 números ao acaso que contenha o número zero e seja
terminada por um número negativo. O que será impresso pelo programa q4 abaixo quando
esta sequencia for fornecida?
program q4;
const N = 10;
BASE = 16;
var
pilha : array [1 .. N] of integer;
digito : array [0 .. 15] of char;
numero : integer;
procedure inicializa;
var i : integer;
begin
for i := 0 to 9 do digito [i] := chr (ord ('0') + i);
for i := 10 to 15 do digito [i] := chr (ord ('A') + i - 10);
end;
begin
inicializa;
readln (numero);
while not (numero < 0) do
begin
converte (numero);
readln (numero);
end;
end.
071 )
Faça um programa Pascal que leia do teclado uma constante K e uma matriz de números
inteiros de 4 linhas por 4 colunas e imprima a matriz resultante da multiplicação da
constante K pelos elementos da diagonal principal, no formato de saída dado no exemplo
abaixo.
Entre com K:
3
Matriz resultante :
3046
1925
7661
4 1 5 18
072 )
Faça um programa que leia do teclado uma frase (máximo 80 caracteres) e imprima a
mesma espelhada no mesmo formato apresentado pelo exemplo abaixo.
073 )
Voce é dono de uma loja e recebe encomendas de mercadorias que tem diferentes prazos de
entrega. Faça um programa que receba a data de encomenda, o prazo de entrega (em dias),
e dê como resultado a data prevista para entrega da mercadoria ao cliente. Suponha que
todos os meses do ano têm 30 dias. O formato de saída deverá ser o seguinte (como
exemplo):
074 )
Escreva uma função calcula que implementa uma calculadora de quatro operações soma,
subtração, multiplicação e divisão. A função recebe três parâmetros: os dois operandos (tipo
real) e mais a operação. O tipo da operação é representado pelos seguintes caracteres: '+'
(soma), '-' (subtração), '*' (multiplicação), '/' (divisão). Escreva um programa que utilize
esta função, onde são lidos os operandos e impresso o resultado.
075 )
Supondo que o seu compilador Pascal não possui os operadores DIV, MOD e a função
ABS, escreva funções que implementem estas operações.
076 )
Escreva uma função Pascal que receba como parâmetros dois vetores de tipo inteiro e
tamanho 10. A função deve calcular a média aritmética dos elementos do primeiro vetor
cujo elemento correspondente de mesmo índice no segundo vetor seja igual a 1. Se nenhum
elemento do segundo vetor for igual a 1 a média vale 0.
Exemplo
fornecidos
1º vetor -- 3 5 8 9 1 0 6 5 7 6
2º vetor -- 1 0 1 0 0 1 1 0 1 1
média calculada: (3 + 8 + 0 + 6 + 7 + 6)/6 = 5.0
077 )
Escreva um programa Pascal que leia uma linha do teclado de até 80 caracteres. O
programa deve substituir a letra que aparece em seguida a cada caracter branco pela sua
correspondente maiúscula. Assuma que entre grupos de caracteres somente pode existir um
único caracter branco.
Obs. Não é necessário conhecimento dos códigos da tabela ASCII, mas se você precisar:
ord('A') = 65
ord('a') = 97
e a diferença entre os códigos das letras minúsculas e das maiúsculas correspondentes é
sempre igual a 32.
Exemplo
Entrada: O numero 4 e divisivel Por 2.
Saida: O Numero 4 E Divisivel Por 2.
078 )
const
Max = 3;
MaxCadeia = 40;
type
Matriz = array[1..Max,1..Max] of integer;
Cadeia = array[1..MaxCadeia] of char;
var
A: Matriz;
k, i, j, Posicao: integer;
Linha: Cadeia;
a) Faça um trecho de programa para fazer a variável Posicao indicar a primeira ocorrência
da seqüência de caracteres 'abc' na variável Linha. Se Linha não contém a seqüência, o
valor de Posicao deverá ser zero. Por exemplo:
Linha = 'cadeia que contem a sequencia abc. '
Posicao = 31
079 )
const
Max = 3;
type
Matriz = array[1..Max,1..Max] of integer;
var
A: Matriz;
{Programa principal}
begin
a := 5; b:= 6; c:= 7; d :=8;
Proc1(a, d);
b := Func1(a, c);
writeln('a = ',a,' b = ',b,' c = ',c,' d = ',d);
end.
080 )
Faça um programa que leia uma expressão em Pascal e indique se esta expressão é válida
ou não em relação ao balanceamento de parênteses. Por exemplo:
(x * 3) + 4 * (5 * a) --> válida
(k - 1 * 5 * (5 * b - a) --> inválida
(b * 3)) * (a --> inválida
081 )
program Q1;
var
G, A : integer;
x : char;
procedure PA (A:integer; M:char; var B:char);
begin
writeln (A:4, M:3);
B:= succ (M);
A:= sqr (G);
writeln (A:4, M:3, B:3);
end;
begin
G:= 7;
A:= 12;
PA (A,'E',X);
writeln (A:4, X:3);
PB (5, X);
writeln (G:4, A:3, X:3);
end.
082 )
Escreva um programa Pascal para tabular os valores dessa função para todas as
combinações dos valores de seus argumentos nos intervalos abaixo:
a: [0 1 2 3 4 5]
b: [1 2 3]
c: [2 3 4]
083 )
Todos os caracteres originalmente situados a partir da posição pos serão deslocados para a
direita de 1 posição. O caractere situado na posição 80 será perdido.
Por exemplo, se f é uma variável do programa principal que contém um vetor com os
caracteres: (o caractere _ abaixo representa um espaço em branco)
A_pova_estava_facil_______... _______
Então a chamada insere(f,4,'r') fará com que f passe a conter os caracteres seguintes:
A_prova_estava_facil_______..._______
084 )
Complete o programa PASCAL abaixo que le um texto formado por 10 linhas de até 60
caracteres cada linha. Para cada uma das linhas o programa faz as seguintes substituições:
'a' por '1'; 'e' por '2'; 'i' por '3'; 'o' por '4'; e 'u' por '5'.
A procedure Leitura le uma linha do teclado, e a procedure Imprime lista uma linha no
vídeo. Assuma que o texto é formado apenas por letras minúsculas.
Program Questao;
Var
...
... {declare as variáveis ...}
...
Procedure Leitura (.......)
...
... {faça a procedure Leitura ...}
...
{----------------------------------------------------------}
Procedure Modifica (......)
...
... {faça a procedure Modifica ...}
...
{----------------------------------------------------------}
Procedure Imprime (......)
...
... {faça a procedure Imprime ...}
...
{----------------------------------------------------------}
Begin
For i:=1 to 10 do
Begin
Leitura (linha, tamanho);
Modifica (linha, tamanho);
Imprime (linha, tamanho);
End;
End.
085 )
086 )
Escreva um programa que leia seu peso na Terra, o índice do planeta desejado e imprima o
valor de seu peso neste planeta.
087 )
A P R E G U I
C A E A M
A E D E T O
D O S O S V
I C I O S
Escreva uma procedure (CODIFICA) que receba uma frase como parâmetro e devolva o
mesmo parâmetro modificado segundo a codificação descrita acima.
088 )
Para resolver esta questão você vai programar uma forma peculiar de fazer a multiplicação
de dois números inteiros quaisquer. O algoritmo é o seguinte: para multiplicar os dois
números comece duas séries dividindo o maior por dois e multiplicando o menor por dois.
Sempre que o primeiro número (o que era originalmente maior) for impar, e somente neste
caso, acumule o segundo número. Continue até que o primeiro número tenha sido reduzido
à unidade. Despreze as partes fracionárias nas divisões por dois do primeiro número. O
produto é igual à soma dos segundos números acumulados. Por exemplo, no caso de 53
vezes 26 temos:
Maior (primeiro) 53 26 13 6 3 1
+ + + +
Faça uma função (MULTI)que receba dois números inteiros, a e b, e retorne o produto
calculado pelo método descrito acima. Atenção: o maior valor pode ser passado no
parâmetro a ou b.
089 )
O número 2025 tem a seguinte propriedade: se você pega o número formado pelos seus
dois primeiros dígitos (20), soma com o número formado pelos seus dois últimos dígitos
(25), e eleva o resultado (45) ao quadrado, você obtém de volta o valor original do número
(452 = 2025). Faça um programa que escreva na tela todos os números de quatro algarismos
que têm esta propriedade (se você depois rodar o programa descobrirá que além de 2025
existem mais dois).
090 )
Um programador teve necessidade de operar com números inteiros positivos muito maiores
do que os que normalmente usamos. Por exemplo, números de 500 dígitos! Para isto ele
definiu o tipo "longuissimo" como abaixo:
const tamanho=500;
Sua questão na prova é substituir abaixo cada ..... por ou um inteiro, ou uma variável, ou
um identificador PASCAL, ou ainda uma palavra predefinida em PASCAL, para que a
procedure "some" faça o equivalente a "c:=a+b" para "a", "b" e "c" do tipo "longuissimo".
091 )
A quantidade de informação (QI) das ocorrências das vogais em um texto pode ser definida
pela fórmula
092 )
Faça, colocando as mensagens que orientem a entrada dos dados, um programa que:
1) leia os nomes (cada um fixo com 40 caracteres) dos alunos de uma turma de até 60
alunos;
2) após o nome de cada aluno leia suas três notas de 0.0 a 10.0;
3) interrompa a lista de alunos digitando um nome qualquer iniciando pelo digito "1" (a
lista pode ter 60 alunos ou menos).
4) em seguida, pule três linhas, escreva o título "RELACAO DOS ALUNOS PARA
PROVA FINAL", pule outra linha e escreva então apenas os nomes daqueles alunos que
tiveram média das três notas menor do que sete.
093 )
Faça um programa Pascal que leia do teclado um número inteiro positivo e imprima na
linha seguinte a menor potência de dois maior que este número.
094 )
Escreva o código Pascal de uma função real IR que calcule o imposto de renda devido a
partir de dois parâmetros reais, RT (rendimento tributável) e DD (despesas dedutíveis),
segundo a tabela progressiva abaixo, que constou dos formulários para declaração de 1995:
Tabela progressiva em UFIR
095 )
096 )
Faça um procedimento que receba como parâmetro um número inteiro 1 <= n <= 49, n
impar, e a partir daí desenhe à esquerda da tela um triângulo tipo "árvore de Natal" cuja
base tem comprimento n, preenchido com asteristicos. Os desenhos para os diversos n
seriam os seguintes:
para n = 1,
*
para n = 3,
*
***
para n = 5,
*
***
*****
para n = 7,
*
***
*****
*******
etc.
097 )
Programa 1:
program Q1P1;
var x,y,z: integer;
{Programa principal}
begin
x := 3; y := 2; z := 1;
Proc1(x,y,z); writeln(z);
x := 6; y := 4; z := 1;
Proc1(x,y,z); writeln(z);
end.
Programa 2:
program Q1P2;
var
a, b, c, d, e, f: integer;
{Programa principal}
begin
a := 1; b := 2; c := 3; d := 4; e := 5; f := 6;
Pega(e, f);
writeln(a, b, c, d, e, f)
end.
098 )
Escreva um procedimento que receba como parâmetro 2 vetores do tipo:
type VETOR = array[1..100] of integer;
e SÓ TROQUE os valores dos 2 vetores nas posições CORRESPONDENTES, caso haja
algum valor do primeiro vetor MAIOR do que o respectivo valor do segundo vetor. Esta
troca deve alterar os vetores do programa principal.
099 )
Faça um procedimento que leia um nome através do teclado contendo até 40 posições. No
caso do usuário digitar um nome menor do que 40, preencha o restante das posições com
branco. Assuma que a definição abaixo está no programa principal:
type vetor= array [1..40] of char;
Restições:
Só é permitido armazenar no vetor os seguintes caracteres :
. Caracteres maiúsculos de A a Z;
. Caracter "BRANCO" ou "ESPAÇO" para separação;
. Caracter "." para abreviação.
No caso do digitador entrar com algum caracter do nome que não atenda às regras
explicitadas acima, o procedimento deve solicitar a entrada do nome completo novamente,
QUANTAS VEZES forem NECESSÁRIAS para o correto armazenamento. Não se esqueça
de completar as posições que não pertençam ao nome com "brancos".
100 )
Em uma pesquisa popular realizada com 100 famílias, foi averiguado quantos salários
mínimos aproximadamente cada família recebia mensalmente. Estes dados já estão em um
vetor do tipo:
type V = array[1..100] of integer;
cujo conteúdo é o numero de salários mínimos por família.
101 )
Faça um procedimento pegadigito (num,n : integer; var vet : cpf); que recebe um número
inteiro de n dígitos e coloca cada dígito no array vet (dígito n na posição n, dígito n-1 na
posição n-1, ..., dígito 1 na posição 1). Tipo cpf definido no programa principal como
array[1..11] of integer.
102 )
Faça uma função multivet (n:integer; v1, v2:cpf):integer; que retorna a soma dos produtos
dos elementos correspondentes dos vetores (v1[1]*v2[1] + v1[2]*v2[2] + v1[3]*v2[3]+ ...+
v1[n]*v2[n]). Considere que o tipo cpf foi declarado no programa principal:
type cpf = array[1..9] of integer;
103 )
Faça um procedimento desloca (n:integer; var v:cpf) que desloca de uma posição os
elementos de um vetor (vn+1 = vn, vn = vn-1, ..., v2 = v1), onde n é o número de posições
ocupadas no vetor, cuja dimensão é no mínimo n + 1. Considere que o tipo cpf foi
declarado no programa principal:
type cpf = array[1..9] of integer;
104 )
Escreva uma função Pascal cos(x, valor) para calcular o valor de Cosseno em torno do
ponto zero utilizando a série abaixo.
Pare de adicionar novos termos quando o valor absoluto do próximo termo for menor que
um certo valor fornecido como parâmetro à função.
105 )
Um CPF é um número com 11 dígitos, sendo que os dois últimos dígitos são calculados em
função dos nove restantes e são chamados de dígitos verificadores, pois permitem validar o
CPF. O processo de validação é bastante simples e está descrito a seguir:
Faça uma função que receba um vetor de 11 inteiros contendo os dígitos do CPF calcule os
valores v2 e v1 usando os 9 primeiros dígitos, compare estes dígitos com os recebidos no
vetor e retorne true se forem iguais e caso contrário.false.
106 )
A)
M:= +3.0; N:= -4.0; X:= +0.75; Y:= 0.0;
Y:= 2 * (sqr(M) + sqr(N));
Y:= sqrt (Y - sqr(sin(X)) - sqr(cos(X)));
writeln ('O valor de Y eh=', Y:5:2);
B)
S:=0; K:=1;
for K:=6 to 10 do
begin
if (K mod 3) = 0 then S:= S + 1
else if (K mod 3) = 1 then S:= S + 2
else S:= S * K;
writeln (K:3, 'JUNTO COM ', S:5);
end;
C)
program ITEM_C;
var X,Y: real;
D)
program ITEM_D;
var I,X: integer;
begin
X:= 12;
for I:=4 to 6 do
begin
CALC (I,X);
writeln ('O valor eh:', X:5);
end;
end.
E)
program ITEM_E;
type
PALA= array[1..6] of char;
var
FONTE, SENHA: PALA;
begin
FONTE:='ARARAS'; MUDA(FONTE,SENHA);
FONTE:='ROMA--’; MUDA(FONTE,SENHA);
FONTE:='AR-DOR'; MUDA(FONTE,SENHA);
end.
107 )
Faça uma funçäo para calcular o fatorial de um número inteiro N, sendo N>0, utilizando o
comando de repetiçäo REPEAT....UNTIL.
108 )
OBS- não é necessário fazer o programa principal, o qual por sua vez já tem a
seguinte definição para a matriz de temperaturas:
109 )
Escreva uma funçäo que receba como parâmetro um número real especificando a fraçäo
mencionada e devolve como resultado o valor calculado de Pi.
110 )
CRITÉRIO DE CODIFICAÇÄO:
cada letra do alfabeto, seja ela maiúscula ou minúscula, é substituída pela sua
subseqüente em ordem alfabética, ou seja o 'A' vira 'B', o 'B' vira 'C' e assim por
diante.
A letra 'Z', por ser a última do alfabeto, é transformada em 'A'.
Todos os demais caracteres diferentes de letras são mantidos, a menos do espaço ou
caracter "branco" (' ') que é substituído pela barra '/'.
111 )
a)
m:= +3.0; n:= -4.0; h:= 0.0;
h:= sqrt (h + sqr (m) + sqr (n));
writeln ('O h calculado eh= ', h:4:1);
b)
s:=0;
for i:=2 to 5 do
begin
if (i mod 2) = 0 then s:= s + i
else s:= s * i;
writeln (i:2, ' JUNTO COM', s:5);
end;
writeln (i:2, ' ACABOU COM', s:5);
c)
x:=2.0; y:=3.0; z:=5.0;
if odd (round (y/x))
then writeln (trunc (z/y):3)
else writeln (trunc (z) mod trunc (x));
d)
program ITEM_D;
var i,x: integer;
procedure CALC (a:integer; var s:integer)
var j:integer;
begin
for j:=1 to 3 do s:= s + a * j;
end;
begin
x:=1;
for i:=4 to 6 do
begin
CALC (i,x);
writeln ('O valor eh: ', x:5);
end;
end.
e)
program CALCULA;
var s:real;
function V (t:real): real;
begin
V:= t/2 * 5.0;
end;
begin
s:=0.0;
while (s < 5.0) do
begin
s:= s + 1.;
writeln ('Resultado= ', V(s):5:1);
end;
end.
f)
letra:= 'A'; trab:= 2; i:=0;
repeat
i:= i + 1;
trab:= ord(letra) + 1;
letra:= chr(trab);
writeln ('A nova letra eh: ', letra);
until (i > 3);
112 )
.................................
i:=1; j:=100;
while (VETOR[i] <> VETOR [j]) do
begin
i:= i + 1;
writeln (i:4, j:4);
j:= j + 1;
end;
.................................
113 )
Faça um programa que imprima na tela todos os números inteiros de quatro algarismos que
tenham a seguinte propriedade: os dois números formados respectivamente pelos dois
primeiros e pelos dois últimos algarismos do número, sejam ambos impares, diferentes
entre sí e o primeiro seja maior do que o segundo. Por exemplo, se voce quiser enumerá-los
em ordem crescente, seriam impressos os seguintes numeros: 1101, 1103, 1105, 1107, 1109,
1301, 1303, 1305, etc...
114 )
Faça uma procedure que troque a posição de dois caracteres de uma frase contida em um
vetor do seguinte tipo:
Construa uma função chamada MEDIA, que receba como parâmetros dois vetores MA e
MB do tipo MEDIDAS descrito abaixo, contendo medidas obtidas em laboratório.
Esta função está incumbida de calcular a média de cada um dos pares de valores
correspondentes de MA e MB, devolvendo o resultado em um vetor do mesmo tipo
MEDIDAS, de tal sorte que o primeiro elemento do vetor-resultado seja a média do
primeiro elemento de MA com o primeiro de MB, e assim sucessivamente até o
septuagesimo elemento. Entretanto, a média aritmética será usada apenas até ser encontrado
em MB um elemento que seja o inverso do elemento correspondente de MA, a menos de
um erro de 1.0e-05, a diferença entre os dois valores se manifestar apenas depois da quinta
casa decimal. A partir deste elemento inclusive, a média a ser calculada será a geométrica
(raiz quadrada do produto dos dois valores).
116 )
O que será impresso pelo programa abaixo quando os valores a seguir são fornecidos:
program q;
var a, b, c : integer;
begin
lesc (a, b, c);
muda (a, b, c);
writeln (a, b, c);
troca (a, b, c);
writeln (a, b, c);
muda (a, b, c);
writeln (a, b, c);
end.
117 )
Escreva uma função que calcule a temperatura média do período em que foi feita a medida.
Assuma que este array contém somente números reais e foi declarado como: type temp =
array [1..50] of real;
Não é necessário escrever o programa principal.
118 )
Escreva uma função para calcular o MDC de dois números inteiros pelo algoritmo de
Euclides, que está mostrado abaixo. O algoritmo consiste em:
1) dividir o maior valor pelo menor.
2) o divisor vira dividendo e o resto do passo anterior vira divisor
3) repetir o passo 2 até que o resto seja zero.
O MDC será o divisor da última operação.
Não é necessário escrever o programa principal.
Exemplo:
passo 1 passo 2 passo 3
dividendo 42 24 18
divisor 24 18 6
quociente 1 1 3
resto 18 6 0
119 )
Considere um array que pode conter no máximo 41 números inteiros definido da seguinte
maneira:
Para guardar ou tirar um número neste array você deve sempre consultar o valor
armazenado em estante[0]. Este valor serve para indicar a posição no array onde você
deverá armazenar o número. Sempre após guardar um número o valor em estante[0] deve
ser somado de um. Para tirar um número do array basta primeiro decrementar estante[0]
para obter a posição correta, depois transferir o valor contido nesta posição do array para
uma variável qualquer.
Importante: Não se pode escrever mais de 40 números no array, nem tirar um número
quando todos foram retirados. Assuma que o valor inicial de estante[0] é 1.
Escreva:
a) Uma função para indicar que o array está cheio;
b) Uma função para indicar que o array está vazio;
c) Uma procedure para escrever um número no array, utilize a função do item a;
d) Uma procedure para tirar um valor do array, utilize a função do item b.
120 )
Diga o que aparecerá no vídeo ao final do PROGRAM QUESTÃO1 abaixo para os valores
iniciais fornecidos pelo teclado de x=2 e y=1.
Program QUESTAO;
Var
x,y: integer;
Begin
writeln ('Forneca os valores de x e y');
readln (x,y);
pa(x);
writeln (x,y);
pb(y);
writeln (x,y);
End.
121 )
Dada uma sequência de N frases de N caracteres cada (N fornecido pelo teclado e <80)
fornecidas em linhas sucessivas pelo teclado, fazer um programa em Pascal que escreva as
frases no vídeo do terminal na mesma ordem em que foram submetidas, só que na forma
vertical como no exemplo abaixo:
Ex.:
TECLADO
FRASE 1 A Maria e bonita
FRASE 2 Antenor e baiano
FRASE 3 Voce e um aluno.
.
.
FRASE N Esta e a ultima.
VÍDEO
A A V .. E
n o .. s
M t c .. t
a e e .. a
r n ..
i o e .. e
a r ..
u .. a
e e m ..
.. u
b b a .. l
o a l .. t
n i u .. i
i a n .. m
t n o .. a
a o . .. .
122 )
Fazer uma PROCEDURE em PASCAL que receba como parâmetros uma matriz quadrada
Q de elementos inteiros e um número inteiro N (N<100) onde N é a dimensão de Q. A
PROCEDURE deverá retornar para o programa principal um vetor H de uma linha e N
colunas (H[1,N]) onde cada elemento [1,J] de H é a soma de todos os elementos da coluna
de ordem J da matriz Q. Não é necessário fazer o programa principal. Suponha apenas que
tanto a matriz Q como o vetor H foram previamente definidos no programa principal por
meio de declarações types (matriz e vetor) e que:
Var
Q: matriz;
H: vetor;
123 )
Como mostrado nos exemplos abaixo, um palíndromo é uma frase que lida tanto no sentido
normal como de trás para a frente produz a mesma sequência de caracteres, ou seja,
reproduz a própria frase. Evidentemente, para o caso de palíndromos ortográficos, só são
considerados os caracteres letras; os demais tais como espaços em branco, pontuações,
dígitos, etc., não são levados em consideração.
Faça um programa em Pascal que leia uma frase do teclado, de tamanho variavel porem
menor que 80, elimine os caracteres diferentes de letras, detecte e imprima uma mensagem
no vídeo caso a frase submetida seja um palíndromo. Suponha que todas as letras da frase
submetida sejam maiúsculas.
124 )
Complete o programa abaixo. O programa lê uma matriz quadrada A de tamanho dim por
dim. Em seguida calcula a soma dos elementos de cada linha e os armazena em um vetor V.
Ao final o programa imprime cada linha da matriz e sua soma.
program m;
type
vetor = array[1..10] of integer;
matriz = array[1..10, 1..10] of integer;
var
procedure lematriz ( );
var
begin
end;
procedure calcula ( );
var
begin
end;
procedure imprime ( );
var
begin
end;
begin
writeln ('Entre com a dimensao da matriz');
readln ( dim );
lematriz ( A, dim ) ;
calcula ( V, A, dim );
imprime ( A, V, dim );
end.
125 )
Faça um programa que imprima um triângulo de números como indicado abaixo. O valor
de n deve ser lido do teclado.
1
24
369
4 8 12 16
...
n 2*n 3*n 4*n ... n*n
126 )
Escreva um programa que leia uma linha de até 80 caracteres do teclado e imprima quantos
são letras maiúsculas, letras minúsculas, dígitos numéricos e finalmente quantos não
pertencem a nenhuma destas três categorias.
127 )
Escreva um programa que calcule e imprima uma aproximação para o valor de Pi usando a
fórmula abaixo.
128 )
a) Escreva a parte var, de modo consistente, para um programa que contenha os comandos
abaixo. O tamanho de cada dimensão deve ser de 20 elementos. Escreva as definições para
as variáveis: Nota, Y, W, X, K ,A e C.
Nota[2] := Y div 2;
W[X,Nota[K+1]] := 5/2;
if X > Y then A := X > Y else C := 'C';
c) Faça uma função que recebe como parâmetro uma frase (vetor de 40 caracteres) e retorna
o número de vírgulas que esta frase contém.
129 )
Faça um programa que leia uma matriz de tamanho 10 x 10 e diga se ela é uma matriz
triangular superior, triangular inferior ou não é matriz triangular. Uma matriz triangular
superior é aquela em que todos os elementos abaixo da diagonal principal são nulos; uma
mariz triangular inferior é aquela em que todos os elementos acima da diagonal principal
são nulos.
130 )
Faça um programa que calcule e imprima a soma dos termos da série de Fibonacci menores
que 1000.
131 )
Escreva um programa Pascal que leia uma frase de no máximo 80 caracteres submetidos
pelo teclado e mande imprimir as palavras da frase em linhas diferentes na tela do terminal.
Observações:
1) A frase começa por caracter diferente de branco.
2) É permitido pular apenas uma linha na tela do terminal no caso de palavras consecutivas
estarem separadas por mais de um caracter branco.
132 )
Faça um programa Pascal que leia do teclado uma matriz de 20 x 20 elementos, determine
se todos os elementos que estão acima da diagonal principal são iguais a zero imprimindo
"SIM" no caso afirmativo e "NÃO" caso contrário.
133 )
Faça uma função para verificar se um valor inteiro V está contido em um conjunto
composto de 300 valores inteiros podendo ter repetições. Se o valor for encontrado,
interromper a pesquisa e retornar sua posição no conjunto caso contrário retornar zero. A
função receberá como parâmetros o conjunto de valores e o valor V. Assuma que o seguinte
tipo foi definido no programa principal:
134 )
Para garantir o sigilo de uma mensagem foi elaborado um critério de codificação usando
uma tabela composta de duas colunas: na primeira as letras maiúsculas em ordem crescente
e na segunda as mesmas letras fora de ordem. Faça um procedimento que receba uma
mensagem com N caracteres, a tabela de codificação e retorne a própria mensagem
codificada.
Assuma que a mensagem não contém letras minúsculas e que os seguintes tipos foram
definidos no programa principal:
Ex da tabela
A K
B P
C Z
D G
E M
… …
135 )
Faça uma função de nome NumVogais para determinar quantas vogais existem em um
nome, de 50 caracteres fornecido pelo programa principal, retornando um número inteiro
como valor. O nome é fornecido somente com letras minúsculas. Assuma que o seguinte
tipo foi declarado no programa principal:
136 )
Escreva um procedimento Pascal que receba como parâmetros dois conjuntos de valores do
tipo inteiro e tamanho 10. O procedimento deve calcular e retornar a média aritmética dos
elementos do primeiro vetor cujo elemento correspondente de mesmo índice no segundo
vetor seja igual a 1. Se nenhum elemento do segundo vetor for igual a 1 a média vale 0.
Exemplo:
1º vetor -- 3 5 8 9 1 0 6 5 7 6
2º vetor -- 1 0 1 0 0 1 1 0 1 1
média calculada: (3 + 8 + 0 + 6 + 7 + 6)/6 = 5.0
137 )
Faça uma função Pascal chamada POTENCIA que receba um número inteiro positivo e
retorne a menor potência de dois maior que este número.
138 )
139 )
Caso o caracter seja uma letra ( maiúscula ou minúscula) retorne a posição da tabela
ASCII correspondente a letra seguinte. No caso do caracter ser a letra "z", retornar a
posição relativa ao "a".
Caso o caracter seja diferente de uma letra, retornar o valor zero.
140 )
Faça um procedimento Pascal que receba uma lista com 200 valores inteiros e um valor x
também inteiro retornando a posição da primeira e da última ocorrência de x. Caso o valor
de x não seja encontrado na lista, o procedimento deve retornar zero para a primeira e
última ocorrência.
141 )
142 )
Ex:
AAA 0
AAB 1
ACA 52
143 )
144 )
Faça um programa que leia do teclado um número inteiro N e gere na tela as N primeiras
linhas da seguinte série (suponha que N é no máximo 20):
1
23
456
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 32 33 34 35 36
145 )
Escreva um programa Pascal que leia uma frase de no máximo 80 caracteres submetidos
pelo teclado e mande imprimir o número de palavras encontradas.
146 )
Faça um programa que leia um arquivo de nome PROVADAT do tipo text contendo linhas
de um texto e imprima as linhas, trocando todo 'n' antes de 'p' ou 'b' por 'm' .Suponha que
que o texto so contenha letras maiusculas.
{Thiago Rodrigues Takaki DRE:100113090}
{16/05/2001}
147 )
Faça um programa que inicialmente leia do teclado um texto de uma linha. Em seguida seu
programa lê também do teclado um padrão ( que será sempre mais curto do que o texto ).
Seu programa então verifica quantas vezes este padrão aparece no texto de uma linha
anteriormente lido e emite um relatório de uma linha, conforme exemplificam as execuções
abaixo.Seu programa deve reproduzir rigorosamente o formato das telas-exemplos abaixo.
PROGRAMA TERMINADO.
***************************** FIM DA TELA EXEMPLO ********************
148 )
149 )
Faça um prog que entre 100 numeros e para cada numero imprima uma msg dizendo se ele
e ou não multiplo de 6.
150 )
Faça um programa em pascal onde uma matriz [3*3] será preenchida com zeros, exceto a
diagonal principal, onde cada elemento receberá 1.
{Marcus Vinicius Lauria de Faria DRE: 101128195}
{23/05/2001}
151 )
Faça um programa em pascal, que leia um número inteiro e mostre seu sucessor e
antecessor.
152 )
Faça um programa para calcular os juros simples sobre um capital fornecido com taxa de de
juros e tempo do empréstimo tambem fornecidos pelo usuário.
153 )
Faça um programa para converter uma temperatura dada. As opções de conversão deverão
ser apresentadas ao usuário na forma de um menu.
1- cel p far
2- far p cel
3- cel p kel
4- kel p cel
5- far p kel
6- kel p far
154 )
Faça um programa onde o usuário fornece 3 valores e estes são apresentados em ordem
crescente.
{Anderson Teixeira Kresicher DRE: 101105804}
{23/05/2001}
155 )
156 )
Bole um progarma que dados três pontos diga o baricentro do triângulo formado caso
exista.
{Flavio de Souza Gatto DRE :101133182}
{23/05/2001}
157 )
Bole um programa que dado 4 pontos no plano XoY forneça a área do quadrilátero formado
caso exista.
{Flavio de Souza Gatto DRE :101133182}
{23/05/2001}
158 )
Se abs(x) for maior ou igual a 1 o programa emite mensagem de erro: 'Nao ha definicao
para valor fornecido' e encerre o programa, caso contrário calcule a série até que o valor
absoluto do termo seja menor que 1.0E-20.
159 )
Escreva um procedimento Pascal que receba uma linha do teclado de até 80 caracteres e um
inteiro com o número de caracteres da frase. O procedimento deve retornar o próprio vetor,
substituindo a letra que aparece em seguida a cada caracter branco pela sua correspondente
maiúscula.
Exemplo
Entrada: O numero 4 e divisivel Por 2.
Saida: O Numero 4 E Divisivel Por 2.
160 )
Tem-se uma estrada ligando várias cidades. Cada cidade tem seu marco quilométrico. Fazer
um programa que:
1-leia vários pares de dados,contendo cada par os valores dos marcos quilométricos, em
ordem crescente ,de duas cidades.o último par contém estes dois valores iguais.
2-calcule os tempos decorridos para percorrer a distância entre essas duas cidades,com as
seguintes velocidades:20, 30, 40, 50, 60, 70 e 80km/h,sabendo que :t=e/v.
3-escreva os marcos,a velocidade e o tempo decorrido entre as duas cidades,apenas quando
este tempo for superior a 2 horas.
161 )
162 )
Escreva um programa que lê uma matriz real Anxm , e um número inteiro k; utilizando as
funções abaixo definidas o programa deve transformar a matriz k vezes, imprimindo a
matriz inicial e depois de cada transformação.
(a) Escreva uma função que recebe como parâmetros uma matriz real Anxm , e uma
posição (i,j) da matriz, e calcula a média aritmética dos vizinhos de (i,j), ou seja, a média
entre Ai-1, j , Ai+1, j , Ai, j+1 ,Ai, j+1. Desconsidere os vizinhos que não pertencem a
matriz (por exemplo, os vizinhos de (0, 0) são somente (0,1) e (1,0) ).
(b) Escreva um procedimento que recebe como parâmetro uma matriz real Anxm e devolve
uma matriz Amédia, onde aijmédia é a média aritmética dos vizinhos de (i,j). Para isto,
utilize a função do item anterior.
163 )
Tabela A
1367
Tabela B
245
Tabela C
1234567
Observações:
1. Considerar os elementos de A e B como inteiros.
2. A tabelas C deverá ser construida já ordenada, sem usar qualquer tipo de ordenação.
Faça um programa para converter temperaturas em graus Celsius (Cº) para Farinnhait (Fº),
armazenando os valores numa matriz. A fórmula de conversão é dada por F = (9*C+160)/5.
Faça a matriz de tamanho máximo = 10 elementos.
Celsius Farennhait
5 f1
10 f2
15 f3
20 f4
... ...
50 f10
165 )
Faça um programa que leia um conjunto de 100 valores inteiros e verifique se existem
elementos iguais a 30. Se existirem, exiba as posições em que estão armazenados.
166 )
Fazer um programa que leia uma matriz 4x4, multiplicar os elementos da diagonal principal
por uma constante igual a 3, e escreva a matriz resultante.
167 )
Fazer um programa que calcule a media de alunos so sexo masculino de uma turma. Sexo
igual a zero indica que acabou.
{ Felippe Thiago Camilo Reis DRE 101117796}
{20/06/2001}
168 )
Dada uma tabela de 4 por 5 ,calcular a soma de cada linha ea soma de todos os elementos .
169 )
170 )
171 )
172 )
Perimetro:
Area:
173 )
Entrar com a razao de uma p.a. e o valor do primeiro termo. Calcular e imprimir o enesimo
termo da serie.
174 )
Entrar com um número e imprimir a raiz quadrada do número caso ele seja positivo ou zero
e imprimir o quadrado do numero caso ele seja negativo.
175 )
No Brasil existem moedas de 1, 5, 10, 25 e 50 (e 100) centavos. Faça um programa que leia
o valor da mercadoria, leia o valor da quantia entregue pelo comprador e então especifique
quantas moedas de cada valor devem ser dadas de troco ao comprador, adotando sempre a
estratégia de entregar o número mínimo de moedas ( isto é, utiliza o máximo possível de
cada moeda, considerando a utilização das moedas de maior valor antes das de menor
valor). Suponha que o valor máximo da mercadoria e da quantia entregue pelo comprador
seja 100 centavos ( R$ 1,00 ). Seu programa deve escrever apenas "Não há troco" quando o
troco for zero centavos.
Exemplo:
PROGRAMA CAIXA REGISTRADORA
Qual o valor da mercadoria? 29 ENTER
Qual o valor da quantia entregue pelo comprador? 100 ENTER
O troco é:
1 moeda(s) de 50
2 moeda(s) de 10
1 moeda(s) de 1
176 )
Faça um programa para calcular valores da função definida no gráfico abaixo. Note que f(-
1)=1 ; f(0)=1; f(0.2)=0.8 ; f(0.5)=0.5 ; f(1.5)=0; f(2.5)=0.5; f(3.5)=0.5; f(4.5)=0 etc.
repetindo-se o padrão triangular para todo o eixo "x" positivo. Seu programa pergunta
inicialmente quantos pontos da função o usuário deseja calcular. Em seguida, solicita ao
usuário que forneça os valores das coordenadas "x" dos pontos a serem calculados. Depois
disto escreve na tela uma tabela {x,f(x)}. Faça o seu programa aceitar até o máximo de 50
pontos a calcular.
177 )
A tela de computador é formada por 25 linhas cada uma com 80 colunas. Um programa
Pascal armazena uma tela em uma matriz de 25x80 caracteres. Para isso existe a seguinte
declaração no programa principal:
TYPE
VIDEO = ARRAY [1..25 , 1..80] OF CHAR;
Deseja-se fazer a rotina que implementa o processo de "rolar a tela para cima" (ou scroll
up). Nesse processo a primeira linha (linha inferior) passa para o local da segunda, a
segunda para o local da terceira, e assim sucessivamente até que a linha 24 passa para o
local da linha 25 (linha superior). No local da primeira linha é colocada uma linha em
branco.
Faça a procedure scrollup que receba como parâmetro a variável com a tela (matriz 25x80)
e retorne nessa mesma variável a tela "rolada para cima".
178 )
Faça uma função ECONSOANTE que receba como parâmetro um caracter e retorne
TRUE se esse caracter for uma uma consoante e caso contrário retorne FALSE.
Essa função deverá funcionar para caracteres maiúsculos e minúsculos.
179 )
O programa abaixo lê uma linha de até 80 caracteres, retira os caracteres vizinhos repetidos
e imprime a linha sem os caracteres repetidos. Exemplo:
ENTRADA : aaabbbcddddaaaadddccceeeeeeeeeFFFgg
SAÍDA: abcdadceFg
program repetido;
type linha80 = array [1..80] of char;
var
linha : linha80;
tamanho : integer;
{programa principal}
begin
lelinha (linha , tamanho);
proclinha (linha , tamanho);
implinha (linha , tamanho);
end.
Complete o programa acima fazendo as três procedures, sabendo que a variável LINHA é a
linha que será lida, processada e impressa, e TAMANHO é o número de caracteres que
LINHA tem.
180 )
Faça um programa Pascal que leia um valor N e apresente o seguinte resultado na tela.
181 )
Faça um programa que leia 100 valores e uma posição, gere um conjunto eliminando o
valor apontado por posição e apresente o conjunto modificado na tela. Observe que o
conjunto modificado possuirá 1 posição a menos que o conjunto inicial.
182 )
184 )
Faça um programa que calcule o consumo de um aparelho eletrônico durante um mês dado
o número de horas que o equipamento ficou ligado em media por dia, a potencia e o
numero de dias que foi ligado!!
185 )
Faça um programa que dado o consumo elétrico de três meses consecutivos , calcular a
meta de energia a ser alcançada durante o período de racionamento sabendo que a
economia deve ser de 20%.
186 )
Faça um programa para calcular o peso ideal de uma pessoa sendo fornecidos o sexo,
altura. Sabe-se que para pessoas do sexo masculino a relação entre a altura e o peso é de
72.7*altura-58 e para pessoas do sexo feminino de 62.1*altura-44.7.
187 )
Faça um programa para o cálculo do salário de uma pessoa onde as informações fornecidas
ao programa são: valor do salário mínimo; quantidade de horas normais e horas extras
trabalhadas e número de dependentes. As regras para o cálculo do salário são:
a) O valor da hora é 20% do salário mínimo;
b) A parcela referente aos dependentes é determinada multiplicando o número de
dependentes por 32;
c) O valor da hora extra é 150% o valor da hora normal;
d) Se o salário bruto for menor que 200 a pessoa está isenta de imposto;
e) Se o salário bruto estiver entre 200 e 500 o imposto é de 10%;
f) Se o salário bruto for maior que 500 o imposto é de 20%;
g) Se o salário líquido for menor ou igual a 350 a pessoa recebe uma gratificação de 100 e
h) para um salário líquido maior que 350 a gratificação é de 50.
188 )
Crie um programa que leia de 20 usuários o nome, o cargo e o salário. Em seguida mostre
todos os nomes, cargos e os salários aumentados em 10%}
189 )
Um determinado material radioativo perde metade de sua massa a cada 50 segundos. Dada
a massa inicial, em gramas, fazer um programa que determine o tempo necessário para que
essa massa se torne menor que 0,5 grama. Escreva a massa inicial , a massa final em
gramas e o tempo calculado em horas, minutos e segundos.
190 )
O dia da semana para uma data qualquer pode ser calculada pela seguinte fórmula:
Dia da semana = Resto( trunca( 2,6*m-0,1)+d +a+ quociente(a,4) + quociente (s,4) –
2*s),7)
Onde:
M – representa o número do mês. Janeiro e fevereiro são os meses 11 e 12 do ano
precedente, março é o mês 1 e dezembro é o mês 10;
D – representa o dia do mês;
A – representa o número formado pelos dois últimos algarismos do ano;
S – representa o número formado pelos dois primeiros algarismos do ano.
191 )
192 )
Fazer um procedimento que receba do programa principal dois inteiros e devolva o mdc
entre eles
Fazer um procedimento que, dado um numero inteiro, retorne a soma dos divisores do
numero diferentes do próprio número.
194 )
Fazer um procedimento Pascal que calcule o valor aproximado do número "e" através da
série 1+1/2!+1/3!+..., o número de termos deve ser fornecido ao procedimento como
parâmetro.
195 )
Fazer um procedimento onde: dia, mês e ano são parâmetros de entrada e n é um parâmetro
de saída que conterá o número de dias do ano até a data fornecida.
Obs: lembre-se que o mês de fevereiro pode ter 28 ou 29 dias, dependendo de o ano ser
ou não bissexto. Todo ano bissexto é um múltiplo de 4
196 )
Escreva uma função booleana que receba como parâmetros a medida de três segmentos de
reta e verifique se eles podem formar um triângulo.
197 )
Uma matriz complexa Z é representada por um par (Zr, Zi) de valores reais, de modo que Z
= Zr + i Zi . Faça um procedimento. que calcule o produto de duas matrizes complexas A e
B, isto é:
Zr + i Zi = ( Ar + i Ai ) (Br + i Bi)
Veja que:
( A + i A ) (B + i B) = ( ArBr - AiBi ) + i ( ArBi + AiBr )
O procedimento recebe as duas matrizes A e B assim como o número de linhas L e devolve
a matriz resultado Z.
Assuma que no programa principal foi declarado o seguinte tipo:
Type matriz = array[1..20, 1..2] of real;
198 )
199 )
200 )
Segundo a conjectura de Goldbach, qualquer número par , maior do que 2, pode ser escrito
como a soma de dois números primos.Ex:8=3+5,16=3+13..etc
Dado um conjunto de números inteiros positivos, pares, fazer um programa que calcule,
para cada numero, um par de números primos cuja soma seja igual ao próprio
numero.Adotar como "flag" um numero negativo. Para verificar se o número é primo, fazer
um procedimento que deverá retornar em uma variável lógica o valor verdadeiro,se o
numero for primo e falso, em caso contrário.
201 )
202 )
Dois arquivos tipo texto em disco contêm séries de números reais, todos menores do que
dez elevado a sexta, separados pelo caracter de fim de linha e ordenados em ordem
crescente. Chame o primeiro arquivo de "alfa" e o segundo de "beta". Faça um programa
que, sem alterar alfa e beta, crie e grave no disco um novo arquivo(chame-o de "zeta") que
contenha, também ordenada, a série de números formada pala junção da série contida em
alfa com a série em beta. Por exemplo:
Seu programa deve ainda colocar na tela do computador duas mensagens: a primeira,
"Iniciando junção dos arquivos...", ao iniciar o processamento , e a segunda, "Novo arquivo
criado.", ao terminar.
203 )
Fazer um programa com dois procedimentos: um para ler uma matriz de tamanho M1 X
M2, e um para multiplicar a matriz por um constante, e imprima o valor da matriz
resultante.
204 )
205 )
Faça um programa Pascal que leia do teclado valores inteiros, positivos, pertencentes ao
intervalo de 0 à 99 (inclusive). Quando um número fora deste intervalo for digitado o
programa deverá listar cada valor e o respectivo número de vezes que ele foi fornecido e
terminar a execução. Os números que não foram digitados não deverão ser impressos.
206 )
Escreva um programa Pascal para calcular a soma dos N primeiros termos da série abaixo:
207 )
Escreva um programa Pascal que leia 100 valores e apresente como resultado, após a leitura
dos mesmos uma seqüência de 100 valores com a seguinte regra: se o valor for divisível por
2 apresente 2, se for divisível por 3 apresente 3 caso contrário apresente 0.
208 )
Faça um programa Pascal que leia 200 valores e determine a média eliminando o maior e o
menor valor.
209 )
Faça uma função chamada DIADASEMANA cujo objetivo é determinar qual o dia da
semana correspondente à um determinado dia do mês. O dia do mês é representado por um
valor inteiro e o dia da semana por um valor inteiro sendo que o 0 corresponde ao domingo,
1 à segunda-feira e assim sucessivamente até o valor 6 que representa o sábado. A função
receberá como parâmetros o dia do mês e o dia da semana correspondente ao primeiro dia
do mês e deverá devolver um inteiro que representará o dia da semana do dia do mês
fornecido.
210 )
Uma empresa possui em uma tabela o registro de todas as compras de matéria prima para
sua produção. Esta tabela possui duas colunas: a primeira o código do produto,
representado por um valor inteiro e na segunda o valor da mercadoria em reais ignorando
os centavos. Uma mesma matéria prima aparece diversas vezes na tabela, cada uma
correspondendo à uma compra. Faça um procedimento que receba esta tabela, a quantidade
de linhas desta, o código de uma mercadoria e retorne o maior valor de compra existente da
mercadoria fornecida.
Assuma que no programa principal exista um tipo chamado TABELA: array[1..10000, 1..2]
of integer;
211 )
Dica:
A primeira linha do procedimento é:
Procedure troca (var s : senha; N : integer);
212 )
Escreva um procedimento PASCAL chamado "QUE" que receba uma frase de 80 caracteres
e retorne quantas vezes ocorre a seqüência de letras que. Por exemplo, na frase
lkjaljquelkjalquhjhkjhamnvhdque
a seqüência acima aparece 2 vezes. Assuma que no programa principal o tipo
frase = array[1..80] of char foi declarado.
213 )
a) receba uma frase com 80 caracteres, a posição dentro da frase onde deve ser
inserido o caracter e o próprio caracter;
b) retorne a mesma frase alterada observando que a partir da posição dada , toda a
frase deve ser deslocada de uma posição para a direita, criando espaço para o novo
caracter.
214 )
b) Substitua nesta linha toda ocorrência da letra "n" antes de "p" ou "b" pela letra
"m".
Assuma que a frase contém apenas letras minúsculas e que o seguinte tipo foi definido:
FRASE = ARRAY [1..80] OF CHAR
215 )
Faça uma PROCEDURE PASCAL que: