Caderno de Exercícios
Caderno de Exercícios
Caderno de Exercícios
A partir dos erros encontrados, elabore um resumo sobre as regras de uso correto dos componentes da linguagem Pascal. 1. Declarao de variveis/Constantes, Comando de Atribuio e Expresses. Program exemplo1; Const valor:= 90.5; Var Unitrio, total, qtde: integer; Nome: char; Teste: boolean; Valor: real; Begin Qtde:=1.5; Total:=3; Unitrio:=total/qtde; Quadrado:=total**2; Nome:=teste; True:=false; Letra1:=A; Letra2:=B; Teste:=letra1>letra2; Valor:=valor*letra1; End. 2. Funes do Pascal / Comandos de Entrada e Sada de Dados (com uso de formatao) Program Exemplo2 Var Resp, outro; char; Num1, num2: integer; Resultado: real; Begin Write(Entre com os nmeros para o clculo, num`, num2); Resultado:=succ num1 + sqrt num2; Write(resp); Write(Deseja ver os resultados? (S/ N)); Readln(resp); Resp:=S; Write(O resultado da expresso foi resultado:6:3); Writeln(Deseja outro calculo?); Upcase(outro):=outro; End. 3. Estrutura de Seleo (IF.....THEN.....ELSE) Program Exemplo3; Var Sexo, resp_carta: char; Idade, num_reserv, mulheres, num_carta, d_val, m_val, a_val: integer; Begin Read(sexo, idade);
If sexo=M and idade>=18 then Write(Digite o nmero da carteira de reservista: ); Read(num_reserv); Else Mulheres:=mulheres+1; Write(Possui carteira de motorista?`); Read(reso_carta); If resp_carta = S or s then Write(Digite o nmero da carteira e a data de validade: ); Read(num_carta, d_val, m_val, a_val); If a_val=2013 then Write(Ateno! Voc deve renovar sua carteira! ); Seno Write(Voc deve tirar sua carteira para poder dirigir !); End. 4. Estrutura de Repetio (WHILE .... DO) Programa Exemplo4; Var Peso_ideal, altura: real; Sexo: char; Begin Write(Entre com sua altura (-1 para encerra): ); Read(altura); While altura <> 1 do Begin Write(Sexo: ); Read(sexo); While (sexo<>F) or (sexo<>f) or (sexo<>M) or (sexo<>m) do Write(erro: Digite M ou F para o sexo!); Read(sexo); If sexo=M or sexo=m then peso_ideal:=(72.7*altura)-58; else peso_ideal:=(62.1*altura)-44.7; write(Seu peso ideal : , peso_ideal); End; End.
ESTRUTURA DE CONTROLE SEQUENCIAL 1. Faa um algoritmo que receba o salrio-base de um funcionrio, calcule e mostre o salrio a receber, sabendp-se que esse funcionrio tem gratificao de 5% sobre p salrio-base e paga imposto de 7% sobre o total. Soluo 1: salBase, salReceber, grat, imp: real; Incio Leia(salBase) Grat<-salBase*5/100
salReceber<-salBase+grat-imp Imp<-SalReceber*7/100 salReceber<-salReceber-imp Escreva(salReceber) Fim Soluo 2: salBase, salRecebre, Imp: real; Incio Leia(salBase) SalBase<-(salBase*5/100) Imp<-salReceber*7/100 salReceber<-salReceber-imp Escreva(salReceber) Fim 2. Faa um algoritmo que receba o ano de nascimento de uma pessoa e o ano atual, calcule e mortre: a. A idade dessa pessoa; b. Quantos anos ela ter em 2005. Soluo 1: Ano_atual, ano_nascimento, idade_atual, idade_2005: inteiro Incio Leia(ano_nascimento, ano_atual) Idade_atual<-ano_atual-ano_nascimento Idade_2005<-2005-ano_nascimento Escreva(idade_atual) Escreva(idade_2005) Fim
3. Algoritmo do tringulo: Faa um algoritmo para ler a base e a altura do tringulo. Em seguida, escreva a rea do mesmo. rea=(Base*Altura)/2 Algoritmo Triangulo; Var Base, altura, rea: real; Begin Write(Digite a base do tringulo: ); Readln(base); Write(Digite a altura do tringulo: ); Readln(altura); rea:=(base*altura)/2; Write(A rea do tringulo : , rea:10:2); End. 4. Algoritmo Preo de Automvel: O preo de um automvel calculado pela soma do preo de fbrica com o preo dos impostos (45% do preo de fbrica) e a percentagem do revendedor (28% do preo de fbrica). Faa um algoritmo que leia o
nome do automvel e o preo de fbrica e imprima o nome do automvel e o preo final. Program Preco; Var Nome; string; Preco_fabrica, preco_final, imposto: real; Begin Write(Digite nome: ); Readln(nome); Write(Digite preo de fbrica: ); Readln(preco_fabrica); Imposto:=preco_fabrica*(0.45 + 0.28); Preco_final:=preco_fabrica+imposto; Writeln(Automvel: , nome); Writeln(Preo de venda: ,preco_final:10:2); End.
1. Construa um algoritmo que receba a idade do usurio e verifique se ele tem mais de 21 anos.
Program Pzim ; var idade: integer; Begin writeln(Qual a sua idade?); readln(idade); if (idade>=21) then writeln(Voc de maior!!) else writeln(Voc de menor!!); End.
2. Construa um algoritmo que receba trs nmeros inteiros e verifique qual o maior.
Program Pzim ; var n1, n2, n3: integer; Begin writeln(Entre com o primeiro nmero:); readln(n1); writeln(Entre com o segundo nmero:); readln(n2); writeln(Entre com o terceiro nmero:); readln(n3); if (n1>n2) then begin if (n2>n3) then begin writeln(O , n1, o maior.);
end else if (n1>n3) then begin writeln(O , n1, o maior.); end else begin writeln(O , n3, o maior.); end; end else if (n2>n3) then begin writeln(O , n2, o maior.); end else begin writeln(O , n3, o maior.); end; End.
3. Construa um algoritmo que calcule o peso ideal de uma pessoa. Dados de entrada: altura e sexo. Frmulas para o clculo do peso: Peso ideal de homem = (72,7 x altura) 58 Peso ideal de mulher = (62,1 x altura) 44,7
Program Pzim ; var sexo: integer; peso, altura: real; Begin writeln(Sexo(1-Homem 2-Mulher):); readln(sexo);
//analisa se escolha de sexo vlida
if ((sexo<1) or (sexo>2)) then begin writeln(Opo invlida!); end else begin writeln(Qual a sua altura?); readln(altura); if (sexo=1) then //usurio homem begin peso:=(72.7*altura)-58; end else //usurio mulher begin peso:=(62.1*altura)-44.7; end; end; writeln(Seu peso ideal ,peso); End.
4. Construa um algoritmo que receba o cdigo de um produto e o classifique de acordo com a tabela abaixo: CDIGOS DE CLASSIFICAO 1 Alimento no-perecvel 2 a 4 Alimento perecvel
5 e 6 Vesturio 7 Higiene pessoal 8 a 15 Limpeza e utenslios domsticos Qualquer outro cdigo Invlido
Program Pzim ; var cod: integer; Begin writeln(Cdigo do produto:); readln(cod); Case (cod) of 1: writeln(Alimento no-perecvel); 2,3,4: writeln(Alimento perecvel); 5,6: writeln(Veturio); 7: writeln(Higiene pessoal); 8,9,10,11,12,13,14,15: writeln(Limpeza domsticos) else writeln(Cdigo Invlido!); end; End.
utenslios
5. Construa um algoritmo que leia uma quantidade indeterminada de nmeros inteiros positivos e identifique qual foi o maior nmero digitado. O final da srie de nmeros digitada deve ser indicada pela entrada de -1.
Program Pzim ; var n, maior: integer; Begin maior:=0; repeat writeln(Entre com um terminar):); readln(n); if (n>maior) then begin maior:=n; end; until (n<0); writeln(O maior : ,maior); End.
nmero
inteiro
positivo
(-1
para
6. Construa um algoritmo que leia trs valores inteiros e os imprima em ordem crescente.
Program Pzim ; var n1,n2,n3: integer; Begin writeln(Digite o primeiro nmero:); readln(n1); writeln(Digite o segundo nmero:); readln(n2); writeln(Digite o terceiro nmero:); readln(n3); if (n1>n2) then begin if (n1>n3) then
begin if (n2>n3) then begin writeln(Nmeros em ordem crescente: ,n3, n2, n1); end else writeln(Nmeros em ordem crescente: , n2, n3, n1); end else writeln(Nmeros em ordem crescente: end else if (n2>n3) then begin if (n1>n3) then begin writeln(Nmeros em ordem crescente: end else writeln(Nmeros em ordem crescente: end else writeln(Nmeros em ordem crescente: , n1, End. , n2, n1, n3);
7. Construa um algoritmo que receba um nmero inteiro e verifique se o mesmo primo. 8. Dada a frmula: H = 1 + + 1/3 + + ... + 1/n. Construa um algoritmo que calcule o nmero H, dado o nmero inteiro N. 9. Construa um algoritmo que calcule o fatorial de um nmero N inteiro e positivo (N!). Saiba que: N! = 1x2x3x...x(n-1)xn 0! = 1 10. A srie de Fibonacci formada pela seguinte sequencia: 1,1,2,3,5,8,13,21,34,55,.... Construa um algoritmo que gere a srie de Fibonacci at o vigsimo termo. 11. Construa um algoritmo que leia cinco nmeros inteiros e identifique o maior e o menor. 12. Construa um algoritmo que imprima a tabela de equivalncia de graus Fahrenheit para centgrados. Os limites do de 50 a 70 graus Fahrenheit com intervalo de 1 grau. Frmula: C = 5/9(F-32) 13. Uma rainha requisitou os servios de um monge, o qual exigiu o pagamento em gros de trigo da seguinte maneira: os gros de trigo seriam dispostos em um tabuleiro de xadrez, de tal forma que a primeira casa do tabuleiro tivesse um gro, e as casas seguintes o dobro da anterior. Construa um algoritmo que calcule quantos gros de trigo a Rainha dever pagar ao monge. 14. Construa um algoritmo que apure uma eleio com trs candidatos. O algoritmo deve realizar as seguintes tarefas: Calcular o total de votos para cada candidato; Calcular a quantidade de votos nulos; Calcular a quantidade de votos em branco; Calcular o percentual de votos em branco e nulos em relao ao total; A votao deve obedecer as seguintes convenes: 1,2,3 => votos dos candidatos; 4 => votos em branco;
5 => votos nulos; 0 => encerramento da apurao; 15. Jos tem 1,50m e cresce 2 centmetros por ano. Pedro tem 1,10m e cresce 3 centmetros por ano. Construa um algoritmo que calcule em quantos anos Pedro ser maior que Jos. 16. Faa um algoritmo que calcule a mdia ponderada de um aluno, a partir de duas 3 notas obtidas no curso, sabendo-se que a primeira avaliao tem peso 2, a segunda tem peso 4 e a terceira tem peso 4. Mostre, ao final, a mensagem: A MDIA FINAL DE ... FOI .... Informar tambm se o aluno foi aprovado, mostrando a mensagem APROVADO caso a nota final seja maior ou superior a 7,0. Aluno: caracter; nota1, nota2, nota3, media: real p1, p2, p3: inteiro; Incio P1<-2; P2<-4; P3<-4; Leia(aluno); Leia(nota1, nota2, nota3); Media(nota1*p1+nta2*p2+nota3*p3)/10; Escreva(A mdia de , aluno, foi , media); Se (media>=7,0) ento Escreva(Aprovado); Fim se Fim
17. Elabore um algoritmo usando notao de fluxograma que verifique se um dado nmero inteiro positivo PAR ou MPAR.
Incio
Num
Num mod 2 F V
Num eh par Num eh mpar
Fim
18. Modifique o algoritmo da mdia do aluno para informar: APROVADO............... caso a nota final esteja no intervalo [10, 7] RECUPERAO.......... caso a nota final esteja no intervalo [5, 7] REPROVADO.............. caso a nota final esteja no intervalo [0, 5] Aluno: caracter; Nota1, nota2, nota3, media: real; Inicio Leia(aluno); Leia(nota1, nota2, nota3); Media<-(nota1*0.2+nota2*0.4+nota3*0.4) Escreva(A mdia de, aluno, foi , media); Se (media>=7,0) ento Escreva(Aprovado); Seno Se(media<7,0 e media>=5,0) ento Escreva(Recuperao); Seno Escreva(Reprovado); Fim se; Fim se; Fim 19. Faa um algoritmo que leia 2 valores numricos e um smbolo. Caso o smbolo seja um dos relacionados abaixo efetue a operao correspondente com os valores. Ateno para a diviso por 0! + - * / operao de soma operao de subtrao operao de multiplicao operao de diviso
Num1, num2: real; Operador: caracter: Incio Leia(num1, num2); Leia(operador); Escolha operador Caso +: escreva(num1+num2); Caso -: escreva(num1-num2); Caso *: escreva(num1*num2); Caso /: Se num2<>0 ento Escreva(num1/num2) Seno Escreva(Diviso indefinida); Fim se Fim escolha; Fim
20. Dados 3 valores A, B, C, verifique se podem ser valores de lados de um tringulo e, se for, determine se o tringulo equiltero, issceles ou escaleno. 21. Sejam 3 nmeros distintos, A, B, C. Coloque-os em ordem crescente, utilizando seleo encadeada (ou aninhada). 22. Algoritmo 3 Menores: Faa um algoritmo que leia 3 nmeros inteiros e imprima o menor deles. Program Menor_2; Var N1, n2, n3, menor: integer; Begin Clrscr; Writeln(Digite 3 valores:); Read(n1, n2, n3); If (n1<n2) and (n1<n3) then Menor:=n1; Else If (n2<n1) and (n2<n3) then Menor:=n2; Else Menor:=n3; Writeln(O menor dos valores : ,menor); End. 23. Algoritmo Salrio: Uma empresa tem para um determinado funcionrio uma ficha contendo o nome, nmero de horas trabalhadas e o no de dependentes de um funcionrio. Considerando que: a. A empresa paga 12 Reais por hora e 40 Reais por dependentes; b. Sobre o salrio so feitos descontos de 8,5% para o INSS e 5% par IR; Faa um algoritmo para ler o Nome, nmero de horas trabalhadas e nmero de dependentes de um funcionrio. Aps a leitura, escreva qual o Nome, salrio bruto, os valores descontados para cada tipo de imposto e finalmente qual o salrio lquido do funcionrio: Program Salario; Uses Crt; Var Nome: string; Numhora, salBruto, salliq: real; Numdep: integer; Begin Clrscr; Write(Digite o nome do funcionrio: ); Read(nome); Write(Nmero de horas trabalhadas: ); Read(numhora); Write(Nmero de dependentes: );
Read(numdep); Writeln; Salbruto:=(12*numhora)+(40*Numdep); Salliq:=salbruto-((salbruto*0.085)+(salbruto*0.05)); Write(Nome do funcionrio: , nome); Writeln; Write(Salrio Lquido: , salliq); End.
1.
Receber 3 valores numricos em 3 variveis A, B e C, e trocar os valores entre as variveis de forma que, ao final do algoritmo, a varivel A possua o menor valor e a varivel C o maior. 2. Dado um nmero inteiro de segundos, mostrar a quantidade de horas, minutos e segundos correspondentes. 3. Considere o seguinte problema: Queremos calcular a mdia final da segunda unidade dos alunos da 6 srie. Os 40 alunos realizaram trs provas. A primeira prova teve peso 2.0, a segunda teve peso 4.0 e a terceira, peso 4.0. I Ates de elaborar o algoritmo, responda as perguntas a seguir: a) Qual o objetivo do algoritmo? b) Quais so os dados de entrada? c) Qual ser o processamento a ser utilizado? d) Quais sero os dados de sada? e) Existem restries/regras especficas do problema? II Agora elabore a parte de declarao de dados do algoritmo, usando pseudocdigo. Crie variveis e constantes. Lembre que os identificadores devem ser menmnicos! III Agora elabore um algoritmo para solucionar o problema. Mesmo sem conhecer as estruturas de controle do Portugol voc pode elaborar um algoritmo usando notao que quiser (texto em portugus, desenhos etc). IV Seu algoritmo est correto? Como voc pode conferir? Aponte os erros encontrados. 4. Seja a srie S= 1/1 2!/4 + 3!/9 4!/16 + 5!/25 6!/36 ... 10!/100 a. Elabore um algoritmo, usando notao de fluxograma, que determine o valor de S para 10 termos. b. Faa um teste exaustivo do algoritmo feito no item (a) para os 3 primeiros termos de S, usando uma tabela como no modelo abaixo: Var 1 var2 var3 condio ... ... ... ...
5. Escreva um algoritmo em pseudocdigo que receba um nmero inteiro positivo N e apresente um quadro de nmeros como o que se segue abaixo. Este o caso de N=5. Considere que o string /n indica salto de linha e use o comando escreva (/n) pra executar a ao de saltar uma linha, a fim de imprimir nmeros numa nova linha. 12345 23456 34567 45678 56789
6. Desejamos efetuar uma anlise estatstica a respeito dos livros vendidos por uma livraria em uma determinado ms. Para cada livro so fornecidas as seguintes informaes: ttulo do livro, tipo (F=Fico / N=No-Fico / T=Tcnico-Cientfico), preo unitrio de venda e quantidade de exemplares vendidos no ms. Elabore um algoritmo em pseudolinguagem que leia as informaes sobre os livros e ao final, mostre o seguinte relatrio: a. Quantidade de exemplares de cada tipo (Fico, No-Fico, TcnicoCientfico) vendidos no ms; b. Mdia de preos de venda de livros por tipo; c. Nome do livro mais vendido com eu preo de venda (Obs.: preciso considerar empates); 7. O algoritmo abaixo l um conjunto de CPFs de n pessoas de uma regio (consideramos que o nmero de n pessoas sempre maior ou igual a dois) e informa se os CPFs esto organizados em ordem crescente ou decrescente. A leitura dos CPFs deve ser interrompida logo que se identifiquem que eles no esto organizados em ordem crescente ou decrescente (isto , esto em ordem randmica). Verifique o algoritmo e corrija os 9 erros existentes, acrescentando ou corrigindo os comandos. No necessrio reescrever todo o algoritmo. Cpf, menor, maior: inteiro; Cont: real; Decresente, crescente: caracter; Incio Escreva (Entre com a quantidade de CPFs do conjunto (maior que 1):); Leia(n); Escreva(Entre um nmero de CPF:); Leia(cpf); Menor<-cpf; Maior<-cpf;
Crescente<-verdadeiro; Decrescente<-verdadeiro; Repita
Escreva(Entre com um nmero de CPF:); Leia(cpf); Se decrescente e (cpf< menor) ento Menor<-cpf; Seno Decrescente<-falso; Se (cpf> maior) ou crescente ento Cpf<-maior; Seno Crescente<-falso; Cont<-cont+1; At (cont>n) ou not crescente ou not decrescente; Se crescente ento Escreva(Os nmeros de CPFs esto em ordem crescente ); Seno Se decrescente ento Escreva(Os nmeros de CPFs esto em ordem decrescente); Seno Escreva(Os nmeros de CPFs esto em ordem randmica); Fim. 8. Algoritmo Mdia Valor: dado uma srie de 20 valores reais, faa um algoritmo que calcule e escreva a mdia aritmtica destes valores, entretanto se a mdia obtida for maior que 8 dever ser atribuda 10 para a mdia. Program Media_20 Var Conta: integer; Media, num, soma: real; Begin Clrscr; Conta:=0; Soma:=0; Writeln(Digite 20 numeros); While conta<20 do Begin Read(num); Soma:=soma+num; Conta:=conta+1; End; Media:=(soma/20); If media > 8 then Writeln(Mdia = 10); Else Writeln(A mdia : , media); End. Algoritmo Mdia Maior que 4: dado um conjunto de n registros cada registro contendo um valor real, faa um algoritmo que calcule a mdia dos valores maiores que 4. Program Maior4; Uses
9.
CRT; Var N, aux: integer; Soma,media, numero: real; Begin Clrscr; Write(Digite valores diferentes de 999); Writeln; Aux:=0; Soma:=0; Read(numero); While numero<>999 do Begin If numero > 4 then Begin Soma:=soma+numero; Aux:=aux+1; End; Read(numero); End; Media:=(soma/aux); Write(Mdia= ,media); End. MANIPULAO DE CADEIAS DE CARACTERES 1. Escreva um programa em Pascal para ler 20 nomes de pessoas na ordem dreta (com at 30 caracteres cada) e imprima os nomes como foram lidos e na forma sobrenome, nome. Escreva um programa em Pascal para ler frases com at 80 caracteres e determinar se cada frase um palndromo perfeito ou no. Encerrar o processamento quando uma mesma frase estiver repetida em linhas adjacentes de entrada. Sugesto: eliminar espaos em branco e demais caracteres no alfabticos antes de efetuar a verificao. Exemplo de palndromo: socorram-me, subi no nibus e Marrocos. Escreva um programa em Pascal para determinar as formas nominais e para conjugar verbos regulares de qualquer conjugao nos vrios tempos verbais simples. Estabelea um dilogo amigvel com o usurio, solicitando o verbo e informaes para direcionar o processamento. Escreva um programa em Pascal para ler uma lista de vrios nomes de 25 caracteres e imprimir os nomes na sequencia de leitura e em ordem alfabtica inversa. Encerrar o processamento quando encontrar a palavra final. Escreva um programa em Pascal para determinar o primeiro e o ltimo nomes da classificao alfabtica de um grupo de vrios nomes, sem ordenar o grupo de nomes. Encerrar o processamento quando encontrar o final do arquivo de entrada. Escreva um programa em Pascal para determinar aquele que seria o penltimo nome da classificao alfabtica num grupo de vrios nomes e sua posio relativa de entrada. Escreva um programa em Pascal para criptografar uma frase com at 80 caracteres de acordo com o seguinte algoritmo: - para os primeiros 40 caracteres da frase: cada caracter deve ser substitudo pelo caracter que est trs posies sua frente na tabela ASCII. Os trs ltimos caracteres da tabela ASCII sero substitudos pelo caracter que o
2.
3.
4.
5.
6. 7.
antecede em trs posies na tabela ASCII. Os trs primeiros caracteres da tabela ASCII sero substitudos pelos trs ltimos. 8. Escreva um programa em Pascal para decodificar uma frase com 80 caracteres que foi criptografada pelo programa anterior. 9. Escreva um programa em Pascal para ler os nomes dos vrios amigos de uma pessoa (at encontrar o final do arquivo de entrada) e determinar as vrias maneiras que essa pessoa pode convidar os amigos para jantar. Considere um mximo de 20 amigos. 10. Escreva um programa em Pascal que converta um nmero inteiro positivo de at 6 dgitos em um nmero romano. Projete o programa de forma que possa execut-lo repetidamente, at que o valor zero seja fornecido pelo utilizador. Ex.: Entrada Sada 5 V 12 XII 50 L 100 C 350 CCCL
11. Escreva um programa em Pascal para ler um nmero em algarismos romanos e determinar seu correspondente em algarismos arbicos. 12. Escreva um programa em Pascal para ler um nmero real com at 10 dgitos (duas casas decimais) representando uma quantia real e escrever por extenso esta quantia. 13. Escreva um programa em Pascal para ler o nome completo de vrias pessoas (at encontrar o final do arquivo) e determinar as pessoas pertencentes s vrias famlias do grupo. Lembre-se que uma pessoa geralmente pertence a mais de uma famlia. 14. Escreva um programa em Pascal para ler as relaes de at 100 nomes de pessoas que compareceram a duas festas diferentes. A segunda relao comea com `FESTA 2` e termina aps a leitura dos 100 nomes ou com o final do arquivo de entrada. O programa deve imprimir uma listagem das pessoas suspeitas (comparecerem a pelo menos uma das festas); - uma listagem das pessoas pouco suspeitas (compareceram a apenas uma das festas); - uma listagem das pessoas muito suspeitas (compareceram a ambas as festas).
15. Faa uma funo em Pascal que se comporte como um vrus, que receba uma frase e retorne a frase com cada uma das palavras duplicadas. Entrada: EU VOU PARA A MARATONA DE COMPUTAO Sada: EU EU VOU VOU PARA PARA A A MARATONA MARATONA DE DE COMPUTAO COMPUTAO
16.
EXERCCIOS ENVOLVENTO MATRIZES E VETORES 1. Faa um programa que lei dois vetores Q e R com 12 e 20 elementos inteiros (valores repetidos ou no) respectivamente e, determine o vetor W, onde W=Q R. Ao final, o programa deve mostrar o vetor W obtido, lembrando que ele no pode ter elementos repetidos. 2. Foi realizada uma pesquisa sobre a renda mensal de famlias em salvador. Para cada casa visitada foi perguntada a renda mensal. Com isso obteve-se os valores X1, X2, ... Xn (para n casas entrevistadas). Deseja-se calcular a mediana, a mdia aritmtica simples e o desvio padro da amostra. Use os procedimentos e frmulas abaixo: Mdia=xi/n Mediana= Mi = o valor central da varivel quando os valores so dispostos em ordem (crescente ou decrescente) de magnitude. Mtodo para calcular a mediana em valores no agrupados: Se houver um nmero mpar de valores ordenados s verificar o valor que ocupa a posio central. Se houver um nmero par de valores ordenados toma-se a mdia dos 2 valores que esto nas posies centrais. Desvio Padro = S =
3. Temos uma matriz ALFABETO de 15 linhas e 20 colunas onde cada elemento contm um caracter. Elaborar um programa Pascal para arrumar esta matriz de modo que as letras fiquem ordenadas segundo as linhas da matriz (da esquerda para a direita). Seu algoritmo no deve usar um vetor auxiliar! 4. Deseja-se ler duas cadeias de N caracteres cada e verificar se uma anagrama da outra, mostrando em seguida os oares que no so anagramas com a indicao no so anagramas e os pares que so anagramas com a indicao so anagramas. Ex: ALMA LAMA so anagramas BOLA LOBO no so anagramas ROMA AMOR so anagramas *Usar funes do Pascal para manipulao de cadeias de caracteres 5. Faa um programa que utilize a funo Random para gerar 1000 nmeros aleatrios e guarde-os num vetor. Ordene o vetor. Leia um nmero chutedo teclado e informe se esse nmero est ou no no vetor. Utilize busca binria para localizar o nmero. 6. Receber do usurio uma lista de N nomes e idades de pessoas, onde N tambm fornecido pelo usurio, e mostrar o nome e a idade da pessoa mais idosa e da pessoa mais jovem. 7. Gerar a matriz transposta de uma matriz 5x5 dada pelo usurio (a transposta obtida permutando-se as linhas e as colunas de uma matriz).
8. Queremos efetuar a compactao de um vetor V1 de N algarismos 0 e 1 (N<=40) digitado pelo usurio (onde cada algarismo ocupa uma posio do vetor), de forma que o vetor resultante V2 de N elementos (N<=40) possua menos elementos do que o vetor original. A regra de compactao a seguinte: a. o primeiro elemento do vetor V2 o nmero de algarismos zero que o vetor V1 contm, a partir do seu incio, at o primeiro algarismo um; b. o prximo elemento do vetor V2 o nmero de algarismos um que o vetor V1 contem, a partir do ltimo zero encontrado, at o prximo algarismo zero; c. o prximo elemento do vetor V2 o nmero de algarismos zero que o vetor V1 contm, a partir do ltimo um encontrado, at o prximo algarismo um; d. repete-se os passos b) e c) ate o final do vetor V1. Exemplo: para o vetor digitado V1=(0,0,0,1,1,0,1,0,1,1,0) Obtm-se V2=(3,2,1,1,1,2,1) Fazer o algoritmo para efetuar esta compactao, recebendo o valor de N e o vetor V1 do usurio e testando se os algarismos digitados so somente 0s e 1s. 9. Escreva um algoritmo que calcule a interseo (valores em comum) entre os valores contidos em dois vetores V1 e V2 e armazene estes valores no vetor V3. 10. Faa um algoritmo para receber do usurio 10 nomes de postos de gasolina e os preos da gasolina em cada um deles mostrar os nomes e os respectivos preos em ordem, do menor para o maior preo. (Dica: utilizar dois vetores para armazenar os nomes e os preos). 11. Faa um algoritmo para ordenar um vetor de N inteiros (Dica: encontrar o maior de todos os inteiros e troc-lo com o ltimo elemento do vetor, repetindo este procedimento N vezes porm descartando, a cada interao, os elementos j ordenados). 12. Uma matriz quadrada A, cujos elementos so designados por Ai,j, dita simtrica se Ai,j=Ai,j. Construir um algoritmo para ler uma matriz NxN do usurio (onde o valor de N tambm fornecido pelo usurio) e determinar se ela ou no simtrica.
Obs.: funes prontas podem ser utilizadas: Funes de manipulao de literais: LEN(x) retorna o nmero de caracteres do literal x. INI(x, n) retorna um iteral que consiste nos n primeiros caracteres do literal x. FIM(x, n) retorna um literal que consiste nos n ltimos caracteres do literal x. Operador de concatenao | Funes de manipulao de inteiros TRUNCA(x) 13. Elabore um programa que efetue a multiplicao de duas matrizes A(3x4) e B(4x3) de nmeros inteiros, onde a matriz A tem valores constantes e a matriz B tem seus valores fornecidos pelo usurio. O programa deve mostrar ao final, a matriz produto. Matriz A: 2 11 8 70 4 22 5 12 3 13 6 66
14. Uma locadora de vdeo com 2 filiais precisa reorganizar seu cadastro de clientes, pois existem duplicaes de cadastro de clientes em cada filial. E ela tambm deseja saber quais os clientes que locam filmes nas duas filiais. Faa um programa (com ou sem o uso de procedimentos) que, usando duas listas de clientes Filial1 e Filial2, retorne uma nica lista com todos os clientes da locadora, aparecendo somente uma vez e outra lista com os clientes que locam filmes nas duas filiais (tambm aparecendo somente uma vez). A locadora mantm as seguintes informaes de cada cliente: nome, numero de identidade e nomes dos dependentes (Mx. 3 dependentes). Obs 1: No preciso elaborar o cadastro de clientes (insero de elementos em Filial e Filial2). Considere que j est feito. Obs 2: Considere que o cadastro de clientes est duplicado quando o nome do cliente aparece mais de uma vez. 15. Dada uma sequencia de n nmeros reais, determinar os nmeros que compem a sequencia e o nmero de vezes que cada um deles ocorre na mesma. Exemplo: n=8 Sequencia: -1.7, 3.0, 0.0, 1.5, 0.0, -1.7, 2.3, -1.7 Sada: -1.7 ocorre 3 vezes 3.0 ocorre 1 vez 0.0 ocorre 2 vezes 1.5 ocorre 1 vez 2.3 ocorre 1 vez 16. Dadas duas sequencias com n nmeros inteiros entre 0 e 9, interpretadas como dois nmeros inteiros de n algarismo, calcular a sequencia de nmeros que representa a soma dos dois inteiros: Exemplo: n=8 1. Sequencia 8 2 4 3 4 2 5 1 2. Sequencia +3 3 7 5 2 3 3 7 1 1 6 1 8 6 5 8 8 17. Desafio: Voc j jogou campo minado? Faa um programa que leia uma matriz 20 x 20 de caracteres do teclado. Cada caracter pode ser: * (asterisco) representa uma bomba na coordenada lida; - (trao) representa um local sem bomba. Crie uma matriz de inteiros 20 x 20 que contenha para cada posio [i,j] o nmero de bombas na vizinhana. Imprima essa matriz na tela. Cada posio tem no mximo 8 vizinhos (as diagonais contam). Veja o exemplo para uma matriz 5x5: Entrada: *- - - - - - - * * * * * - - - - * * - - - *
Sada: 0 1 0 0 0 3 4 3 3 2
1 2 2 3 2 3 4 3 5 3 0 1 0 2 1