Buscar

Lista de Exercícios Binarios 01

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

UNIVERSIDADE FEDERAL DE SANTA CATARINA
Lista Exercícios Binários N 1.
Programação de Computadores II
Carlos Eduardo Vilarinho							12202304
 1) Um determinado instituto de pesquisa realizou uma pesquisa a nível nacional, na qual foram 
entrevistadas uma certa quantia de pessoas. 
Cada pessoa respondeu ao seguinte questionário: 
Sexo: ( )M ( )F 
Idade: ____ anos 
Fumante: ( )S ( )N 
Considere um arquivo binário de registros (denominado “resposta.bin”) que contém as 
respostas de todas as pessoas entrevistadas. Cada registro armazena a resposta de uma 
pessoa entrevistada através dos seguintes campos: sexo (um caractere, podendo ser ‘M’ ou 
‘F’), idade (valor inteiro), fumante (um caractere, podendo ser ‘S’ ou ‘N’). Faça um programa 
que leia este arquivo binário e responda as seguintes perguntas: 
• Qual é o percentual de fumantes em relação ao número total de pessoas entrevistadas? 
• Qual é o percentual de homens não fumantes abaixo de 40 anos em relação ao número total 
de homens entrevistados? 
• Qual é o percentual de mulheres fumantes acima de 40 anos em relação ao número total de 
mulheres entrevistadas? 
#include <stdio.h>
void limpaBuffer(){
	setbuf(stdin,NULL);
}
//definicao da struct
typedef struct {
	int numero;
	char sexo;
	int idade;
	char fuma;
} search;
//programa principal
main() {
FILE *bancoPesquisa;
search pes;
int i=1, upSexo, upFuma;
char sair='\0';
float percentFuma=0, percentMan=0, percentWman=0, fum=0, hnf=0, mf=0, man=0, wman=0;
bancoPesquisa = fopen("bancoPesquisa.dat","wb+");
//gravar os dados digitados
	while (sair!='n'){
		printf("Qual seu Sexo?\n");
 	limpaBuffer();
 	pes.sexo = getchar();
 	limpaBuffer();
		pes.numero = i;
		printf("Qual sua Idade?\n");
 	limpaBuffer();
 	scanf("%d",&pes.idade);
		printf("Voce eh fumante?\n");
 	limpaBuffer();
		pes.fuma = getchar();	
		fwrite(&pes, sizeof(search), 1, bancoPesquisa);
 	i++;
	 	if(pes.fuma=='s'){
 		fum = fum +1;
	 	}
	 	if(pes.sexo=='f'){
 		wman = wman +1;
	 	}
	 	if(pes.sexo=='m'){
 		man = man +1;
	 	}
 	if( (pes.fuma=='n') && (pes.sexo=='m') && (pes.idade<40) ) {
 		hnf = hnf+1;
 	}
 	if( (pes.fuma=='s') && (pes.sexo=='f') && (pes.idade>40) ) {
 		mf = mf+1;
 	}
 	
 	printf("Digite n Para Encerrar Pesquisa...\n");
 	limpaBuffer();
		scanf("%c", &sair);
	}
	fclose(bancoPesquisa);
// Abrir para a leitura do que esta no arquivo
 bancoPesquisa = fopen("bancoPesquisa.dat","rb+");
 if (bancoPesquisa != NULL) {
 fread(&pes, sizeof(search), 1, bancoPesquisa);
 if (ferror(bancoPesquisa)) {
 printf("\nOcorreu um erro na leitura.");
 }
 while (!feof(bancoPesquisa)) { 
 		limpaBuffer();
 	printf("\nIndice Pesquisa: %d | Sexo: %c | Idade: %2d | Fumante: %c |",pes.numero, 	upSexo = toupper(pes.sexo), pes.idade, upFuma = toupper(pes.fuma) );
 	fread(&pes, sizeof(search), 1, bancoPesquisa);
 } 
 } 
 fclose(bancoPesquisa);
 
 	// Resultado da Pesquisa..
 	printf("\n\nTotal de Pessoas Entrevistadas: %d",pes.numero);
 	percentFuma = ( fum / pes.numero) * 100 ;
 	printf("\nPercentual de Fumantes: %.2f ",percentFuma);
 	
 	percentMan = ( hnf / man) * 100 ;
 	printf("\nPercentual de Homens nao Fumantes Abaixo dos 40 Anos: %.2f ",percentMan);
 	
 	percentWman = ( mf / wman)* 100 ;
 	printf("\nPercentual de Mulheres Fumantes Acima dos 40 Anos: %.2f ",percentWman);
}
2) Considere um arquivo binário de registros (denominado “alunos.bin”) onde cada registro armazena as seguintes informações sobre um aluno qualquer de uma turma de, no máximo, 50 alunos: matrícula (cadeia de 3 caracteres), nome (cadeia de 30 caracteres) e três notas referentes às avaliações feitas pelo aluno (valores reais entre 0 e 10). Faça um programa que leia este arquivo e apresente a matrícula, o nome, a nota média (a soma das três notas dividida por três) e o conceito (“excelente” se a média for maior ou igual a 8.5, “bom” se a média for maior ou igual a 7.0 e menor que 8.5, e “preocupante” se a média for menor que 7.0) de cada aluno da turma. 
#include <stdio.h>
#include <string.h>
void limpaBuffer(){
	setbuf(stdin,NULL);
}
//definicao da struct
typedef struct {
	int codigo;
	float nota1,nota2,nota3, mediaNotas;
	char mat[4];
	char nome[30];
	char status[15];
} turma;
//programa principal
main() {
FILE *bancoPesquisa;
turma aluno;
int i=48; 
char sair='\0';
bancoPesquisa = fopen("alunos.dat","wb+");
//gravar os dados digitados
	while (sair!='n'){
	
		aluno.codigo = i;
	
		printf("Qual sua Matricula ?\n");
 	limpaBuffer();
 	scanf("%s",&aluno.mat);
 	strupr(aluno.mat);
		printf("Qual seu Nome ?\n");
 	limpaBuffer();
 	scanf("%s",&aluno.nome);
 	strupr(aluno.nome);
		printf("Qual sua Nota_1 ?\n");
 	limpaBuffer();
		scanf("%f",&aluno.nota1);
		printf("Qual sua Nota_2 ?\n");
 	limpaBuffer();
		scanf("%f",&aluno.nota2);
		printf("Qual sua Nota_3 ?\n");
 	limpaBuffer();
		scanf("%f",&aluno.nota3);
		aluno.mediaNotas = (aluno.nota1 + aluno.nota2 + aluno.nota3) / 3;
		if(aluno.mediaNotas >= 8.5){
			strcpy(aluno.status , "Excelente");
		}
		
		if( (aluno.mediaNotas >= 7.0) && ( aluno.mediaNotas <8.5) ){
			strcpy(aluno.status , "Bom");
		}
		
		if(aluno.mediaNotas < 7.0){
			strcpy(aluno.status , "Preocupante");
		}
		fwrite(&aluno, sizeof(turma), 1, bancoPesquisa);
 	i++;
 	
 	printf("Digite n Para Encerrar Pesquisa...\n");
 	limpaBuffer();
		scanf("%c", &sair);
		
	if(i>50){
		printf("A Ficha dos Alunos ultrapassou de 50 Registros.\n");
		sair='n';
	}
	}
fclose(bancoPesquisa);
// Abrir para a leitura do que esta no arquivo
 bancoPesquisa = fopen("alunos.dat","rb+");
 if (bancoPesquisa != NULL) {
 fread(&aluno, sizeof(turma), 1, bancoPesquisa);
 if (ferror(bancoPesquisa)) {
 printf("\nOcorreu um erro na leitura.");
 }
 while (!feof(bancoPesquisa)) { 
 	limpaBuffer();
 	printf("\n\nCodigo: %d|Matricula: %s|Nome: %s|Nota_1: %.2f|Nota_2: %.2f|Nota_3: %.2f|Media: %.2f|Status: %s|", aluno.codigo, aluno.mat, aluno.nome, aluno.nota1, aluno.nota2, aluno.nota3, aluno.mediaNotas, aluno.status);
 	fread(&aluno, sizeof(turma), 1, bancoPesquisa);
 } 
 } 
 fclose(bancoPesquisa);
}

Outros materiais