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.

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, 2015. Wydział Matematyki Stosowanej Politechniki Śląskiej

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, 2015. Wydział Matematyki Stosowanej Politechniki Śląskiej Laboratorium 1 - Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Punkty Na laboratorium można zdobyć 60 punktów. Ocena ogólna z zajęć:

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

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

PROGRAMOWANIE W C++ ZADANIA

PROGRAMOWANIE W C++ ZADANIA PROGRAMOWANIE W C++ ZADANIA Włodzimierz Gajda Rozdział 7 PĘTLE 7.1 PĘTLA FOR: rysowanie wzorków. ZADANIE 7.1.1 Napisz program drukujący na ekranie 19 gwiazdek: ******************* ZADANIE 7.1.2 Napisz

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

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

Wstęp do Informatyki

Wstęp do Informatyki Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 11 1 / 52 Pętla for # i n c l u d e

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

ZBIÓR ZADAŃ Z INFORMATYKI

ZBIÓR ZADAŃ Z INFORMATYKI ZBIÓR ZADAŃ Z INFORMATYKI OPRACOWANY W RAMACH PROJEKTU KOMPETENCJE KLUCZOWE DROGĄ DO KARIERY WSPÓŁFINANSOWANEGO ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO opracowany przez

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

Bardziej szczegółowo

for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; }

for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; } Pętle Pętle (ang. loops), zwane też instrukcjami iteracyjnymi, stanowią podstawę prawie wszystkich algorytmów. Lwia część zadań wykonywanych przez programy komputerowe opiera się w całości lub częściowo

Bardziej szczegółowo

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

Bardziej szczegółowo

Metody numeryczne Laboratorium 2

Metody numeryczne Laboratorium 2 Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania

Bardziej szczegółowo

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem Moduł 1 1. Wprowadzenie do języka Python Python jest dynamicznym językiem interpretowanym. Interpretowany tzn. że kod, który napiszemy możemy natychmiast wykonać bez potrzeby tłumaczenia kodu programistycznego

Bardziej szczegółowo

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest

Bardziej szczegółowo

Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012

Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012 Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012 if (warunek) instrukcja1; if (warunek) instrukcja1; else instrukcja2; if (warunek) instrukcja1; else if (warunek2)

Bardziej szczegółowo

Jak Windows zarządza pamięcią?

Jak Windows zarządza pamięcią? Jak Windows zarządza pamięcią? System Windows definiuje dwa typy pamięci, często mylone przez użytkowników. Pamięć fizyczna (pamięc RAM zainstalowana w komputerze) Pamięć widziana przez daną aplikację

Bardziej szczegółowo

Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania).

Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania). Funkcje w Pythonie Funkcje to części programu wielokrotnego użytku. Pozwalają nam nadad nazwę blokowi wyrażeo, a następnie uruchamiad ten blok używając tej nazwy gdziekolwiek w programie, dowolną ilośd

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Wstęp. Opis programu :

Wstęp. Opis programu : Wstęp Program komputerowy to ciąg zrozumiałych dla komputera poleceń, każdy program jest napisany w jakimś języku programowania (np. C#, C++, Batch :), Java, Basic, PHP i wiele, wiele innych ). Każdy z

Bardziej szczegółowo

Warunki i pętle. Instrukcja warunkowa if. Przykład zastosowania.

Warunki i pętle. Instrukcja warunkowa if. Przykład zastosowania. Warunki i pętle Poznamy użycie instrukcji warunkowych if else oraz switch. Przedstawiony zostanie również operator?, który znacznie upraszcza zapis prostych warunków. Następnie przejdziemy do pętli. Zaczniemy

Bardziej szczegółowo

1 Wielokrotne powtarzanie tych samych operacji

1 Wielokrotne powtarzanie tych samych operacji 1 Wielokrotne powtarzanie tych samych operacji Zadanie 1. roszę porównać następujące programy(efekt działania każdego z nich jest takisam). rzykład 1 przedstawia najbardziej typowy zapis, powodujący wykonanie

Bardziej szczegółowo

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pętle for, while, do... while, foreach Jeszcze o operatorach... Skrócone operatory arytmetyczne przykład x +=

Bardziej szczegółowo

Część XV C++ Ćwiczenie 1

Część XV C++ Ćwiczenie 1 Część XV C++ Instrukcja break przerywa działanie tylko tej pętli, w ciele której została wywołana. Jeśli więc wywołamy break w pętli zagnieżdżonej w innej pętli, zostanie przerwane działanie tylko tej

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach: Skrypty powłoki Skrypty są zwykłymi plikami tekstowymi, w których są zapisane polecenia zrozumiałe dla powłoki. Zadaniem powłoki jest przetłumaczenie ich na polecenia systemu. Aby przygotować skrypt, należy:

Bardziej szczegółowo

C++ - [1-3] Debugowanie w Qt Creator

C++ - [1-3] Debugowanie w Qt Creator Slajd 1 z 10 C++ - [1-3] Debugowanie w Qt Creator Nysa 2004-2013. Autor: Wojciech Galiński. wersja dnia 15 maja 2013 r. Slajd 2 z 10 Pojęcia związane z debugowaniem DEBUGOWANIE (z ang. debugging odrobaczanie)

Bardziej szczegółowo

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ćwiczenie: JavaScript Cookies (3x45 minut) Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.

Bardziej szczegółowo

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2 Pętle wielokrotne wykonywanie ciągu instrukcji. Bardzo często w programowaniu wykorzystuje się wielokrotne powtarzanie określonego ciągu czynności (instrukcji). Rozróżniamy sytuacje, gdy liczba powtórzeń

Bardziej szczegółowo

Projektowanie klas c.d. Projektowanie klas przykład

Projektowanie klas c.d. Projektowanie klas przykład Projektowanie klas c.d. ogólne wskazówki dotyczące projektowania klas: o wyodrębnienie klasy odpowiedź na potrzeby życia (obsługa rozwiązania konkretnego problemu) o zwykle nie uda się utworzyć idealnej

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Zadanie 1. Napisz, skompiluj i uruchom program, który wyświetla komunikat: "Mam na imie...".

Zadanie 1. Napisz, skompiluj i uruchom program, który wyświetla komunikat: Mam na imie.... Laboratorium 1. Zadanie 1. Napisz, skompiluj i uruchom program, który wyświetla komunikat: "Mam na imie...". int main() cout

Bardziej szczegółowo

Allegro5 3/x. Przykład wklejamy go do dev'a zamiast kodu domyślnego dal programu z allegro i kompilujemy.

Allegro5 3/x. Przykład wklejamy go do dev'a zamiast kodu domyślnego dal programu z allegro i kompilujemy. Allegro5 3/x. Przykład wklejamy go do dev'a zamiast kodu domyślnego dal programu z allegro i kompilujemy. #include #include #include #include

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Laboratorium 3 Instrukcje wyboru 1 INSTRUKCJE WYBORU Instrukcje sterujące to takie instrukcje, które sterują przebiegiem programu w zależności od spełnienia

Bardziej szczegółowo

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Tablice jednowymiarowe

Tablice jednowymiarowe Tablice jednowymiarowe Gdy mamy do czynienia z zestawem zmiennych, to można z nich zrobić tablicę. Tablica jest ciągiem elementów tego samego typu, który zajmuje ciągły obszar pamięci. Korzyść z zastosowania

Bardziej szczegółowo

* WWW: * E-mail: * Adres: Instytut Informatyki ul. Będzińska 39 41-200 Sosnowiec Pokój 214 * Telefon: 32 3689765

* WWW: * E-mail: * Adres: Instytut Informatyki ul. Będzińska 39 41-200 Sosnowiec Pokój 214 * Telefon: 32 3689765 * Łagodny start * * WWW: * E-mail: * Adres: Instytut Informatyki ul. Będzińska 39 41-200 Sosnowiec Pokój 214 * Telefon: 32 3689765 Zaliczenie zajęć: 3-4 kolokwia + obecność ALBO Projekt zaliczeniowy +

Bardziej szczegółowo

Blockly Kodowanie pomoc.

Blockly Kodowanie pomoc. 1 Blockly Kodowanie pomoc. Słowniczek: Zmienna posiada nazwę wywoływaną w programie oraz miejsce na przechowywanie wartości. Instrukcja warunkowa pozwala na wykonanie instrukcji w zależności od warunku

Bardziej szczegółowo

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include

Bardziej szczegółowo

Język C, instrukcje sterujące (laboratorium)

Język C, instrukcje sterujące (laboratorium) Język C, instrukcje sterujące (laboratorium) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Na podstawie http://pl.wikibooks.org/wiki/c Wstęp Instrukcja warunkowa Instrukcja if/if-else pozwala na warunkowe

Bardziej szczegółowo

DYNAMICZNE PRZYDZIELANIE PAMIECI

DYNAMICZNE PRZYDZIELANIE PAMIECI DYNAMICZNE PRZYDZIELANIE PAMIECI Pamięć komputera, dostępna dla programu, dzieli się na cztery obszary: kod programu, dane statyczne ( np. stałe i zmienne globalne programu), dane automatyczne zmienne

Bardziej szczegółowo

Akademia ETI Marcin Jurkiewicz

Akademia ETI Marcin Jurkiewicz Akademia ETI Marcin Jurkiewicz Fakt W informatyce nic nie robi się od zera! Zatem my również będziemy korzystali z szablonów. Najczęściej będziemy troszkę zmieniać programy już napisane na slajdach. Pierwszy

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych 1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje

Bardziej szczegółowo

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy) Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Lista 2. int porownaj_liczby_normalnie(const int a, const int b) { if(a==b) return 0; if(a>b)return1; return-1; }

Lista 2. int porownaj_liczby_normalnie(const int a, const int b) { if(a==b) return 0; if(a>b)return1; return-1; } Lista 2 Poniższe zadania mają na celu jedynie pomoc w szlifowaniu umiejętności logicznego myślenia, analizowania i rozwiązywania pewnych zagadnienień algorytmicznych. Zadanie 1. W algorytmach opartych

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Informatyka II Laboratorium 3 : Programowania obiektowe C++ - dziedziczenie

Informatyka II Laboratorium 3 : Programowania obiektowe C++ - dziedziczenie Materiały: Informatyka II Laboratorium : Programowania obiektowe C++ - dziedziczenie Książka: Symfonia C++, Jerzy Grębosz. Wykład: www.materialy.prz-rzeszow.pl, Informatyka II, dr Wojciech Rząsa. Zasoby

Bardziej szczegółowo

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 TEMAT: Programowanie w języku C/C++: instrukcje iteracyjne for, while, do while Ogólna postać instrukcji for for (wyr1; wyr2; wyr3) Instrukcja for twory pętlę działającą

Bardziej szczegółowo

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Konwersje liczba napis Ćwiczenia 1. Napisz aplikację, która na wejściu dostaje napis postaci W Roku Pańskim 1345, władca Henryk 12,

Bardziej szczegółowo

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja Rok akademicki 2011/2012, Pracownia nr 9 2/24 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2011/2012 Pracownia nr

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class).

Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class). Wprowadzenie w dziedziczenie Klasa D dziedziczy klasę B: B klasa bazowa D klasa pochodna Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class). Najpierw jest tworzona klasa bazowa,

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Ilość cyfr liczby naturalnej

Ilość cyfr liczby naturalnej Ilość cyfr liczby naturalnej Użytkownik wprowadza liczbę naturalną n. Podaj algorytm znajdowania ilości cyfr liczby n. (Np.: po wprowadzeniu liczby 2453, jako wynik powinna zostać podana liczba 4). Specyfikacja

Bardziej szczegółowo

JAVAScript w dokumentach HTML - przypomnienie

JAVAScript w dokumentach HTML - przypomnienie Programowanie obiektowe ćw.1 JAVAScript w dokumentach HTML - przypomnienie JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w

Bardziej szczegółowo

Zajęcia 6 wskaźniki i tablice dynamiczne

Zajęcia 6 wskaźniki i tablice dynamiczne Zajęcia 6 wskaźniki i tablice dynamiczne 1. Napisz funkcję void zamien(int *a, int *b), która otrzymuje wskaźniki dwóch zmiennych typu całkowitego, a następnie dokonuje zamiany wartości wskazywanych zmiennych.

Bardziej szczegółowo

Operatory logiczne. Podstawowe operatory logiczne, składanie wyrażeń z użyciem operatorów logicznych

Operatory logiczne. Podstawowe operatory logiczne, składanie wyrażeń z użyciem operatorów logicznych Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Operatory logiczne Podstawowe operatory logiczne, składanie wyrażeń z użyciem operatorów logicznych Podstawowe

Bardziej szczegółowo

Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne

Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Instrukcje wyboru Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne Być, czy nie być?

Bardziej szczegółowo

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76 . p. 1 Algorytmem nazywa się poddający się interpretacji skończony zbiór instrukcji wykonania zadania mającego określony stan końcowy dla każdego zestawu danych wejściowych W algorytmach mogą występować

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej 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

Bardziej szczegółowo

Proste programy w C++ zadania

Proste programy w C++ zadania Proste programy w C++ zadania Zbiór zadao do samodzielnego rozwiązania stanowiący powtórzenie materiału. Podstawy C++ Budowa programu w C++ Dyrektywy preprocesora Usunięcie dublujących się nazw Częśd główna

Bardziej szczegółowo

Wstęp do programowania w C++

Wstęp do programowania w C++ Wstęp do programowania w C++ Wydział Energetyki i Paliw Katedra Podstawowych Problemów Energetyki Literarura Symfonia C++ standard Jerzy Grębosz Thinking in C++ - Bruce Eckel Ćwiczenia praktyczne z C++

Bardziej szczegółowo

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy

Bardziej szczegółowo

Warunek wielokrotnego wyboru switch... case

Warunek wielokrotnego wyboru switch... case Warunek wielokrotnego wyboru switch... case Działanie instrukcji switch jest zupełnie inne niż w przypadku instrukcji if o czym będziesz mógł się przekonać w niniejszym rozdziale. Różnice pomiędzy instrukcjami

Bardziej szczegółowo

Programowanie w C++ z użyciem kontenerów - parę przykładów programów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ

Programowanie w C++ z użyciem kontenerów - parę przykładów programów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ programowanie w C++ dla OWK Programowanie w C++ z użyciem kontenerów - parę przykładów programów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ 1 Streszczenie W tym rozdziale podamy kilka najprostszych

Bardziej szczegółowo

Wyszukiwanie największej spośród czterech liczb. Przykładowe rozwiązanie

Wyszukiwanie największej spośród czterech liczb. Przykładowe rozwiązanie Wyszukiwanie największej spośród czterech liczb Użytkownik podaje cztery liczby rzeczywiste. Podaj algorytm znajdowania największej spośród nich. (Np.: po wprowadzeniu liczb: 12 7 18.5 9 program powinien

Bardziej szczegółowo

Pascal - wprowadzenie

Pascal - wprowadzenie Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego

Bardziej szczegółowo

Pracownia specjalistyczna. Materiały przygotowali: mgr inż. Wojciech Frohmberg, mgr inż. Michał Kierzynka

Pracownia specjalistyczna. Materiały przygotowali: mgr inż. Wojciech Frohmberg, mgr inż. Michał Kierzynka Pracownia specjalistyczna Materiały przygotowali: mgr inż. Wojciech Frohmberg, mgr inż. Michał Kierzynka Język C++ 1. Podstawowa struktura pliku źródłowego: #include #include "main.h" using

Bardziej szczegółowo

wagi cyfry 7 5 8 2 pozycje 3 2 1 0

wagi cyfry 7 5 8 2 pozycje 3 2 1 0 Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień

Bardziej szczegółowo

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

LICZBY PIERWSZE. Jan Ciurej Radosław Żak LICZBY PIERWSZE Jan Ciurej Radosław Żak klasa IV a Katolicka Szkoła Podstawowa im. Świętej Rodziny z Nazaretu w Krakowie ul. Pędzichów 13, 31-152 Kraków opiekun - mgr Urszula Zacharska konsultacja informatyczna

Bardziej szczegółowo

Język C część 2. Podejmowanie decyzji w programie. if else. switch

Język C część 2. Podejmowanie decyzji w programie. if else. switch Język C część 2 Podejmowanie decyzji w programie if else Instrukcja warunkowa umożliwia wykonanie pewnej instrukcji w zależności od wartości wyrażenia. Wszystkie wartości różne od 0, są w języku C traktowane

Bardziej szczegółowo

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); } OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania

Bardziej szczegółowo

Języki i metodyka programowania. Wprowadzenie do języka C

Języki i metodyka programowania. Wprowadzenie do języka C Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia

Bardziej szczegółowo

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3 Matlab, zajęcia 3. Pętle c.d. Przypomnijmy sobie jak działa pętla for Możemy podać normalnie w Matlabie t=cputime; for i=1:20 v(i)=i; e=cputime-t UWAGA: Taka operacja jest bardzo czasochłonna i nieoptymalna

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Programowanie w językach

Programowanie w językach Programowanie w językach wysokiego poziomu Obsługa plików za pomocą strumieni Elektronika i Telekomunikacja, semestr III rok akademicki 2013/2014 dr inż. Paweł Myszkowski Plan zajęć a) otwieranie i zamykanie

Bardziej szczegółowo

Funkcje wbudowane PHP

Funkcje wbudowane PHP Funkcje wbudowane PHP Funkcje daty i czasu Funkcja time() zwraca informacje na temat bieżącej daty i czasu. Nie posiada żadnych argumentów. Informacje o czasie dacie zwraca w formie liczby Liczba odpowiada

Bardziej szczegółowo