Ana səhifə

Universidade Regional Integrada do Alto Uruguai e das Missões Campus Frederico Westphalen Departamento de Engenharias e Ciência da Computação Algoritmos e Estrutura de Dados I informática I


Yüklə 0.52 Mb.
səhifə23/23
tarix25.06.2016
ölçüsü0.52 Mb.
1   ...   15   16   17   18   19   20   21   22   23

16.3Conjuntos - Set


SET OF permite a definição de tipos conjuntos, que podem ser referenciados e manipulados como qualquer operação de conjunto disponivel em matemática :

= SET OF ;

TYPE


carac = SET OF CHAR;

digitos = SET OF 0..9;

vogal = SET OF ('A','E','I','O','U','a','e','i','o','u');

a manipulação dos conjuntos depende da declaração deste tipo na área de variáveis:

VAR

car : carac;



dig : digitos;

vog : vogal;

a construção de um conjunto é feita a partir de um construtor '[' ']' e o conteúdo :

[1, 3, 7, 11, 13] {conjunto dos numeros inteiros 1,3,7,11,13}

['A' .. 'Z', 'a' .. 'z'] {conjunto das letras de 'A' a 'Z' minúsculas e maiúsculas }

[ ] {conjunto vazio}

As operações com conjuntos são similares às operações de conjuntos em matemática.

Atribuição de valores para conjuntos: :=

car := ['s','S','n','N'];

Permite a união entre conjuntos: +

dig := [1,2,3,4,5] + [2,4,6,8,10];

{resulta [1,2,3,4,5,6,8,10]}

Diferença entre conjuntos: -

vog := ['a','u'] - ['a','e','i','o']; {resulta ['u']}

Intersecção entre conjuntos: *

car := ['s','S','n','N'] * ['s','S'];

{resulta nos elementos comuns entre ambos ['s','S']}

E ainda relação entre conjuntos:



=

if conj1 = conj2

{verdadeiro se todos elementos forem idênticos}

<>

if conj1 <> conj2

{verdadeiro se pelo menos um elemento pertencer a ambos os conjuntos}

<=

if conj1 <= conj2

{verdadeiro se todos elementos de conj1 estiverem contidos em conj2}

>=

if conj1 >= conj2

{verdadeiro se todos elementos de conj2 estiverem contidos em conj1}

IN

if conj1 IN conj2

{verdadeiro se conj1 for um elemento de conj2}

17.Bibliografia


CORMEN, Thomas H. & LEISERSON, Charles E. & RIVEST, Ronald L. Introduction to Algorithms. New York. McGraw-Hill, 1990.

FARRER, Harry et alli Algoritmos Estruturados. Rio de Janeiro. Editora Guanabara Koogan S.A, 1989. 252p.

GOTTFRIED, Byron S. Programação em Pascal. Lisboa. McGraw Hill, 1994. 567p.

MANZANO, José Augusto N. G. & OLIVEIRA, Jayr Figueiredo. Algoritmos: Lógica Para Desenvolvimento de Programação. São Paulo. Érica, 1996. 270p.

MECLER, Ian & MAIA, Luiz Paulo. Programação e Lógica com Turbo Pascal. Rio de Janeiro, Campus, 1989. 223p.

ORTH, Afonso Inácio. Algoritmos. Porto Alegre. Editora Pallotti, 1985. 130p.

SALIBA, Walter Luís Caram. Técnicas de Programação: Uma Abordagem Estrutura. São Paulo. Makron, McGraw-Hill, 1992. 141p.

GOTTFRIED, Byron S. Programação em Pascal. Lisboa. McGraw Hill, 1994. 567p.

GRILLO, Maria Célia Arruda. Turbo Pascal 5.0 e 5.5. Rio de Janeiro, LTC - Livros Técnicos e Científicos, 1990. 396p.

HERGERT, Douglas. Dominando o Turbo Pascal 5. Rio de Janeiro. Editora Ciência Moderna, 1989. 550p.

MECLER, Ian & MAIA, Luiz Paulo. Programação e Lógica com Turbo Pascal. Rio de Janeiro, Campus, 1989. 223p.

OSIER, Dan. Aprenda em 21 dias Delphi 2. Rio de Janeiro. Campus, 1997. 840p.

PALMER, Scott D. Guia do Programador Turbo Pascal for Windows. Rio de Janeiro, Ed. Ciência Moderna Ltda, 1992. 470p.

RINALDI, Roberto. Turbo Pascal: versão 5.5. São Paulo. Érica, 1990. 411p.

RINALDI, Roberto, Turbo Pascal 7.0: comandos e funções. São Paulo, Érica, 1993. 525p.

Apêndice A - Exercícios



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

  2. Escreva um algoritmo/programa em Pascal para ler um número positivo qualquer, calcular e escrever o quadrado e a raiz quadrada do mesmo.

  3. Escrever um algoritmo/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.
    Calcular a média aritmética pela fórmula: a + b + c
    3

    Calcular a média harmônica pela fórmula: 3____


    1 + 1 + 1
    a b c

    Calcular a média geométrica pela fórmula:



  4. Escrever um algoritmo/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.

  5. Escrever um algoritmo/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.

  6. Escrever um algoritmo/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.

    onde s = semi-perímetro



  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 algoritmo/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.

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

  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.

  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.

  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

  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.

  13. Escrever um algoritmo/programa em Pascal que lê o número de um funcionário, o número de horas por ele trabalhadas, o valor que recebe por hora, o número de filhos com idade inferior a 14 anos, a idade, o tempo de serviço do funcionário e o valor do salário família por filho.
    Calcular o salário bruto, o desconto do INSS (8,5% do salário bruto) e o salário família.
    Calcular o IR (Imposto de Renda) como segue:
    Se Salário Bruto > 1.500,00 então IR = 15% do SB
    Se Salário Bruto > 500,00 e SB <= 1.500,00 então IR = 8% do SB
    Se salário Bruto <= 500,00 então IR = 0
    Calcular o adicional conforme especificado:
    Se idade superior a 40 anos ADIC = 2% do SB
    Se tempo de serviço superior a 15 anos ADIC = 3.5% do SB
    Se tempo de serviço < 15 anos mas superior a 5 anos e idade maior do que 30 anos então ADIC = 1,5% do SB.
    Calcular o salário líquido. Escrever o número do funcionário, salário bruta, total dos descontos, adicional e salário líquido.

  14. Escrever um algoritmo/programa em Pascal que lê o número de identificação e as 3 notas obtidas por um aluno nas 3 verificações e a média dos exercícios que fazem parte da avaliação.
    Para cada aluno, calcular a média de aproveitamento, usando a fórmula:

    MA = Nl + N2 x 2 + N3 x 3 + ME


    7

    A atribuição de conceitos obedece à tabela abaixo:

    Média de Aproveitamento Conceito
    >= 9.0 A
    >= 7.5 e < 9.0 B
    >= 6.0 e < 7.5 C
    >= 4.0 e < 6.0 D
    < 4.0 E
    O algoritmo/programa em Pascal deve escrever o número do aluno, suas notas, a média dos exercícios, a média de aproveitamento, o conceito correspondente e a mensagem: "APROVADO" se o conceito for A, B, ou C e "REPROVADO" se conceito for D ou E.


  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.



  16. Escrever um algoritmo/programa em Pascal que lê a hora de início de um jogo e a hora de término do jogo, ambas subdivididas em 2 valores distintos, a saber: horas e minutos.
    Calcular e escrever a duração do jogo, também em horas e minutos, considerando que o tempo máximo de duração de um jogo é de 24 horas e que o jogo pode iniciar em um dia e terminar no dia seguinte.

  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.

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

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

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

  21. Escrever um algoritmo/programa em Pascal que escreve a soma dos números múltiplos de 7 entre 100 e 200.

  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.

  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

  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.

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

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

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

  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.

  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.

  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.

  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.

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

  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.

  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.
    1 x n = n
    2 x n = 2n
    ...
    n x n = n2

  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.

  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.

  37. Escrever um algoritmo/programa em Pascal que lê um número não determinado de conjuntos de valores, cada um formado pelo número de um aluno e suas 3 notas. Calcular, para cada aluno, a média ponderada com pesos respectivos de 4 para a maior nota e 3 paras as outras duas. Escrever o número do aluno, suas 3 notas, a média calculada e uma mensagem "aprovado" se nota >= 5 ou "reprovado" para nota < 5.

  38. Escrever um algoritmo/programa em Pascal que lê, para cada vendedor de uma empresa, o seu número de identificação, seu salário fixo e o total de vendas em reais por ele efetuadas. Cada vendedor recebe um salário fixo e 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, para cada vendedor, o seu número de identificação, o tota1 de suas vendas, seu salário fixo e seu salário total.

  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.

  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.).

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

  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.

  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 + ...

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

  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 ...

  46. Supondo que a população de um país A seja da ordem de 90.000.000 de habitantes com uma taxa anual de crescimento de 3,1% e que a população de um país B seja de 200.000.000 de habitantes com uma taxa anua1 de crescimento de 1,5%, escrever um algoritmo/programa em Pascal que calcula quantos anos serão necessários para que a população do país A ultrapasse a do país B, mantidas as taxas atuais de crescimento.

  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.

  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

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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!".

  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.

  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.

  60. Escreva um algoritmo/programa em Pascal que lê um conjunto de 30 valores e os coloca em 2 vetores conforme forem pares ou impares. O tamanho dos vetores é de 5 posições. Se algum vetor estiver cheio, escreve-lo. Terminada a leitura escrever o conteúdo dos 2 vetores. Cada vetor pode ser preenchido tantas vezes quantas for necessário.

  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.

  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.

  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.



  1. Escrever um algoritmo/programa em Pascal que lê uma matriz M(6,6) e calcula as somas das partes hachuriadas.

    Escrever a matriz M e as somas calculadas



  2. 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.

  3. Escrever um algoritmo/programa em Pascal que lê uma matriz M(6,6) e um valor A e multiplica a matriz M pelo valor A e coloca os valores da matriz multiplicados por A em um vetor de V(36) e escreve no final o vetor V.

  4. Escrever um algoritmo/programa em Pascal que lê uma matriz M(5,5) e cria 2 vetores SL(5), SC(5) que contenham respectivamente as somas das linhas e das colunas de M. Escrever a matriz e os vetores criados.

  5. Escrever um algoritmo/programa em Pascal que lê uma matriz A(12,13) e divida todos os 13 elementos de cada uma das 12 linhas de A pelo valor do maior elemento em módulo daquela linha. Escrever a matriz A lida e a matriz A modificada.

  6. Escrever um algoritmo/programa em Pascal que lê uma matriz A(8,8) sem elementos duplicados e a escreve. Ler, a seguir, um nº não determinado de valores N e verifique para cada N lido se o valor de N está ou não na matriz A. Se estiver, encerrar a pesquisa escrevendo o valor e a mensagem: "Foi encontrado na posição:", caso contrário escrever o valor e a mensagem: “O valor não está na matriz A”.

  7. Na teoria de Sistemas define-se como elemento mínimax de uma matriz, o menor elemento da linha em que se encontra o maior elemento da matriz. Escrever um algoritmo/programa em Pascal que lê uma matriz A(10,10) e determina o elemento mínimax desta matriz, escrevendo a matriz A e a posição do elemento mínimax.

  8. Escrever um algoritmo/programa em Pascal que lê uma matriz N(15,5) e a escreve. Verifique, a seguir, quais os elementos de M que estão repetidos e quantas vezes cada um deles está repetido. Escrever cada elemento repetido com uma mensagem dizendo a quantidade de vezes que aparece M.

  9. Escrever um subalgoritmo/programa em Pascal TROCA (x, y, z, p) que troca entre si os conteúdos de:
    – x e y, se p = 1
    – y e z, se p = 2
    – x e z, se p = 3.

  10. Escrever um algoritmo/programa em Pascal que lê um vetor Y(30) e o escreve. Conte a seguir, quantos valores iguais a A estão neste vetor e escreva esta informação. Crie a seguir um vetor X contendo todos os elementos de V diferentes de A e escreva este vetor compactado de V. Utilize subalgoritmo/subprograma para ler e escrever vetores, bem como, para contar o número de valores A e para criar o vetor X.

  11. Uma matriz quadrada é dita simétrica se para todo i e j, o elemento (i, j) é sempre igual ao elemento (j,i). Escrever um subalgoritmo/subprograma que verifica se uma matriz é ou não simétrica.

  12. Logo após o surgimento dos computadores, os mesmos foram usados principalmente para cálculos científicos. Como seu aparecimento se deu em pleno período de guerras, um dos primeiros cálculos foi o da trajetória de projéteis.
    Se um projétil é atirado com uma velocidade inicial V(m/s) a um ângulo de inclinação T(radianos), sua posição no plano vertica1 x, j, no tempo t(segundos) é calculado pelas fórmulas:
    x = (V cos T)t
    j = (V sen T)t - 1/2 gt2
    onde 0 < T < /2
    g = 9,8 m/s2
    Escrever um subalgoritmo/subprograma que recebe T e Y e lista as coordenadas x, j em intervalos de 0.1s para um tiro particular, terminando quando o projéti1 atingir o solo.

  13. Escrever um subalgoritmo/subprograma em Pascal que recebe um vetor que pode ter elementos em duplicata e altera o vetor recebido, substituindo os elementos repetidos por 0, retornando o vetor modificado e o número de modificações feitas.
    Obs.: Substituir por 0 só a segunda ocorrência dos valores repetidos.

  14. Escrever um algoritmo/programa em Pascal que lê 2 vetores x e y e chama um subalgoritmo/subprograma em Pascal para calcular o produto de X por Y.


  15. Um quadrado mágico de ordem n (sendo n um número impar) é um arranjo de números de 1 a n em uma matriz quadrada de tal modo que a soma de cada linha, coluna e diagonal é a mesma.

15

8

1

24

17

16

14

7

5

23

22

20

13

6

4

3

21

19

12

10

9

2

25

18

11

A figura mostra um quadrado mágico de ordem 5. A regra para gerá-lo é relativamente fácil de observar: Comece com o 1 no meio da primeira linha, então siga para cima e para a esquerda diagonalmente (quando sair do quadrado suponha que os lados superior e inferior estão unidos ou que os lados da direita e da esquerda estão unidos, conforme for o caso) em cada quadrado que passar coloque o valor do quadrado anterior mais 1 (um), quando atingir um quadrado já ocupado, desça um quadrado e continue seguindo a diagonal até ter preenchido todos os quadrados.


Escrever um programa em Pascal que lê 5 números impares, um de cada vez, e gere e escreva para o número lido, o seu quadrado mágico.

Experimente usar o depurador:

A tecla permite que você execute o programa passo a passo;

· Digitando + é exibido o status da pilha do sistema; Digitando + obtém-se uma janela onde é possível consultar o valor das variáveis;

· Digitando + você tem acesso à "tela real" do seu programa -

· Refaça alguns exercícios, se possível utilizando uma função para cada um dos ítens solicitados - Use variáveis locais em cada uma das funções - Digite-o, teste-o e execute-o.

· Execute os programas passo a passo, porém, utilizando a janela de "watch" para observar o valor das variáveis: ative a janela de ”watch" com a opção "watch" do menu "WINDOW', insira variáveis na janela com a tecla ; remova variáveis da janela com a tecla ;

· Procure observar o escopo das variáveis a medida que você percorre as funções - Para fazer o depurador "entrar” nas funções use a tecla ao invés de .



1   ...   15   16   17   18   19   20   21   22   23


Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©atelim.com 2016
rəhbərliyinə müraciət