Wykłady informatyka 2

17
Informatyka I - wykład 2 operacje matematyczne, operacje na tekście, liczby losowe Slajd 1/17 Informatyka I – wykład 2 G.P.Korbaś

description

 

Transcript of Wykłady informatyka 2

Page 1: Wykłady informatyka 2

Informatyka I - wykład 2operacje matematyczne,

operacje na tekście, liczby losowe

Slajd 1/17 Informatyka I – wykład 2 G.P.Korbaś

Page 2: Wykłady informatyka 2

Program 1. Różne podstawowe operacje matematyczne#include <iostream>using namespace std;int main(){int i;float f;double d;char c;bool b;i=1+2; cout << i <<endl; // 3i=1.6+2; cout << i <<endl;// 3i=2; cout << i++ << ' ' << i <<endl; // 2 3i=2;cout << ++i << ' ' << i <<endl; // 3 3 i=1;i+=2; cout << i <<endl; // 3i*=2; cout << i <<endl; // 6i=7 / 2; cout << i <<endl;// 3i=7 % 2; cout << i <<endl;// 1

Slajd 2/17 Informatyka I – wykład 2 G.P.Korbaś

Page 3: Wykłady informatyka 2

cout << endl;f=1e20; cout << f <<endl;// 1e+020f*=1e10; cout << f <<endl; // 1e+030f*=1e20; cout << f <<endl; // 1.#INFf = 7 / 2; cout << f <<endl; // 3f = 7.0 / 2; cout << f <<endl; // 3.5f = 7 / 2.0; cout << f <<endl; // 3.5cout << endl;d=1e20; cout << d <<endl; // 1e+020d*=1e10; cout << d <<endl; // 1e+030d*=1e20; cout << d <<endl; // 1e+050cout << endl;c = 'a'; cout << c <<endl; // ac+=1; cout << c <<endl; // bi = c; cout << i <<endl; // 98c=99; cout << c <<endl; //c

Slajd 3/17 Informatyka I – wykład 2 G.P.Korbaś

Page 4: Wykłady informatyka 2

cout <<endl;b=true; cout << b << endl; // 1b=false; cout << b << endl; // 0b=!b; cout << b << endl; // 1b=10; cout << b << endl; // 1b=!(8>10 || 7<5) && (10/2==5); cout << b << endl; // 1cout <<0xFF; //255 - szesnastkowocout <<021; //17 - ósemkowocout <<endl;cin>>c;return 0;}

Slajd 4/17 Informatyka I – wykład 2 G.P.Korbaś

Page 5: Wykłady informatyka 2

Uwagi do programu 1.● a/b – dzielenie (całkowite lub zmiennoprzecinkowe)● a%b – a modulo b (reszta z dzielenia a przez b)● a*=b – mnoży a przez b i wynik umieszcza w a● a+=b – dodaje b do a i wynik umieszcza w a● u++ – najpierw zwraca wartość u a następnie dodaje do u 1● ++u – najpierw dodaje do u 1 a następnie zwraca wartość u● int – typ całkowity● float – typ zmiennoprzecinkowy pojedynczej precyzji● double – typ zmiennoprzecinkowy podwójnej precyzji● char – typ znakowy● bool – typ logiczny

Slajd 5/17 Informatyka I – wykład 2 G.P.Korbaś

Page 6: Wykłady informatyka 2

Program 2. Wybrane funkcje z biblioteki cmath#include <iostream>#include <cmath>using namespace std;int main(){double a,b;a=M_PI; cout << a << endl;a=sin(M_PI/3); cout << a << endl;b=cos(M_PI/3); cout << a*a+b*b << endl;a = sqrt (2); cout << a << endl;b = a*a; cout << b << endl;b = pow(a,16); cout << b << endl;a = log10(10000); cout << a << endl;b = -exp(2); cout << abs(b) << endl;char x;cin>>x;return 0;}

Slajd 6/17 Informatyka I – wykład 2 G.P.Korbaś

Page 7: Wykłady informatyka 2

Uwagi do programu 2.● sin(x) – sinus danej liczby● cos(x) – cosinus danej liczby● exp(x) – eksponent danej liczby● log10(x) – logarytm dziesiętny danej liczby● pow(a,b) – a do potęgi b● abs(a) – wartość bezwzględna a

Slajd 7/17 Informatyka I – wykład 2 G.P.Korbaś

Page 8: Wykłady informatyka 2

Program 3. Program pobiera imię i nazwisko. Program łaczy tekst “Czesc “, imię, spacje i nazwisko w jeden tekst i wyświetla go, w następnej linii jego długość, a następnie pierwszy, czwarty i piąty znak oddzielone spacją.#include <iostream>#include <string>using namespace std;int main(){string s1,s2;cout << "Imie:"; cin >> s1;cout << "Nazwisko:"; cin >> s2;s1="Czesc "+s1+' '+s2; cout << s1 << endl;cout << s1.length() << endl;cout << s1[0] << ' ' << s1[3] << ' ' << s1[4]<< endl;//C s cchar x; cin >> x;return 0;}

Slajd 8/17 Informatyka I – wykład 2 G.P.Korbaś

Page 9: Wykłady informatyka 2

Uwagi do programu 3.● s1+s2 – dodawanie tekstów odbywa się tradycyjnie● s1.length() – zwraca długość tekstu s1 (liczbę znaków tekstu)● s1[3] – czwarty! (liczone od 0) znak tekstu s1

Slajd 9/17 Informatyka I – wykład 2 G.P.Korbaś

Page 10: Wykłady informatyka 2

Program 4. Różne operacje na tekście - wyniki operacji w komentarzach#include <iostream>#include <string>using namespace std;int main(){string s1,s2;s1="Ala ma kota"; cout << s1 << endl; // Ala ma kotas1=s1.substr(4,7); cout << s1 << endl; // ma kotas1.erase(0,3); cout << s1 << endl; // kotas2=" i psa"; s1+=s2; cout << s1 << endl; // kota i psacout << s1.find("psa") << endl; // 7char x; cin >> x;return 0;}

Slajd 10/17 Informatyka I – wykład 2 G.P.Korbaś

Page 11: Wykłady informatyka 2

Uwagi do programu 4.● s1.substr(4,7) – pobiera podciąg ciągu s1 począwszy od znaku o

numerze 4 (piątego!) o długości 7● s1.erase(0,3) – usuwa podciąg ciągu s1 począwszy od znaku o

numerze 0 (pierwszego!) o długości 3● s1.find("psa") – szuka w s1 podciągu i zwraca nr znaku

począwszy od którego podciąg występuje

Slajd 11/17 Informatyka I – wykład 2 G.P.Korbaś

Page 12: Wykłady informatyka 2

Program 5. Pobranie linijki tekstu i próba zamiany na liczbę rzeczywistą - wypisanie wartości przemnożonej przez 10. Pobranie linijki tekstu i próba zamiany na liczbę całkowitą - wypisanie wartości.

#include <iostream>#include <string>using namespace std;int main(){string s;double d;int L;getline(cin,s);d=atof(s.c_str());cout<<d*10<<endl;getline(cin,s);L=atoi(s.c_str());cout<<L<<endl;return 0;}

Slajd 12/17 Informatyka I – wykład 2 G.P.Korbaś

Page 13: Wykłady informatyka 2

Uwagi do programu 5.

● getline(cin,s); - pobiera do zmiennej s tekst ze strumienia cin● s.c_str() - zwraca tekst w formacie char* (tzw. null-terminated)● atof() - zamienia tekst na liczbę zmiennoprzecinkową (jeśli zamiana

nie jest możliwa zwraca 0)● atoi() - zamienia tekst na liczbę całkowitą (jeśli zamiana nie jest

możliwa zwraca 0)

Slajd 13/17 Informatyka I – wykład 2 G.P.Korbaś

Page 14: Wykłady informatyka 2

Program 6a. - generowanie liczby losowej - zmiennoprzecinkowej - od 0 do 102#include <iostream>#include <ctime>using namespace std;int main(){ int i; double j; srand(time(0)); i=rand(); j = 102 * i * 1.0 / RAND_MAX; cout << i << ' ' << j << ' ' << RAND_MAX << endl; char x; cin >> x; return 0;}

Slajd 14/17 Informatyka I – wykład 2 G.P.Korbaś

Page 15: Wykłady informatyka 2

Uwagi do programu 6.

● rand() - losuje liczbę całkowitą od 0 do RAND_MAX● RAND_MAX – liczba zależna od kompilatora – minimum 32767● srand(argument) – inicjuje generator liczb losowych zależnie od

argumentu● time(0) – z biblioteki ctime - zwraca aktualny czas w formacie

unixowym (liczba sekund od 01-01-1970 00:00)● Aby wylosować liczbę z przedziału <0,n> można użyć polecenia n*rand()*1.0/RAND_MAX;

Slajd 15/17 Informatyka I – wykład 2 G.P.Korbaś

Page 16: Wykłady informatyka 2

Program 6b. - generowanie liczby losowej, wykorzystanie stałej, dwie metody generowania#include <iostream>#include <ctime>using namespace std;int main(){ const int maxi=100; int i,j,k; srand(time(0)*1000); i=rand(); j = maxi * i * 1.0 / RAND_MAX; k = i%(maxi+1); cout << i << ' ' << j << ' ' << k << endl; char x; cin >> x; return 0;}

Slajd 16/17 Informatyka I – wykład 2 G.P.Korbaś

Page 17: Wykłady informatyka 2

Program 6c. - generowanie liczby losowej, wykorzystanie stałej (przed funkcją main) i rzutowanie - pozbycie się ostrzeżenia kompilatora#include <iostream>#include <ctime>using namespace std;const int maxi=100;int main(){ int i,j; srand(time(0)*1000); i=rand(); j = int(maxi * i * 1.0 / RAND_MAX); cout << i << ' ' << j << ' ' << RAND_MAX << endl; char x; cin >> x; return 0;}

Slajd 17/17 Informatyka I – wykład 2 G.P.Korbaś