June 25, 2025, Wednesday, 175

Przykładowe zadania do Laboratorium 9

From MJanik

(Difference between revisions)
Jump to: navigation, search
(Created page with "Na najbliższych zajęciach zajmiemy się czytaniem oraz zapisywaniem do plików. Szczerze polecam przećwiczyć przed zajęciami poniższy krótki program: 1. Proszę stworzyć ...")
 
(5 intermediate revisions not shown)
Line 1: Line 1:
Na najbliższych zajęciach zajmiemy się czytaniem oraz zapisywaniem do plików. Szczerze polecam przećwiczyć przed zajęciami poniższy krótki program:
Na najbliższych zajęciach zajmiemy się czytaniem oraz zapisywaniem do plików. Szczerze polecam przećwiczyć przed zajęciami poniższy krótki program:
 +
1. Proszę stworzyć program, który losuje liczby rzeczywiste od 0 do 2, po czym zapisuje je do pliku tekstowego (w jednej kolumnie).
1. Proszę stworzyć program, który losuje liczby rzeczywiste od 0 do 2, po czym zapisuje je do pliku tekstowego (w jednej kolumnie).
Następnie program powinien wczytywać liczby z uprzednio zapisanego pliku i wyświetlać wyniki na ekranie.
Następnie program powinien wczytywać liczby z uprzednio zapisanego pliku i wyświetlać wyniki na ekranie.
 +
2. Należy powyższy program podzielić na klasy: należy stworzyć klasę Losowanie, która posiada metodę double Losuj(double min, double max) która zwraca liczbę rzeczywistą wylosowaną z przedziału (min, max).
2. Należy powyższy program podzielić na klasy: należy stworzyć klasę Losowanie, która posiada metodę double Losuj(double min, double max) która zwraca liczbę rzeczywistą wylosowaną z przedziału (min, max).
 +
Ponadto należy stworzyć drugą klasę, PlikTekstowy z metodami odpowiednio:
Ponadto należy stworzyć drugą klasę, PlikTekstowy z metodami odpowiednio:
-
void ZapiszSlowo(string nazwa_pliku, string slowo),
+
 
-
void ZapiszLiczbe(string nazwa_pliku, double liczba),
+
void ZapiszSlowo(string nazwa_pliku, string slowo),
-
string CzytajSlowo(string nazwa_pliku),
+
void ZapiszLiczbe(string nazwa_pliku, double liczba),
-
double CzytajLiczbe(string nazwa_pliku),
+
string CzytajSlowo(string nazwa_pliku),
-
void WypiszPlik(string nazwa_pliku),
+
double CzytajLiczbe(string nazwa_pliku),
 +
void WypiszPlik(string nazwa_pliku),
   
   
-
Losowanie liczb (generator liczb pseudolosowych)
+
3. Niech program będzie wywoływany w ten sposób, że pierwszy argument wywołania programu będzie nazwą pliku, do którego chcemy zapisywać. np.
-
#include <cstdlib>
+
./program plik.txt
-
#include <ctime>
+
 
 +
 
 +
'''Losowanie liczb (generator liczb pseudolosowych)'''
 +
 
 +
#include <cstdlib>
 +
#include <ctime>
Najpierw ustawiamy ziarno:
Najpierw ustawiamy ziarno:
-
srand(seed);
+
srand(seed);
zazwyczaj, używając do tego zegara systemowego:
zazwyczaj, używając do tego zegara systemowego:
-
srand(time(NULL));
+
srand(time(NULL));
Następnie generujemy liczby używając funkcji:
Następnie generujemy liczby używając funkcji:
-
int a = rand();
+
int a = rand();
gdzie funkcja rand() zwraca liczbę całkowitą z przedziału od 0 do RAND_MAX.
gdzie funkcja rand() zwraca liczbę całkowitą z przedziału od 0 do RAND_MAX.
-
#include <fstream>
+
 
 +
 
 +
'''Wczytywanie i zapisywanie do pliku'''
 +
#include <fstream>
Zapisywanie do pliku:
Zapisywanie do pliku:
-
ofstream ofile;
+
ofstream ofile;
-
ofile.open("file.txt");
+
ofile.open("file.txt");
-
ofile<<”aaa”<<123<<endl;
+
ofile<<”aaa”<<123<<endl;
-
ofile.close();
+
ofile.close();
   
   
Wczytywanie z pliku (np. liczby):
Wczytywanie z pliku (np. liczby):
-
fstream ifile;
+
ifstream ifile;
-
ifile.open(argv[1]);
+
ifile.open(argv[1]);
-
while(ifile>>val)
+
while(ifile>>val)
-
{
+
{
-
    cout<<"val: "<<val<<endl;
+
    cout<<"val: "<<val<<endl;
-
}
+
}
-
ifile.close();
+
ifile.close();
   
   
-
Funkcja main
+
 
 +
'''Funkcja main'''
 +
 
Najprostszą postacią funkcji main jest:
Najprostszą postacią funkcji main jest:
-
int main(){
+
int main(){
-
return 0;
+
return 0;
-
}
+
}
Ale za domyślną/standardową uzajemy:
Ale za domyślną/standardową uzajemy:
-
int main(int argc, char **argv){
+
int main(int argc, char **argv){
-
return 0;
+
return 0;
-
}
+
}
Gdzie:
Gdzie:
-
argc - liczba parametrów, z którymi został wywołany program
+
argc - liczba parametrów, z którymi został wywołany program
-
**argv - tablica parametrów (każdy jako char*):
+
**argv - tablica parametrów (każdy jako char*):
-
argv[0] - nazwa programu
+
argv[0] - nazwa programu
-
argv[1], argv[2]... - kolejne parametry wywołania programu
+
argv[1], argv[2]... - kolejne parametry wywołania programu
   
   
Np. wywołanie programu program mogło by mieć formę:
Np. wywołanie programu program mogło by mieć formę:
-
./program Ala 2 3
+
./program Ala 2 3
Wtedy:
Wtedy:
-
argc == 4
+
argc == 4
-
argv[0] == "program"
+
argv[0] == "program"
-
argv[1] = "Ala"
+
argv[1] == "Ala"
-
argv[2] == "2"
+
argv[2] == "2"
-
argv[3] == "3"
+
argv[3] == "3"
Przyporządkowanie tych parametrów wykonuje się samoistnie w momencie wywołania programu, jedynym wkładem programisty jest zadeklarowanie funkcji main w formie int main(int argc, char **argv).
Przyporządkowanie tych parametrów wykonuje się samoistnie w momencie wywołania programu, jedynym wkładem programisty jest zadeklarowanie funkcji main w formie int main(int argc, char **argv).

Latest revision as of 13:16, 19 March 2015

Na najbliższych zajęciach zajmiemy się czytaniem oraz zapisywaniem do plików. Szczerze polecam przećwiczyć przed zajęciami poniższy krótki program:

1. Proszę stworzyć program, który losuje liczby rzeczywiste od 0 do 2, po czym zapisuje je do pliku tekstowego (w jednej kolumnie). Następnie program powinien wczytywać liczby z uprzednio zapisanego pliku i wyświetlać wyniki na ekranie.

2. Należy powyższy program podzielić na klasy: należy stworzyć klasę Losowanie, która posiada metodę double Losuj(double min, double max) która zwraca liczbę rzeczywistą wylosowaną z przedziału (min, max).

Ponadto należy stworzyć drugą klasę, PlikTekstowy z metodami odpowiednio:

void ZapiszSlowo(string nazwa_pliku, string slowo),
void ZapiszLiczbe(string nazwa_pliku, double liczba),
string CzytajSlowo(string nazwa_pliku),
double CzytajLiczbe(string nazwa_pliku),
void WypiszPlik(string nazwa_pliku),

3. Niech program będzie wywoływany w ten sposób, że pierwszy argument wywołania programu będzie nazwą pliku, do którego chcemy zapisywać. np.

./program plik.txt


Losowanie liczb (generator liczb pseudolosowych)

#include <cstdlib>
#include <ctime>

Najpierw ustawiamy ziarno:

srand(seed);

zazwyczaj, używając do tego zegara systemowego:

srand(time(NULL));

Następnie generujemy liczby używając funkcji:

int a = rand();

gdzie funkcja rand() zwraca liczbę całkowitą z przedziału od 0 do RAND_MAX.


Wczytywanie i zapisywanie do pliku

#include <fstream>

Zapisywanie do pliku:

ofstream ofile;
ofile.open("file.txt");
ofile<<”aaa”<<123<<endl;
ofile.close();

Wczytywanie z pliku (np. liczby):

ifstream ifile;
ifile.open(argv[1]);
while(ifile>>val)
{
    cout<<"val: "<<val<<endl;
}
ifile.close();

Funkcja main

Najprostszą postacią funkcji main jest:

int main(){
return 0;
}

Ale za domyślną/standardową uzajemy:

int main(int argc, char **argv){
return 0;
}

Gdzie:

argc - liczba parametrów, z którymi został wywołany program
**argv - tablica parametrów (każdy jako char*):
argv[0] - nazwa programu
argv[1], argv[2]... - kolejne parametry wywołania programu

Np. wywołanie programu program mogło by mieć formę:

./program Ala 2 3

Wtedy:

argc == 4
argv[0] == "program"
argv[1] == "Ala"
argv[2] == "2"
argv[3] == "3"

Przyporządkowanie tych parametrów wykonuje się samoistnie w momencie wywołania programu, jedynym wkładem programisty jest zadeklarowanie funkcji main w formie int main(int argc, char **argv).