Wstęp do Programowania ZSI. I Rok. Klasówka nr 2 29.11.2002 Zad 1 (6 pkt.) Dane są deklaracje: const n=100; type punkt = record x,y:real end; lamana = array [1..n] of punkt; Wartość typu łamana reprezentuje łamaną na płaszczyźnie złożoną z odcinków, których końce zapisano jako kolejne elementy tablicy. Napisz funkcję: function dobra(t: lamana): boolean; badającą, czy t reprezentuje łamaną, w której stosunek długości każdego odcinka łamanej do długości każdego z poprzedzających go odcinków jest większy niż 2. Zad 2 (9 pkt.) Dana jest tablica A typu Tab=array[1..N] of 0..MaxInt. Napisz funkcję: function CzyJest(t: Tab; m: integer): boolean; sprawdzającą, czy w tablicy t znajduje się segment (spójny fragment) o sumie równej m. MaxInt jest standardową stałą w Pascalu oznaczającą największą wartość całkowitą. Zad 3 (5 pkt.) Podaj gramatykę dla języka a^i b^j a^k, gdzie 0<=j<=i+k (czyli terminal "a" występuje co najmniej tyle razy co "b"). Uzasadnij jej poprawność. Rozwiązanie każdego zadania napisz na osobnej, podpisanej kartce. Podaj uzasadnienia rozwiązań. Zwróć uwagę na czytelność rozwiązań i ich efektywność. Życzymy powodzenia!