Projektowanie algorytmów z wykorzystaniem ptli for

Podobne dokumenty
Projektowanie algorytmów z blokami decyzyjnymi

Projektowanie algorytmów rekurencyjnych

Programowanie, algorytmy i struktury danych

Algorytmy i struktury danych. Wykład 4

WHILE (wyrażenie) instrukcja;

WHILE (wyrażenie) instrukcja;

Funkcje. Wprowadzenie. Mirosław Ochodek

Programowanie - instrukcje sterujące

Liczby pseudolosowe. Math. Różne sposoby generowania liczb pseudolosowych. Wybrane metody klasy Math

Wstęp do Informatyki

Proste programy w C++ zadania

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

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

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p.

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Rekurencja (rekursja)

ZAJ CIA 4. Podstawowe informacje o algorytmie. Operatory relacyjne i logiczne, instrukcja warunkowa if

ALGORYTMY I STRUKTURY DANYCH

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Wprowadzenie do języka Java

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

Rozwiązania zadań z Programowania Obiektowego

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

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

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min)

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

2.8. Algorytmy, schematy, programy

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

while(wyrażenie) instrukcja

Modu 3 Sterowanie przebiegiem wykonania programu

Podstawy Java. Część II. mgr inż.marcin Borkowski

Metody Metody, parametry, zwracanie wartości

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Instrukcje sterujące

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

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

Materiały pomocnicze do wykładu 3 - Elementy języka Java

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

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

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Algorytmy z powrotami. Algorytm minimax

0.1 Hierarchia klas Diagram Krótkie wyjaśnienie

Metody rozwiązywania równań nieliniowych

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

Podstawy programowania obiektowego

LISTA 5. C++ PETLE for, while, do while

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Wstęp do Programowania potok funkcyjny

PROGRAMOWANIE W C++ ZADANIA

1 Wprowadzenie do algorytmiki

LibreOffice Calc VBA

Algorytm. a programowanie -

Wstęp do Programowania potok funkcyjny

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

Język programowania PASCAL

Języki i metody programowania

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

INSTRUKCJE ITERACYJNE

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Wprowadzenie do algorytmów. START

JAVA?? to proste!! Autor: wojtekb111111

Przetwarzanie sygnaªów

Proces tworzenia programu:

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

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Cw.12 JAVAScript w dokumentach HTML

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

5. Rekurencja. Przykłady

Analiza algorytmów zadania podstawowe

Temat 20. Techniki algorytmiczne

Przedmiotowy system oceniania

Luty 2001 Algorytmy (8) 2000/2001

Programowanie - wykład 4

Zadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy.

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy - rozwi zania zada« Michaª Alichniewicz. Gda«sk Studenckie Koªo Automatyków SKALP

Podstawowe algorytmy i ich implementacje w C. Wykład 9

FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;

Wykład 4: Klasy i Metody

Podstawy JavaScript. Dawid Poªap. Dawid Poªap Technologia informacyjna Grudzie«, / 13

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Wstęp do informatyki Ćwiczenia. Piotr Fulmański

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

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

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

INFORMATYKA. Laboratorium 1

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

Transkrypt:

C5 Projektowanie algorytmów z wykorzystaniem ptli for Rys. 5.1. Schemat ptli typu for wiczenie 1. for(wi; ww; wz){ instrukcja 1; instrukcja 2;... instrukcja n; gdzie: //wi wyraenie inicjujce, //ww wyraenie warunkowe, //wz wyraenie zmieniajce. Skonstruowa schemat blokowy i opracowa algorytm w postaci listy kroków dla poniszego algorytmu, zapisanego w jzyku Java. Zapisa ten algorytm w kodzie jzyka C++. 1

Algorytm 5.1. public class LiczbyParzyste_for { int r = 0; int a, b; String dolna = JOptionPane.showInputDialog("Podaj doln granic przedziału (a > 0): a = "); a = Integer.parseInt(dolna); int x = a; String gorna = JOptionPane.showInputDialog("Podaj górn granic przedziału (b > a): b = "); b = Integer.parseInt(gorna); System.out.println("Wybrano przedział <"+a+", "+b+">"); System.out.print("W zadanym przedziale wystpuj liczby parzyste: "); for(x = a; x <= b; x++){ r = x % 2; if(r == 0){ System.out.print(x+", "); Przykłady algorytmów iteracyjnych Algorytm Newtona-Raphsona Algorytm 5.2. public class NewtonRaphson { double p = 1; double q = 1; double a, x, eps, delta, pierwiastek; do{ String dane1 = JOptionPane.showInputDialog("Podaj nieujemn liczb podpierwiastkow a = "); a = Double.parseDouble(dane1); if(a<0) System.out.println("Błd danych"); while(a < 0); String dane2 = JOptionPane.showInputDialog("Podaj dokładno oblicze eps="); eps = Double.parseDouble(dane2); System.out.println("Liczba podpierwiastkowa a = " + a); System.out.println("Dokładno oblicze eps = " + eps); 2

while (q < a){ p = p+1; q = p*p; if (q == a){ System.out.println("Pierwiastkiem kwadratowym z a = " + a + " jest " + p); p = p - 1; x = (p + a/p)/2; delta = Math.abs(p - x); while (delta >= eps){ p = x; x = (p + a/p)/2; delta = Math.abs(p - x); System.out.println("Pierwiastek kwadratowy z a przy zadanej dokładnoci oblicze jest równy " + x ); Rys. 5.2. Algorytm Newtona-Raphsona obliczania pierwiastka kwadratowego z liczby a. 3

wiczenie 2. Opracowa algorytm Newtona-Raphsona obliczania pierwiastka kwadratowego z liczby a w postaci listy kroków, wykorzystujc ptle typu for, a nastpnie zaimplementowa ten algorytm w jzyku C++. Liczba doskonała Liczb doskonał jest liczba naturalna, równa sumie wszystkich swoich dzielników, mniejszych od niej samej. Poniej pokazano przykładowy schemat blokowy, rozwizujcy problem identyfikacji liczb doskonałych, oraz jego implementacj w jzyku Java. wiczenie 3. Opracowa algorytm z rysunku 5.3. w postaci listy kroków, wykorzystujc róne typy ptli iteracyjnych, a nastpnie zaimplementowa te algorytmy w jzyku C++. Rys. 5.3. Algorytm identyfikacji liczb doskonałych Algorytm 5.3. public class LiczbaDoskonala { int x = 0; int d; int s = 1; int i = 2; while(x <= 1){ String dane = JOptionPane.showInputDialog("Podaj liczb naturaln x = "); 4

x = Integer.parseInt(dane); if(x <= 0){ System.out.println("Błd danych"); else if(x == 1){ System.out.println("Liczba 1 nie jest liczb doskonał"); while(i < x){ d = x % i; if(d == 0){ s = s + i; i++; i++; System.out.print("Podana liczba x = " + x); if(s == x){ System.out.print(" jest liczb doskonał."); System.out.println(" nie jest liczb doskonał."); wiczenie 4. Opracowa algorytm drukujcy liczby doskonałe z zadanego przedziału <a, b>, wykorzystujc ptle typu for, a nastpnie zaimplementowa ten algorytm w jzyku C++. Algorytm 5.4. public class LiczbyDoskonale { int a, b, d; int s = 1; int i = 2; String dolna = JOptionPane.showInputDialog("Podaj doln granic a = "); a = Integer.parseInt(dolna); String gorna = JOptionPane.showInputDialog("Podaj górn granic b = "); b = Integer.parseInt(gorna); System.out.print("Liczby doskonałe w przedziale <a,b>: "); int x = a; 5

for (x=a; x<=b; x++){ i = 2; s = 1; while(i < x){ d = x % i; if(d == 0){ s = s + i; i++; i++; if(s == x){ System.out.print(x + ", "); wiczenie 5. Opracowa algorytm drukujcy liczby doskonałe, nie wiksze ni dana liczba a, według reguły Euklidesa X = 2 k 1 (2 k 1), k > 1, k N, wykorzystujc róne typy ptli iteracyjnych, a nastpnie zaimplementowa te algorytmy w jzyku C++. Liczba pierwsza Liczb pierwsz jest liczba naturalna, która dzieli si bez reszty tylko przez 1 i przez sam siebie. Poniej pokazano przykładowy schemat blokowy, rozwizujcy problem identyfikacji liczb doskonałych, oraz jego implementacj w jzyku Java. wiczenie 6. Opracowa algorytm z rysunku 5.4. w postaci listy kroków, wykorzystujc róne typy ptli iteracyjnych, a nastpnie zaimplementowa te algorytmy w jzyku C++. Algorytm 5.5. public class LiczbaPierwsza { int x = 0; int i = 2; String dane = JOptionPane.showInputDialog("Podaj liczb naturaln x = "); x = Integer.parseInt(dane); if(x < 0){ System.out.println("BŁD DANYCH!"); 6

System.out.print("Badana liczba x = " + x); if(x ==0 x == 1){ System.out.println(" nie jest liczb pierwsz ani złoon."); else if(x == 2){ System.out.println(" jest liczb pierwsz."); for(;x % i!= 0;i++); if (x == i){ System.out.println(" jest liczb pierwsz."); System.out.println(" nie jest liczb pierwsz."); Rys. 5.4. Algorytm badania czy liczba jest pierwsza, czy złoona. 7

ZADANIE 1. ZADANIA DO SAMODZIELNEGO WYKONANIA Opracowa algorytm drukujcy liczby pierwsze z zadanego przedziału <a, b>, wykorzystujc ptle typu for, a nastpnie zaimplementowa ten algorytm w jzyku C++. ZADANIE 2. Skonstruowa schematy blokowe, opracowa algorytmy w postaci listy kroków oraz kodu w jzyku C++ z wykorzystaniem ptli for, do obliczania: a) Wartoci silnia(n). b) Liczby kombinacji k-elementowych ze zbioru n-elementowego. c) Liczby wariacji k-elementowych ze zbioru n-elementowego bez powtórze i z powtórzeniami. d) Drukowania liczb pierwszych w zadanym przedziale <a, b> e) Drukowania liczb doskonałych w zadanym przedziale <a,b> f) Drukowania liczb trójktnych w zadanym przedziale <a,b> 8