Wykłady informatyka 1

18
Informatyka I - wykład 1 Wstęp Zmienne i typy Wprowadzanie i wyprowadzanie danych Podstawowe operacje Slajd 1/18 Informatyka I – wykład 1 G.P.Korbaś

description

 

Transcript of Wykłady informatyka 1

Informatyka I - wykład 1

WstępZmienne i typy

Wprowadzanie i wyprowadzanie danychPodstawowe operacje

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

Kompilatory i źródła nauki:

● Dobry będzie każdy kompilator zgodny z ANSI C++ i ISO C++. Można używać np. Borland C++ Builder 6 lub Dev C++ - są one darmowe i łatwe do pozyskania. W kompilator zaopatrzyć się jak najszybciej!

● Książek na temat C++ jest bardzo dużo i należy dobrać jedną, dwie do swojego sposobu rozumowania – znów zwracać uwagę, czy autor deklaruje zgodność z ANSI C++ i ISO C++.

● Doskonałym źródłem informacji jest internet. Jest sporo darmowych kursów C++, a różne fora dyskusyjne wypełnione są dyskusjami o tej tematyce.

● Studiowanie w tym przypadku nie ma sensu jeśli nie będzie się samodzielnie pisać programów. Uwaga! Nie przepisywać - pisać!

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

Co to znaczy 'programować w C++':

● Ponieważ procesor rozpoznaje jako polecenia jedynie odpowiednio ułożone liczby – trzeba mu podać ciąg liczb.

● Dla nas liczby są niewygodne – łatwiej operować językiem programowania typu C++

● Tworzymy pliki z poleceniami w C++ a odpowiedni program (kompilator) tłumaczy nasz program na liczby właściwe dla odpowiedniego procesora

● Korzyści z takiego postępowania są wyraźne!

Slajd 3/18 Informatyka I – wykład 1 G.P.Korbaś

Program 1a.Program wypisuje na ekranie tekst “Ala ma kota” oraz w następnej linijce “i psa”. Następnie program czeka na podanie dowolnego znaku.

#include <iostream>using namespace std;int main(){cout << "Ala ma kota\ni psa\n";char x;cin >> x;return 0;}

Slajd 4/18 Informatyka I – wykład 1 G.P.Korbaś

Uwagi do programu 1.● #include <plik> – jest dyrektywą preprocesora, która dołącza

zewnętrzne pliki do naszego programu – tu: plik iostream, który zawiera definicje strumieni wejścia i wyjścia

● using namespace std; – określa tzw. przestrzeń nazw – zostanie to omówione później

● int main() - jest specjalną, główną funkcją, którą musi zawierać każdy program C++

● cout << "Napis"; – oznacza wysłanie ciągu znaków do strumienia wyjściowego (zwykle ekran)

● \n – to specjalny znak: przejdź do nowej linii● char x; – oznacza definicję zmiennej x typu char (jeden znak)● cin >> x; – pobranie ze strumienia wejściowego znaku do x● return 0; – oznacza: zakończ działanie funkcji i zwróć 0● {} - początek i koniec bloku poleceń, np. dla funkcji

Slajd 5/18 Informatyka I – wykład 1 G.P.Korbaś

Program 1b.Program wypisuje na ekranie tekst “Ala ma kota” oraz po tabulacji “i psa”. Następnie program czeka na podanie dowolnego znaku. Wypisuje ten znak i ponownie czeka na podanie znaku.

#include <iostream>using namespace std;int main(){cout << "Ala ma kota\ti psa\n";char x;cin >> x;cout << x << endl;cin >> x;return 0;}Jeśli podczas działania programu zamiast znaku wprowadzi się tekst (np. "Kot") - program kończy się. Nie istnieje jednoznaczna zamiana tekstu na znak. Nie jest prawdą, że do zmiennej x zostanie wprowadzony pierwszy znak tekstu.

Slajd 6/18 Informatyka I – wykład 1 G.P.Korbaś

Inne uwagi:

Podstawowe typy:

int - typ całkowitoliczbowyfloat - typ zmiennoprzecinkowy (pojedynczej precyzji)double - typ zmiennoprzecinkowy (podwójnej precyzji)char - typ znakowyUwaga: pisząc znaki w programie umieszcza się je w apostrofach, np.: 'a', 'U'. Teksty umieszcza się w cudzysłowach, np.: „Ala ma kota”, „a”.bool - typ logicznyUwaga: zmienna typu logicznego może przyjmować może przyjmować dwie wartości: true (prawda) albo false (fałsz). Można je jednak również traktować jako liczby (zależnie od implementacji zwykle odpowiednio 1 lub 0).

Slajd 7/18 Informatyka I – wykład 1 G.P.Korbaś

Inne uwagi:

Podstawowe operacje:

a=b -wpisanie do zmiennej a wartości zmiennej ba+b -dodawanie a i ba-b -odejmowanie a i ba*b -mnożenie a przez ba%b -reszta z dzielenia a przez ba/b -dzielenie a przez bUwaga: jeśli zarówno a jak i b są zmiennymi lub stałymi całkowitymi to wykonywane jest dzielenie całkowite; jeśli a lub b jest zmienną lub stałą zmiennoprzecinkową wówczas wykonywane jest dzielenie zmiennoprzecinkowe).

Slajd 8/18 Informatyka I – wykład 1 G.P.Korbaś

Program 2a.Program pobiera dwie liczby rzeczywiste oraz wypisuje ich średnią arytmetyczną.#include <iostream>using namespace std;int main(){double l1,l2;double wynik;cout << "l1=";cin >> l1;cout << endl << "l2=";cin >> l2;wynik = (l1 + l2) / 2;cout << endl;cout << "wynik=" << wynik;cout << endl;char x;cin >> x;return 0;}Slajd 9/18 Informatyka I – wykład 1 G.P.Korbaś

Uwagi do programu 2a.

● double l1, l2 – definiuje dwie zmienne l1 i l2 typu double (liczba zmiennoprzecinkowa)

● endl - to specjalny znak: przejdź do nowej linii● wynik = (l1 + l2) / 2 – oznacza: do zmiennej wynik wpisz

wartość obliczoną jako suma l1 i l2 podzielona przez 2

Slajd 10/18 Informatyka I – wykład 1 G.P.Korbaś

Program 2b.Program pobiera dwie liczby całkowite oraz oblicza ile razy liczba 2 mieści się całkowicie w sumie tych liczb. Wykonywane jest dzielenie całkowitoliczbowe.#include <iostream>using namespace std;int main(){int l1,l2;cout << "l1="; cin >> l1;cout << endl << "l2="; cin >> l2;cout << "wynik=" << (l1+l2)/2;cout << endl;char x;cin >> x;return 0;}

Slajd 11/18 Informatyka I – wykład 1 G.P.Korbaś

Uwagi do programu 2b.

Program jest bardzo podobny do programu 2a, ale jeśli wprowadzimy liczby l1=2 oraz l2=3 to wyniki obu programów będą różne. W programie 2a wykonywane jest dzielenie zmiennoprzecinkowe, a w programie 2b dzielenie całkowite.

Dzielenie zmiennoprzecinkowe jest wykonywane jeśli dzielna lub dzielnik jest typu zmiennoprzecinkowego.

Jak poprawić program 2b, aby typy danych były int, ale wynik był poprawny?

Slajd 12/18 Informatyka I – wykład 1 G.P.Korbaś

Program 2c.Program pobiera dwie liczby całkowite oraz oblicza ich średnią arytmetyczną.

#include <iostream>using namespace std;int main(){int l1,l2;cout << "l1="; cin >> l1;cout << endl << "l2="; cin >> l2;cout << "wynik=" << (l1+l2)/2.0;cout << endl;char x;cin >> x;return 0;}

Slajd 13/18 Informatyka I – wykład 1 G.P.Korbaś

Program 2d.Program pobiera dwie liczby całkowite oraz oblicza ich średnią arytmetyczną.Rzutowanie typów. Polecenie system.

#include <iostream>#include <cstdlib>using namespace std;int main(){int l1,l2;cout << "l1="; cin >> l1;cout << endl << "l2="; cin >> l2;cout << "wynik=" << double(l1+l2)/2;cout << endl;system("pause");return 0;}

Slajd 14/18 Informatyka I – wykład 1 G.P.Korbaś

Program 3.Program pobiera liczbę (druga liczba jest określona w kodzie programu) i wypisuje teksty i liczby w kolumnach.

#include <cstdlib>#include <iostream>using namespace std;int main(){double x,y;cin >> x; //Podaj na przykład 123456y=2e-4;cout.precision(3);cout.width(10); cout<<"Pierwsza:";cout.width(15); cout<<x<<endl;cout.precision(4);cout.width(10); cout<<"Druga:";cout.width(15); cout<<y<<endl;system("PAUSE");return 0;}Slajd 15/18 Informatyka I – wykład 1 G.P.Korbaś

Uwagi do programu 3.

Obiekty cin i cout posiadają również swoje metody (funkcje), np.:cout.precision(n)-dla reprezentacji zmiennoprzecinkowej (domyślnej) określa wyświetlanie liczb do n cyfr znaczącychcout.width(n) -określa szerokość wyświetlanej zmiennej na n znaków

Liczby zmiennoprzecinkowe mogą być zapisywane i wprowadzane przez użytkownika za pomocą notacji naukowej, np.:2e12 -oznacza 2⋅1012

-5e-4 -oznacza −5⋅10−4

W programie pokazano też jak umieszczać komentarz ograniczony do jednej linijki (za znakami //). Komentarz, który ma więcej niż jedną linijkę ujmujemy pomiędzy znaki /* oraz */

Slajd 16/18 Informatyka I – wykład 1 G.P.Korbaś

Program 4.Program przedstawia efekty rzutowania typów

#include <cstdlib>#include <iostream>using namespace std;int main(){double x;int y;/*Przykład rzutowaniaz double na int i odwrotnie*/cin >> x; //Podaj na przykład 12.55cin>> y; //podaj na przykład 12cout << x << ' ' << (int) x << endl;cout << y << ' ' << (double) y << endl;cout << y/x << ' ' << y/int(x) << endl;system("PAUSE");return 0;}Slajd 17/18 Informatyka I – wykład 1 G.P.Korbaś

Uwagi końcowe:

● Należy jak najszybciej rozpocząć próby z własnymi programami!

● Po każdym wykładzie będzie zadana lista zadań – trzeba je umieć rozwiązać z pełnym zrozumieniem!

● Nie chodzi o to aby mieć rozwiązanie, ale aby je rozumieć i umieć rozwiązać samodzielnie.

● Aby to uwypuklić łącznie z listą zadań publikowane są przykładowe rozwiązania. Ponadto podobne zadania i rozwiązania są w skrypcie.

● Na ćwiczeniach należy umieć rozwiązywać problemy zbliżone (można je sobie samemu wymyślać lub zaczerpnąć ze skryptu)

● Osoby, które mimo szczerych chęci i prób czegoś nie zrozumiały lub nie potrafią rozwiązać, zachęcam do konsultacji

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