Το παρακάτω πρόγραμμα δημιουργεί ένα αρχείο test.out και το γεμίζει με τα τετράγωνα όλων των αριθμών από το 1 έως και το 1000.
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream fout("test.out");
for (int i=0; i<1000; i++) {
fout << i*i << endl;
}
fout.close();
return 0;
}
Το παραπάνω αρχείο test.out έχει αποθηκευθεί στον ίδιο φάκελο με το main.cpp που είναι το πρόγραμμά σας.
Για να το ανοίξετε προτείνω τον editor notepad++ που μπορείτε να κατεβάσετε από τον παρακάτω σύνδεσμο:
https://notepad-plus-plus.org/download/v7.2.2.html Στη συνέχεια το παρακάτω πρόγραμμα διαβάζει το παραπάνω αρχείο και εμφανίζει τους αριθμούς
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream fin("test.out");
int value;
for (int i=0; i<1000; i++) {
fin >> value;
cout << value << " ";
}
fin.close();
return 0;
}
Το αρχείο που πριν ήταν έξοδος τώρα γίνεται είσοδος αφού διαβάζουμε από αυτό
Παρακάτω δίνω ένα πρόγραμμα το οποίο διαβάζει από το αρχείο input.in έναν αριθμό Ν ο οποίος είναι το πλήθος των αριθμών που ακολουθούν και υπολογίζει και εμφανίζει τον μεγαλύτερο από αυτούς.
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream fin("input.in");
int value, maximum = -1;
for (int i=0; i<1000; i++) {
fin >> value;
if (value > maximum) {
maximum = value;
}
}
cout << "maximum = " << maximum << endl;
fin.close();
return 0;
}
Στη συνέχεια δίνω ένα πρόγραμμα το οποίο διαβάζει από το αρχείο αριθμούς και στη συνέχεια εμφανίζει πόσα μηδενικά (0), πόσους άσσους (1), πόσα δύο (2) και πόσα τρία (3) εμφανίζονται στο αρχείο.
Το αρχείο που θα φτιάξετε για αυτό το πρόγραμμα θα πρέπει να έχει στην πρώτη γραμμή έναν αριθμό π.χ. 10 ο οποίος είναι το πλήθος των αριθμών που ακολουθούν και στη συνέχεια τους αριθμούς. Για παράδειγμα ένα αρχείο input.in θα μπορούσε να είναι όπως το παρακάτω:
Αρχείο input.in20
1 1 1 3 3 1 2 2 1 2 3 1 2 3 5 5 6 7 1 1
To παραπάνω αρχείο περιέχει στην πρώτη γραμμή τον αριθμό 20 ο οποίος μας ενημερώνει ότι ακολουθούν 20 αριθμοί και στη συνέχεια τους 20 αυτούς αριθμούς.
Το παρακάτω πρόγραμμα διαβάσει το αρχείο input.in και εμφανίζει τη συχνότητα των αριθμών 1 , 2 και 3
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream fin("input.in");
int value, counter[4] = {0}, N;
fin >> N; // πρώτα διαβάζω το πλήθος των αριθμών
for (int i=0; i<N; i++) {
fin >> value;
if (value == 0) {
counter[0]++; // αυξάνω τον μετρητή counter[0] του 0
}
if (value == 1) {
counter[1]++; // αυξάνω τον μετρητή counter[1] του 1
}
if (value == 2) {
counter[2]++; // αυξάνω τον μετρητή counter[2] του 2
}
if (value == 3) {
counter[3]++; // αυξάνω τον μετρητή counter[3] του 3
}
}
cout << "frequency of 0 is " << counter[0] << endl;
cout << "frequency of 1 is " << counter[1] << endl;
cout << "frequency of 2 is " << counter[2] << endl;
cout << "frequency of 3 is " << counter[3] << endl;
fin.close();
return 0;
}
ΕπεξήγησηΌταν δηλώνουμε τη μεταβλητή counter[4], στην ουσία δηλώνουμε τέσσερις μεταβλητές, counter[0], counter[1], counter[2], counter[3]. Κάθε μια από αυτές τις μεταβλητές μετράει πόσες φορές εμφανίζεται ο αντίστοιχος αριθμός. Για παράδειγμα ο counter[0] υπολογίζει πόσες φορές εμφανίζεται το 0, ο counter[1] το 1 κ.ο.κ.
ΆσκησηΝα τροποποιήσετε το παραπάνω πρόγραμμα έτσι ώστε να υπολογίζει και να εμφανίζει πόσες φορές εμφανίζεται στο αρχείο κάθε αριθμός από το 1 έως και το 10.
Στη συνέχεια να εμφανίζει ποιος εμφανίζεται τις περισσότερες φορές.