Skip to content

Instantly share code, notes, and snippets.

@ferdhika31
Created December 24, 2015 02:16
Show Gist options
  • Save ferdhika31/e3552e9d6235cd991266 to your computer and use it in GitHub Desktop.
Save ferdhika31/e3552e9d6235cd991266 to your computer and use it in GitHub Desktop.
EOF, read,write pada c.. dan mencari nilai rata rata lalu di tampilkan
/*
Program : File_Ferdhika.c
Deskripsi : eof
Author : Ferdhika Yudira (151524010)
Tanggal/Version : 23/12/2015 v.1.0
Compiler : Dev C++ V5.7.1
Ctt Lain : Belajar dari
https://en.wikibooks.org/wiki/A_Little_C_Primer/C_File-IO_Through_Library_Functions
http://wardhiansyah.blogspot.co.id/2011/10/belajar-bahasa-c-library-dan-fungsinya.html
*/
#include<stdio.h>
/* var global */
char* fileName = "values.dat";
int limit = 6;
/* Prototipe */
void tulis(float angka[]); // modul prosedur untuk menulis sekumpulan bilangan real kedalam file
void baca(float temp[]); // modul prosedur untuk membaca file dan menyimpan bilangan real ke dalam array
float mean(float angka[]); // modul fungsi untuk menghitung mean dari isi array yang sudah berisi data
void tampilMean(float hasil); // modul prosedur untuk menampilkan rata rata bilangan real ke layar
int main(){
/* Deklarasi */
float angka[] = {12.6, 8.4, 19.3, 10.3, 16.4, 9.8},temp[limit],hasilMean;
int i;
tulis(angka); // modul untuk menulis sekumpulan angka ke dalam file
baca(temp); // modul untuk membaca file
hasilMean = mean(temp); // modul untuk mencari rata rata
tampilMean(hasilMean); // modul untuk menampilkan rata rata
return 0;
}
/* prosedur tulis sekumpulan bilangan real ke dalam file */
void tulis(float angka[]){ //modul prosedure dengan parameter jenis input bernama angka bertipe array of float
FILE *cekFile, *tulisData; //variable variable lokal bertype file
cekFile = fopen(fileName,"r"); // membuka file dengan mode r(read)
tulisData = fopen(fileName,"w"); // membuka file dengan mode w(write)
if(!cekFile){ //cek file
printf("Gagal membuka file.\n");
}else{
fwrite(angka, sizeof(float), limit, tulisData); // menulis file
}
fclose(tulisData);
}
/* prosedur membaca sekumpulan bilangan real dan memasukkannya ke dalam array */
void baca(float bil[]){ //modul prosedure dengan parameter jenis output bernama bil bertipe array of float
/* var lokal */
FILE *bacaFile;
float temp;
int i,panjang=0;
bacaFile = fopen(fileName,"r"); // membuka file dengan mode r(read)
if(!bacaFile){
printf("Gagal membuka file.\n");
}else{
while(!feof(bacaFile) && panjang<limit){ //untuk mengecek apakah sudah sampai di akhir file
fread(&temp, 1, sizeof(float), bacaFile); // fread( <array_pointer>, <element_size>, <count>, <file_pointer> );
bil[panjang] = temp; // menyimpan data bilangan dari file ke dalam array
panjang++;
}
}
fclose(bacaFile);
}
/* fungsi mencari nilai rata rata */
float mean(float angka[]){
/* var lokal */
float jml=0.0;
int i;
for(i=0;i<limit;i++){
jml += angka[i];
}
return jml/limit;
}
/* prosedur untuk menulis hasil rata2 ke layar */
void tampilMean(float hasil){
printf("Rata Rata : %0.1f",hasil);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment