ďťż
  Progamowanie 17.10.09 - (sortowania i równanie kwadratowe)



Mariusz_Cebula - Pon Paź 05, 2009 5:51 pm
Jakby ktoś chciał to pisać wyśle wersje pisana w TB do przerobienia( bardzo prosto na schemat blokowy) Wydaje mi sie ze jest dobrze:




M@ttiS - Pon Paź 05, 2009 6:27 pm
Ja moze dzisiaj albo jutro wrzuce w schemacie blokowym, bo gdzies w czelusciach moich notatek jest juz to zrobione...tylko zwykly smiertelnik malo co tam zobaczy



Mariusz_Cebula - Sob Paź 10, 2009 7:49 am
Zadania na next piatek:
Sortowanie liczb:
Kod: Zaznacz wszystkoprogram rosnace_liczba;
uses CRT;
var a, b , c: real;
begin
writeln('Podaj liczbe a: ');
readln(a);
writeln('Podaj liczbe b: ');
readln(b);
writeln('Podaj liczbe c: ');
readln(c);
if a>b then
begin
if c>a then
writeln('Od najmniejszej do... ', b:5:2,a:5:2,c:5:2)
else
if c>b then
writeln('Od najmieszej do...', b:5:2,c:5:2,a:5:2)
else
writeln('Od najmniejszej do...', c:5:2,b:5:2,a:5:2)
end
else
if a>c then
writeln('od najmniejszej do...', c:5:2,a:5:2,b:5:2)
else
if b>c then
writeln('od najmniejszej do...', a:5:2,c:5:2,b:5:2)
else
writeln('od najmniejszej do...', a:5:2,b:5:2,c:5:2);

repeat until keypressed;
end.

a drugie jeszcze nie jest chyba do konca dobrze ale wrzuce:

Kod: Zaznacz wszystkoprogram rownanie_kwadratowe;
uses CRT;
var a,x, b,c,delta, x0,x1,x2: real;
begin
writeln('Podaj wspolczynnik a: ');
readln(a);
writeln('Podaj wspolczynnik b: ');
readln (b);
if a=0 then
begin
if b<>0 then
writeln('Rownanie sprzeczne')
else
writeln('Rownanie tozsamosciowe')
end
else
begin
writeln('Podaj wspolczynnik c: ');
readln(c);
delta:=b*b-4*a*c;
if delta>=0 then
if delta=0 then
begin
x0:=-b/2*a;
writeln('Pierwiastek wielomianu to: ',x0:5:3);
end
else
begin
x1:=(-b-sqrt(delta))/2*a;
x2:=(-b+sqrt(delta))/2*a;
writeln('Pierwiastami wielomianu sa liczby x1= ', x1:5:3,' i x2= ', x2:5:3);
end
else
writeln('Brak miejsc zerowych= brak rozwiazan');
end;
repeat until keypressed;
end.



Bednarz Przemysław - Sob Paź 10, 2009 2:25 pm
Pierwszy program jest za pewne dobrze, dlatego wkleję równanie kwadratowe:
(Sądzę, że program działa poprawnie, w razie jakiś obiekcji proszę pisać :])

Kod: http://wklejto.pl/44064




Mariusz_Cebula - Sob Paź 10, 2009 2:45 pm
rownanie kwadratowe jest zle w twoim przypadku gdyz nie sprawdzasz czy na poczatku nie jest ono liniowym co ja robilem.



Bednarz Przemysław - Sob Paź 10, 2009 3:05 pm

rownanie kwadratowe jest zle w twoim przypadku gdyz nie sprawdzasz czy na poczatku nie jest ono liniowym co ja robilem.

Jeśli widzimy, że mamy podać współczynniki dla równania 0=ax^2+bx+c, to uznajemy za aksjomat, że jest to równanie kwadratowe, więc nie ma potrzeby nic sprawdzać. Zadanie nie jest źle, a jedynie masz w swoim dodatkową opcję



Mariusz_Cebula - Sob Paź 10, 2009 3:09 pm
He ale jezeli patrzysz na zadanie zgodnie z jego trescia podaj algorytm rozwiazania rownania kwadratowego nie mozesz z gory zakladac iz jest ono kwadratowym! znam blad gdyz jak rysowalismy algorytm tez tak zrobilem zadanie bylo zle. wiec sugeruje zeby poprawic w moim nie ma instrukcji przy liniowym obliczajacej x gdyz pozniej sie skapnalem i to poprawie i wyedytuje posta ha i do tego jak podam ze a=0 to twoje zadanie nie ma sensu bo wtedy mamy rowanie liniowe i co wtedy?? Pryznaj sie do bledu:D



Bednarz Przemysław - Sob Paź 10, 2009 3:21 pm
Po 1.
Stosuj interpunkcje bo Cię nie rozumiem xD.
Po 2.
Jeśli z treści zadania wynika, że mam napisać algorytm obliczający równanie kwadratowe to nie mogę założyć, że jest ono kwadratowe ? yyy ok.
Po 3.
Fakt podając zero będzie równanie liniowe, a program wywali błąd prawdopodobnie coś w stylu "dyvision by 0", ale jeśli już się tak czepiasz szczegółów to masz złą nazwę programu, co w gruncie rzeczy wskazuje, że napisałeś inny program, bo przecież oblicza też równanie kwadratowe, a nie tylko liniowe.

Ale przeca o pierdoły się nie będę spierać . Popraw co masz poprawić i kończ waść



M@ttiS - Nie Paź 11, 2009 11:27 am
taka dobra rada, dla każdego przyszlego programisty:

Nie zakładaj, że użytkownik programu zna się na tym co robi:P

po polsku - program ma być debilo odporny, czyli program do rozwiązywania równania kwadratowego ma sprawdzić, czy czasem użytkownik nie podał mu liniowego



uka - Czw Paź 15, 2009 1:59 pm
Tutaj macie zadania dobrze zrobione (z tamtego roku, jeszcze raz sprawdzałem, działa na 100%)

Sortowanie

Równanie_kwadratowe

Kod: Zaznacz wszystkoprogram sortowanie;
uses crt;
var a,b,c:integer;
begin clrscr;
writeln ('Program sortuje liczby od najmniejszej do najwiekszej. Podaj trzy liczby rozne od siebie');
writeln ('Podaj liczbe a:'); readln (a);
writeln ('Podaj liczbe b:'); readln (b);
writeln ('Podaj liczbe c:'); readln (c);
if (a<>b) and (a<>c) and (b<>c) then
begin
if a>b then
   begin
   if a>c then
       begin
       if c>b then
          writeln ('Podane liczby od najmniejszej do najwiekszej ',b,' ',c,' ',a)
          else
          writeln ('Podane liczby od najmniejszej do najwiekszej ',c,' ',b,' ',a);
       end
      else
           writeln ('Podane liczby od najmniejszej do najwiekszej ',b,' ',a,' ',c);
   end
else
   if b>c then
      begin
      if a>c then
      writeln ('Podane liczby od najmniejszej do najwiekszej ',c,' ',a,' ',b)
         else
         writeln ('Podane liczby od najmniejszej do najwiekszej ',a,' ',c,' ',b);
      end
   else
   writeln ('Podane liczby od najmniejszej do najwiekszej ',a,' ',b,' ',c);
   end
else
writeln ('Podane liczby nie sa rozne od siebie - podaj rozne liczby');
readkey;
end.

Kod: Zaznacz wszystkoprogram funkcjakwadratowa;
uses crt;
var delta,x1,x2:real;
var a,b,c:real;
begin
clrscr;
  writeln('Program oblicza wyniki z rownania kwadratowego');
  writeln('Podaj wspolczynniki a,b,c trojmianu kwadratowego: ');
  readln(a, b, c);
if a=0 then
  writeln('To NIE jest funkcja kwadratowa')
else
begin
  delta:=(b*b)-(4*a*c);
  writeln('Delta = ',delta:2:2);
    if delta<0 then
       writeln('brak miejsc zerowych funkcji')
    else
    if delta>0 then
    begin
      x1:=((-b)-sqrt(delta))/(2*a);
      x2:=((-b)+sqrt(delta))/(2*a);
      writeln('X1= ',x1:2:2);
      writeln('X2= ',x2:2:2);
    end
    else
    begin
      x1:=(-b)/(2*a);
      writeln('funkcja posiada tylko jedno miejsce zerowe = ',x1:2:2);
    end;
  end;
  readln;
end.



Olcia - Czw Paź 15, 2009 6:54 pm
Dziekujemy chlopaki, na pewno bardzo sie przydadza

Acha, ja mam zapisane w notatkach ze mamy ulozyc program sortujacy liczby MALEJĄCO (czyli od najwiekszej do najmniejszej) - a wy macie zrobione na odwrot Wiec warto o tym pamiec np. na wypadek kolejnej kartkowki
(bo mam nadzieje, ze dobrze zanotowalam ale to tylko kwestia wyswietlenia w sumie)
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • albionteam.htw.pl
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • cichooo.htw.pl