8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana.

Wielkość: px
Rozpocząć pokaz od strony:

Download "8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana."

Transkrypt

1 8. Wektory Przykłady 8.1. Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana. Uwaga! Kod poniżej. To zadanie można rozwiązać przy użyciu wiedzy przedstawionej dotychczas w tym podręczniku. Można stworzyć 10 zmiennych, od a1 do a10, potem do każdej z nich kolejno pobrać wartość, a w końcu każdą z nich po kolei wypisać, zaczynając od a10, a kończąc na a1. Taki program będzie działać. Będzie prosty do napisania. Co jednak gdyby liczb miało być nie 10, a 100 czy 1000? Sprytniejsza osoba może sobie napisać program, który wygeneruje taki program dla dowolnej, z góry określonej liczby. Co jednak, jeżeli ta liczba nie jest z góry określona? Uwaga! O rozwiązaniu takim jak to powyżej mówimy, że się nie skaluje. Oznacza to, że rozwiązanie takie działa bardzo dobrze dla małych liczb, jednak bardzo szybko staje się niewystarczające jeżeli te liczby zaczniemy zwiększać. Rozwiązanie, które się nie skaluje niekoniecznie jest złe. Jeżeli wiemy, że pewne liczby zawsze pozostaną małe, użycie szybkiego rozwiązania, które się nie skaluje może być dobrym pomysłem. Na przykład w zadaniu powyżej, gdyby liczb miało być 3, stworzenie 3 osobnych zmiennych byłoby świetnym rozwiązaniem. Problem polega na tym, że w rzeczywistości niemal nigdy nie możemy być pewni, że liczby zawsze pozostaną małe. Możemy na przykład użyć wektorów. Wektor pozwala na przechowanie w jednej zmiennej zestawu wartości o określonym typie. Możemy na przykład napisać vector<int> ns(10);, co stworzy wektor liczb całkowitych o nazwie ns i 10 wartościach: od ns[0] do ns[9]. Każdą z tych wartości możemy wykorzystywać jako osobną zmienną typu int. asdflkj 55

2 Uwaga! W informatyce liczymy zawsze od 0. Stąd pierwszą wartością w wektorze vector<int> ns(10) jest ns[0], a ostatnią ns[9], zaś wartość ns[10] nie istnieje. W ten sposób możemy szybko stworzyć dużą liczbę zmiennych, jednak nadal mamy problem z pobraniem i wypisaniem ich wszystkich. Tutaj też jednak jest szybkie rozwiązanie. W nawiasie kwadratowym (np. ns[3]) nie musimy umieszczać konkretnej liczby. Może być to wyrażenie matematyczne, zmienne, a nawet wywołania funkcji. Cokolwiek, co ostatecznie da nam liczbę całkowitą się nada. Dzięki temu te 10 liczb możemy pobrać przy użyciu pętli: 1 for (int i = 0; i < 10; i++) { 2 cin >> ns[i]; 3 } a następnie wypisać je przy użyciu kolejnej pętli, idącej w drugą stronę: 1 for (int i = 9; i >= 0; i = i-1) { 2 cout << ns[i] << endl; 3 } Należy także pamiętać, że aby wykorzystywać w programie wektory, musimy na początku programu dopisać linię #include <vector>. W całości rozwiązanie tego zadania wygląda tak: 1 #include <vector> 2 #include <iostream> 3 using namespace std; 4 5 int main() { 6 vector<int> ns(10); 7 for (int i = 0; i < 10; i = i+1) { 8 cin >> ns[i]; 9 } for (int i = 9; i >= 0; i = i-1) { 12 cout << ns[i] << endl; 13 } return 0; 16 } 56

3 8.2. Napisz program, który pobierze od użytkownika n liczb, a następnie wypisze je w kolejności odwrotnej niż podana. 1 #include <vector> 2 #include <iostream> 3 using namespace std; 4 5 int main() { 6 int n; 7 cin >> n; 8 9 vector<int> ns(n); 10 for (int i = 0; i < n; i = i+1) { 11 cin >> ns[i]; 12 } for (int i = n-1; i >= 0; i = i-1) { 15 cout << ns[i] << endl; 16 } return 0; 19 } Dzięki wektorom możemy również stworzyć zestaw wartości o wielkości nieznanej w momencie pisania kodu. Nie tylko indeks (wartość w nawiasie kwadratowym) może być wyrażeniem matematycznym czy zmienną, ale także rozmiar wektora. Dzięki temu możemy pobrać od użytkownika liczbę n (linie 6-7), a następnie stworzyć wektor o n wartościach (linia 9). W końcu pobieramy te wartości w pętli (linie 10-12) i wypisujemy je na ekran w kolejności odwrotnej (linie 14-16). Program ten nie różni się bardzo od rozwiązania poprzedniego przykładu, jedynie stała wartość 10 została zamieniona na zmienną n. Warto zwrócić uwagę na to, jak ta zamiana się dokonała, szczególnie w inicjalizacji i warunkach pętli. W pierwszej pętli początkowa wartość nie zmienia się (jest to wciąż 0). Jednak warunek zależał od liczby 10 w poprzednim zadaniu, stąd tutaj zależy od n. Nasz warunek to i < n. Nie chcemy, aby zmienna i osiągnęła wartość n, ponieważ taki indeks nie istnieje w wektorze ns. Moglibyśmy co prawda napisać i <= n-1, jednak zapis i < n jest krótszy i zdecydowanie częściej stosowany w takiej sytuacji. Podobnie w drugiej z pętli, zaczynamy od wartości n-1, ponieważ jest to ostatni indeks znajdujący się w wektorze ns. Chcemy natomiast dojść do wartości 0, stąd warunek to i >= 0, a nie po prostu i > 0. 57

4 8.3. Napisz program, który pobierze od użytkownika n liczb, a następnie dodatkową liczbę a i sprawdzi, ile razy a znajduje się w danym zestawie liczb. 1 #include <vector> 2 #include <iostream> 3 using namespace std; 4 5 int main() { 6 // pobierz n liczb do wektora 7 int n; 8 cin >> n; 9 10 vector<int> ns(n); 11 for (int i = 0; i < n; i = i+1) { 12 cin >> ns[i]; 13 } // pobierz dodatkowa liczbe i sprawdz 16 // ile razy znajduje sie w wektorze 17 int a; 18 cin >> a; 19 int count = 0; 20 for (int i = 0; i < n; i = i+1) { 21 if (ns[i] == a) { 22 count = count+1; 23 } 24 } // wypisz wynik na ekran 27 cout << count << endl; return 0; 30 } Linie 7-13 tego programu odpowiadają za pobranie n liczb od użytkownika i przechowanie ich w wektorze. Następnie w liniach pobieramy dodatkową liczbę, której będziemy wyszukiwać pośród pobranych wcześniej wartości. Dopiero potem zaczyna się właściwe poszukiwanie. Tworzymy zmienną count (linia 19), która pełnić będzie funkcję akumulatora zapamiętywać będzie ile razy dotychczas napotkaliśmy wartość a. Początkowo jest to 0, jako że jeszcze nie zaczęliśmy szukać. Następnie pętlą przechodzimy po wszystkich indeksach wektora ns, od 0 włącznie do n wyłącznie (linia 20). Wartość pod każdym indeksem przyrównujemy 58

5 do a (linia 21) i jeżeli taka równość zachodzi, zwiększamy count o 1 (linia 22). Po zakończeniu działania pętli zmienna count zawiera nasz wynik, stąd wypisujemy ją na ekran (linia 27) Napisz funkcję contains, która przyjmować będzie jako argumenty wektor i liczbę, a następnie sprawdzi, czy dana liczba znajduje się w danym wektorze. Napisz przykładowy program, który będzie wykorzystywał tę funkcję. 1 #include <vector> 2 #include <iostream> 3 using namespace std; 4 5 bool contains(vector<int> ns, int n) { 6 for (int i = 0; i < ns.size(); i = i+1) { 7 if (ns[i] == n) { 8 return true; 9 } 10 } return false; 13 } int main() { 16 int n; 17 cin >> n; vector<int> ns(n); 20 for (int i = 0; i < n; i = i+1) { 21 cin >> ns[i]; 22 } int a; 25 cin >> a; 26 if (contains(ns, a)) { 27 cout << "tak" << endl; 28 } else { 29 cout << "nie" << endl; 30 } return 0; } 59

6 Wektory możemy przekazywać jako argumenty funkcji, jak każdą inną zmienną. Przy definicji funkcji możemy umieścić wektor jako argument (linia 5), a następnie przekazać wartość do funkcji podając jej nazwę (linia 26). Należy jednak zwrócić uwagę na kwestię rozmiaru wektora. Jak zapewne pamiętasz, przy tworzeniu funkcji deklarujemy jej argumenty podając dla każdego z nich typ i nazwę. Rozmiar wektora nie jest częścią ani jego typu ani nazwy, stąd nie możemy narzucić, że wektor przekazany do funkcji będzie mieć dokładną, określoną przez nas, liczbę elementów. Musimy jednak w jakiś sposób poznać rozmiar wektora, który otrzymujemy wewnątrz funkcji. Służy do tego metoda size. Podajemy najpierw nazwę wektora, którego rozmiar chcemy poznać, następnie kropkę i słowo size, za którym umieszczamy parę okrągłych nawiasów (linia 6). Uwaga! Metoda to pewien specjalny rodzaj funkcji. Każde jej wywołanie musi być przywiązane do zmiennej (podanej przed kropką) określonego typu. Zmienna ta jest przekazywana jako argument do metody, jednak w nieco inny sposób niż inne argumenty. Jak to dokładnie działa dowiesz się w następnych dwóch rozdziałach. Oczywiście metodę size możemy wykorzystywać dla każdego wektora i w każdym miejscu, nie tylko dla wektorów liczb całkowitych wewnątrz funkcji. Sama funkcja contains jest dość prosta. Zgodnie z treścią zadania przyjmuje dwa argumenty: wektor liczb ns oraz poszukiwaną liczbę n. Zwraca typ bool: prawdę, jeżeli ns zawiera wartość n lub fałsz w przeciwnym wypadku. Wewnątrz funkcji znajduje się pętla, która przechodzi kolejno po wszystkich indeksach, od 0 do ns.size()-1 włącznie. Dla każdego z nich sprawdza, czy znajdująca się pod nim wartość jest równa n. Jeżeli tak, zwraca prawdę, co kończy działanie funkcji. Sprawdzanie kolejnych indeksów nie ma sensu, jako że już znamy odpowiedź. Jeżeli pętla zakończy swoje działanie i dotrzemy do linii 12, oznacza to, że wartość n nie znajduje się w wektorze. Zwracamy wtedy fałsz kończąc działanie funkcji. Funkcję tę można napisać wykorzystując akumulator typu bool, który przechowuje informację o tym, czy widzieliśmy już wartość n w wektorze. Początkowo ma wartość false, jako że nie mogliśmy widzieć n jeżeli nie zaczęliśmy szukać. Następnie pętlą podobną jak w programie wyżej sprawdzamy każdy element wektora i ustawiamy akumulator na true jeżeli znajdziemy n. Na końcu zwracamy wartość akumulatora. Rozwiązanie podane na początku tego przykładu ma jednak tę zaletę, że w wielu przypadkach nie musimy sprawdzać wszystkich wartości w wektorze. 60

7 8.5. Napisz funkcję, która przyjmować będzie jako argument wektor zawierający liczby całkowite, a zwróci wektor zawierający tylko liczby parzyste, w tej samej liczbie i kolejności, w jakiej występowały w danym wektorze. Napisz przykładowy program, który będzie wykorzystywać tę funkcję. 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 vector<int> even_filter(vector<int> ns) { 6 vector<int> result; 7 for (int i = 0; i < ns.size(); i = i+1) { 8 if (ns[i] % 2 == 0) { 9 result.push_back(ns[i]); 10 } 11 } return result; 14 } // przykladowy program 17 int main() { 18 int n; 19 cin >> n; vector<int> ns(n); 22 for (int i = 0; i < n; i = i+1) { 23 cin >> ns[i]; 24 } vector<int> evens = even_filter(ns); 27 for (int i = 0; i < evens.size(); i = i+1) { 28 cout << evens[i] << endl; 29 } return 0; 32 } Wektor możemy przekazywać jako argument funkcji, ale możemy go także zwracać jako wynik. Tutaj funkcja even_filter przyjmuje jako argument wektor zawierający pewne liczby, a jako wynik zwraca inny wektor, zawierający wyłącznie liczby parzyste. Jedyny problem polega na tym, że nie wiemy jaki będzie rozmiar wynikowego 61

8 wektora. Moglibyśmy najpierw jedną pętlą policzyć ile liczb parzystych znajduje się w danym zestawie, a następnie stworzyć wektor o pożądanym rozmiarze. Istnieje jednak prostsze rozwiązanie. Wektory można dowolnie rozszerzać. Dzięki temu możemy stworzyć pusty wektor, do którego dodawać będziemy kolejne wartości. W linii 6 pominięty został rozmiar tworzonego wektora, co oznacza, że będzie on pusty. Następnie w pętli wykorzystujemy metodę push_back, która dodaje na końcu wektora wartość przekazaną jako argument (linia 9). Przechodzimy więc pętlą po wszystkich elementach ns i sprawdzamy ich parzystość. W przypadku gdy sprawdzana wartość jest parzysta, przekazujemy ją do metody push_back. Na końcu wektora result tworzony jest wtedy nowy element, który otrzymuje wartość przekazaną do push_back. Wywołanie funkcji zwracającej wektor nie różni się niczym od wywołania innych funkcji. Podajemy najpierw nazwę funkcji, a następnie w nawiasach jej argumenty. Przykład widzimy w linii 26. Tutaj wynik funkcji umieszczany jest w nowej zmiennej, co pozwoli na jego wykorzystanie w późniejszych obliczeniach. Uwaga! Poniższy kod prezentuje sposób wykorzystania funkcji zwracającej wektor, którego lepiej jest unikać, mimo że jest technicznie poprawny i zwróci ten sam wynik co linie kodu z przykładu powyżej. 1 for (int i = 0; i < even_filter(ns).size(); i++) { 2 cout << even_filter(ns)[i] << endl; 3 } Problem z tym fragmentem kodu polega na tym, że w każdym obrocie pętli funkcja even_filter wywoływana jest dwa razy, tworząc za każdym razem dwa nowe, identyczne wektory. Nie dosyć, że dla dużych wektorów operacja ta może trwać dłuższy czas, to do tego zająć może dużo pamięci. Dużo lepiej jest wywołać tę funkcję raz i jej wynik przypisać do zmiennej. Pytania 8.1. Spójrz na kod z przykładu 8.2. W jaki sposób zmieni się jego zachowanie, jeżeli warunek pętli w linii 14 zmienimy na i > 0? 8.2. Co się stanie, jeżeli zmienimy warunek w linii 10 na i <= n? 62

9 Zadania Uwaga! W zadaniach, w których należy napisać funkcję, napisz również przykładowy program, który wykorzystuje tę funkcję i pozwala przetestować poprawność jej działania Napisz program, który pobierze od użytkownika zestaw liczb a następnie pewną liczbę całkowitą k, a następnie wypisze na ekran ile liczb w danym zestawie jest podzielnych przez k Napisz funkcję, która z danego wektora liczb całkowitych wybierze i zwróci najmniejszą Napisz funkcję, która policzy ile razy dana liczba występuje w danym zestawie liczb. Napisz program, który będzie wykorzystywać tę funkcję do policzenia ile razy liczba 0 występuje w danym przez użytkownika zestawie Napisz program, który pobierze od użytkownika pewien zestaw liczb całkowitych, a następnie znajdzie i wypisze najmniejszą liczbę naturalną, która się w nim nie znajduje Napisz funkcję, która dla danej liczby naturalnej znajdzie i zwróci wektor zawierający wszystkie jej dzielniki w kolejności rosnącej. Postaraj się, aby twoja funkcja zwracała wynik natychmiast nawet dla liczb o wartościach bliskich miliarda Napisz funkcję, która przyjmie jako argument liczbę n, a następnie pobierze od użytkownika n liczb i zwróci je w formie wektora. Możesz tej funkcji używać w swoich późniejszych programach dla szybszego pobierania wartości do wektora: 1 int n; 2 cin >> n; 3 vector<int> ns = pobierz(n); 8.7. Napisz funkcję, która przyjmować będzie jako argument wektor zawierający liczby całkowite, a zwróci wektor zawierający tylko liczby dodatnie, w tej samej liczbie i kolejności, w jakiej występowały w danym wektorze Napisz funkcję, która przyjmie jako argumenty wektor oraz indeks i zwróci wektor, który posiada te same elementy, za wyjątkiem elementu pod danym indeksem. Kolejność elementów ma pozostać taka sama. 63

10 8.9. Napisz funkcję, która przyjmie jako argumenty wektor i dwa indeksy: i oraz j. Funkcja ma zwrócić wektor zawierający elementy znajdujące się na indeksach od i do j włącznie w wektorze danym jako argument. Jeżeli i > j, wynikiem powinien być pusty wektor. Wyjątkiem jest sytuacja, gdy j = 1, w której funkcja powinna zwrócić elementy od indeksu i aż do końca danego wektora Na przyjęciu zorganizowanym przez Bajtazara obecnych będzie n osób. Każda osoba ma jasno określone preferencje na temat tego kto ma siedzieć po jej prawej stronie. Każda osoba posiada tylko jedną taką preferencję, inną od wszystkich pozostałych. Ile stołów będzie potrzebnych, aby dogodzić wszystkim preferencjom gości? Najpierw podana jest liczba n, a następnie n liczb a i (0 i n). Liczba a i określa numer osoby, która ma siedzieć po prawej stronie osoby z numerem i. Jako wynik podaj jedną liczbę: minimalną liczbę wymaganych stołów. Dodatkowo, w kolejnej linii, możesz podać liczby opisujące ile osób powinno siedzieć przy każdym ze stołów. Rozszerzenie 8.1. Napisz funkcję reverse, która odwróci kolejność elementów wektora danego jako argument w miejscu. To znaczy, poniższy fragment kodu powinien wypisać vector<int> ns; 2 for (int i = 0; i < 10; i++) { 3 ns.push_back(i); 4 } 5 6 reverse(ns); // ewentualnie reverse(&ns); 7 8 for (int i = 0; i < ns.size(); i++) { 9 cout << ns[i] << " "; 10 } 8.2. Napisz przeładowania operatorów << i >> dla wektorów i odpowiednich strumieni. Pozwoli ci to na pobieranie i wypisywanie wektorów przy użyciu strumieni cin i cout, ale także strumieni plików W jaskini smoka znajduje się n cennych przedmiotów. Każdy z nich ma swoją własną objętość o i i wartość w i. Plecak pomieści co najwyżej K jednostek objętości. Napisz program, który wybierze skarby o największej sumarycznej wartości tak, aby wszystkie zmieściły się w plecaku. 64

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

7. Pętle for. Przykłady

7. Pętle for. Przykłady . Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i

Bardziej szczegółowo

6. Pętle while. Przykłady

6. Pętle while. Przykłady 6. Pętle while Przykłady 6.1. Napisz program, który, bez użycia rekurencji, wypisze na ekran liczby naturalne od pewnego danego n do 0 włącznie, w kolejności malejącej, po jednej liczbie na linię. Uwaga!

Bardziej szczegółowo

3. Instrukcje warunkowe

3. Instrukcje warunkowe . Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include

Bardziej szczegółowo

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117).

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117). 2. Zmienne i stałe Przykłady 2.1. Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117). 5 int a = 281; int b = 117; 7 8 cout

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 4 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Pętle wykonujące się podaną liczbę razy Jeśli chcemy wykonać pewien fragment programu określoną liczbę razy, możemy użyć

Bardziej szczegółowo

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()

Bardziej szczegółowo

Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy dopóki nam sie nie znudzi.

Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy dopóki nam sie nie znudzi. Program 3 Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy póki nam sie nie znudzi. #include using namespace std; int main() int odp,a,m; bool pierwsze_podanie =

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 5 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Zadanie o kotach z poprzedniego wykładu # include < iostream > using namespace std ; int main (){ int rozmiar_ rodzinki,

Bardziej szczegółowo

1. Wypisywanie danych

1. Wypisywanie danych 1. Wypisywanie danych Przykłady 1.1. Napisz program, który wypisze na ekran słowa Hello, world!. 1 // Przyklad 1: Hello, world! 3 using namespace std; 5 int main() { 6 cout

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

Bardziej szczegółowo

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną) 1 Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną) Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,

Bardziej szczegółowo

5. Rekurencja. Przykłady

5. Rekurencja. Przykłady 5. Rekurencja Uwaga! W tym rozdziale nie są omówione żadne nowe konstrukcje języka C++. Omówiona jest za to technika wykorzystująca funkcje, która pozwala na rozwiązanie pewnych nowych rodzajów zadań.

Bardziej szczegółowo

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy: Kurs C++ częśd II Podstawowa obsługa konsoli + zmienne. Autor: Dawid Chróścielski. Wprowadzanie i wyprowadzanie danych z/do konsoli. Jak wyprowadzad dane dowiedzieliśmy się już wcześniej (metoda cout z

Bardziej szczegółowo

Programowanie - wykład 4

Programowanie - wykład 4 Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include

Bardziej szczegółowo

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog); Program 19 Zadeklarować strukturę Student o polach: Imie, Nazwisko (ciągi znaków), Oceny (pięcioelementowa tablica wartości rzeczywistych reprezentujących oceny studenta) i Semestr_zaliczony (wartość logiczna

Bardziej szczegółowo

do instrukcja while (wyrażenie);

do instrukcja while (wyrażenie); Instrukcje pętli -ćwiczenia Instrukcja while Pętla while (póki) powoduje powtarzanie zawartej w niej sekwencji instrukcji tak długo, jak długo zaczynające pętlę wyrażenie pozostaje prawdziwe. while ( wyrażenie

Bardziej szczegółowo

Programowanie proceduralne w języku C++ Pętle, tablice

Programowanie proceduralne w języku C++ Pętle, tablice Programowanie proceduralne w języku C++ Pętle, tablice Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 1

Programowanie komputerowe. Zajęcia 1 Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Wstęp do informatyki- wykład 7

Wstęp do informatyki- wykład 7 1 Wstęp do informatyki- wykład 7 Operatory przypisania, złożone operatory przypisania, Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.

Bardziej szczegółowo

Program 14. #include <iostream> #include <ctime> using namespace std;

Program 14. #include <iostream> #include <ctime> using namespace std; Program 14 Napisać: * funkcję słuŝącą do losowego wypełniania tablicy liczbami całkowitymi z podanego zakresu (*). Parametrami funkcji mają być tablica, jej długość oraz dwie liczby stanowiące krańce przedziału

Bardziej szczegółowo

Struktura pliku projektu Console Application

Struktura pliku projektu Console Application Struktura pliku projektu Console Application #include #include using namespace std; int main(int argc, char *argv[]) // to jest komentarz system("pause"); return EXIT_SUCCESS; Na początku

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 7 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Losowanie liczb całkowitych Dostępne biblioteki Najprostsze losowanie liczb całkowitych można wykonać za pomocą funkcji

Bardziej szczegółowo

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 3 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Instrukcja wielokrotnego wyboru Instrukcja wielokrotnego wyboru switch umożliwia podejmowanie decyzji na podstawie wartości

Bardziej szczegółowo

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

Bardziej szczegółowo

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami: Wskaźniki są nieodłącznym elementem języka C. W języku C++ także są przydatne i korzystanie z nich ułatwia pracę, jednak w odróżnieniu do C wiele rzeczy da się osiągnąć bez ich użycia. Poprawne operowanie

Bardziej szczegółowo

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Załóżmy, że uprawiamy jogging i chcemy monitorować swoje postępy. W tym celu napiszemy program, który zlicza, ile czasu

Bardziej szczegółowo

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 6 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Losowanie liczb całkowitych Dostępne biblioteki Najprostsze losowanie liczb całkowitych można wykonać za pomocą funkcji

Bardziej szczegółowo

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji

Bardziej szczegółowo

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

1 Wskaźniki. 1.1 Główne zastosowania wskaźników 1 Wskaźniki Wskaźnik (ang. pointer) jest obiektem (zmienną) przechowującym adres pamięci. Definiowanie wskaźników: typ *nazwa wskaznika; np.: int *wsk na x;, double *xxx;, char *znak;. Aby można było pracować

Bardziej szczegółowo

Język C++ zajęcia nr 2

Język C++ zajęcia nr 2 Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator

Bardziej szczegółowo

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; } #include using namespace std; Prototypy funkcji Funkcja 1 void ela(int); double info (double); int main( ); return 0; Funkcja 2 void ela(int); Funkcja 3 double info(double); return 4*t; jeszcze

Bardziej szczegółowo

Programowanie i struktury danych

Programowanie i struktury danych Programowanie i struktury danych 1 / 30 STL Standard Template Library, STL (ang. = Standardowa Biblioteka Wzorców) biblioteka C++ zawierająca szablony (wzorce), które umożliwiają wielokrotne użycie. Główne

Bardziej szczegółowo

Programowanie w Baltie klasa VII

Programowanie w Baltie klasa VII Programowanie w Baltie klasa VII Zadania z podręcznika strona 127 i 128 Zadanie 1/127 Zadanie 2/127 Zadanie 3/127 Zadanie 4/127 Zadanie 5/127 Zadanie 6/127 Ten sposób pisania programu nie ma sensu!!!.

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16 M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16

Bardziej szczegółowo

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne 1 Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Programowanie strukturalne i obiektowe. Funkcje

Programowanie strukturalne i obiektowe. Funkcje Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy

Bardziej szczegółowo

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej

Bardziej szczegółowo

Zadeklarowanie tablicy przypomina analogiczną operację dla zwykłych (skalarnych) zmiennych. Może zatem wyglądać na przykład tak:

Zadeklarowanie tablicy przypomina analogiczną operację dla zwykłych (skalarnych) zmiennych. Może zatem wyglądać na przykład tak: Tablice Tablice jednowymiarowe Jeżeli nasz zestaw danych składa się z wielu drobnych elementów tego samego rodzaju, jego najbardziej naturalnym ekwiwalentem w programowaniu będzie tablica. Tablica (ang.

Bardziej szczegółowo

Programowanie - instrukcje sterujące

Programowanie - instrukcje sterujące Instytut Informatyki Uniwersytetu Śląskiego Laborki środowisko NetBeans, tworzenie nowego projektu; okno projekty; główne okno programu; package - budowanie paczek z klas; public class JavaApplication

Bardziej szczegółowo

Wstęp do informatyki- wykład 9 Funkcje

Wstęp do informatyki- wykład 9 Funkcje 1 Wstęp do informatyki- wykład 9 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum

Bardziej szczegółowo

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka

Bardziej szczegółowo

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Programowanie w C++ Wykład 5 Katarzyna Grzelak 16 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły

Bardziej szczegółowo

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. Część XVII C++ Funkcje Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. 2 3 Tworzymy deklarację i definicję funkcji o nazwie pobierzln() Funkcja

Bardziej szczegółowo

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki INFORMATYKA Z MERMIDONEM Programowanie Moduł 5 / Notatki Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego. Realizator projektu: Opracowano w ramach projektu

Bardziej szczegółowo

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest Pętle Pętla to pewien fragment kodu, który jest wykonywany wielokrotnie. Wyobraź sobie taką sytuację. Piszesz program do szyfrowania danych. Dane są szyfrowane kolejno bajt po bajcie. Załóżmy, że plik

Bardziej szczegółowo

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119 Tablice Tablica to struktura danych, która może przechowywać wiele wartości tego samego typu. Na przykład tablica może zawierać: 10 wartości typu int opisujących liczbę studentów przyjętych na kierunek

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 5 1 SPECYFIKATOR const Specyfikator (przydomek) const: Umieszczenie przed nazwą zmiennej specyfikatora const w jej definicji informuje kompilator,

Bardziej szczegółowo

Wstęp do informatyki- wykład 11 Funkcje

Wstęp do informatyki- wykład 11 Funkcje 1 Wstęp do informatyki- wykład 11 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum

Bardziej szczegółowo

Podstawy programowania w C++

Podstawy programowania w C++ Podstawy programowania w C++ Strumienie wejścia cin>> i wyjścia cout

Bardziej szczegółowo

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja Opis zagadnieo 1-3 Iteracja, rekurencja i ich realizacja Iteracja Iteracja to czynnośd powtarzania (najczęściej wielokrotnego) tej samej instrukcji (albo wielu instrukcji) w pętli. Mianem iteracji określa

Bardziej szczegółowo

Rekurencja (rekursja)

Rekurencja (rekursja) Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)

Bardziej szczegółowo

Wstęp do informatyki- wykład 8 Pętla while, do while,for -pętla w pętli- przykłady Operator rzutowania Manipulatory

Wstęp do informatyki- wykład 8 Pętla while, do while,for -pętla w pętli- przykłady Operator rzutowania Manipulatory 1 Wstęp do informatyki- wykład 8 Pętla while, do while,for -pętla w pętli- przykłady Operator rzutowania Manipulatory Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.

Bardziej szczegółowo

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki > C++ dynamiczna alokacja/rezerwacja/przydział pamięci Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1429536600 > Dzisiejsze zajęcia sponsorują słówka: new oraz delete

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych

Bardziej szczegółowo

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne 1 Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,

Bardziej szczegółowo

Instrukcje sterujące

Instrukcje sterujące Podstawy programowania w C++ Bibliografia: Instrukcje sterujące Nauka programowania dla początkujących; A. Struzińska-Walczak / K. Walczak CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com Opracował:

Bardziej szczegółowo

Algorytmy i język C++

Algorytmy i język C++ Wykład 6 Wskaźniki Wskaźnik nie przechowuje wartości zmiennej ale, podobnie jak tablica, wskazuje miejsce w pamięci, w którym znajduje się zmienna danego typu. W poniższym przykładzie symbol * pomiędzy

Bardziej szczegółowo

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność

Bardziej szczegółowo

Wstęp do informatyki- wykład 6

Wstęp do informatyki- wykład 6 1 Wstęp do informatyki- wykład 6 Operatory przypisania, złożone operatory przypisania, operator przecinkowy Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++.

Bardziej szczegółowo

Aby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python.

Aby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python. Aby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python. Pliki z rozwiązaniami projektu (wszystkie polecenia

Bardziej szczegółowo

PDF stworzony przez wersję demonstracyjną pdffactory Pro Program 15

PDF stworzony przez wersję demonstracyjną pdffactory Pro  Program 15 Program 15 Program zawierający następujące funkcje: funkcję wczytującą elementy do tablicy liczb całkowitych podanej jako parametr (długość tablicy również ma być podana jako parametr); funkcję wypisującą

Bardziej szczegółowo

Pliki wykład 2. Dorota Pylak

Pliki wykład 2. Dorota Pylak Pliki wykład 2 Dorota Pylak Struktura programu działającego na plikach 1) Dyrektywa preprocesora #include //zapewnia dostęp do strumieni ifstream i ofstream 2) deklaracja zmiennej (strumienia)

Bardziej szczegółowo

Zapis algorytmów: schematy blokowe i pseudokod 1

Zapis algorytmów: schematy blokowe i pseudokod 1 Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu

Bardziej szczegółowo

Konstrukcje warunkowe Pętle

Konstrukcje warunkowe Pętle * Konstrukcje warunkowe Pętle *Instrukcja if sposób na sprawdzanie warunków *Konstrukcja: if(warunek) else { instrukcje gdy warunek spełniony} {instrukcje gdy warunek NIE spełniony} * 1. Wylicz całkowity

Bardziej szczegółowo

Przekazywanie argumentów wskaźniki

Przekazywanie argumentów wskaźniki Przekazywanie argumentów wskaźniki klasyczne wywołanie wyliczenie i zwrotne przekazanie tylko jednej wielkości moŝliwość uŝycia zmiennych globalnych niebezpieczeństwa z tym związane wyjście wywołanie funkcji

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Liczby całkowite i rzeczywiste

Liczby całkowite i rzeczywiste Wykład 4(20 marzec 2014r.) Liczby całkowite i rzeczywiste Paulina Rogowiecka Klaudia Kamińska Adrianna Znyk 1 Spis treści: Czynniki pierwsze metoda próbnych dzieleń Pierwszość liczby naturalnej algorytmy

Bardziej szczegółowo

Inicjacja tablicy jednowymiarowej

Inicjacja tablicy jednowymiarowej TABLICE C++ Inicjacja tablicy jednowymiarowej typ_komórek_tablicy nazwa_tablicy [ ilość elementów tablicy ] ; np.: int tablica[1000]; czyli tablica, która może przechowywać tysiąc elementów typu całkowitego,

Bardziej szczegółowo

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for

Bardziej szczegółowo

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty

Bardziej szczegółowo

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std; Programowanie C++ Zadanie 1 Napisz program do obliczenia sumy i iloczynu ciągu liczb zakooczonego liczbą zero. Zakładamy, że ciąg zawiera co najmniej jedną liczbę (założenie to jest konieczne przy obliczeniu

Bardziej szczegółowo

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

Wstęp do programowania obiektowego, wykład 7

Wstęp do programowania obiektowego, wykład 7 Wstęp do programowania obiektowego, wykład 7 Klasy i funkcje abstrakcyjne Przeciążanie funkcji Definiowanie i interpretacja złożonych typów danych w C++ Wskaźniki do funkcji 1 KLASA ABSTRAKCYJNA 2 Klasa

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl

Bardziej szczegółowo

Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce.

Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce. Przygotować program tworzący tablicę dwuwymiarową zawierającą zestawy 10 2, 10 4, 10 6 liczb losowych zmiennoprzecinkowych. Korzystając z funkcji bibliotecznych uporządkować zawartość każdego (a) wiersza

Bardziej szczegółowo

Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach

Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach Tablice Powiedzmy, że chcemy zapamiętać w programie

Bardziej szczegółowo

WYKŁAD 3 (13 MARZEC 2014) LICZBY CAŁKOWITE I RZECZYWISTE. Bartosz Łakomy i Dariusz Dobiesz

WYKŁAD 3 (13 MARZEC 2014) LICZBY CAŁKOWITE I RZECZYWISTE. Bartosz Łakomy i Dariusz Dobiesz WYKŁAD 3 (13 MARZEC 2014) LICZBY CAŁKOWITE I RZECZYWISTE Bartosz Łakomy i Dariusz Dobiesz SPIS TREŚCI: Liczby parzyste i nieparzyste Liczby podzielne lub niepodzielne przez zadane podzielniki NWD algorytm

Bardziej szczegółowo

Pytania sprawdzające wiedzę z programowania C++

Pytania sprawdzające wiedzę z programowania C++ Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?

Bardziej szczegółowo

Pytanie 1. Pytanie 2. Pytanie 3 WOJEWÓDZKI KONKURS INFORMATYCZNY. Treść pytania

Pytanie 1. Pytanie 2. Pytanie 3 WOJEWÓDZKI KONKURS INFORMATYCZNY. Treść pytania WOJEWÓDZKI KONKURS INFORMATYCZNY PRZEPROWADZANY W DOTYCHCZASOWYCH GIMNAZJACH W ROKU SZK. 2018/2019 Etap wojewódzki Pytanie 1 O rozmiarze obrazów w grafice rastrowej decyduje całkowita liczba pikseli (wielkość

Bardziej szczegółowo

Kontrola przebiegu programu

Kontrola przebiegu programu Kontrola przebiegu programu Wykład 9 Instrukcje sterujące: pętle rozgałęzienia skoki PRZYPOMINAJKA Zadanie : Zaprojektuj rekurencyjny przepis na wyznaczenie największej takiej liczby m, że 2 m jest podzielnikiem

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki int getmax (int a, int b) { return (a > b? a : b); float getmax (float a, float b) { return (a > b? a : b); long getmax (long a, long b)

Bardziej szczegółowo

Język C, tablice i funkcje (laboratorium, EE1-DI)

Język C, tablice i funkcje (laboratorium, EE1-DI) Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 5

Programowanie komputerowe. Zajęcia 5 Programowanie komputerowe Zajęcia 5 Tablice wielowymiarowe Tablicę dwuwymiarową możemy deklarować statycznie: typ nazwa[rozmiar1][rozmiar2]; Ma ona elementy nazwa[i][j] dla i=0,,rozmiar1-1, j=0,...,rozmiar2-1.

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo