Você está na página 1de 6

Recredenciada pelo Decreto de 17/10/2005

(Publicado no “Minas Gerais” de 18/10/2005)


Autorizada Pela Portaria do MEC Nº 366 de 12/03/1997 – D.O.U. de 13/03/1997
Faculdade Regional do Vale do Aço – FARV
Rua Salermo n.º 299 – Bethânia – Ipatinga - MG – Fone: (31) 3824 2992

NOME: Paulo Faustini Jr & Sara Áquila .


CURSO: Ciência da Computação PERÍODO: 2º TURNO: Noturno
DISCIPLINA: Algoritmos e Estruturas de Dados I VALOR: 15 pontos
PROFESSOR: Christiano Colen Venancio DATA: 19/10/2007

1- Fazer um programa que leia um vetor de 10 números inteiros, grave no arquivo arq_vetor.txt, e depois
exiba o conteúdo do arquivo arq_vetor.txt.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define ARQ "c:/arq.txt"
#define MODO "w+"
/*
Name: Paulo Faustini Jr & Sara Áquila
Date: 19/10/07 13:26
Description: 1-Fazer um programa que leia um vetor de 10 números inteiros,
grave no arquivo arq_vetor.txt, e depois exiba o conteúdo do arquivo
arq_vetor.txt.
*/
typedef char cadeia[50];
//Prototipação das funções
FILE * AbreArquivo( cadeia path, cadeia modo);
int main( )
{
FILE *fp; //ponteiro para a estrutura do arquivo
int cont,num;
fp=AbreArquivo(ARQ,MODO);
printf("**********FaustiniJr & S.Áquila**********\n\n\n");
for (cont=0;cont<10;cont++)
{
printf("Digite o %d.o elemento: ",(cont+1));
scanf("%d",&num);
fprintf (fp,"%d",num);
}
rewind(fp);//posiciona o ponteiro no início do arquivo
printf("\n O conteudo do arquivo e: ");
while(!feof(fp))
{
fscanf(fp,"%c",&num);
printf("%c, ",num);
}
fclose(fp);
printf("\n\n");
system("pause");
}
//Especificação do corpo das funções
FILE*AbreArquivo(cadeia path,cadeia modo)
{
FILE*arq;
arq=fopen(path,modo);
if(arq==NULL)
{
printf("\nO arquivo %s nao pode ser aberto.",path);
getch();
exit(1);
}
return arq;
}

2- Fazer um programa que leia uma matriz de inteiros 3x3 e a grave no arquivo arq_matriz.txt . A matriz
deverá ser exibida no formato abaixo (somente os números) :
1 3 3
2 1 3
2 2 1
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define ARQ "c:/arq.txt"
#define MODO "w+"
/*
Name: Paulo Faustini Jr & Sara Áquila
Date: 19/10/07 13:46
Description: 2-Fazer um programa que leia uma matriz de inteiros 3x3 e a
grave no arquivo arq_matriz.txt . A matriz deverá ser exibida no formato
abaixo (somente os números)
*/
typedef char cadeia[50];
//Prototipação das funções
FILE*AbreArquivo(cadeia path,cadeia modo);
int main( )
{
FILE*fp;//ponteiro para a estrutura do arquivo
int m[3][3];
int lin,col;
printf("**********FaustiniJr & S.Aquila**********\n\n\n");
fp=AbreArquivo(ARQ,MODO);
fprintf(fp,"Matriz 3x3\n");
for(lin=0;lin<3;lin++)
{
for(col=0;col<3;col++)
{
if(lin==col)m[lin][col]=1;
else if (lin>col) m[lin][col]=2;
else m[lin][col]=3;
}
}
for(lin=0;lin<3;lin++)
{
for(col=0;col<3;col++)
{
fprintf(fp,"%d\t",m[lin][col]);
}
fprintf(fp, "\n");
}
rewind(fp);//posiciona o ponteiro no início do arquivo
printf("\n O conteudo do arquivo e: ");
printf("\n\n");
for(lin=0;lin<3;lin++)
{
for(col=0;col<3;col++)
{
fscanf(fp,"%d",&m[lin][col]);
printf("%d\t",m[lin][col]);
}
printf("\n");
}
fclose(fp);
system("pause");
}
//Especificação do corpo das funções
FILE*AbreArquivo(cadeia path,cadeia modo)
{
FILE*arq;
arq=fopen(path,modo);
if(arq==NULL)
{
printf("\nO arquivo %s nao pode ser aberto.",path);
getch();
exit(1);
}
return arq;
}

3- Fazer um programa que grave em um arquivo chamado arq_dados.txt a seguinte estrutura:


typedef struct {
char nome[40];
char telefone[16];
char email[40]
}Nome_Contato;
O programa irá armazenar cada campo da estrutura em uma linha no arquivo. Você deverá ler 10 registros
dessa estrutura. Após a leitura dos registros, o programa deverá pesquisar por um registro, solicitando ao
usuário informar o nome de quem ele pesquisar. Caso encontre, somente o registro com o nome
encontrado deverá ser exibido. No caso de não encontrar o registro, deverá ser informado ao usuário que
o registro não existe. Para fazer a comparação do nome gravado no arquivo, e o digitado, use a função
strcmp(string1, string2)
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define ARQ "c:/arq_dados.txt"
#define MODO "w+"
#define MAX 10
/*
Name: Paulo Faustini Jr & Sara Áquila
Date: 19/10/07 12:20
Description: 3-Fazer um programa que grave em um arquivo chamado
arq_dados.txt a seguinte estrutura:
nome[40];
telefone[16];
email[40]
*/
typedef char cadeia[40];
typedef struct
{
char nome[40];
char telefone[16];
char email[40];
}nome_contato;

FILE*AbreArquivo(cadeia path,cadeia modo);


int main()
{
FILE *fp;
nome_contato contatos[MAX];
int contador,contador2=0;
cadeia Nome,Telefone,Email,pesquisa;
fp= AbreArquivo(ARQ,MODO);
printf("**********FaustiniJr & S.Aquila**********\n\n\n");
for(contador=1;contador<=MAX;contador++)//ler os dados e gravar no arquivo...
{
printf("\nDigite o nome: ");
scanf("%s",&contatos[contador].nome);
fprintf(fp,"Nome: %s\n",contatos[contador].nome);
printf("Digite o numero do telefone: ");
scanf("%s",&contatos[contador].telefone);
fprintf(fp,"Telefone: %s\n",contatos[contador].telefone);
printf("Digite o email: ");
scanf("%s",&contatos[contador].email);
fprintf(fp,"email: %s\n\n",contatos[contador].email);
system("cls");
}
rewind(fp);//posicionar o arquivo...
printf("\nDigite o nome que quer pesquisar: ");
scanf("%s",&pesquisa);
system("cls");
for(contador=1;contador<=MAX;contador++)//ler no arquivo e pesquisar...
{
if(strcmp(contatos[contador].nome,pesquisa)==0)// se o nome pesquisado for igual a um nome do arquivo...
{
contador2=contador;
}
}
if(contador2!=0)//se for igual vai imprimir somente o pesquisado...
{
for(contador=1;contador<=MAX;contador++)
{
if(contador!=contador2)
{
fscanf(fp,"%s");
fscanf(fp,"%s");
fscanf(fp,"%s");
fscanf(fp,"%s");
fscanf(fp,"%s");
fscanf(fp,"%s\n");
}
else
{
printf("Nome: ");
fscanf(fp,"%s");
fscanf(fp,"%s",&Nome);
printf("%s\n",Nome);
printf("Telefone: ");
fscanf(fp,"%s");
fscanf(fp,"%s\n",&Telefone);
printf("%s\n",Telefone);
printf("email: ");
fscanf(fp,"%s");
fscanf(fp,"%s\n\n",&Email);
printf("%s\n\n",Email);
}
}
}
else printf("\nO registro nao existe.\n");//se o nome nao existir...
fclose(fp);
getch();
}
//Especificação do corpo das funções
FILE*AbreArquivo(cadeia path,cadeia modo)
{
FILE*arq;
arq=fopen(path,modo);
if(arq==NULL)
{
printf("\nO arquivo %s nao pode ser aberto.",path);
getch();
exit(1);
}
return arq;
}

4- Fazer um programa que manipule um vetor de 5 elementos da estrutura abaixo:


typedef char telefone[4][16];

typedef struct { Dados do Funcionário:


char rua[30]; Matricula:
int numero; Nome: Data Admissão:
char complemento[12]; Cargo: Departamento:
char bairro[20];
Endereço:
char cidade[20]; Rua: Número: Complemento:
char estado[2]; Bairro: Cidade: Estado:
telefone Telefone;
} endereco; Telefones:
Residencial:
Celular:
typedef struct { Ramal:
int matricula; Contato:
char nome[40];
char dt_admissao[10];
char cargo[20];
char departamento [20];
endereco Endereco
}Ficha_Funcionario;
A informação deverá ser gravada no arquivo arq_dados_func.txt e exibida conforme mostrado acima.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define ARQ "c:/arq_dados_func.txt"
#define MODO "w+"
#define MAX 10
/*
Name: Paulo Faustini Jr & Sara Áquila
Date: 20/10/07 23:56
Description: 4-Fazer um programa que manipule um vetor de 5 elementos
*/
typedef char cadeia[40];
typedef char tel[4][16];
typedef struct
{
char rua[30];
int num;
char comp[12];
char bairro[20];
char cid[20];
char uf[30];
tel Tel;
}end;
typedef struct
{
int mat;
char nome[40];
char data_adm[10];
char cargo[20];
char depart[20];
end End;
}ficha_func;
//Prototipação das funções
FILE*AbreArquivo(cadeia path,cadeia modo);
int main()
{
FILE *fp; //ponteiro para a estrutura do arquivo
int cont;
ficha_func ficha[MAX],Endereco;
cadeia nome, data_adm, cargo, depart, rua, comp;
cadeia bairro, cid, uf, resid, cel, ramal, contato;
int mat, num;
fp=AbreArquivo(ARQ, MODO);
printf("**********FaustiniJr & S.Aquila**********\n\n\n");
for (cont=0;cont<MAX;cont++)
{
printf("\n*****Dados Pessoais*****\n");
printf("Matricula: ");
scanf("%d",&ficha[cont].mat);
fprintf(fp,"%d\n",ficha[cont].mat);
printf("Nome: ");
scanf("%s",&ficha[cont].nome);
fprintf(fp,"%s\n",ficha[cont].nome);
printf("Data de Admissao: ");
scanf("%s",&ficha[cont].data_adm);
fprintf(fp,"%s\n",ficha[cont].data_adm);
printf("Cargo: ");
scanf("%s",&ficha[cont].cargo);
fprintf(fp,"%s\n",ficha[cont].cargo);
printf("Departamento: ");
scanf("%s",&ficha[cont].depart);
fprintf(fp,"%s\n",ficha[cont].depart);
printf("\n***Endereco***\n");
printf("\tRua/Av: ");
scanf("%s",&ficha[cont].End.rua);
fprintf(fp,"%s\n",ficha[cont].End.rua);
printf("\tNumero: ");
scanf("%d",&ficha[cont].End.num);
fprintf(fp,"%d\n",ficha[cont].End.num);
printf("\tComplemento: ");
scanf("%s",&ficha[cont].End.comp);
fprintf(fp,"%s\n",ficha[cont].End.comp);
printf("\tBairro: ");
scanf("%s",&ficha[cont].End.bairro);
fprintf(fp,"%s\n",ficha[cont].End.bairro);
printf("\tCidade: ");
scanf("%s",&ficha[cont].End.cid);
fprintf(fp,"%s\n",ficha[cont].End.cid);
printf("\tUF: ");
scanf("%s",&ficha[cont].End.uf);
fprintf(fp,"%s\n",ficha[cont].End.uf);
printf("\n***Telefones***\n");
printf("\tResidencial: ");
scanf("%s",&ficha[cont].End.Tel);
fprintf(fp,"%s\n",ficha[cont].End.Tel);
printf("\tCelular: ");
scanf("%s",&ficha[cont].End.Tel);
fprintf(fp,"%s\n",ficha[cont].End.Tel);
printf("\tRamal: ");
scanf("%s",&ficha[cont].End.Tel);
fprintf(fp,"%s\n",ficha[cont].End.Tel);
printf("\tContato: ");
scanf("%s",&ficha[cont].End.Tel);
fprintf(fp,"%s\n",ficha[cont].End.Tel);
}
rewind (fp ); //posiciona o ponteiro no início do arquivo
system("cls");
printf("\n*****Dados dos Funcionarios*****\n");
for(cont=0;cont<MAX;cont++ )
{
printf("Matricula: ");
fscanf(fp,"%d",&mat);
printf("%d\n",mat);
printf("%do Nome: ",cont+1);
fscanf(fp,"%s",&nome);
printf("%s\t\t\t",nome);
printf("Data Admissao: ");
fscanf(fp,"%s",&data_adm);
printf("%s\n",data_adm);
printf("Cargo: ");
fscanf(fp,"%s",&cargo);
printf("%s\t\t\t",cargo);
printf("Departamento: ");
fscanf(fp, "%s",&depart);
printf("%s\n",depart);
printf("***Endereco***");
printf("Rua/Av: ");
fscanf(fp,"%s",&rua);
printf("%s\t\t",rua);
printf("Numero: ");
fscanf(fp,"%d",&num);
printf("%d\t\t",num);
printf("Complemento: ");
fscanf(fp,"%s",&comp);
printf("%s\n",comp);
printf("Bairro: ");
fscanf(fp,"%s",&bairro);
printf("%s\t\t",bairro);
printf("Cidade: ");
fscanf(fp,"%s",&cid);
printf("%s\t\t",cid);
printf("Estado: ");
fscanf(fp,"%s",&uf);
printf("%s\n",uf);
printf("***Telefones***");
printf("\nResidencial: ");
fscanf(fp,"%s",&resid);
printf("%s\n",resid);
printf("Celular: ");
fscanf(fp,"%s",&cel);
printf("%s\n",cel);
printf("Ramal: ");
fscanf(fp,"%s",&ramal);
printf("%s\n",ramal);
printf("Contato: ");
fscanf(fp,"%s",&contato);
printf("%s\n",contato);
}
printf("\n\n");
fclose(fp);
system("pause");;
}
//Especificação do corpo das funções
FILE*AbreArquivo(cadeia path,cadeia modo)
{
FILE*arq;
arq=fopen(path,modo);
if(arq==NULL)
{
printf("\nO arquivo %s nao pode ser aberto.",path);
getch();
exit(1);
}
return arq;
}