Você está na página 1de 3

PARTE 1 Estruturas

1. Queremos desenvolver uma biblioteca especfica para manipulao de strings. Para isso, voc deve implementar as seguintes funes: a) Funo Igual: verifica se duas strings S1 e S2 passadas como parmetro so idnticas. Se forem, retorna 1. Se forem diferentes, retorna 0. b) Funo Tamanho: recebe como parmetro uma string S1 e retorna o tamanho de S1. c) Funo CharEmString: recebe como parmetro uma string S1 e um caractere C e retorna a posio da primeira ocorrncia do caractere C em S1 ou -1 se ele no existir na string. d) Funo Funde: recebe duas strings S1 e S2 como parmetros e retorna uma string S3 que o resultado da fuso de S1+S2 e) Funo E_palindromo: recebe como parmetro uma string S1 e verifica se ele um palndromo (isto , uma palavra, frase ou sequncia de caracteres que possui a propriedade de poder ser lida tanto da direita para a esquerda como da esquerda para a direita Exemplos: Socorram-me, subi no onibus em Marrocos OU arara). f) Funo SubString: recebe como parmetro uma string S1 e uma substring S2 e retorna um valor inteiro que corresponde primeira ocorrncia da S2 em S1. Se S2 no ocorrer em S1, ento a funo retorna -1. Exemplo: Se S1=cavaleiro e S2=eiro, a funo retorna 5. g) Funo CortaString: recebe como parmetro uma string S1 e um valor inteiro N que corresponde posio a partir da qual a string ser apagada. A funo retorna 0 caso a posio N existe e -1 se a posio no existir na string. Exemplo: Se S1=cavaleiro e N=3, a funo modifica S1 para cava. Se N=20, a funo retorna -1.

PARTE 2 Estruturas
2. Escreva um programa em C que manipule um vetor de registros com dados de 100 funcionrios de uma empresa, conforme a estrutura a seguir:
int mat; /* matricula */ char nome[60]; char sexo; /* M ou F */ float salario;

O programa deve ter as seguintes funes: a) uma funo para ler os dados dos 100 funcionrios e retornar o vetor preenchido com todos os valores lidos. b) uma funo para imprimir os dados dos 100 funcionrios, por linha, da seguinte forma:
Nome: Fulano de Tal | Mat: 098 | R$ 3.450,00

c) uma funo que recebe como parmetro um caractere correspondente ao sexo e que imprime os dados (conforme formato anterior) somente dos funcionrios do respectivo sexo. d) uma funo que faa a atualizao do salrio de todos os funcionrios de acordo com o percentual informado como parmetro. e) uma funo que retorne um vetor com as matrculas dos funcionrios com salrio maior do que o valor passado como parmetro para a funo.

f) uma funo que calcule e imprima o percentual de imposto de renda de um funcionrio, tendo como parmetro a sua matrcula, de acordo com a tabela: Ganho Mensal % Imposto At 1.499,15 Isento De 1.499,16 at 2.246,75 7,5 De 2.246,76 at 2.995,70 15,0 De 2.995,71 at 3.743,19 22,5 Acima de 3.743,19 27,5 3. Considere a estrutura do tipo SENSOR abaixo:
struct sensor { int id; double referencia; /* valor de referncia */ double medida; char tipo; /* T=temperatura, P=presso, V=tenso */ char localizao[10]; /* cdigo do local na planta */ };

Considere uma planta industrial com 100 sensores de temperatura, 50 de tenso e 100 de presso. Construa um programa para armazenar os dados provenientes dos sensores utilizando: i. Um vetor nico de 250 posies; ii. Uma estrutura contendo 3 vetores (presso, temperatura e tenso) de sensores. Para ambas as solues, implemente: a) Uma funo para imprimir os ids de todos os valores de medida 10% acima do valor de referncia de tenso, 5% acima do de presso e 10% acima do de temperatura, assim como os valores medidos; b) Uma funo para imprimir os ids todos os valores de medida 5% abaixo dos valores de referncia, assim como os valores medidos; c) Um funo para imprimir os ids dos sensores medindo valores de presso acima de 15% e sua localizao na planta; d) Uma funo para calcular o erro mdio entre as medidas de tenso, temperatura e presso dos sensores. e) Uma funo para imprimir os ids e a localizao dos sensores com valores iguais ou com um erro (para cima ou para baixo) inferior a 1% aos valores de referncia. 4. Construa um programa para simular uma agenda de telefones. Cada pessoa na agenda deve possuir os seguintes dados: Nome e-mail Endereo (campos para Rua, nmero, complemento, bairro, CEP, cidade, estado, pas) Telefone (campos para DDD e nmero) Data de aniversrio (campos para dia e ms) Observaes (uma string para alguma observao especial) Definir a estrutura anterior e crie uma agenda (vetor de pessoas) com capacidade de agendar at 100 nomes. Para simular o funcionamento da agenda, o programa deve criar um menu com as seguintes opes: Busca por primeiro nome: Imprime os dados da pessoa com esse nome (se tiver mais de uma pessoa, imprime para todas) Busca por ms de aniversrio: Imprime os dados de todas as pessoas que fazem aniversrio nesse ms.

Insere pessoa: Insere por ordem alfabtica de nome. Retira pessoa: retira todos os dados dessa pessoa e desloca todos os elementos seguintes do vetor para a posio anterior. Imprime agenda com as opes: (i) nome, telefone e e-mail ou (ii) todos os dados. Sair do programa (Ateno! Se voc no quiser perder os dados digitados, voc dever salvar a agenda em um arquivo, conforme mostrado em aulas anteriores) Ler um arquivo com dados para a agenda.

5. Crie um programa para controlar os produtos do estoque de uma loja de material eltrico. supermercado. Para cada produto, tem-se os seguintes campos: Nome // descrio do produto em at 80 caracteres Cdigo // cdigo de 16 caracteres setor /* cdigo usado na empresa para identificar o local deve ser modelada como uma estrutura contendo os campos loja (0-10), corredor (0-50), estante (01000), prateleira (0-5) */ Quantidade // Quantidade em estoque Preco //preo, em Real, por unidade do produto Defina a estrutura produto. Em seguida, declare um vetor Estoque (do tipo da estrutura definida acima) de tamanho 1000. Em seguida, para simular o funcionamento do programa, crie um menu com as seguintes opes: a) Ler o vetor estoque. b) Receber um setor e devolva o nmero de diferentes produtos desse setor. c) Calcular e imprimir o total de capital investido em produtos da loja. d) Buscar e imprimir todos os produtos com estoque inferior a 5. e) Buscar e imprimir os dados de um produto a partir do seu cdigo. f) Sair do Programa. A mesma observao anterior quanto ao armazenamento em arquivo vale aqui!

Você também pode gostar