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

Podobne dokumenty
Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Część 4 życie programu

I - Microsoft Visual Studio C++

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Techniki Programowania wskaźniki 2

Programowanie w C++ Wykład 4. Katarzyna Grzelak. 19 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37

Programowanie komputerowe. Zajęcia 1

DYNAMICZNE PRZYDZIELANIE PAMIECI

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Wstęp do Programowania, laboratorium 02

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24

C++ wprowadzanie zmiennych

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

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

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

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

Programowanie komputerowe. Zajęcia 4

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

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

1 Podstawy c++ w pigułce.

Wskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny:

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

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

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

ZASADY PROGRAMOWANIA KOMPUTERÓW

Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27

Język C++ Różnice między C a C++

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

Techniki Programowania wskaźniki

Programowanie obiektowe w C++ Wykład 1

3. Instrukcje warunkowe

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

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

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

Struktura pliku projektu Console Application

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

Podstawy programowania w języku C++

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

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

1 Podstawy c++ w pigułce.

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

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

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

Programowanie w języku C++

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

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

Podstawy programowania w języku C++

Programowanie obiektowe w C++ Wykład 12

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

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

Podstawy algorytmiki i programowania - wykład 1 Tablice powtórzenie Tablice znaków Tablice dwuwymiarowe

Program 22. #include <iostream> using namespace std; struct Osoba { string Imie; string Nazwisko; char Plec; int RokUr; };

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

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

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

Laboratorium nr 9. Temat: Wskaźniki, referencje, dynamiczny przydział pamięci, tablice dynamiczne. Zakres laboratorium:

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

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

tablica: dane_liczbowe

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe

PARADYGMATY PROGRAMOWANIA Wykład 4

Algorytmika i programowanie. Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Wstęp do informatyki- wykład 7

Podstawy programowania w języku C++

1,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi:

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

typ y y p y z łoż o on o e n - tab a lice c e w iel e owym m ar a o r we, e stru r kt k ury

Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006)

Wskaźniki. Informatyka

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

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

Programowanie komputerowe. Zajęcia 3

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

Pytania sprawdzające wiedzę z programowania C++

KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

Lab 9 Podstawy Programowania

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Zmienne i struktury dynamiczne

Wstęp do programowania

Wstęp do programowania. Dariusz Wardecki, wyk. X

7. Pętle for. Przykłady

Wstęp do Programowania 2

Programowanie 2. Język C++. Wykład 1.

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji

Programowanie Obiektowe i C++

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Wskaźniki w C. Anna Gogolińska

Programowanie i struktury danych

Transkrypt:

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 obszar pamięci. Wskaźnik to adres w pamięci gdzie znajduje się dany obiekt. K.Grzelak (Wykład 1) Programowanie w C++ 2 / 27

Pojęcia z poprzednich wykładów Klasyczne tablice: klasyczne tablice (lokalne) tworzone sa na stosie (stack); standard: na etapie kompilacji musi być znana długość tablicy; zakres ważnośći blok. Tablice dynamiczne: dynamiczne tablice tworzone za pomoca operatora new; tworzone sa na stogu (heap); na etapie kompilacji długość tablicy nie musi być znana; nie maja nazwy - dostęp za pomoca wskaźników; zakres ważności - od new do delete. K.Grzelak (Wykład 1) Programowanie w C++ 3 / 27

Pojęcia z poprzednich wykładów Przechowywanie ciagów znaków: sposób z języka C C-string tablica wypełniona znakami ze znakiem NULL na końcu; sposób z języka C++ obiekt z klasy string użycie analogiczne jak w przypadku podstawowych typów (int, double,... ). Argumenty funkcji main: albo brak argumentów albo dwa: int main(int argc,char* argv[]) => argumenty z linii wywołania zawsze przekazywane jako ciagi znaków (C-stringi). K.Grzelak (Wykład 1) Programowanie w C++ 4 / 27

Jeszcze o operatorach Podstawowe operatory +, -, \, * = podstawienie == porównanie!= nie równe <,>,<=, >= suma logiczna && iloczyn logiczny % reszta z dzielenia ++i,i++ zwiększenie o 1, to samo co i=i+1 K.Grzelak (Wykład 1) Programowanie w C++ 5 / 27

Operatory przypisania = podstawienie(przypisanie) ++i oznacza i=i+1 i++ oznacza i=i+1 i oznacza i=i-1 i oznacza i=i-1 i+=5 oznacza i=i+5 i-=5 oznacza i=i-5 i*=5 oznacza i=i*5 i/=5 oznacza i=i/5 K.Grzelak (Wykład 1) Programowanie w C++ 6 / 27

++i vs i++ ++i vs i++ ++i najpierw zmienna jest zwiększana o 1, a potem wynik tej operacji staje się wartościa wyrażenia i++ stara wartość zmiennej staje się wartościa wyrażenia, a potem obiekt zwiększany jest o 1 K.Grzelak (Wykład 1) Programowanie w C++ 7 / 27

++i vs i++ Przykład 1 int a=15; if((a++)==15){ cout «OK «endl; } Czy OK wypisze się na ekranie? K.Grzelak (Wykład 1) Programowanie w C++ 8 / 27

++i vs i++ Przykład 2 int a=10,b=10; cout «++a= «++a «endl; cout «b++= «b++ «endl; cout «a= «a «endl; cout «b= «b «endl; Jakie liczby zostana wypisane na ekran? K.Grzelak (Wykład 1) Programowanie w C++ 9 / 27

Operator sizeof Ile miejsca w pamięci zajmuje dany obiekt? sizeof(nazwa_typu) lub sizeof(nazwa_obiektu) Wynikiem jest rozmiar obiektu w bajtach K.Grzelak (Wykład 1) Programowanie w C++ 10 / 27

Operator sizeof Przykłady cout «sizeof(int) «endl; cout «sizeof(double) «endl; int tab[8]; cout «sizeof(tab) «endl; K.Grzelak (Wykład 1) Programowanie w C++ 11 / 27

Operator sizeof Przykłady int tab[8]; cout «sizeof(tab)/sizeof(tab[0]) «endl; Jaka liczba zostanie wypisana na ekran? K.Grzelak (Wykład 1) Programowanie w C++ 12 / 27

Wyrażenie warunkowe warunek? wartość1 : wartość2 Przykład (n>5)? 100 : 200 Jeżeli n>5 to wyrażenie przyjmuje wartość 100. W przeciwnym wypadku przyjmuje wartość 200. K.Grzelak (Wykład 1) Programowanie w C++ 13 / 27

Przecinek Jeśli kilka wyrażeń jest oddzielonych przecinkiem, to całość to wyrażenie najbardziej z prawej. Przykład int a,b,c,d,e; (a=4,b=5,c=2*a,d=5+b,e=a+b+c+d); cout «e= «e «endl; Ile wynosi e? K.Grzelak (Wykład 1) Programowanie w C++ 14 / 27

Operatory rzutowania tradycyjna wersja Rzutowanie to jawna zmiana typu obiektu na inny. Np. double na int, int na float... Przykłady (double)liczba (int)znak K.Grzelak (Wykład 1) Programowanie w C++ 15 / 27

Operatory rzutowania tradycyjna wersja Przykład int n=100,np=0; for(int i=0; i<n; i++){ if(i%3==0){ np++; } } float r=(float)np/n; K.Grzelak (Wykład 1) Programowanie w C++ 16 / 27

Szukamy błędów K.Grzelak (Wykład 1) Programowanie w C++ 17 / 27

Zasada podstawowa Błędy poprawia się od pierwszego pokazywanego przez kompilator. K.Grzelak (Wykład 1) Programowanie w C++ 18 / 27

Przykład 1 Przerywanie pętli po wpisaniu N char warunek= T ; while(warunek= T ){ // Tutaj seria poleceń cout «Kontynuować?(T/N) «endl; cin» warunek; } Dlaczego nie można zakończyć pętli? K.Grzelak (Wykład 1) Programowanie w C++ 19 / 27

Przykład 2 - dlaczego program się nie kompiluje? K.Grzelak (Wykład 1) Programowanie w C++ 20 / 27

Przykład 2 - rozwiazanie 1 K.Grzelak (Wykład 1) Programowanie w C++ 21 / 27

Przykład 2 - rozwiazanie 2 K.Grzelak (Wykład 1) Programowanie w C++ 22 / 27

Przykład 3 #include<iostream> using namespace std; int main(){ int suma=0,i=0; for(i=0;i<=5;++i); { suma=suma+i; } cout «suma= «suma «endl; return 0; } Dlaczego suma nie jest równa 15? K.Grzelak (Wykład 1) Programowanie w C++ 23 / 27

Przykład 3 - rozwiazanie #include<iostream> using namespace std; int main(){ int suma=0; for(int i=0;i<=5;++i){ suma=suma+i; } cout «suma= «suma «endl; return 0; } Dodatkowo: najlepiej deklarować licznik pętli for we wnętrzu bloku pętli. K.Grzelak (Wykład 1) Programowanie w C++ 24 / 27

Przykład 4 #include<iostream> using namespace std; int main(){ const int n=5; double t[n]={1.5,5.6,7.1,15.4,12.1}; for(int i=1;i<=5;++i){ cout «t[i] «endl; } return 0; } Dlaczego nie wypisuje się prawdziwa zawartość tablicy? K.Grzelak (Wykład 1) Programowanie w C++ 25 / 27

Przykład 5 Dlaczego nie wypisuje się prawdziwa zawartość tablicy? K.Grzelak (Wykład 1) Programowanie w C++ 26 / 27

Zagadka int wynik=0,i=1; while(wynik+=(i++),i<6){} cout «wynik= «wynik «endl; K.Grzelak (Wykład 1) Programowanie w C++ 27 / 27