_Mithrandir
Użytkownicy-
Zawartość
8 -
Rejestracja
-
Ostatnia wizyta
Reputacja
0 NeutralnyO _Mithrandir
-
Tytuł
Jestem tu nowy
-
Tak jak w temacie, proszę o pomoc w poprawie błędu. W większości przypadków program działa poprawnie, ale na poniższym obrazku jest błąd, który czasami się pojawia. Program ma wypisywać na ekranie trzeci największy element tablicy i trzeci najmniejszy element tablicy. Program: program zad2_4; uses crt; const n=10; k=3; var l:array[1..n] of integer; a,b,i,min,max,c:integer; procedure wczyt; begin for i:=1 to n do begin l:= random(11); writeln(i,'. ',l); end; end; procedure sort; begin for i:=1 to n-1 do begin min:=l; for b:=i+1 to n do begin if l<=min then begin min:=l; c:=b; end; end; l[c]:=l; l:=min; end; end; procedure linia; begin writeln; for i:=1 to 80 do write('='); writeln; end; begin clrscr; randomize; writeln('Elementy tablicy: '); writeln; wczyt; linia; sort; i:=0; {3. najm. element} a:=0; min:=l[1]; repeat i:=i+1; if l>min then begin min:=l; a:=a+1; end; until((a=k-1) or (i>n)); if i>n then writeln('Nie istnieje taki element tablicy. ') else begin a:=0; for i:=1 to n do if l=min then a:=a+1; writeln('Trzeci najmniejszy element w tablicy to ',min,', wystapil ',a,' razy. '); end; linia; i:=n; {3. najw. element} a:=0; max:=l[n]; repeat i:=i-1; if l<max then begin max:=l; a:=a+1; end; until((a=k-1) or (i<0)); if i<0 then writeln('Nie istnieje taki element tablicy. ') else begin a:=0; for i:=1 to n do if l=max then a:=a+1; writeln('Trzeci najwiekszy element tablicy to ',max,', wystapil ',a,' razy. '); end; linia; write('Aby zakonczyc, nacisnij dowolny klawisz. '); readkey; end.
-
W jaki sposób uzależnić długość kreski ułamkowej od długości ciągu będącego licznikiem lub mianownikiem i jak ustawić mianownik/licznik po środku kreski?
-
Może ktoś dać jakąś wskazówkę jak napisać albo chociaż zacząć takie programy: 2.1. Napisać program Jaki to dzień tygodnia, pobierający z klawiatury trzy liczby całkowite określające datę i drukujący na ekranie informację o tym jaki to był (jest lub będzie) dzień tygodnia. Na przykład dla danych 26.20.1999 powinniśmy na ekranie zobaczyć komunikat WTOREK. 2.2. Napisać program KALENDARZ drukujący na ekranie kalendarz na zadany miesiąc. Nie wiem czy sam dam radę do czwartku, bo jeszcze z innymi się męczę, więc proszę o pomoc
-
Ok, thx. Tak czy inaczej - muszę to zrobić w Pascalu
-
Ok, rozumiem już o co chodzi. Wielkie dzięki, teraz działa :-) A tak przy okazji: da się zrobić tak, żeby zamiast np. 1x+-1y=3 program wypisywał x-y=3? Tzn. bez przewidywania instrukcją "if" wszystkich możliwych przypadków dla danych liczb? (np. if a=1 then write..., if a=-1 then write ..., if (a=1) and (b=-1) then write..., itd.)
-
program wyznaczniki; uses crt; var i:integer; a,b,c,d,e,f,wg,wx,wy,x,y:real; begin clrscr; for i:=1 to 80 do begin delay(1); write('_'); end; writeln; writeln ('PIERWSZE ROWNANIE: ax+by=c'); writeln; write ('-podaj czynnik a: '); readln ( a ); write ('-podaj czynnik b: '); readln ( b ); write ('-podaj czynnik c: '); readln ( c ); for i:=1 to 80 do begin delay(1); write('_'); end; writeln; writeln ('DRUGIE ROWNANIE: dx+ey=f'); writeln; write ('-podaj czynnik d: '); readln ( d ); write ('-podaj czynnik e: '); readln ( e ); write ('-podaj czynnik f: '); readln ( f ); for i:=1 to 80 do begin delay(1); write('_'); end; writeln; writeln ('UKLAD ROWNAN:'); writeln; writeln (a:0:2,'x+',b:0:2,'y=',c:0:2,' ^ ',d:0:2,'x+',e:0:2,'y=',f:0:2); for i:=1 to 80 do begin delay(1); write('_'); end; writeln; wg:=(a*e)-(d*b ); wx:=(c*e)-(f*b ); wy:=(a*f)-(d*c ); if (wg=0) and (wx=0) and (wy=0) then writeln ('Uklad nieoznaczony. '); if (wg=0) then if (wx<>0) or (wy<>0) then writeln ('Uklad sprzeczny. '); if wg<>0 then begin x:=wx/wg; y:=wy/wg; writeln ('ROZWIAZANIE:'); writeln; writeln ('x=',x:0:3,' ^ y=',y:0:3,'.'); end; for i:=1 to 80 do begin delay(1); write('_'); end; writeln; readkey; end.
-
Witam... mam problem z programem w TP, ma on rozwiązywać układ dwóch równań z dwoma niewiadomymi metodą wyznaczników z uwzględnieniem równania nieoznaczonego i sprzecznego. Napisałem ten program, ale wynik sprawdza się dla niewielu przypadków... z tego co wiem, to metoda ta działa tak, że jeśli mam dwa równania ax+by=c i dx+ey=f (program pyta o a,b,c,d,e,f), to Wg=a*e-d*b, Wx=c*e-f*b, Wy=a*f-d*c. x=Wx/Wg, y=Wy/Wg dla Wg<>0, dla Wg=Wx=Wy=0 układ jest nieoznaczony, a dla W=0 ^ (Wx<>0 v Wy<>0) układ jest sprzeczny. Mogę podesłać plik z kodem w formacie PAS, bo nie mam pojęcia co mogłem zrobić nie tak. Niby program dobrze robi obliczenia, ale czasem po podstawieniu x i y do równań po prostu wychodzi zły wynik, a i przy metodzie podstawiania inne rozwiązanie układu wychodzi (wychodzi w zasadzie tylko dla jakichś prostych liczb, jak zaczynam majstrować z dużymi i małymi liczbami naraz, albo ujemne i niecałkowite to zaraz są kosmiczne wyniki).