Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Zadanie w Pascalu za bardzo nie ogarniam. Cytowanie selektywne - zaznacz

axgr 04 Mar 2016 17:12 720 10
  • #1 04 Mar 2016 17:12
    axgr
    Poziom 5  

    Cześć, jak jest ktoś kto zna Pascala i jest chętny mi pomóc to niech się zgłosi to podam o co chodzi dokładniej
    ten kod udało mi się napisać ale nie umiem:

    Kod: delphi
    Zaloguj się, aby zobaczyć kod

    0 10
  • #3 04 Mar 2016 19:12
    axgr
    Poziom 5  

    @Dżyszla,
    Napisz program wypisujący w jednej linii Twoje imię i nazwisko oraz numer indeksu, a następnie wyliczający wszystkie dzielniki całkowite Twojego numeru indeksu oraz zapisujący je do tablicy.

    W kolejnym kroku algorytm ma poprosić użytkownika o liczbę dzielników (oznaczmy ja przez m), które chciałby on wypisać. Następnie w pętli m razy zapyta użytkownika o numer dzielnika n i dla każdej podanej liczby wypisze n-ty dzielnik numeru indeksu lub napis ’Mój indeks nie ma tylu dzielników!’ jeżeli n przekroczy dostępną liczbą dzielników (zakładamy, że użytkownik nie może wpisać liczby mniejszej niż 1).

    Przykład działania (dla osoby o danych personalnych Marcin Witkowski, numer indeksu 12):

    -> Marcin Witkowski 12
    -> Podaj liczbę dzielników
    3
    -> Podaj numer dzielnika
    1
    -> 1
    5
    -> 6
    7
    ->Mój indeks nie ma tylu dzielników!
    Gdzie przez -> oznaczone są linie wypisywane przez program (reszta linii wprowadza użytkownik).

    0
  • Pomocny post
    #4 04 Mar 2016 20:47
    Dżyszla
    Poziom 42  

    Jeśli dzielniki mają trafiać do tablicy, to trzeba przygotować tablicę (możesz dla prostoty założyć np. tablicę na 1000 elementów, czyli tablica: array[1..1000] of integer) i prostą zmienną, która będzie licznikiem. Teraz zamiast wyswietlania pod warunkiem dzielenia (x mod i = 0) wystarczy przypisanie: tablica[ti] := i; inc(ti);. Pamiętaj, aby na początku zainicjować zmienną ti wartością 1.

    Teraz prosisz użytkownika o podanie liczby (readln(m)) i w pętli wykonujesz coś takiego:
    Prosisz o liczbę n porównujesz z wartością ti - jeśli n jest większe to wspomniany komunikat. W przeciwnym razie wypiszesz wartości z tablicy (writeln(tablica[n]);).

    0
  • #6 05 Mar 2016 01:28
    yild
    Poziom 14  

    axgr napisał:
    Trochę za trudne.. na lekcji pisaliśmy pseudokod Pythona a poza tym ja studiuję matmę, a nie informatykę i nic nie ogarniam prawie


    jak "prawie" to poniższe sobie sam przeanalizujesz :P

    Kod: delphi
    Zaloguj się, aby zobaczyć kod


    hinty:
    write - wyświetla tekst... writeln wyświetla tekst i przechodzi no nowego wiersza;
    readln - czyta wprowadzoną wartość i przechodzi do nowego wiersza;
    break - kończy działanie pętli (wychodzi z ciała pętli);
    maks_rozmiar - maksymalny rozmiar tablicy - dla 123456 potrzeba 28 wartości...
    { } komentarz, usuwając znaki komentarza można sobie podejrzeć wartości.

    0
  • #7 05 Mar 2016 10:41
    Dżyszla
    Poziom 42  

    To poświęć z 3-4 godzinki na poczytanie jakiegoś kursu Pascala dla początkujących.

    BTW - studiując matmę dobrze znać takie pojęcia z programowania, jak tablica (macierz w matematyce). Podejrzewam, że MatLab też będzie, a tam się przyda taka wiedza z podstaw programowania. Tak samo jak zależności rekurencyjne (tak samo w programowaniu) czy ciągi skończone (które można w programowaniu odzwierciedlać przez pętle).

    0
  • #8 07 Mar 2016 10:38
    Hyde911
    Poziom 24  

    Dżyszla napisał:

    BTW - studiując matmę dobrze znać takie pojęcia z programowania, jak tablica (macierz w matematyce). Podejrzewam, że MatLab też będzie, a tam się przyda taka wiedza z podstaw programowania. Tak samo jak zależności rekurencyjne (tak samo w programowaniu) czy ciągi skończone (które można w programowaniu odzwierciedlać przez pętle).


    Nie mówiąc o tym, że prawdopodobnie i tak "skończy" jako programista.

    0
  • #10 07 Mar 2016 20:44
    yild
    Poziom 14  

    Tak czy tak mówi się... dziękuję :P

    0