Kalina G+-ra- SPN
Transkrypt
Kalina G+-ra- SPN
INFORMATYCZNE ROZWIĄZYWANIE PROBLEMÓW Specyfikacja zadania informatycznego nr 1 Cele projektu System ekspertowy Opis potrzeby wykonania zadania Procedury Środek informatyczny Heurystyki Reprezentacja obiektu Załączone dokumenty Cele projektu ■ ■ ■ ■ ■ Głównym celem projektu jest identyfikacja nieznanego obiektu za pomocą danego środka informatycznego, tj. stawianie i rozwiązywanie zadań pomocniczych i problemów informatycznych podczas wykonywania zadania, w ustalonym przez proces dydaktyczny okresie czasu. Jakie obiekty naleŜy zdefiniować, aby wykonać zadanie? Jakie są relacje pomiędzy poszczególnymi obiektami? Jakie naleŜy sformułować reguły i jak z nich korzystać? Na jakie problemy moŜna się natknąć podczas wykonywania zadania? Określić kompletny i spójny system ekspertowy rozwiązujący dane zadanie. INSTRUKCJA ITERACYJNA „POWTARZAJ” Zadanie nr 1: 1 Napisz, w języku Turbo Pascal, program obliczający wartość danego wielomianu w(x) stopnia n o współczynnikach rzeczywistych a0, a1, . . . ,an dla ustalonego argumentu x. Opis potrzeby wykonania zadania: Opierając się na zdobytej wcześniej wiedzy, w trakcie tworzenia kodu źródłowego, uczeń dla danego n, względnie duŜego, n+1 razy wczytuje dane (współczynniki liczbowe). Aby było to moŜliwe, konieczne jest równieŜ wprowadzenie n+1 róŜnych zmiennych. Jest to sytuacja niepoŜądana. Szukamy rozwiązania, które usunie niepoŜądaną sytuację. Tak jest potrzeba wykonania danego zadania Określenie potrzeby: program wielomian; var n:integer; a0,...,an,x,w:real; begin read(n,x); write(‘WPISZ a0= ‘); read(a0); write(‘ a1= ‘); read(a1); write(‘ a2= ‘); read(a2); write(‘ a3= ‘); read(a3); . . . write(‘ an= ‘); read(an); w:=(...((a0*x+a1)*x+a2)*x+...+an-1)*x+an; write(w); end. Mozolny i Ŝmudny zapis. Zmniejsza on równieŜ czytelność kodu Procedury ■ ■ ■ ■ Procedura deklarowania zmiennych; Procedura sczytywania i wypisywania danych; Procedura dodawania i mnoŜenia; Procedura iteracji. Heurystyki Zadbać o wygląd kodu źródłowego - budowa blokowa - co zwiększy jego czytelność. Wpisać komunikaty o konieczności wpisania w danym momencie odpowiedniej danej oraz o wypisywaniu na ekran wyniku - ułatwi to pracę z programem. Korzystać ze wszystkich znanych sposobów na uproszczenie zapisu programu. Środek informatyczny kompilacja ALGORYTM monitorowanie PROCESOR implementacja MONITOR Algorytm Wczytaj stopień wielomianu (n) Wczytaj wartość argumentu (x) Wczytaj współczynnik a0 Wczytaj współczynnik a1 Wczytaj współczynnik an Zastosuj wzór na obliczanie wartości wielomianu w(x) stopnia n dla ustalonego argumentu x Wypisz wynik Kompilacja read(n) read(x) read(a0) read(a1) read(an) w:=(…((a0*x+a1)*x+a2)*x+ … +an-1)*x+an write (w) Procesor Uczniowie dysponują komputerami zaopatrzonymi w procesory typu Pentium II z zainstalowanym kompilatorem programu Turbo Pascal 7.0 Monitorowanie Uczeń kontroluje poprawność wpisywanych danych oraz odczytuje otrzymane wyniki kompilacji na ekranie monitora. Monitor Monitorem jest ekran, na którym przedstawione są wyniki kompilacji. Implementacja W efekcie końcowym uczeń otrzymuje, wydrukowaną na ekranie monitora, wartość danego wielomianu w(x) stopnia n o współczynnikach rzeczywistych a0, a1, . . . ,an dla ustalonego argumentu x. Reprezentacja obiektu problemy IKONICZNA reguły SYMBOLICZNA pojęcia ENAKTYWNA Ikoniczna Wczytaj stopień wielomianu (n) Wczytaj wartość argumentu (x) Wczytaj współczynnik a0 Wczytaj współczynnik a1 Wczytaj współczynnik an Zastosuj wzór na obliczanie wartości wielomianu w(x) stopnia n dla ustalonego argumentu x Wypisz wynik Przedstawienie, graficzne lub opisowe, wyobraŜenie (obraz) wykonania zadania w taki sposób, aby moŜna było napisać kod źródłowy tworzonego programu w edytorze oprogramowania Turbo Pascal 7.0, w postaci bloku tekstu, o strukturze samodzielnie tworzonej przez indywidualnych uczniów. Problemy W trakcie tworzenia obrazu (reprezentacji ikonicznej) wykonania zadania polegającego na określeniu kodu źródłowego, uczeń napotyka trudności związane z występowaniem duŜej ilości zmiennych oraz koniecznością sczytania danych. Czynność ta jest Ŝmudna i pracochłonna. Dodatkowo stwarza duŜo moŜliwości popełnienia błędów składniowych. ZuwaŜmy, Ŝe postawiony problem jest tu zgodny z potrzebą (dydaktyczną). Symboliczna program wielomian; var n:integer; a0,a1,...,an,x,w:real; begin write(‘Podaj stopień wielomianu n= ‘); read(n); write(‘Podaj wartość argumentu x= ‘); read(x); write(‘WPISZ a0= ‘); read(a0); write(‘ a1= ‘); read(a1); . . . write(‘ an= ‘); read(an); w:=(…((a0*x+a1)*x+a2)*x+ … +an-1)*x+an; write(‘w=’,w); end. Kod źródłowy programu zbudowany jest z szeregu liter tworzących róŜne słowa, w tym słowa kluczowe, oraz znaków interpunkcyjnych, t.j.: ; . , które w języku Turbo Pascal mają bardzo duŜe znaczenie. Na ekranie pojawią się więc litery, znaki interpunkcyjne oraz cyfry, które stanowią zarówno dane, jak i będą wynikiem działania programu. Reguły W trakcie rozwiązywania problemu, uczeń będzie stosował reguły dotyczące programowania w języku Pascal, m.in.: - preambuła; - deklaracja zmiennych i ich typów; - rozpoczęcie i zakończenie programu głównego i instrukcji złoŜonych; - sczytywanie danych; - reguły dotyczące zapisywania wyraŜeń arytmetycznych; - wypisywanie danych na ekran. Uczeń zastosuje równieŜ regułę matematyczną dotyczącą obliczania wartości wielomianu n-tego stopnia dla ustalonego argumentu x. Enaktywna Powiązanie sprawdzania warunków z wykonaniem operacji: w trakcie wykonywania zadania, uczeń wpisuje odpowiednie znaki z klawiatury, takŜe za pomocą specjalnej kombinacji klawiszy kompiluje on kod źródłowy i sprawdza poprawność jego działania; kompilacji moŜna równieŜ dokonać za pomocą myszki (klikanie i przesuwanie). Reprezentację enaktywną moŜna takŜe otrzymać budując stosowną tablicę decyzyjną lub pisząc makro symulujące realizację zadania. Pojęcia W trakcie wykonywania zadania uczeń poznaje pojęcie: INSTRUKCJA ITERACYJNA „POWTARZAJ” (repeat until) System ekspertowy reprezentacje BAZA WIEDZY operacje SIEĆ SEMANTYCZNA realizacje RAMA Baza wiedzy Temat lekcji: Instrukcja iteracyjna „powtarzaj” Uczeń juŜ wie: - jak oblicza się wartości wielomianu n-tego stopnia dla ustalonego argumentu x; - co to jest język Turbo Pascal 7.0; - jak wygląda budowa programu (kodu źródłowego); - jak deklarować zmienne; - jak wczytywać dane; - jak wypisywać dane na ekran; - jak budować podstawowe wyraŜenia arytmetyczne; - jak kompilować program; - ma podstawową umiejętność obsługi edytora tekstu. Uczeń nauczy się: Baza wiedzy Uczeń nauczy się podstawowych informacji o budowie i sposobie wykorzystania instrukcji iteracyjnej „powtarzaj” : Instrukcja „powtarzaj” słuŜy do opisywania iteracji ze sprawdzeniem warunku na końcu. Ma ona postać: repeat instrukcja 1; instrukcja 2; ... instrukcja n; until wyraŜenie; WyraŜenie powinno dawać w wyniku wartość logiczną, a kaŜda z iteracji moŜe być dowolną instrukcją prostą Ciąg dalszy Baza wiedzy instrukcja Schemat instrukcji iteracyjnej „powtarzaj” czy wyraŜenie prawdziwe? tak Zakończenie instrukcji „powtarzaj” nie Reprezentacje Uczeń reprezentuje posiadaną wcześniej wiedzę tworząc kod źródłowy w sposób Ŝmudny i pracochłonny. Początkowo jest posiada tyko obraz wykonania zadania i moŜe go opisać „krokowo” lub graficznie (reprezentacja ikoniczna). Po zapoznaniu się z nowym materiałem będzie on umiał napisać program bardziej zwięzły i czytelny (reprezentacja symboliczna), nie wykonując szeregu zbędnych operacji. Pozna takŜe jak ten program działa (reprezentacja enaktywna) Sieć semantyczna Wprowadzając nowy temat nauczyciel stosuje pojęcia: - zmienne, dane; - wczytywanie, wypisywanie danych; - instrukcja iteracyjna; - zerowanie zmiennych; - dodawanie do zmiennej (powiększanie jej o wartość); - mnoŜenie wartości zmiennej przez liczbę. Sieć semantyczna W czym? Za pomocą czego? NAPISZ PROGRAM JĘZYK TURBO PASCAL Co robi? OBLICZA WARTOŚĆ Czego? WIELOMIANU n-tego STOPNIA O WSPÓŁCZYNNIKACH RZECZYWISTYCH DLA USTALONEGO ARGUMENTU x Jakich? Skąd? SCZYTYWANYCH Jak? Sieć semantyczna zadania KOLEJNO Operacje deklaracja zmiennych : i,w wyzerowanie zmiennych i oraz w deklaracja zmiennych: n, a, x Algorytm sczytanie zmiennych n oraz x operacji wykonywanych sczytanie zmiennej a pomnoŜenie zmiennych w przez x i powiększenie o a (w*x+a) powiększenie zmiennej i o 1 (i+1) przez ucznia nie Czy i >n? tak wypisanie wyniku Rama W ramach rozwiązania tego problemu, uczeń powinien ukształtować pojęcie instrukcji iteracyjnej „powtarzaj”. Powinien nauczyć się stosować ją w swoich programach. Uczeń odkryje takŜe korzyści (wygodę) płynące z uŜywania tej instrukcji. Poprawnie napisany program ma postać: PROGRAM wielomian; CONST; i: INTEGER = 0; w: REAL = 0; var n: INTEGER; a,x: REAL; BEGIN read(n,x); REPEAT read(a); w:=w*x+a; i:=i+1; until i>n; write(w); end. Algorytm poprawnego rozwiązania Realizacje i: integer; w: real; i:=0; w:=0 n: integer; a,x: real; read (n,x); repeat read ( a ); w: =w*x + a; i:= i + 1; nie until i>n; tak write (w);