Introdução à Programação B (2017/2018)

Lista de exercícios

Artur Miguel Dias



Prática 14 (Semana de 06/nov/2017-2)

Sumário: Vetores de registos. Exercício 41 e 42.



  • P : 41 - Escreva um programa completo que leia até um máximo de 20 datas do teclado para um vetor de datas. O final da sequência é marcado pela data inexistente 0/0/0 (marca de fim). (Se quiser, pode copiar e adaptar a função de leitura que aparece no início da aula teórica 6.)

    Depois da leitura dos dados, o programa deve mostrar:

    Se o vetor ficar vazio, o programa deve escrever numa linha "NAO EXISTE MAXIMO NEM MINIMO".

    No seu programa, defina a seguinte constante:

    Defina o seguintes tipos: Defina a seguinte variável global: Defina também, pelo menos, as seguintes funções: Repare que as funções menor_data e igual_data são necessárias, porque o C não permite aplicar os operadores de comparação a registos.
  • 42 - A "Padaria da Esquina" pretende informatizar as suas atividades e encomendou-lhe a realização de um programa de gestão de vendas e de gestão de stock. As constantes e tipos do programa estão abaixo. Pode copiá-las para o seu programa.

    Eis um exemplo de dados de entrada que descrevem o stock inicial da padaria. Para simplificar, consideramos que hoje a padaria trabalha com apenas variedades de pães/bolos. Repare que para cada variedade de pão se indica em primeiro lugar, numa linha: nome (uma palavra), quantidade (inteiro), número de ingredientes usados na fabricação (inteiro). A lista de ingredientes aparece depois em várias linhas, com as percentagens de cada ingrediente.

    Já foi escrita uma função inteira (chamada ler_stock) para ler o stock (i.e., as existências) da padaria a partir do teclado. Não se preocupe em perceber esta parte do código completamente, até porque são usadas algumas funções da biblioteca do C que ainda não foram estudadas nas aulas teórica (mas irão ser...).

  • a) Escreva uma função inteira que examine um vetor s de tipo Stock, com n posições preenchidas, para procurar o índice da variedade de pão com o nome indicado. Caso não exista uma variedade de pão com esse nome, a função devolve -1.
  • b) Escreva uma função inteira que efetue num vetor s de tipo Stock, com n posições preenchidas, as alterações corres­ponden­tes à venda de algumas unidades da variedade de pão com o nome indicado. A função retorna o número de unidades que foi possível vender. Se não for possível satisfazer totalmente o pedido (por não haver quantidade suficiente em stock), devem ser vendidos apenas os pães existentes. Se o nome da variedade de pão for desconhecido, faz-se uma venda de zero pães.
  • c) Escreva uma função inteira que, dado uma variedade de pão p, determine qual o índice do ingrediente principal (i.e. com maior percentagem). Assume-se que todas as variedades de pão têm pelo menos um ingrediente.
  • d) Para terminar o desenvolvimento dum programa completo, escreva uma função main que faça seguinte: Exemplo de execução (as respostas do utilizador são mostradas em negrito):