Created
December 24, 2015 02:16
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
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