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 programowania

Wstęp do informatyki- wykład 7

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

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

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.

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

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.

Kontrola przebiegu programu

Wstęp do Informatyki

7. Pętle for. Przykłady

Programowanie - wykład 4

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

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

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

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:

4. Funkcje. Przykłady

3. Instrukcje warunkowe

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

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

Wstęp do informatyki- wykład 7

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 programowania

Wstęp do informatyki- wykład 9 Funkcje

Struktura pliku projektu Console Application

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

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

Programowanie komputerowe. Zajęcia 1

tablica: dane_liczbowe

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

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

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

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

PDF stworzony przez wersję demonstracyjną pdffactory Pro Program 15

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

do instrukcja while (wyrażenie);

Wstęp do informatyki- wykład 11 Funkcje

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

1 Podstawy c++ w pigułce.

Wstęp do programowania

Instrukcje sterujące

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

Podstawy Programowania C++

Część 4 życie programu

Podstawy Programowania

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

1 Podstawy c++ w pigułce.

Podstawy programowania obiektowego

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

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

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

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

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

Wstęp do Programowania 2

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

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

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

C-struktury wykład. Dorota Pylak

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

Proste programy w C++ zadania

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

Konstrukcje warunkowe Pętle

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

Pytania sprawdzające wiedzę z programowania C++

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

Programowanie Proceduralne

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

C-struktury wykład. Dorota Pylak

I - Microsoft Visual Studio C++

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

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

JAVAScript w dokumentach HTML (2)

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

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

Struktury Struktura polami struct struct struct struct

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

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

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

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

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

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

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Pętle. Programowanie komputerowe

Programowanie Obiektowe i C++

Algorytmy i struktury danych

Programowanie komputerowe. Zajęcia 2

6. Pętle while. Przykłady

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

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

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

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

Pętle. Dodał Administrator niedziela, 14 marzec :27

Technologie cyfrowe semestr letni 2018/2019

Wstęp do informatyki- wykład 9 Pętla while, do while,for -pętla w pętli- przykłady Funkcje

Transkrypt:

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

Zadanie 3 Napisać progam pobierający liczby całkowite do momentu pobrania zera i wypisujący informację czy była wśród nich liczba parzysta (końcowe zero nie jest brane pod uwagę)

Algorytmy z poglądem :

Algorytmy z poglądem : mamy jakiś pogląd na wynik

Algorytmy z poglądem : mamy jakiś pogląd na wynik pojawienie się odpowiedniej wartości zmienia ten pogląd

Algorytmy z poglądem : mamy jakiś pogląd na wynik pojawienie się odpowiedniej wartości zmienia ten pogląd pojawienie się nieodpowiedniej wartości zostawia dotychczasowy pogląd bez zmiany

Algorytmy z poglądem : mamy jakiś pogląd na wynik pojawienie się odpowiedniej wartości zmienia ten pogląd pojawienie się nieodpowiedniej wartości zostawia dotychczasowy pogląd bez zmiany ostatecznym wynikiem jest nasz pogląd po wprowadzeniu wszystkich liczb

Algorytmy z poglądem : mamy jakiś pogląd na wynik (nie było dotąd liczby parzystej) pojawienie się odpowiedniej wartości zmienia ten pogląd pojawienie się nieodpowiedniej wartości zostawia dotychczasowy pogląd bez zmiany ostatecznym wynikiem jest nasz pogląd po wprowadzeniu wszystkich liczb

Algorytmy z poglądem : mamy jakiś pogląd na wynik (nie było dotąd liczby parzystej) pojawienie się odpowiedniej wartości zmienia ten pogląd (jeśli podano liczbę parzystą - pogląd zmienia się na była liczba parzysta ) pojawienie się nieodpowiedniej wartości zostawia dotychczasowy pogląd bez zmiany ostatecznym wynikiem jest nasz pogląd po wprowadzeniu wszystkich liczb

Algorytmy z poglądem : mamy jakiś pogląd na wynik (nie było dotąd liczby parzystej) pojawienie się odpowiedniej wartości zmienia ten pogląd (jeśli podano liczbę parzystą - pogląd zmienia się na była liczba parzysta ) pojawienie się nieodpowiedniej wartości zostawia dotychczasowy pogląd bez zmiany (jeśli podano liczbę nieparzystą - pogląd na to czy dotąd była liczba parzysta pozostaje taki jak był wcześniej) ostatecznym wynikiem jest nasz pogląd po wprowadzeniu wszystkich liczb

Przykład (zad 3) # include < iostream > using namespace std ; int main () { int a; bool czybylaparzysta = false ; while ( true ) { cout << " podaj liczbe "; cin >> a; if (a ==0) break ; if (a %2==0) czybylaparzysta = true ; } if ( czybylaparzysta == true ) cout << " byla liczba parzysta \ n"; else cout << " nie bylo liczby parzystej \ n"; return 0;}