Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, rok akademicki: 2015/2016
Wskaźniki i referencje Operacja Wskaźnik Referencja Zmienne bezpośrednie Deklaracja bez inicjalizacji Deklaracja z inicjalizacją Zmiana zmiennej wskazywanej int a, b; int a, b; int *wskaznik; - BRAK - int *ptr = &a; Int &ref = a; ptr = &b; - BRAK -
Struktury - budowa Przykład budowy: struct nazwa // definicja struktury typ1 element1; typ2 element2; ; // pola elementów // struktury nazwa obiekt; // deklaracja obiektu
String tablica charow Aby móc posługiwać się typem string, który przechowuje łańcuchy znaków należy dodać plik nagłówkowy: #include <string> oraz użyć przestrzeni nazw std. Na zmiennej typu string możemy operować tak samo jak każdej innej zmiennej ORAZ tak jak na tablicy charów odwołując się do poszczególnych elementów w tablicy. Możliwe jest dodawanie (konkatenacja) zmiennych typu string jednak nie można sklejać w następujący sposób: string zmienna = nowy + wyraz
Argumenty funkcji main Dla funkcji main: int main (int argc, char* argv[]), argc argument counter ilośc argumentów argv argument value ścieżka oraz argumenty. char* argv[] jednoznaczne z char** argv - jest tablicą wskaźnikową dwuwymiarową, gdzie wprowadzając do programu jakieś zmienne, zapisuje zawsze liczbę zmiennych argc, a potem jakie zmienne do argv, np.: argc zawsze = 1, gdzie argv[0] = nazwa programu/ ścieżka+nazwa programu uruchomienie programu:./program boo foo hii to argc = 4, po kolei argv = program, boo, foo, hii
Argumenty funkcji main #include <iostream> using namespace std; int main(int argc, char* argv[]) cout<<"nazwa programu: " <<argv[0]<<endl; cout<<"ilosc argumentow: "<<argc<<endl; Program wywołuje się z konsoli: <nazwa_programu>.exe b 20 t o kaczka for(int i=1; i<argc; i++) cout<<"argument "<<i<<" to: "<<argv[i]<<endl; system("pause"); return 0; Zawsze argv[0] przechowuje nazwę programu!
Operacje wejścia / wyjścia Do obsługi plików przy pomocy języka c++ należy wykorzystać bibliotekę fstream. #include <fstream> Wykorzystanie: std::fstream plik; void open( const char * nazwa_pliku, ios_base::openmode tryb_otwarcia_pliku ); Przykład: std::fstream plik; plik.open( "nazwa_pliku.txt", std::ios::in std::ios::out );
Operacje wejścia / wyjścia Pobieranie danych z pliku w zależności od ich typu: char znak; string slowo, wiersz; plik.get(znak); plik>>slowo; getline( plik, wiersz ); Funkcja eof() end of file. Funkcja zwróci true gdy nie będzie już w pliku więcej danych do odczytu while(!plik.eof() ) getline(plik, wiersz); cout<<wiersz<<endl; #include<iostream> #include<fstream> using namespace std; int main() ifstream S; S.open("napis1.txt"); if (!S.good()) cout<<"nie ma pliku"<<endl; return 0; S.seekg(0, ios::end); cout<<s.tellg()<<endl; return 0;
Przykład: Zapis: Odczyt: fstream plik("tekst.txt", ios::out); if( plik.good() ) for(int i=0; i<10; i++) plik.close(); plik << \niteracja: <<i; fstream plik; plik.open( "nazwa_pliku.txt", ios::in ios::out ); if( plik.good() == true ) else cout<<"uzyskano dostep do pliku!"<<endl; //tu operacje na pliku plik.close(); cout<< Błąd!"<<endl;
Zadania
Zadanie 1 Napisz program, który uruchomiony z argumentami imię, nazwisko wyświetli na ekranie komunikat: Witam Szanownego Pana <imie>+a! w programie <nazwa programu> w dniu <dzisiejsza data> Jeśli użytkownik nie poda za dużo lub za mało danych program wyświetli komunikat: Witam w programie <nazwa programu> Obsłuż wyjątek dla imienia Marek. Na ekranie ma się pojawić Marka! Dla wyświetlenia daty użyj zdefiniowanych zmiennych: DATE TIME TIMESTAMP
Zadanie 2 Zmodyfikuj program z zadania pierwszego, tak by zapisywał do pliku log.txt informacje na temat czasu uruchomienia programu w formacje: <imie> <naziwsko> <dzień> <godzina uruchomienia> Uruchom program z poziomu środowiska Visual Studio oraz linii komend podając odpowiednie argumenty. Zmodyfikuj program, by dopisywał do istniejącego pliku dane, jeśli ten istnieje.
Zadanie 3 Wczytaj plik lorem_ipsum.txt oraz sprawdź ile zawiera: a) liter b) słów c) zdań (zakończonych. )
Prezentacja udostępniona na licencji Creative Commons: Uznanie autorstwa, Na tych samych warunkach 3.0. Pewne prawa zastrzeżone na rzecz autorów. Zezwala się na dowolne wykorzystywanie treści pod warunkiem wskazania autorów jako właścicieli praw do prezentacji oraz zachowania niniejszej informacji licencyjnej tak długo, jak tylko na utwory zależne będzie udzielana taka sama licencja. Tekst licencji dostępny jest na stronie: http://creativecommons.org/licenses/by-sa/3.0/deed.pl