x-kom hosting

Program który wypisuje najwieksze i najmniejsze liczby ...Problem:(

entertp
utworzono
utworzono

Witam!! Z "Turbo Pascalem" mam dopiero do czynienia i nawet dobrze sobie radzę xD. Ale mam pewien problem z zadaniem i nie moge go rozwiązać:(. Chodzi o zadanie takie.

Napisz program ktury pobiera n liczb(n-wpisuje uzytkownik) i wyświetla dwie liczby największe i dwie liczby najmniejsze

Ja robiłem ale mi nie wychodzi zrobiłem tylko tak:

var n,a,max,min:integer;beginwriteln('podaj ile liczb');readln(n);  writeln('podaj liczbe');	readln(a);	min:=a;		max:=a;   l:=0;repeatwriteln('podaj liczbe');readln(a);   if max<a  then	max:=a  else if min>a then	min:=a;inc(l);until(l=n-1);   writeln('największą liczbą jest',max,'a najmniejszą',min);	readln;end.

To jest tylko na wypisanie jednej liczby największej i najmniejszej. Myślę że może trzeba jeszcze jedną zmienną ,b' zadeklarować max2 i min2.

ale nie wiem jak to zrobić może trzeba zagnieżdzić pętlę? Proszę pomuszcie mi to zadanie na 5. Niechcem dostać gotowca ale żeby ktoś mnie nakierował. Z góry bardzo dziękuję ENTER ;p ODrazu muwię że nieumiem tablic jeszcze się nieuczylismy :(

// popraw nazwę tematu ( patrz regulamin ), naucz się pisać po polsku

// luq

maciexus
komentarz
komentarz

Ja w Pascalu to się średnio orientuje a nawet jestem bliski zeru, ale w części:

  if max<a  then    max:=a  else if min>a then    min:=a

powinno być bez tego else, bo jedna liczba może być jednocześnie najmniejsza i największa.

A co do twojego problemu to nie do końca wiem w czym masz problem. Jak chodzi o wczytywanie n liczb to trzeba po prostu funkce wczytującą w while'a wrzucić. Popróbuj coś z tym.

entertp
komentarz
komentarz

Uzytkownik podaje n liczb (tyle razy będzie się kręciła pętla) potem podaje w pętli liczby a program wypisuje najwieksze dwie liczby i najmniejsze dwie liczby próbowałem tak:::

if (max<a) and (min>a) then  begin   max:=a;	 min:=a  else if ( max2<max) and (min2>min) then   min2:=a;   max2:=a;   end;

to działa ale nie poprawnie . Jak ktoś będzie wiedział jak to zrobić to niech pisze będę wdzięczny . To ważne zadanie dzięki niemu będę mial ocenę bdb z programownaia a to zadanie jest trudne i za chiny jego nie moge zrobić pozdrawiam.

leggo
komentarz
komentarz

No dobra potrzebujesz ok. 7 zmiennych.

1. Najpierw do 1. zmiennej pobierasz ile liczb chce wpisać użytkownik.

2. Następnie robisz pętle powtarzającą się tyle razy ile chciał user.

3. W pętli najpierw dajesz pobieranie liczby do następnej zmiennej.

4. IFem sprawdzasz czy pętla powtarza się po raz pierwszy jęsli tak, to pobraną w punkcie 3. liczbę zapisujesz do 4 zmiennych: naj_min, min, max, naj_max. Jeśli warunek w IFie nie jest spełniony to nic nie robisz.

5. Następny IF sprawdza czy zmienna z punktu 3. jest mniejsza od naj_min jeśli tak to do naj_min zapisujesz zmienną z punktu 3. W tej pętli w ELSE dajesz IFa (min<pobrana_z_3) jeśli tak to do min zapisujesz pobraną z 3. punktu, jeśli nie to nic nie robisz.

6. To samo co w punkcie 5., zmieniasz tylko naj_min na naj_max oraz min na max.

7. Tutaj zamykasz pętle z punktu 2.

8. Wypisujesz naj_min, min, max, naj_max.

9. KONIEC

naj_min to najmniejsza pobrana liczba.

min to prawie najmniejsza pobrana liczba.

naj_max to największa pobrana liczba.

max to prawie największa pobrana liczba.

Sory, że tak skrótowo trochę pisałem.

Mam nadzieję, że sobie poradzisz. Dokładniej to tego chyba już nie da się opisać.

Jakbyś mógł używać tablice było by krócej.

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.