Programação Orientada à Procedimentos II Programação Orientada à Procedimentos I Processamento Paralelo Lógica de Programação Introdução à Computação Informática Básica

 

 

Informática Básica
Introdução à Computação
Lógica de Programação
Programação Orientada à Procedimentos I
Programação Orientada à Procedimentos II

Processamento Paralelo


Uma Possível Solução ...




2- Solicitar ao usuário seu nome e endereço. Gravar estas informações num arquivo de texto. Crie um vetor com 10 elementos do tipo inteiro e preencha-o com valores aleatório de 0 à 50. Armazene todo vetor no arquivo de texto. Armazene somente os 5 primeiros números num arquivo binário. Os arquivos, de texto e binário, deverão ser definido pelo usuário, o qual deverá informar o diretório e o nome do arquivo. Caso o diretório informado não exista, o programa deverá criá-lo. Verificar possíveis erros e imprimir elegantemente o conteúdo do arquivos.

// Elaborado por: Lucio Guska e Bianca
// 1o. Eng da Computação A

#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "string.h"
#include "ctype.h"
#include "dir.h"


void main()
{
	int i,mat[10],mat2[5],estado,l=0,c=0;
	char arquivo[50],caminho[80],nome[30],end[30]
	char temp[50],tudo[70];
	char old_dir[MAXDIR];
	char _dir[MAXDIR];
	FILE *in;
	randomize();
	clrscr();

// entra dados da matriz, grava em arquivo txt

	for(i=0;i<=9;i++)
	    mat[i]=rand()%51;

	printf("\nEntre com nome do arquivo e extensao 
	          ex: (TESTE.TXT)  ");
	gets(arquivo);
	fflush stdin;
	strcpy(_dir,"\\");
	getcurdir(0, old_dir);
	getcurdir(0, temp);
	strcat(_dir,temp);
	printf("\nEntre com diretorio a gravar ex: C:\\%s :",old_dir);
	gets(caminho);
	if (chdir(caminho))
	   {
	    printf("Criando Diretorio...");
	    estado=mkdir(caminho);
	    if(!estado)
		  {
		  if(chdir(caminho))
			{
			perror("chdir()");
			exit(1);
			}
		  }
	    else
		  {
		  printf("O diretorio %s nÆo pode ser criado ou caminho 
			        muito complexo",caminho);
		  exit(1);
		  }
	   }
	getcurdir(0,old_dir);
	printf("\nAgora estamos no diretorio C:\\%s",old_dir);
	if((in=fopen(arquivo,"w"))!=NULL)
	{
		//clrscr();
		printf("\n\nEntre com o seu nome: ");
		gets(nome);
		printf("Entre com seu endere‡o: ");
		gets(end);
		fputs(nome,in);
		fputs("\n",in);
		fputs(end,in);

		for(i=0;i<=9;i++)
		{
			fputs("\n",in);
			fputs(itoa(mat[i],temp,10),in);
		}
		getcurdir(0,old_dir);
		printf("\nGrava‡Æo feita em C:\\%s",old_dir);
		fclose(in);
		in=fopen(arquivo,"r");
		//clrscr();
		printf("\n\nArquivo texto\n\n");
		while(!feof(in))
		{
			fgets(tudo,70,in);
			printf("%s",tudo);
		}
		fclose(in);
	}
	else
		printf("\nNÆo posso criar arquivo!");

	window(1,1,80,10);
	clrscr();
	window(1,1,80,25);

	printf("\nEntre o nome do arquivo binario ex: TESTE.DBC ");
	gets(arquivo);
	fflush stdin;
	getcurdir(0, old_dir); //obtenho o diretorio no drive padrao
	printf("\nEntre com diretorio a gravar ex: C:\\%s :",old_dir);
	gets(caminho);
	if (chdir(caminho))
	   {
	    printf("Criando Diretorio...");
	    estado=mkdir(caminho);
	    if(!estado)
		  {
		  if(chdir(caminho))
			{
			perror("chdir()");
			exit(1);
			}
		  }
	    else
		  {
		  printf("O diretorio %s nÆo pode ser criado ou caminho 
			        muito complexo",caminho);
		  exit(1);
		  }
	   }
	printf("\nAgora estamos no diretorio %s",caminho);
	if((in=fopen(arquivo,"wb"))!=NULL)
	{
		fwrite(mat,10,1,in);
		fclose(in);
		in=fopen(arquivo,"rb");
		//clrscr();
		fread(mat2,sizeof(mat),1,in);
		l=12;c=35;
		gotoxy(c,l);
		printf("Arquivo binario\n\n");
		l+=4;
		for(i=0;i<=4;i++)
		    {
			gotoxy(c,l);
			printf("Valor %d eh %d",i,mat2[i]);
			l++;
		    }
		getcurdir(0,old_dir);
		l+=2;
		gotoxy(c,l);
		printf("Grava‡Æo feita em C:\\%s",old_dir);
	}
	else
		printf("\nNÆo posso criar arquivo!");
	chdir(_dir); l++;
	gotoxy(c,l);
	printf("Voltamos ao Diretorio \%s",_dir);
	getch();
}