Forum studentów informatyki UE Wrocław
Forum studentów informatyki UE Wroclaw

Programowanie - Czego siÄ™ spodziewac ?

adieuu - 2010-10-29, 20:44
Temat postu: Czego siÄ™ spodziewac ?
Tak sie zlozylo ze opuscilem troche zajec z programowania i niewiem na czym stoje, a tu niedlugo sie kolokwium szykuje. Moglby ktos napisac jakiego typu zadan spodziewac sie na kolosie ? I bylbym wdzieczny gdyby ktos mogl umiescic poprawnie napisany program liczący średnią itd. co byl ostatnio na lab, bo niewiem czy robie to tak jak pani doktor oczekuje.
Bleah - 2010-10-30, 14:22

bylo chodzic na zajecia a nie obijac sie ! :D
killaruna - 2010-10-30, 15:09

Na kole najpewniej otrzymamy tak, jak obiecała:
a) polecenie napisania krótkiego kodu do rozwiązania danego problemu;
b) fragment kodu z błędami - będzie trzeba je "wykryć" i napisać, jak powinno być poprawnie;

Na pewno trzeba znać:
- strukturę/składnię/dotychczas poznane słowa kluczowe kodu programów w Delphi (Lazarus, Object Pascal);
- deklarowanie zmiennych, instrukcje przypisania, typy danych itd.;
- rekurencja, pętle warunkowe FOR, REPEAT, IF/ELSE (ich sposób działania, czym się różnią).

Powiedziała, że na swojej stronie wrzuci nam przykładowe zadania, te na kole będą się różnić nieco zmienionymi poleceniami/parametrami.

Poza tym można sobie przygotować "ściągę" ze składni Delphi, ale bez przykładów i fragmentów kodu - wcześniej jednak trzeba taką ściągę wysłać do niej mailowo, ona odpisze, czy akceptuje, czy nie, bo taka ściąga jest za szczegółowa. Każdy oczywiście musi mieć własną, podpisaną imieniem, nazwiskiem, nr indeksu.

Koordynator - 2010-11-17, 15:39

Jaky się komuś nie chciało robić własnej.
Koordynator - 2010-11-17, 18:51

Jak do kuxwy nędzy mam rozumieć zadanie 5:
"Napisz program wyświetlający te liczby, które są równe średniej arytmetycznej wszystkich liczb dodatnich. Na wejściu: dowolny ciąg liczb (zarówno dodatnich, jak i ujemnych)." ?

Przecież średnia arytmetyczna to jedna wartość, to co mam napisać ile w tym ciągu było liczb równych średniej czy WTF? Jakieś pomysły?

perelka - 2010-11-17, 19:07

Masz to tak rozumieć, że musisz napisać program, który liczy średnią arytmetyczna z liczb dodatnich. I najlepiej wyswietl sobie to w labelu. A liczby wprowadzane powinny chyba znajdować się w memo. Następnie potem sprawdzasz po kolei liczby z memo czy są równe średniej to wyświetlasz np w drugim komponencie memo. A z kim masz laborki? bo jak z Dudycz, to dziś nasza grupa miała koło i mieliśmy napisac program liczący srednią arytmetyczną liczb podzielnych przez 7 lub 3. Miał on podać ilość wszystkich wpisanych liczb, sumę i średnią liczb spełniających warunek, a w razie gdyby żadna nie spełniała warunku wyświetlić komunikat" brak liczb spełniających warunek".
bienio - 2010-11-17, 19:08

nie wiem

My na kolokwium mieliśmy zadanie polegająca na obliczeniu średniej arytmetycznej liczb podzielnych przez 3 i 7 oraz wyświetleniu sumy,i ilości wpisanych liczb. (nie podała co jest na wejściu,by każdy mógł wybrać czy chce mieć podaną ilość liczb, albo ciąg zakończony znakiem końca)

tomx2 - 2010-11-17, 19:13

a bylbys w stanie powrzucac swoje rozwiazania zadan?
Klaudia - 2010-11-17, 20:51

A jakie jest hasło do tych zadań z laboratoriów? Bo to co na wykłady- lspk2010, nie działa.
adieuu - 2010-11-17, 20:54

Klaudia napisa³/a:
A jakie jest hasło do tych zadań z laboratoriów? Bo to co na wykłady- lspk2010, nie działa.

pklshd10

Klaudia - 2010-11-17, 21:01

dzięki :-)
A ma ktoÅ› jakieÅ› rozwiÄ…zania?

jay - 2010-11-17, 21:03

co trzeba było zrobić po wstawieniu komponentu TMemo(duże białe pole do wpisywania liczb) by było ono całkiem puste (nie ma tutaj jak w innych pola Caption, świta mi że robiliśmy coś innego tylko nie pamiętam co...)
nightangel3 - 2010-11-17, 21:06

Właściwości-->Lines-->...

Tam wpisujesz co chcesz albo zostawiasz puste

adieuu - 2010-11-17, 21:09

jay napisa³/a:
co trzeba było zrobić po wstawieniu komponentu TMemo(duże białe pole do wpisywania liczb) by było ono całkiem puste (nie ma tutaj jak w innych pola Caption, świta mi że robiliśmy coś innego tylko nie pamiętam co...)


albo mozesz tez uzyc komenty memo1.lines.clear lub tez memo1.lines.delete(nr linijki ktora chcesz usunac)

Koordynator - 2010-11-17, 21:45

Pierwsze 6 zadań z przykładowej listy:
(jeśli chodzi o 5te to nie jestem pewien czy dokładnie o to chodziło)
Reszta jest analogicznie - nie chce mi się robić.




Kod:
unit tak_koncza_frajerzy;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  StdCtrls, ExtCtrls;

type

  { TPK_by_KF }

  TPK_by_KF = class(TForm)
    BT_zadanie1: TButton;
    BT_wyczysc: TButton;
    BT_zadanie2: TButton;
    BT_zadanie4: TButton;
    BT_zadanie6: TButton;
    BT_zadanie5: TButton;
    BT_zadanie7: TButton;
    Image1: TImage;
    LB_wynik: TLabel;
    LB_opis: TLabel;
    ME_1: TMemo;
    procedure BT_zadanie4Click(Sender: TObject);
    procedure BT_zadanie6Click(Sender: TObject);
    procedure BT_zadanie5Click(Sender: TObject);
    procedure BT_zadanie7Click(Sender: TObject);
    procedure reset;
    procedure BT_zadanie1Click(Sender: TObject);
    procedure BT_wyczyscClick(Sender: TObject);
    procedure BT_zadanie2Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  PK_by_KF: TPK_by_KF;
  n,i,d,c,x,kod: integer;
  l,s,m: real;
  b,j: boolean;
  t: array of real;


implementation

{ TPK_by_KF }

procedure TPK_by_KF.reset;
begin
  n:=0;
  i:=0;
  d:=0;
  l:=0;
  s:=0;
  c:=0;
  m:=0;
  x:=0;
  kod:=0;
  b:=false;
  j:=false;
  ME_1.clear;
  LB_wynik.caption:='';
  LB_opis.caption:='';
end;

procedure TPK_by_KF.BT_wyczyscClick(Sender: TObject);
begin
   reset;
end;

procedure TPK_by_KF.BT_zadanie1Click(Sender: TObject);
begin
   reset;
   val(inputbox('Oblicz srednia arytmetyczna liczb [-100:200]', 'Ile liczb chcesz wprowadzic? (liczba calkowita > 0)',''), n, kod);
   if n<=0 then  begin showmessage('Ktorej czesci zdania "liczba calkowita > 0" nie rozumiesz?'); LB_wynik.caption:=''; end
           else begin
                   for i:=1 to n do
                   begin
                      val(inputbox('Podaj kolejnÄ… liczbÄ™', 'Åšrednia jest liczona tylko z liczb z przedzialu [-100:200])',''), l, kod);
                      if (kod=0) and (l>=-100) and (l<=200) then begin
                                       s:=s+l;
                                       inc(d);
                      end;
                   end;
                   if d=0 then showmessage('Brak liczb spelniajacych warunek')
                   else begin
                        s:=s/d;
                        LB_opis.caption:='Åšrednia arytmetyczna wprowadzonych liczb z zakresu [-100:200]:';
                        LB_wynik.caption:=floattostr(s);
                   end;
                end;
end;

procedure TPK_by_KF.BT_zadanie2Click(Sender: TObject);
begin
   reset;
   val(inputbox('Ile elementów zamierzasz wprowadzić?', 'Podaj ilosc elementów (liczba calkowita > 0)',''), n, kod);

   if n<0 then showmessage('Której czÄ™sci zdania "liczba calkowita > 0" nie rozumiesz?')
   else
   begin
      for i:=1 to n do
      begin
         val(inputbox('Podaj kolejny element', 'Zliczane sÄ… tylko liczby z przedzialu [-100:200]',''), l, kod);
         if (l>=-100) and (l<=200) and (kod=0) then inc(d);
      end;

      if d=0 then showmessage('Brak liczb spelniajacych warunek')
             else begin
                     LB_opis.caption:='Ze wszystkich wprowadzonych elementów, liczb z przedzialu [-100:200] bylo:';
                     LB_wynik.caption:=floattostr(d);
                  end;
   end;
end;

procedure TPK_by_KF.BT_zadanie4Click(Sender: TObject);
begin
   reset;
   repeat
      val(inputbox('Obliczanie sredniej arytmetycznej', 'Wprowadź liczbÄ™ calkowita (srednia liczona jest z ujemnych liczb podzielnych przez 3)', ''), c, kod);
      if (c<0) and (c mod 3 = 0) then
         begin
            inc(d);
            s:=s+c;
         end;
   until kod<>0;
   if d=0 then showmessage('Brak liczb spelniajacych warunek')
          else begin
                  s:=s/d;
                  LB_opis.caption:='Srednia arytmetyczna liczb calkowitych ujemnych i podzielnych przez 3:';
                  LB_wynik.caption:=floattostr(s);
               end;
end;

procedure TPK_by_KF.BT_zadanie5Click(Sender: TObject);
begin
   reset;
   val(inputbox('Oblicz srednia arytmetyczna ', 'Ile liczb chcesz wprowadzic? (liczba calkowita > 0)',''), n, kod);
   if n<=0 then  begin showmessage('Ktorej czesci zdania "liczba calkowita > 0" nie rozumiesz?'); LB_wynik.caption:=''; end
           else begin
           setlength(t, n);
                for i:=1 to n do begin
                val(inputbox('Obliczanie sredniej arytmetycznej', 'Podaj liczbe: ',''), l, kod);
                if l>0 then begin
                               t[i]:=l;
                               s:=s+l;
                               inc(d);
                end;
                end;
                if d=0 then showmessage('Brak liczb spelniajacych warunek')
                   else begin
                           s:=s/d;
                           LB_opis.caption:='Åšrednia arytmetyczna wprowadzonych liczb dodatnich:';
                           LB_wynik.caption:=floattostr(s);


                           for i:=1 to n do begin
                               if t[i]=s then Me_1.Lines.add(floattostr(t[i]));
                               end;
                   end;
           setlength(t, 0);
           end;
end;

procedure TPK_by_KF.BT_zadanie6Click(Sender: TObject);
begin
   reset;
   val(inputbox('Wyszukam ci max i min', 'Wprowadź liczbÄ™ (wprowadzenie innego znaku zakoÅ„czy wprowadzanie)', ''), l, kod);
   if kod<>0 then begin
                       showmessage('Nie podano żadnej liczby');
                       exit;
   end;
   s:=l;
   m:=l;

   while kod=0 do begin
      val(inputbox('Wyszukam ci max i min', 'Wprowadź liczbÄ™ (wprowadzenie innego znaku zakoÅ„czy wprowadzanie)', ''), l, kod);
      if (l>s) and (kod=0) then s:=l;
      if (l<m) and (kod=0) then m:=l;
   end;
   LB_opis.Caption:='Maksimum: '+floattostr(s);
   LB_wynik.Caption:='Minimum: '+floattostr(m);
end;

procedure TPK_by_KF.BT_zadanie7Click(Sender: TObject);
begin
   reset;
   val(inputbox('Minimum calkowite', 'Podaj liczbe elementow ciagu (liczba calkowita > 0)', ''), n, kod);
   if n<=0 then showmessage('Której czesci zdania "liczba calkowita > 0" nie rozumiesz?')
          else begin
          for i:=1 to n do begin
                             val(inputbox('Podaj kolejnÄ… liczbÄ™', 'Minimum zostanie wybrane tylko z liczb calkowitych parzystych',''), c, kod);
                             if j=false then if (kod=0) and (c mod 2 = 0) then begin x:=c; j:=true; end;
                             if (kod=0) and (c mod 2 = 0) then begin
                                                                  b:=true;
                                                                  if c<x then x:=c
                                                               end;
                           end;
                 if b=false then showmessage('Brak liczb spelniajacych warunek')
                 else begin
                         LB_opis.caption:='Minimum z podanych liczb parzystych to:';
                         LB_opis.caption:=inttostr(x);
                 end;
          end;
end;
initialization
  {$I tak_koncza_frajerzy.lrs}

end.

killaruna - 2010-11-18, 19:05

Jak Wam się podobało koło? :mrgreen:

Myślałam, że będzie większy hardcore.

shawnzy - 2010-12-01, 19:54

Pytanie Ministra
"O czym mieliśmy poczytać na jutrzejsze zajęcia? Bo wspominała z 5 razy o tym"

//sry za usunięcie posta :P

minister - 2010-12-01, 20:00

co Ty mi tutaj shawnzy, psujesz:( taki z ciebie moderator?! co?:(
Koordynator - 2010-12-01, 21:25

Prawdopodobnie chodzi o wykład 7.

Powered by phpBB modified by Przemo © 2011 phpBB Group