Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek: blok służący do rozpoczynania każdego algorytmu, b) koniec: kończy każdy algorytm, c) wczytywanie: służy do pobierania wartości zmiennych podanych przez użytkownika, d) wypisywanie: służy wypisywania/zwracania wartości zmiennych (w programowaniu będzie oddzielna komenda do wypisywania oraz do zwracania zmiennych), e) instrukcja obliczeń: służy do wykonywania obliczeń, f) warunek: służy do sprawdzania warunku związanego ze zmiennymi np. czy zmienna posiada jakąś wartość lub jest większa od innej zmiennej itp. 2. Prosty program drukujący tekst. Napisz program, który wydrukuje tekst 'witaj wodzu' oraz narysuj tabelę zmiennych. Zapamiętaj: tabela zmiennych służy do analizy działania algorytmu na podstawie różnych danych wejściowych,
w tabeli zmiennych należy umieszczać wszystkie zmienne programu jako osobne kolumny oraz kolumnę o nazwie wyjście, w której umieszczane są wyniki bloku wypisania, numerowanie bloków nie jest obowiązkowe, ale ułatwia szczególnie na początku nauki schematów blokowych tworzenie tabeli zmiennych oraz zrozumienie działania algorytmu, w powyższym programie nie utworzono żadnej zmiennej, dlatego tabela zmiennych ma tylko jedną kolumnę wyjście, w tabeli zmiennych można w nawiasie napisać numer bloku, tak aby widoczne było który blok dodał nowy wiersz do tabeli, kolejność dodawania nowych wierszy w tabeli jest od góry do dołu. 3. Program wczytujący liczbę i sprawdzający jej właściwość (instrukcja warunkowa). Napisz program, który wczyta liczbę i sprawdzi czy jest ujemna. 4. Program wczytujący liczbę i sprawdzający jej właściwość cd. Napisz program sprawdzający czy liczba podana przez użytkownika należy do przedziału otwartego (1,2).
Operatory porównania dwóch liczb: większy lub równy('>=') - np. sprawdzanie czy liczba jest nieujemna x >= 0 większy od ('>') - np. czy liczba jest dodatnia: x > 0, mniejszy od ('<') - np. czy liczba jest ujemna: x < 0, mniejszy lub równy ('<=') - np. czy liczba jest niedodatnia x <= 0, równy ('==') - sprawdzenie czy dwie liczby są równe: x == y (nie mylić z operatorem przypisania '=') różny: x!= y. Operatory logiczne: i: 'and' (język Ruby), '&&' (język C), np. sprawdzenie czy x należy do przedziału (y,z): x > y and x < z (Ruby) x > y && x < z (język C) lub: 'or' (Ruby), ' ' (język C), np. sprawdzenie czy x > 3: x > 3 or x < -3 (Ruby) x > 3 x < -3 (język C) zaprzeczenie: 'not' (Ruby),!(język C), np. not (x > 5) Reszta z dzielenia: '%', np. sprawdzenie czy liczba x jest podzielna przez 5 bez reszty: x % 5 == 0
5. Napisz program sprawdzający czy liczba (podana przez użytkownika) należy do przedziału zamkniętego (również podanego przez użytkownika): a) rozwiązanie pierwsze: Program zadziała dla obu zestawów danych wejściowych. Jednak gdy strumień wejściowy wynosi: 2, 3, -1 to zachowanie algorytmu nie jest pożądane, ponieważ przedział (3,-1) nie istnieje. W związku z tym potrzebne jest zabezpieczenie, które uchroni program przed przetwarzaniem niewłaściwych danych. Co gorsza w przypadku niewłaściwie zabezpieczonego programu przed danymi wejściowymi (dla rzeczywistych aplikacji) może dojść do jego zatrzymania. b) rozwiązanie drugie (reakcja na błędne dane wejściowe wyświetlenie błędu):
6. Napisz program, który obliczy pole prostokąta (dla boków podanych przez użytkownika). Przy błędnych danych wejściowych wyświetl błąd i wczytaj ponownie dane. Tabela zmiennych dla powyższych danych wejściowych:
Zapamiętaj: (6) to przykład użycia bloku obliczeń, w celu przypisania wartości zmiennej należy użyć operatora '=', dozwolone są podstawowe operacje arytmetyczne: +, -, /, * oraz reszta z dzielenia %, zamiast potęgi należy użyć mnożenia np. zamiast 3 2 należy użyć 3 * 3, jako pierwiastka, należy użyć funkcji pierwiastkowania sqrt np. zamiast 2 należy użyć sqrt(2). 7. Napisz program, który wypisze zadaną ilość razy tekst witaj wodzu. a) rozwiązanie pierwsze (niepraktyczne):
Zmienna n to tzw. licznik pętli. Pojawia się pytanie: co trzeba zrobić jeśli zmienna n będzie potrzebna po zakończeniu pętli (np. będą kolejna pętla gdzie trzeba będzie wypisać n razy tekst Jak się masz? ). b) rozwiązanie drugie:
Dodanie do rozwiązania zmiennej pomocniczej i ( od słowa iteracja): 8. Zadania do samodzielnego wykonania: a) Napisz program, który dla wczytanych a, b i h obliczy pole trapezu. b) Napisać program, który sprawdzi czy dany przedział (min1, max1) zawiera się w przedziale (min2, max2). Jeśli, któryś z podanych przedziałów jest błędny to algorytm ma wyświetlić błąd. 4. c) Napisz program, który sprawdzi czy suma przedziałów (min1,max1) + (min2,max2) zawiera się w przedziale (min3,max3). Jeśli, któryś z podanych przedziałów jest błędny to algorytm ma wyświetlić błąd. 5.
d) Napisz program, który sprawdzi czy punkt o współrzędnych (x1, y1) należy do prostej o wzorze y = ax + b (wczytać a i b). e) Napisz program, który sprawdzi czy dla dowolnych liczb wczytanych a, b i c da się zbudować trójkąt równoboczny. Jeśli się da schemat wypisuje tekst Da się, jeśli nie to: Nie da się. 9. Zadanie na kartkówkę na następnych zajęciach: wczytać jedną lub kilka liczb i sprawdzić określony warunek związany z nimi(and, or, not, operatory porównań liczb, reszty z dzielenia): sprawdzanie podzielności, porównanie dwóch lub więcej liczb, łączenie kilku warunków za pomocą operatorów logicznych.