Matris (Kısa Kod)

Soru
1      2      4      8 

3      4      6    10 

7      8    10   14

13    14    16    20

Yukarıdaki matrisi ekrana yazan C++ programı yazınız.

Cevap

for(int i=1,j=0;i<13;i+=j,j+=2,cout<<i+0<<i+1<<i+3<<i+7<<endl);

 

Hüseyin Bora ABACI

Dizideki Karekterin Sayısı.(En Kısa) Bora Usulu

Soru

Tek boyutlu bir karakter dizisindeki ( String ) Harf,sayı ve sembollerin boşluk “Space” hariç adetini bulan programı yazınız.

Cevap

for(int  i=sizeof(ch), j=0;i>1;i–,ch[i]!=”?j++:0);

Hüseyin Bora ABACI

 

 

C++ ile dosya dizin işlemleri için sınıf örneği CFile.h

/*———————————————————————-

File        :CFile.H  Test

Author            :Huseyin Bora Abaci

Last Update     :24.01.2005

Platform    :Windows

Compiler    :Borland C++Builder

———————————————————————–*/

#ifndef _CFile_H_

#define _CFile_H_

//———————————————————————–

#include “stdio.h”

#include “stdlib.h”

//———————————————————————–

#include “dos.h”

#include “dir.h”

//———————————————————————–

#define     _MAX_FILE_NAME    (500)

#define _MAX_COPY_FNAME (260)

class CFile {

protected:

FILE *In ,*Out;

__int64 Size;

public:

CFile(){Size=0;}//Kurucu

int FileCopy(char CopyFile[],char NewFile[]);

int FileByte(char ReadFile[],char WriteFile[],long Byte);

int FileSize(char FileName[]);

 void __fastcall CopyTree(char FolderName[_MAX_PATH],char Asterik[],char FolderCopy[_MAX_PATH]);

 void __fastcall Deltree(char FolderName[]);

 void __fastcall MoveTree(char DeleteFolder[_MAX_PATH],char FolderCopy[_MAX_PATH]);

  bool FileDelete(char FileName[]);

  bool NewFolder(char FolderName[]);

  bool DeleteFolder(char FolderName[]);

  bool MoveFile(char DeleteFile[],char CopyFile[]);

 };

/*—————————————————————————-

Dosyanın Bir kopyasını oluşturmak için yazdığım fonksiyon

kopyalama işlemi başarılı olduğunda kopyalanan byte kadar geri döşüş değeri alır

hata durumunda sıfır  inline ile  yerel fonksiyon gibi gösterilip performas yükseltildi

—————————————————————————-*/

inline int CFile::FileCopy(char CopyFile[],char NewFile[])

{

if((In=fopen(CopyFile,“rb”))==NULL)return 0;

if ((Out=fopen(NewFile,“wb”))==NULL)return 0;

Size=0;

while(!feof(In))

{

if(!feof(In))putc(getc(In),Out);

Size++;

}

fclose(In);

fclose(Out);

return Size;

}

/*—————————————————————————-

Dosyanın Belirtilen Byte ına kadar kopyalayan fonksiyon

kopyalama işlemi başarılı olduğunda kopyalanan byte kadar geri döşüş değeri alır

hata durumunda sıfır

—————————————————————————-*/

 inline int CFile::FileByte(char ReadFile[],char WriteFile[],long Byte)

{

if((In=fopen(ReadFile,“rb”))==NULL)return 0 ;

if((Out=fopen(WriteFile,“wb”))==NULL)return 0 ;

Size=0;

while(!feof(In))

{

Size++;

putc(getc(In),Out);

if(Size==Byte)break;

}

fclose(In);

fclose(Out);

return Size;

 }

/*—————————————————————————-

Dosyanın byte cinsinden boyutunu döndüren fonksiyon

—————————————————————————-*/

inline int CFile::FileSize(char FileName[])

{

if((In=fopen(FileName,“r+”))==NULL)

return 0;

fseek(In,0L,SEEK_END);

return ftell(In);

fclose(In);

}

//Klasik Dosya işlemleri

//—————————————————————————

bool  CFile::FileDelete(char FileName[])

{

if(remove(FileName))

return true;

}

//—————————————————————————-

bool CFile::NewFolder(char FolderName[])

{

if(mkdir(FolderName))

return true;

}

//—————————————————————————-

bool CFile::DeleteFolder(char FolderName[])

{

if(rmdir(FolderName))

return true;

}

//Dosya Taşı

//—————————————————————————-

bool CFile::MoveFile(char DeleteFile[],char CopyFile[])

{

FileCopy(DeleteFile,CopyFile);

if(remove(DeleteFile))

return true;

}

/*—————————————————————————-

Dizin yapısını olduğu gibi kopyalayan fonksiyon

—————————————————————————-*/

void __fastcall CFile:: CopyTree(char FolderName[_MAX_PATH],char Joker[],char FolderCopy[_MAX_PATH])

{

struct ffblk fp;

int States;

char NextNewFolder[_MAX_FILE_NAME],Files1[_MAX_FILE_NAME],Files2[_MAX_FILE_NAME],FA[_MAX_FILE_NAME],Folder[_MAX_FILE_NAME],NextSourceFolder[_MAX_FILE_NAME];

sprintf(FA,“%s%s”,FolderName,Joker);

States =findfirst(FA,&fp,0|FA_DIREC|FA_HIDDEN);

while(!States)

{

if(fp.ff_attrib & 0×10) /*FA_DIREC    0×10        Directory */

{

sprintf(Folder,“%s%s”,FolderCopy,fp.ff_name);

if((strcmp(fp.ff_name,“.”)>1) && (strcmp(fp.ff_name,“..”)>1))

{

mkdir(Folder);

sprintf(NextSourceFolder,“%s%s%s”,FolderName,fp.ff_name,“\\”);

sprintf(NextNewFolder,“%s%s%s”,FolderCopy,fp.ff_name,“\\”);

CopyTree(NextSourceFolder,Joker,NextNewFolder);

}

}

sprintf(Files1,“%s%s”, FolderName,fp.ff_name);

sprintf(Files2,“%s%s”,FolderCopy,fp.ff_name);

FileCopy(Files1,Files2);

States=findnext(&fp);

}

findclose(&fp);

}

//————————————————————————

/*Verilen Dizin yapısını olduğu gibi kaldıran fonksiyon*/

//————————————————————————

void __fastcall CFile::Deltree(char FolderName[])

{

struct ffblk *fd=new ffblk;

char files[_MAX_FILE_NAME],FA[_MAX_FILE_NAME],Folder[_MAX_FILE_NAME]=“”;

sprintf(FA,“%s%s”,FolderName,“*.*”);

findfirst(FA,fd,0|FA_DIREC|FA_HIDDEN);

do

{

if(fd->ff_attrib & 0×10) /*FA_DIREC    0×10        Directory */

if((strcmp(fd->ff_name,“.”)>1) && (strcmp(fd->ff_name,“..”)>1))

{

sprintf(Folder,“%s%s%s”,FolderName,fd->ff_name,“\\”);

Deltree(Folder);

if(rmdir(Folder));  //Burda Bir Gecikme Gerikyordu if(rmdir(Folder)) ile gecikme sağlandı

if(rmdir(Folder));

}

if((strcmp(fd->ff_name,“.”)>1) && (strcmp(fd->ff_name,“..”)>1))

{

sprintf(files,“%s%s”,FolderName,fd->ff_name);

if(remove(files));

}

}

while(!findnext(fd));

findclose(fd);

}

//Verilen Dizin yapısını taşıyan fonksiyon

void __fastcall CFile::MoveTree(char DeleteFolder[_MAX_PATH],char FolderCopy[_MAX_PATH])

{

NewFolder(FolderCopy);

CopyTree(DeleteFolder,“*.*”,FolderCopy);

Deltree(DeleteFolder);

rmdir(DeleteFolder);

}

#endif

Java ile JVM kurulu cihaz’a internetten dosya indirmek

Java’nın ilk başlarda internet için geliştirildiğini anımsarsak. İnternetteki bir dosyayı jvm yüklü bir cihaza indirmemiz çok kolay gerçekleşecektir.

Bize internetteki dosyayı indirmemiz gerekli olan paketler

 import java.io.*;

import java.net.*;

 

Adımlar :

 

1-     Bir URL nesnesi örneklendir.URL  nesnesinin yapılandırıcı metoduna internetteki dosyayı parametre olarak ver.

2-     URL nesnesinin openStream() metodunu kulanarak bir InputStream nesnesi elde et.

3-     Cihazın sabit diskinde FileOutputStream kullanarak bir dosya oluştur

4-     InputStream den dosyanın son sekizlik(byte) ‘a gelene kadar Akıştan (Stream) oku ve okunan sekizlik veriyi FileInputStream Kullanarak oluşturduğun dosya ya yaz.

Oluşan algoritmayı koda dökecek olursak.

 import java.io.*;

 import java.net.*;

  public class Indir   

 public static void main(String[] args) throws MalformedURLException, IOException { 

URL url = new URL(“http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf”);    

BufferedInputStream  TampondanOkuyucu= new BufferedInputStream(url.openStream());     

BufferedOutputStream TampondanYazıcı= new BufferedOutputStream(new FileOutputStream(“C:/indirilen.pdf”));             

                        byte i = 0;

                  do

                        {         

                               i = (byte)TampondanOkuyucu.read();

                               TampondanYazici.write(i)

                         }

                  while (i != -1);    

    TampondanOkuyucu.close();

    TampondanYazici.close();      

    System.out.println(“Dosya basarıyla kayıt edildi”);   

    }

}

  

Not olarak akıştan her sefirinde bir sekizlik okuyup, yazmak yerine tüm sekizlikleri bir Byte dizisine aktarmak ya da Byte dizilerine bölmek performansı artıracaktır.

 

Hüseyin Bora ABACI

Sonraki Sayfa »


 

Şubat 2010
Pts Sal Çar Per Cum Cts Paz
« May    
1234567
891011121314
15161718192021
22232425262728

Popüler Yazılar

  • Hiçbiri

Top Clicks

  • Hiçbiri