Buscar

Estruturas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

questões erradas:
1 - Incorreto (não armazena idade)
2 - Correta
3 - Correta
4 - Incorreta (cálculo incorreto dos juros)
5 - Correto
6 - Incorreta (não apresenta menu, nem permite pesquisa)
7 - Correta
Para cada um dos problemas a seguir, implemente um programa utilizando a
Linguagem C (para alunos do curso de Engenharia de Computação) ou Python (para
alunos do curso de Ciência da Computação).
1.1. A prefeitura de Fortaleza fez uma pesquisa entre seus habitantes, coletando
dados sobre salário, idade, sexo e número de filhos. Faça um programa que leia
esses dados de 20 pessoas e mostre:
a) A média de salário da população;
b) A média do número de filhos;
c) O maior salário;
d) O percentual de mulheres com salário superior a R$ 10.000,00;
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
int main (void)
{
int i,d=0,m=0;
float n_filho=0,media_sal=0,p,maior;
struct dados
{
int n_filho;
float salario;
char sexo;
};
struct dados vetor[20];
for(i=0;i<20;i++)
{
printf("Digite a quantidade de filhos da pessoa %d...:",i+1);
scanf("%d",&vetor[i].n_filho);
printf("Letra do sexo da pessoa %d...:",i+1);
scanf(" %c",&vetor[i].sexo);
if(vetor[i].sexo=='m')
{
printf("Digite o salario da pessoa %d...:",i+1);
scanf("%f",&vetor[i].salario);
if(i==0 || vetor[i].salario>maior)
{
maior=vetor[i].salario;
}
}
if(vetor[i].sexo=='f')
{
m++;
printf("Digite o salario da pessoa %d...:",i+1);
scanf("%f",&vetor[i].salario);
if(i==0 || vetor[i].salario>maior)
{
maior=vetor[i].salario;
}
if(vetor[i].salario>10000)
{
d++;
}
}
media_sal = media_sal + vetor[i].salario;
n_filho = n_filho + vetor[i].n_filho;
}
media_sal=media_sal/20;
n_filho=n_filho/20;
p=((d/m)*100);
printf("\nMedia filhos ...:%.2f",n_filho);
printf("\nMedia salarial...:%.2f",media_sal);
printf("\npercentual ...:%.2f",p);
printf("\nmaior ...:%.2f",maior);
return 0;
}
1.2. Faça um programa contendo os serviços que uma oficina mecânica realiza. Uma
ordem se serviço é composta pelas seguintes informações: número da OS, data,
valor, descrição do serviço realizado e nome do cliente. Leia as informações sobre
várias ordens de serviço e determine, ao final:
a) a média dos valores dos serviços realizados e
b) o nome do cliente que realizou o serviço mais caro, juntamente com a descrição
desse serviço e a data de sua realização.
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
int main (void)
{
int n,m,i=0;
float maior,g=0;
struct servico
{
int numeroOS;
char data[20];
char descricao[10000];
char nome[1000];
float preco;
};
printf("Digite a quantidade de clientes...:");
scanf("%d",&n);
struct servico vetor[n];
for(i=0;i<n;i++)
{
printf("Digite o nome do cliente %d...:",i+1);
setbuf(stdin,NULL);
gets(vetor[i].nome);
printf("Digite o preco pago pelo cliente %d...:",i+1);
scanf("%f",&vetor[i].preco);
g=g+vetor[i].preco;
if(i==0 || vetor[i].preco>maior)
{
maior=vetor[i].preco;
m=i;
}
printf("Digite a data da compra do cliente %d...:",i+1);
setbuf(stdin,NULL);
gets(vetor[i].data);
printf("Digite a descricao do servico do cliente %d...:",i+1);
gets(vetor[i].descricao);
printf("Digite o numero OS do cliente %d...:",i+1);
scanf("%d",&vetor[i].numeroOS);
}
g=g/n;
printf("Valor medio...: %.2f\n\n",g);
printf("Dados do cliente...:\n");
printf("\nCliente...: %s",vetor[m].nome);
printf("\nDescricao.: %s",vetor[m].descricao);
printf("\nData......: %s",vetor[m].data);
printf("\nNumeroOS..: %d",vetor[m].numeroOS);
printf("\nPreco.....: %.2f",vetor[m].preco);
return 0;
}
1.3. Faça um programa que leia o código, a descrição, o valor e a quantidade em
estoque de 10 produtos comercializados por uma papelaria. Essas informações
devem ser armazenadas em um registro do tipo vetor em ordem crescente de código.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main (void)
{
struct produtos
{
char descricao[1000];
int codigo;
float valor;
int quantidade;
};
struct apoio
{
int codigo;
char descricao[1000];
float valor;
int quantidade;
};
int n=15,i,j;
struct produtos vetor[n];
struct apoio vet[n];
for(i=0;i<n;i++)
{
printf("Digite a descricao do produto %d...:",i+1);
setbuf(stdin,NULL);
fgets(vetor[i].descricao,1000,stdin);
printf("Digite a quantidade do produto %d...:",i+1);
setbuf(stdin,NULL);
scanf("%d",&vetor[i].quantidade);
printf("Digite o codigo do produto %d...:",i+1);
setbuf(stdin,NULL);
scanf("%d",&vetor[i].codigo);
printf("Digite o valor do produto %d...:",i+1);
setbuf(stdin,NULL);
scanf("%f",&vetor[i].valor);
}
for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
{
if(vetor[j].codigo>vetor[j+1].codigo)
{
vet[0].codigo=vetor[j].codigo;
vetor[j].codigo=vetor[j+1].codigo;
vetor[j+1].codigo=vet[0].codigo;
vet[1].quantidade=vetor[j].quantidade;
vetor[j].quantidade=vetor[j+1].quantidade;
vetor[j+1].quantidade=vet[1].quantidade;
vet[2].valor=vetor[j].valor;
vetor[j].valor=vetor[j+1].valor;
vetor[j+1].valor=vet[2].valor;
strcpy(vet[0].descricao,vetor[j].descricao);
strcpy(vetor[j].descricao,vetor[j+1].descricao);
strcpy(vetor[j+1].descricao,vet[0].descricao);
}
}
}
printf("Pordutos em ordem crescente de codigo...:\n");
for(i=0;i<n;i++)
{
printf("%d\n",i+1,vetor[i].codigo);
printf("%d\n",vetor[i].quantidade);
printf("%.2f\n",vetor[i].valor);
printf("%s\n\n\n",vetor[i].descricao);
}
return 0;
}
1.4. Uma empresa armazena informações sobre as contas a receber de seus clientes.
Cada uma dessas contas possui as seguintes informações: número do documento,
código do cliente, data de vencimento, data de pagamento, valor da conta de valor de
juros. Faça um programa para ler as informações sobre 15 documentos (contas a
receber) e exibir o total geral arrecadado com juros. Se a data de pagamento for maior
que a data de vencimento, em um determinado documento, o programa deverá
calcular o valor do campo “juros”, o qual corresponde a 0,02% do valor do
documento para cada dia em atraso.
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
struct conta_a_receber
{
int num_doc;
int codigo_cliente;
char data_vencimento[11];
char data_pagamento[11];
float valor_conta;
float valor_juros;
};
int ncontas,i,k,ano_pagamento;
char
ano_doc_str[11],mes_doc_str[11],dia_doc_str[11],ano_pag_str[11],mes_pag_str[11],dia_pag
_str[11];
struct conta_a_receber contas[15];
float juros = 0.02;
float valor_juros,val_arrecadado;
float ano_doc,mes_doc,dia_doc,ano_pag,mes_pag,dia_pag;
ncontas = 15;
val_arrecadado = 0;
printf("\nDigite os dados necessários: \n");
for (i=0;i<ncontas;i++)
{
printf("Numero do documento: ");
scanf("%d",&contas[i].num_doc);
printf("\nCodigo do cliente: ");
scanf("%d",&contas[i].codigo_cliente);
setbuf(stdin, NULL);
printf("\nData de vencimento [dd/mm/aaaa]: ");
gets(contas[i].data_vencimento);
for (k=0;k<4;k++)
{
ano_doc_str[k]=contas[i].data_vencimento[6+k];
}
ano_doc = atof(ano_doc_str);
for (k=0;k<2;k++)
{
mes_doc_str[k]=contas[i].data_vencimento[3+k];
}
mes_doc = atof(mes_doc_str);
for (k=0;k<2;k++)
{
dia_doc_str[k]=contas[i].data_vencimento[0+k];
}
dia_doc = atof(dia_doc_str);
setbuf(stdin, NULL);
printf("\nData de pagamento [dd/mm/aaaa]: ");
gets(contas[i].data_pagamento);
setbuf(stdin, NULL);
for (k=0;k<4;k++)
{
ano_pag_str[k]=contas[i].data_pagamento[6+k];
}
ano_pag = atof(ano_pag_str);
for (k=0;k<2;k++)
{
mes_pag_str[k]=contas[i].data_pagamento[3+k];
}
mes_pag = atof(mes_pag_str);
for (k=0;k<2;k++)
{
dia_pag_str[k]=contas[i].data_pagamento[0+k];
}
dia_pag = atof(dia_pag_str);
printf("\nValor da conta: ");
scanf("%f",&contas[i].valor_conta);
if (ano_pag == ano_doc)
if (mes_pag == mes_doc)
if (dia_pag == dia_doc)
valor_juros = 0;
else
{
if (dia_pag > dia_doc)
valor_juros = (dia_pag-dia_doc)*juros;
else valor_juros = 0;
}
else
{
if (mes_pag > mes_doc)
valor_juros = ((30-dia_doc)+(dia_pag-1)+(mes_pag-mes_doc-1)*30)*juros;
if (mes_pag < mes_doc)
valor_juros = 0;
}
else
{
if (ano_pag > ano_doc)
valor_juros =
((30-dia_doc)+(dia_pag-1)+(mes_pag-1)*30+(12-mes_doc)*30+(ano_pag-ano_doc-1)*365)*juros;
if (ano_pag < ano_doc)
valor_juros = 0;
}
val_arrecadado+=contas[i].valor_conta+valor_juros;
contas[i].valor_juros = valor_juros;
}
printf("Total Arrecadado com Juros = %.2f",val_arrecadado);
return 0;
}
1.5. Considere que uma boutique de luxo de Fortaleza precisa guardar informações
sobre o funcionamento do seu negócio. Mais especificamente a boutique necessita
armazenar: a) Para cada Estilista deseja-se armazenar: código do estilista, nome do
estilista, salário); b) Para cada Estação Climática deseja-se guardar: código da
estação, nome da estação; c) Para cada Roupa comercializada pela boutique
deseja-se armazenar: código da roupa, descrição da roupa, código do estilista,
código da estação e ano. Faça um programa que cadastre 5 estilistas, as 4 estações
do ano e 10 roupas. Ao final, o programa deve imprimir os dados de todas as roupas
de uma determinada estação sugerida pelo usuário.
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
int main(void)
{
int i;
struct ESTILISTA
{
int cod_esti;
char nome_esti[30];
float sal;
};
struct ESTILISTA v[5];
for (i=0;i<5;i++)
{
printf("-----------Para o estilista %d---------- \n", i+1);
printf("Escreva seu codigo: ");
scanf("%d", &v[i].cod_esti);
printf("Escreva o nome do estilista: ");
setbuf(stdin,NULL);
fgets(v[i].nome_esti,30,stdin);
printf("Escreva o salario do estilista: ");
scanf("%f", &v[i].sal);
printf("\n");
}
struct ESTACAO
{
int cod_esta;
char nome_esta[11];
};
struct ESTACAO ve[4];
for (i=0;i<4;i++)
{
printf("--------Para a estacao %d--------\n", i+1);
printf("Digite o codigo da estacao: ");
scanf("%d", &ve[i].cod_esta);
printf("Escreva o nome da estacao: ");
setbuf(stdin, NULL);
fgets(ve[i].nome_esta,11,stdin);
printf("\n");
}
struct ROUPA
{
int cod_r;
char desc[50];
int cod_estir;
int cod_estar;
int ano;
};
struct ROUPA vet[10];
for (i=0;i<10;i++)
{
printf("--------Para a roupa %d--------\n", i+1);
printf("Digite o codigo da roupa: ");
scanf("%d", &vet[i].cod_r);
printf("Escreva a descricao da roupa: ");
setbuf(stdin, NULL);
fgets(vet[i].desc,50,stdin);
printf("Digite o codigo do estilista: ");
scanf("%d", &vet[i].cod_estir);
printf("Digite o codigo da estacao: ");
scanf("%d", &vet[i].cod_estar);
printf("Digite o ano da roupa: ");
scanf("%d", &vet[i].ano);
printf("\n");
}
char esta[11];
int j;
printf("\nAgora que os cadastros foram efetuados, escreva o nome da estacao que quer
pesquisar: ");
setbuf(stdin, NULL);
fgets(esta,11,stdin);
for(i=0;i<4;i++)
{
if (strcmp(esta,ve[i].nome_esta)==0)
{
for(j=0;j<10;j++)
{
if (ve[i].cod_esta==vet[j].cod_estar)
{
printf("\nCodigo da roupa: %d\n", vet[j].cod_r);
setbuf(stdin, NULL);
printf("Descricao: %s\n", vet[j].desc);
printf("Codigo do estilista: %d\n", vet[j].cod_estir);
printf("Codigo da estacao: %d\n", vet[j].cod_estar);
printf("Ano: %d\n", vet[j].ano);
}
}
}
}
}
1.6. O acervo da Biblioteca da UFC precisa ser informatizado. Para tanto, as principais
informações sobre as obras da biblioteca foram estruturadas da seguinte maneira: a)
Obra (numero do tombo, numero do exemplar, data da compra); b) Tombo (numero do
tombo, nome da obra, nome do autor, nome da editora, ano); Sabe-se que existem 20
tombos e, para cada tombo, há no máximo três exemplares (obras). Defina vetores de
registros para armazenar tais informações. Implemente um programa que
disponibilize as seguintes operações aos usuários: 1. Cadastrar tombo; 2. Cadastrar
obra; 3. Mostrar obras por ano, onde o ano é fornecido pelo usuário; 4. Mostrar obras
por autor, onde o nome do autor é fornecido pelo usuário; 5. Mostrar obras por
editora; 6. Encerrar o programa;
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
struct Obra
{
int tombo;
int num;
char data[10];
};
typedef struct Obra obra;
struct Tombo
{
int tombo;
char nome[30];
char autor[30];
char editora[30];
int ano;
obra obras[3];
int totalobras;
};
typedef struct Tombo tombo;
void cadastroTombo(tombo t[]);
void cadastroObra(tombo *t);
int indiceTombo;
int main(void){
indiceTombo=0;
tombo vet_tombo[20];
printf("\nCadastro de Tombo\n");
cadastroTombo(vet_tombo);
printf("\nPrint Tombo");
printf("\ntombo: %d", vet_tombo[0].tombo);
printf("\nnome: %s",vet_tombo[0].nome);
printf("\neditora: %s", vet_tombo[0].editora);
printf("\nano: %d",vet_tombo[0].ano);
printf("\ntotal obras: %d",vet_tombo[0].totalobras);
printf("\nCadastro de Obra\n");
cadastroObra(&vet_tombo[0]);
printf("\nPrint Obra");
printf("\nnumero: %d", vet_tombo[0].obras[0].num);
printf("\ntombo: %d", vet_tombo[0].obras[0].tombo);
printf("\ndata: %s",vet_tombo[0].obras[0].data);
}
void cadastroTombo(tombo t[]){
tombo newTombo;
printf("Digite o numero Tombo: ");
scanf("%d",&newTombo.tombo);
setbuf(stdin,NULL);
printf("Nome da Obra: ");
fgets(newTombo.nome,30,stdin);
setbuf(stdin,NULL);
printf("Nome da Editora: ");
fgets(newTombo.editora,30,stdin);
printf("Digite o ano: ");
scanf("%d",&newTombo.ano);
newTombo.totalobras=0;
t[indiceTombo]=newTombo;
indiceTombo=indiceTombo+1;
}
void cadastroObra(tombo *t){
int indiceobras;
indiceobras=(*t).totalobras;
obra newObra;
printf("Digite o numero obra: ");
scanf("%d",&newObra.num);
newObra.tombo=(*t).tombo;
setbuf(stdin,NULL);
printf("Data da Compra (dd/mm/yyyy): ");
fgets(newObra.data,10,stdin);
(*t).obras[indiceobras]=newObra;
(*t).totalobras=(*t).totalobras+1;
}
1.7. Uma empresa deseja fazer um programa para armazenar as informações
referentes à propina paga aos políticos. Para cada propina paga pela empresa ela
deseja armazenar: a data do pagamento, o valor da propina, a descrição da obra
relacionada a propina, o nome do político que recebeu a propina e a sigla do seu
partido. Faça um programa que leia um conjunto de pagamentos, até que o usuário
informe que não deseja mais cadastrar pagamentos de propina. Em seguida, o
programa deverá imprimir a sigla do partido que mais recebeu propina.
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
int main(void)
{
int i=0,j=0,opcao,maior=0,m;
struct PROPRINA
{
char data[11];
float valor;
char desc[500];
char nome[300];
char sigla[10];
};
struct PROPRINA vetor[100];
printf("Menu de opcoes...:\n1-Fazer o arquivo.\n2-Finalizar.\n");
for(i=0;i<100;i++)
{
printf("\n\nEscolha a opcao..:");
scanf("%d",&opcao);
if(opcao==1)
{
printf("Nome do politico...:");
setbuf(stdin,NULL);
gets(vetor[i].nome);
printf("Descricao...:");
setbuf(stdin,NULL);
gets(vetor[i].desc);
printf("Sigla do partido...:");
setbuf(stdin,NULL);
gets(vetor[i].sigla);
printf("Data...:");
setbuf(stdin,NULL);
gets(vetor[i].data);
printf("Quantia...:");
setbuf(stdin,NULL);
scanf("%f",&vetor[i].valor);
j++;
}
if(opcao==2)
{
break;
}
}
int vet[j];
for(i=0;i<j;i++)
{
vet[i]=vetor[i].valor;
}
for(i=0;i<j;i++)
{
for(m=0;m<j;m++)
{
if(m!=i)
{
if(strcmp(vetor[i].sigla,vetor[m].sigla))
{
vet[i]=vet[i]+vetor[m].valor;
}
}
}
}
for(i=0;i<j;i++)
{
if (vet[i]>maior)
{
maior = i;
}
}
printf("\nA sigla do partido que mais recebeu proprina: %s", vetor[maior].sigla);
return 0;
}

Continue navegando