CWICZENIE 1 EDYCJA, KOMPILACJA I URUCHOMIENIE PROGRAMU SEKWENCYJNEGO Celem cwiczenia jest zapoznanie z edytorem systemu TP poprzez napisanie prostego programu sekwencyjnego z deklaracja zmiennych prostych oraz z wykorzystaniem instrukcji wprowadzania danych READ i READLN, wyprowadzania wynikow WRITE i WRITELN oraz instrukcji przy- pisania. I. PRZEBIEG CWICZENIA 1. W trybie edycji wprowadzic do pamieci ponizszy program. Program oblicza odleglosc miedzy dwoma punktami na plaszczyznie o wspolrzednych (x1,y1), (x2,y2), wg wzoru _________________________ d = (x1 - x2 )+( y1 - y2 ) PROGRAM Odleglosc; VAR x1,x2,y1,y2:REAL; BEGIN WRITELN('PODAJ WARTOSCI : x1,y1,x2,y2 '); READ(x1,y1,x2,y2); WRITELN('ODLEGLOSC = ',sqrt(sqr(x1-x2)+sqr(y1-y2))) END. {Odleglosc} 2. Wyjsc z trybu edycji i skompilowac wprowadzony program. 3. W razie wykrycia bledow popelnionych w czasie wpisywania progra- mu poprawic je kolejno, kompilujac program po kazdej poprawce, lub pop- rawic wszystkie zauwazone bledy i dopiero skompilowac program. 4. Po otrzymaniu komunikatu o poprawnie zakonczonej kompilacji uru- chomic program dla wybranych danych. 5. Rozszerzyc program o wyprowadzanie w czasie jego dzialania komu- nikatu proszacego o podanie danych 'PODAJ WSPOLRZEDNE PUNKTOW W KOLEJNOSCI x1,y1,x2,y2.' W tym celu, instrukcje czytania READ(x1,y1,x2,y2); nalezy poprzedzic instrukcja WRITELN('PODAJ WSPOLRZEDNE PUNKTOW W KOLEJNOSCI x1,y1,x2,y2'); i po wprowadzeniu poprawki ponownie skompilowac i uruchomic program. 6. Rozbudowac program do postaci, ktora umozliwi obliczanie wszyst- kich odleglosci miedzy trzema punktami na plaszczyznie o wspolrzednych (x1,y1), (x2,y2), (x3,y3). W tym celu mozna skopiowac instrukcje obli- czajace odleglosc i zamienic numery wspolrzednych punktow w ich tresci. Tekst rozbudowanego programu: PROGRAM Odleglosci; VAR x1,x2,x3,y1,y2,y3:REAL; BEGIN WRITE('PODAJ WSPOLRZEDNE TRZECH PUNKTOW '); WRITELN('W KOLEJNOSCI: x1,y1,x2,y2,x3,y3 '); READ(x1,y1,x2,y2,x3,y3); WRITE('ODLEGLOSC PUNKTOW 1 I 2 WYNOSI: '); WRITELN(sqrt(sqr(x1-x2)+sqr(y1-y2))); WRITE('ODLEGLOSC PUNKTOW 1 I 3 WYNOSI: '); WRITELN(sqrt(sqr(x1-x3)+sqr(y1-y3))); WRITE('ODLEGLOSC PUNKTOW 2 I 3 WYNOSI: '); WRITELN(sqrt(sqr(x2-x3)+sqr(y2-y3))) END. {Odleglosci} 7. Zmodyfikowac program z p. 6 wprowadzajac prosbe o podanie wspol- rzednych kazdego punktu osobno, na przyklad: WRITELN('PODAJ WSPOLRZEDNE PUNKTU i'); READ(xi,yi); wpisujac zamiast litery "i" numer kolejnego punktu. 8. Zaobserwowac zmiany w dzialaniu programu po zastapieniu instrukcji WRITELN('PODAJ WSPOLRZEDNE PUNKTU i '); READ(xi,yi); instrukcjami WRITE('PODAJ WSPOLRZEDNE PUNKTU i '); READLN(xi,yi); II. ZADANIA 1. Oblicz odleglosc miedzy dwoma punktami w przestrzeni trojwymia- rowej wg wzoru: ___________________________ d = (x1-x2)+(y1-y2)+(z1-z2) 2. Oblicz iloczyn dwoch liczb zespolonych z1=a+bi i z2=c+di. 3. Oblicz iloraz dwoch liczb zespolonych z1=a+bi i z2=c+di w = z1/z2=(a*c+b*d)/(c+d)+(b*c-a*d)/(c+d) i Nalezy wczytac kolejno czesci obydwu liczb i osobno policzyc czesc rze- czywista i czesc urojona ilorazu. 4. Rozwiaz uklad rownan a1*x + b1*y = c1 a2*x + b2*y = c2 b2*c1 - b1*c2 a1*c2 - a2*c1 x = y = a1*b2 - a2*b1 a1*b2 - a2*b1 5. Oblicz pole trojkata, gdy dane sa - dlugosci bokow a,b,c ____________________ P = s*(s-a)*(s-b)*(s-c) gdzie s = 0.5*(a+b+c), - wspolrzedne wierzcholkow (x1,y1), (x2,y2), (x3,y3) P = abs(0.5 *(x1*y2-x2*y1)+(x2*y3-x3*y2)+(x3*y1-x1*y3)).
mazyy