Pokaż wyniki od 1 do 4 z 4
  1. #1
    Obserwator
    Dołączył
    January 07
    Postów
    1
    Siła Reputacji
    0


    Twoja ocena: Yes No

    Prosba o pomoc

    Mam zadanie w ktrym mam napisac test skadajcy si z 10 pyta na temat monitorw.
    Do kadego pytania s podane 3 odp.

    Przy kadym uruchomieniu kompilatora pytania maj ukazywa si w losowej kolejnoci.

    Przykad:
    writeln('1.W czym s wyraane rozmiary ekranu monitora?');
    writeln('a) cm');
    writeln('b) calach');
    writeln('c) mm');

    writeln('2.Kolory w jakich obraz moe by wywietlany na ekranie monitora podawane s:');
    writeln('a) w bitach');
    writeln('b) w bajtach');
    writeln('c) w pikselach');

    Jak zrobi, eby te pytania byy za kadym razem w innej kolejnoci?
    Prosz o podpowied.

  2. #2
    Obserwator
    Dołączył
    January 07
    Postów
    493
    Siła Reputacji
    0


    Twoja ocena: Yes No

    Po pierwsze - kompilatora się nie "uruchamia za kaźdym razem". Kompiluje się raz, uruchamiać moźna program.

    Uźyteczne dla Ciebie funkcje:
    Randomize - wywołujesz raz (gdzieś na starcie programu), aby utworzyło - w uproszczeniu - losowy pseudogenerator - za kaźdym uruchomieniem programu będzie losowało inne liczby za pomocą funkcji:
    Random(x) - zwraca liczbę losową w przedziale 0..(x-1), np. Random(3); moźe wylosować 0,1 lub 2. Aby uzyskać przedział 1-3 wpisujemy Random(x)+1; co naturalnie da nam liczby 1, 2 lub 3.

    Od tego punktu moźesz juź sobie sterować programem za pomocą if..then, lub skorzystać z case.

    Fragment przykładowego programu, na ile pamiętam Pascala:
    Kod:
    Randomize;
    x:=Random(3)+1;
    case x of 
      1 : writeln("jakies pytanie);
      2 : begin 
            writeln("inne pytanie");
          end;
      3 : writeln("trzecie pytanie");
    end;
    Nie mam w zwyczaju podawać gotowcłw, ale myślę, źe dalej sobie dasz juź radę 8-)

  3. #3
    Obserwator
    Dołączył
    February 07
    Postów
    1
    Siła Reputacji
    0


    Twoja ocena: Yes No

    Skorzystam z tego tematu by nie robi baaganu.

    Witam. Zaczynam dopiero prace z programowaniem, std mj pewnie mao profesjonalny problem Pod spodem umieszczam kod programu (w nim wszystko ok, program dziaa) Nie zwracajcie uwage na deklarowane zmienne. Pod spodem pytanie


    Kod:
    program matematyka;
    uses crt;
    var
    m1,m2,mt:char;
    a,b,h,c,e,f,g,delta,x1,x2,P,Pole:real;
    imie,tekst:string;
    liczba,numer:integer;
    
    begin
    clrscr;
    repeat
    writeln(' Podaj liczbe');
    readln(tekst);
    val(tekst,liczba,numer);
    
    if numer <> 0
    then
    begin
    writeln ('Podane dane nie sa liczba ');
    writeln ('blad na pozycji : ',numer );
    end
    else
    begin
    writeln('konwersja poprawna');
    if liczba > 0
    then
    begin
    writeln('pole trjkta wynosi ',0.5*liczba*liczba*1.73205/2:0:2); 
    writeln('nacisnij dowolny klawisz by zakonczyc');
    repeat until keypressed;
    end
    else
    begin
    writeln('liczba jest ujemna - niepoprawne dane');
    end;
    end;
    until (liczba > 0) and (numer=0);
    end.
    problem polega na tym, e chciabym teraz stworzy program, podobny do tego, ale korzystajcy z dwch danych. Udaje mi sie stworzy go gdy wystarczy samo wczytanie drugiej zmiennej, ale musze j podda walidacji. Nie bardzo mi to wychodzi i gubi sie gdy prbuje umieci gdzie bliniaczy do pierwszego kod, a nie mam na czym sie wzorowa :?

    cholernie bybym wdziczny za pomoc i pokazanie jak to zrobi.

  4. #4
    Obserwator
    Dołączył
    January 07
    Postów
    493
    Siła Reputacji
    0


    Twoja ocena: Yes No

    No to spróbujmy Cię naprowadzić. Możliwości masz dwie:
    1. Czas zapoznać się z warunkami AND ( i ) oraz OR (lub)
    a) sprawdzenie czy pierwsza zmienna LUB druga nie jest liczbą
    Kod:
    if  ( (numer1 <> 0) OR (numer1 <> 0) )
     then jakis_tam_blad
    b) sprawdzenie czy OBIE liczby są dodatnie (ta I ta)
    Kod:
    if ( (liczba1 > 0) AND (liczba2 > 0) )
     then ZaczynamyObliczenia;
    2. Podejście drugie
    Ładujesz sprawdzanie zmienny do funkcji (function) zwracających typ boolean, w zależności od tego, czy są one poprawne. Składnia warunkowa jak wyżej. Następnie w kodzie sprawdzasz tylko czy wynik był true, czy false.

    Aha.. no i jeszcze podział na procedury - nic nie stoi na przeszkodzie, by sobie program na takowe podzielić - łatwiej tym zarządzać. Np.:
    Kod:
    sprawdzaj:=true;
    if (liczba1 < 0) sprawdzaj:=false;
    if (liczba2 < 0) sprawdzaj:=false;
    if (sprawdzaj = true) ZaczynamyObliczenia else WypiszBlad;
    Co oczywiście można prościej, bez zmiennej "sprawdzaj", jak w p. 1B

    W każdym bądź razie unikaj - jak to ująłeś "umieszczania bliźniaczego kodu" - jeśli Ci się coś powtarza - wrzucaj to do procedury albo funkcji - będzie czytelniej, łatwiej poprawiać i zarządzać takim kodem. Skleć coś dalej sam, zobaczymy co Ci wyjdzie

Informacje o temacie

Users Browsing this Thread

Aktualnie 1 użytkownik(ów) przegląda ten temat. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. Odpowiedzi: 13
    Ostatni post / autor: 18-12-14, 12:04
  2. Proszę o pomoc
    By Łuki in forum OPROGRAMOWANIE
    Odpowiedzi: 4
    Ostatni post / autor: 08-08-06, 08:02
  3. www.gadu-gadu! Prosba o interwencje DD
    By Centauris in forum PRAWO I BEZPRAWIE
    Odpowiedzi: 66
    Ostatni post / autor: 05-10-05, 09:35
  4. prosba o link metodą "na bezczelnego"
    By Wilk in forum INNE TEMATY
    Odpowiedzi: 5
    Ostatni post / autor: 02-11-04, 07:23
  5. Pomoc
    By Guteq in forum OPROGRAMOWANIE
    Odpowiedzi: 3
    Ostatni post / autor: 10-11-03, 20:14

Zakładki

Zakładki

Uprawnienia

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  

Jak czytać DI?

Powered by  
ATMAN EcoSerwer