MC102

Algoritmos e Programação de Computadores

Quarta Lista de Exercícios

Os exercícios dessa lista cobrem as aulas até o dia 10/04.
  1. Faça um procedimento que receba uma string e a retorne escrita de trás pra frente.
  2. Faça um programa que leia uma string do teclado e diga se ela é palíndrome. Uma string é palíndrome quando pode ser lida tanto de trás pra frente quanto de frente para trás e possui exatamente a mesma seqüência de caracteres. Ex.: ASA, SUBI NO ONIBUS. Desconsidere os espaços. Defina uma função chamada Palindrome que receba uma string como parâmetro e retorne um boolean no seu programa. Dica: Use a função do exercício 1.
  3. Faça uma função que conte quantas letras maiúsculas existem numa string recebida como parâmetro.
  4. Faça uma função que conte quantas letras minúsculas existem numa string recebida como parâmetro.
  5. Faça uma função que troque todas as letras maiúsculas por minúsculas e as minúsculas por maiúscuas de uma string recebida como parâmetro.
  6. Faça uma função que receba 2 strings (A e B) e retorne uma terceira string (C) formada pelos caracteres de A e B intercalados. Ex.: Se A='Quarta' e B='Segunda', a resposta deve ser 'QSueagrutnada'.
  7. Faça uma função que dadas as strings C e B do exercício anterior, retorne a string A.
  8. Faça uma função que receba como entrada três strings (A, B e C) e retorne uma quarta string formada pela substituição de todas as ocorrências da string B pela string C dentro da string A. Ex.: Se A='Abra a porta para entrar para poder descansar calmamente', B='para' e C='e tente', a resposta deve ser: 'Abra a porta e tente entrar e tente descansar calmamente'.
  9. Faça um procedimento que receba dois números como parâmetro e os ordene.
  10. Faça um procedimento que receba 3 números como parâmetro e os ordene. Use o procedimento anterior.
  11. Dado o registro:
    Type Pessoa=Record
      Nome : String[40];
    Endereco : String[40];
    Bairro : String[40];
    Cidade : String[20];
    Estado : String[2];
    CEP : String[8];
    Idade : Integer;
    Altura : Real;
    Peso : Real;
    End;

  12. Faça os seguintes procedimentos/funções:
    • LePessoa: (função) Lê todos os dados de uma pessoa do teclado.
    • EscrevePessoa: (procedimento) Escreve todos os dados de uma pessoa na tela.
    • MaisVelho: (função) Recebe dois registros como parâmetro (A e B) e retorna true se a pessoa A é mais velha que a pessoa B.
    • MaisNovo: (função) Recebe dois registros como parâmetro (A e B) e retorna true se a pessoa A é mais nova que a pessoa B.
    • Troca: (procedimento) Recebe dois registros como parâmetro e troca o valor deles.
  13. Dado o registro:
    Type Aluno=Record
      Nome : String[40];
    RA : String[6];
    Faltas : Integer;
    Prova : Array[1..3] Of Real;
    Laboratorio : Array[1..15] Of Boolean;
    Media : Real;
    Exame : Real;
    NotaFinal : Real;
    Resultado : String[20];
    End;
    Faça os seguintes procedimentos/funções:
    • LeAluno: (função) Lê o nome, RA, notas das provas, e as entregas dos laboratórios (true para laboratório entregue e false caso contrário).
    • EscreveAluno: (procedimento) Escreve todos os dados de um aluno na tela.
    • CalculaMedia: (procedimento) Calcula a media final do aluno conforme as regras para essa disciplina e guarda no campo Media.
    • LeExame: (procedimento) Lê a nota do exame de um aluno (apenas se a média for menor que 5,0) e coloca no campo Exame.
    • CalculaNotaFinal: (procedimento) Calcula a nota final do aluno conforme as regras para essa disciplina e guarda no campo NotaFinal.
    • CalculaResultado: (procedimento) Verifica o campo NotaFinal do aluno e também o número de faltas e coloca um dos seguintes valores no campo Resultado: 'Aprovado' se o aluno for aprovado, 'Reprovado por nota' se o aluno for reprovado por nota e 'Reprovado por falta' se o aluno for reprovado por faltas.
    • MostraAlunos: (procedimento) Recebe um vetor com 100 alunos e um número N como parâmetros e imprime os primeiros N alunos do vetor (utilize a função EscreveAluno para imprimir).
    • MostraAprovados: (procedimento) Recebe um vetor com 100 alunos e um número N como parâmetros e imprime os alunos aprovados entre os N primeiros alunos do vetor.
    • MostraReprovados: (procedimento) Recebe um vetor com com 100 alunos e um número N como parâmetros e imprime os alunos reprovados entre os N primeiros alunos do vetor.
    Faça um programa que declare um vetor de 100 alunos e mostre um Menu ao usuário com uma opção para cada uma das funções/procedimentos acima. Inclua também uma opção para encerrar o programa.
  14. Como você definiria um registro para conter os dados de:
    • Um veículo novo de uma concessionária de automóveis
    • Um eletrodoméstico de uma loja
    • As notas de um aluno de uma disciplina
    • Todas as notas de um aluno durante um semestre
    • Todas as notas de um aluno durante o curso
    • Todas as disciplinas de um curso
    Faça funções/procedimentos para ler e escrever cada um dos registros que você definiu.