Wstęp do programowania

Podobne dokumenty
Wstęp do programowania

Wstęp do programowania

Wstęp do programowania

Wstęp do programowania

Wstęp do informatyki- wykład 7

Wstęp do programowania

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

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

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

Wstęp do informatyki- wykład 6

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

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.

Kontrola przebiegu programu

Programowanie - wykład 4

7. Pętle for. Przykłady

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

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

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

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

Pętla for. Wynik działania programu:

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

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

Wstęp do informatyki- wykład 9 Funkcje

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

Wstęp do Informatyki

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

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

Wstęp do programowania

Wstęp do informatyki- wykład 7

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

Struktura pliku projektu Console Application

4. Funkcje. Przykłady

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

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

Programowanie komputerowe. Zajęcia 1

Wstęp do informatyki- wykład 11 Funkcje

3. Instrukcje warunkowe

tablica: dane_liczbowe

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

Wstęp do programowania

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

PDF stworzony przez wersję demonstracyjną pdffactory Pro Program 15

Podstawy Programowania C++

1 Podstawy c++ w pigułce.

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

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

Część 4 życie programu

Podstawy Programowania

Instrukcje sterujące

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

do instrukcja while (wyrażenie);

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

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

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

1 Podstawy c++ w pigułce.

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

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

Konstrukcje warunkowe Pętle

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Proste programy w C++ zadania

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

Podstawy algorytmiki i programowania - wykład 4 C-struktury

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Wstęp do Programowania 2

I - Microsoft Visual Studio C++

C-struktury wykład. Dorota Pylak

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

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); }

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

Pytania sprawdzające wiedzę z programowania C++

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

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

C-struktury wykład. Dorota Pylak

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

Programowanie Proceduralne

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

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

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

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

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

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Metody Metody, parametry, zwracanie wartości

Podstawy algorytmiki i programowania - wykład 6 Sortowanie- algorytmy

Struktury Struktura polami struct struct struct struct

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Podstawy algorytmiki i programowania - wykład 5 C-struktury cd.

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

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

Programowanie Obiektowe i C++

Programowanie komputerowe. Zajęcia 2

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

Wstęp do programowania

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

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

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

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

Projektowanie klas c.d. Projektowanie klas przykład

for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; }

Podstawy programowania obiektowego

JAVAScript w dokumentach HTML (2)

Transkrypt:

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, pokolenie, liczba_mlodych, g; cout << " Program liczy po ilu pokoleniach kocia rodzina moze osiagnac podana liczebnosc. "; cout << " Podaj te liczebnosc : "; cin >> g; rozmiar_ rodzinki = 1; pokolenie = 1; while ( rozmiar_ rodzinki < g) { pokolenie = pokolenie + 1; liczba_ mlodych = 6 * rozmiar_ rodzinki ; rozmiar_ rodzinki = rozmiar_ rodzinki + liczba_ mlodych ; } cout << " Rodzinka osiagnie podany rozmiar w " << pokolenie << " pokoleniu \ n"; cout << "( dokladnie mozemy miec wtedy " << rozmiar_ rodzinki << " kotow )"; return 0; }

Pętle wykonujące się podaną liczbę razy Jeśli chcemy wykonać pewien fragment programu określoną liczbę razy, możemy użyć jednej z pętli poznanych wcześniej Przykład (Trzykrotne wykonanie pewnych instrukcji) int L; int L;...... L=1; L=1; while (L<=3) do { { instrukcje instrukcje L=L+1; L=L+1; } } while (L<=3);

... ale istnieją specjalne pętle które mogą być użyte w takich przypadkach

... ale istnieją specjalne pętle które mogą być użyte w takich przypadkach Idea Musimy z góry znać liczbę powtórzeń (przebiegów) pętli liczba ta nie musi być znana w momencie pisania programu, może też być podana przez użytkownika w trakcie jego wykonywania W pętli funkcjonuje pewna zmienna, zwana licznikiem pętli, pamiętająca ile razy pętla została wykonania

Postać w C++ for (inicjalizacje ; warunek; modyfikacje) instrukcja // być może złożona

Postać w C++ for (inicjalizacje ; warunek; modyfikacje) instrukcja // być może złożona Przykłady for (int i=1 ; i<=3 ; i++) cout << i << endll; ----------------------------- for (int i=3 ; i>=1 ; i--) cout << i << endll;

inicjalizacje wykonywane są jednokrotnie przed rozpoczęciem wykonywania pętli. Zazwyczaj slużą do nadania wartości początkowych licznikowi ( licznikom ) pętli, możliwe jest także zdefiniowanie tych liczników (istnieją wtedy tylko wewnątrz pętli) warunek jest sprawdzany przed każdym obiegiem pętli; jeśli ma wartość true to ciało pętli jest wykonywane modyfikacje wykonywane są po każdym wykonaniu pętli, zazwyczaj służą do zmiany wartości licznika (liczników)

zmienne występujące w roli liczników nie muszą być całkowite, ale jeśli są definiowane w inicjalizacjach, to wszystkie muszą być tego samego typu (liczniki zdefiniowane przed pętlą mogą być różnych typów) inicjalizacje i modyfikacje mogą składać się z kilku członów, poszczególne ich części są wtedy oddzielane przecinkami jeśli warunek ma się składać z kilku elementów, wskazane jest połączenie ich spójnikami logicznymi można opuścić niektóre (lub wszystkie) elementy spośród inicjalizacji, warunków i modyfikacji, ale średniki wewnątrz nawiasów pętli są mimo to wymagane

Przykłady for (float i=3.5 ; i>=1 ; i=i/2 ) // licznik rzeczywisty cout << i << endl; ----------------------------- // dwa liczniki definiowane w pętli for (int i=10, a=1 ; i>=1 && a<=2 ; i=i/2, a++) cout << "i = " << i << " a = " << a << endl; ------------------------------ int a; // dwa liczniki różnego typu float i; for ( i=10.5, a=1 ; i>=1 && a<=2 ; i=i/2, a++) cout << "i = " << i << " a = " << a << endl; ------------------------------ for (;;) cout << " \\ * " ; // pętla nieskończona

Przykład użycia (suma 5 liczb) # include < iostream > using namespace std ; int main () { int a, sum =0; for ( int i =1; i <=5; i ++) { cout << " podaj liczbe "; cin >> a; sum = sum +a; } cout << " suma liczb wynosi " << sum << endl ; } return 0;

Przykład użycia (suma podanej liczby liczb) # include < iostream > using namespace std ; int main () { int a, sum =0, ile ; cout << " ile liczb podasz? "; cin >> ile ; for ( int i =1; i <= ile ; i ++) { cout << " podaj liczbe "; cin >> a; sum = sum +a; } cout << " suma liczb wynosi " << sum << endl ; return 0; }

Zadania, czyli wymyślanie algorytmów Zadanie 1 Grupa osób - Jacek, Anka, Magda, Piotr, Tomek, Kamil, Adam, Paweł, Ewa - ma wybrać spośród siebie dwuosobowy zespół. Napisać program wypisujący: wszystkie możliwe składy zespołów w których jedna osoba jest szefem a druga podwładnym, oraz informację na ile sposobów można wybrać taki zespół, wszystkie możliwe składy zespołów złożonych z dwóch równoprawnych członków, oraz informację na ile sposobów można wybrać taki zespół. (osobom przypisujemy numery od 1 do 9 i posługujemy się przy wypisywaniu tymi numerami)

Pary nierównorzędne (pary uporządkowane)

Pary nierównorzędne (pary uporządkowane)

Pary nierównorzędne (pary uporządkowane)

Pary nierównorzędne (pary uporządkowane) schemat postępowania:

Pary nierównorzędne (pary uporządkowane) schemat postępowania: wybieramy szefa

Pary nierównorzędne (pary uporządkowane) schemat postępowania: wybieramy szefa tworzymy wszystkie możliwe pary: ten szef + podwładny (podwładnym może być każda inna osoba w grupie)

Pary nierównorzędne (pary uporządkowane) schemat postępowania: wybieramy szefa tworzymy wszystkie możliwe pary: ten szef + podwładny (podwładnym może być każda inna osoba w grupie) implementacja: for (int szef=1; szef<=9; szef++) for (int podwladny=1; podwladny <=9; podwladny++) if (szef!=podwladny) { // wypisz pare }

Przykład (zad 1 - część 1) # include < iostream > using namespace std ; int main (){ int ilepar =0, ileosob ; cout << " ile jest osob w grupie? " ; cin >> ileosob ; for ( int szef =1; szef <= ileosob ; szef ++) for ( int podwl =1; podwl <= ileosob ; podwl ++) if ( szef!= podwl ){ cout << " szef : " << szef << ", podwladny : " << podwl << endl ; ilepar ++; } cout << " par bylo " << ilepar << endl ; return 0; }

Pary równorzędne (pary nieuporządkowane)

Pary równorzędne (pary nieuporządkowane)

Pary równorzędne (pary nieuporządkowane)

Pary równorzędne (pary nieuporządkowane) schemat postępowania:

Pary równorzędne (pary nieuporządkowane) schemat postępowania: wybieramy pierwszą osobę pary (A)

Pary równorzędne (pary nieuporządkowane) schemat postępowania: wybieramy pierwszą osobę pary (A) dobieramy do niej drugą osobę (B), przy czym należy pominąć te osoby, które były już w roli A (bo para z tych dwóch osób już była, a pary Kowalski+Nowak i Nowak+Kowalski to to samo)

Pary równorzędne (pary nieuporządkowane) schemat postępowania: wybieramy pierwszą osobę pary (A) dobieramy do niej drugą osobę (B), przy czym należy pominąć te osoby, które były już w roli A (bo para z tych dwóch osób już była, a pary Kowalski+Nowak i Nowak+Kowalski to to samo) implementacja: for (int osoba1=1; osoba1<=9; osoba1++) for (int osoba2 =osoba1; osoba2<=9; osoba2++) if (osoba1!=osoba2 ){ // wypisz pare }

Przykład (zad 1 - część 2) # include < iostream > using namespace std ; int main (){ int ilepar =0, ileosob ; cout << " ile jest osob w grupie? " ; cin >> ileosob ; for ( int osoba1 =1; osoba1 <= ileosob ; osoba1 ++) for ( int osoba2 = osoba1 ; osoba2 <= ileosob ; osoba2 ++) if ( osoba1!= osoba2 ){ cout << " osoba1 : " << osoba1 << ", osoba2 : " << osoba2 << endl ; ilepar ++; } cout << " par bylo " << ilepar << endl ; return 0; }

Zadanie 2 Napisać progam pobierający liczby całkowite do momentu pobrania zera i wypisujący największą z podanych liczb (końcowe zero nie jest brane pod uwagę)

elementy schematu postępowania: pobieranie liczb do momentu podania 0:

elementy schematu postępowania: pobieranie liczb do momentu podania 0: while(true){ cout << "podaj liczbe: "; cin >> liczba; if (liczba==0) break; // tu coś robimy z liczbą }

elementy schematu postępowania: pobieranie liczb do momentu podania 0: while(true){ cout << "podaj liczbe: "; cin >> liczba; if (liczba==0) break; // tu coś robimy z liczbą } szukanie maksimum: potrzebujemy zmiennej przechowującej dotychczasowe maksimum (Max) jeśli wprowadzona liczba jest większa niż dotychczasowa wartość Max to zmieniamy Max uwaga - po podaniu pierwszej liczby Max musi stać się równe tej liczbie (trzeba albo dobrać odpowiednią wartość początkową, albo zauważyć pierwsze wprowadzenie wartości)

elementy schematu postępowania: pobieranie liczb do momentu podania 0: while(true){ cout << "podaj liczbe: "; cin >> liczba; if (liczba==0) break; // tu coś robimy z liczbą } szukanie maksimum: potrzebujemy zmiennej przechowującej dotychczasowe maksimum (Max) jeśli wprowadzona liczba jest większa niż dotychczasowa wartość Max to zmieniamy Max uwaga - po podaniu pierwszej liczby Max musi stać się równe tej liczbie (trzeba albo dobrać odpowiednią wartość początkową, albo zauważyć pierwsze wprowadzenie wartości) wypisywany wynik musi być poprawny nawet jeśli użytkownik od razu podał 0

Przykład (zad 2 - wersja 1) # include < iostream > # include < limits > using namespace std ; int main (){ int a, max ; bool czy_ byly_ liczby ; czy_ byly_ liczby = false ; // na poczatku nie bylo max = std :: numeric_limits <int >:: min (); while ( true ) { cout << " podaj liczbe : "; cin >> a; if ( a ==0) break ; czy_ byly_ liczby = true ; // byla jakas liczba if (a>max ) max =a; } if ( czy_byly_liczby == true ) cout << " najwieksza liczba to " << max << endl ; else cout << " nie bylo liczb, nie ma najwiekszej "; return 0; }

Przykład (zad 2 - wersja 2) # include < iostream > using namespace std ; int main (){ int a,max, ile ; ile =0; while ( true ) { cout << " podaj liczbe "; cin >> a; if (a ==0) break ; ile ++; if ( ile ==1) max = a; else { if (a>max ) max = a; } } if ( ile > 0) cout << " najwieksza liczba to " << max << endl ; return 0; }