Pokaż wyniki 1 do 5 z 5

Temat: Pascal z 10 na 2

  1. #1
    Zarejestrowany
    Jun 2006
    Postów
    141

    Domyślnie Pascal z 10 na 2

    Do tej pory nie bylo potrzeby znac sie na programowaniu .. Ale naszla mnie chec na to zeby jednak sie tego nauczyc i zaczalem od Pascala.

    Kompilator - Dev-Pascal. Jestem przy petli while. No i sie zapetla tak ze program nie konczy sie. Co mam zle? Przynajmniej wskazwoka jakas by sie przydala

    Kod:
    program systemy_liczbowe;
    
    var
    	Rodzaj : String;
    	Liczba, Liczba2, dzielenie, dzielenie2 : ShortInt;
    begin
        Liczba2 := 0;
     	write ('W jakim systemie jest liczba?');
    	write ('A: W systemie 10');
    	write ('B: W systemie 2');
    	readln (Rodzaj);
    	
    	if Rodzaj = 'A' then
            begin
    		write ('Podaj liczbe: ');
            readln (Liczba);
           	dzielenie := Liczba mod 2;
            dzielenie2 := Liczba div 2;
    		while dzielenie2 <> 0 do
                begin
    			if dzielenie = 1 then
                    begin
    				Liczba2 := 1+Liczba2;
                    Liczba := Liczba div 2;
                    end
    			else
                    begin
                    Liczba2 := 0+Liczba2;
                    Liczba := Liczba div 2;
                    end;
            end;
      		writeln (Liczba2);
            readln;
            end
    	else write ('A to juz nie laska wcisnac?');
          readln ();
    	
    end.

  2. #2
    Zarejestrowany
    Jun 2008
    Postów
    47

    Domyślnie

    Tylko raz wykonuje dzielenie2 i jak jest różne od zera to wykonuje środek pętli. Nigdzie w pętli nie zmienia wartości dzielenia2 i dlatego pętla jest nieskończona. Ogólnie algorytm nie jest poprawny.

    Pozdrawiam

  3. #3
    Zarejestrowany
    Jun 2006
    Postów
    141

    Domyślnie

    Ale sadzilem ze jezeli zmieni sie wartosc "Liczba" to automatycznie zmieni sie rowniez wynik dzielenia. Czyz nie tak?

  4. #4
    Zarejestrowany
    Jun 2008
    Postów
    47

    Domyślnie

    Nie algorytm jest wykonywany z góry na dół. I po wykonaniu kroku o ile nie jest w pętli, funkcji to nie wraca. Musiałbyś wrzucić
    Kod:
    dzielenie2 := Liczba div 2
    w pętle while. Ogólnie cały algorytm nie bardzo.

    Pozdrawiam

  5. #5
    Zarejestrowany
    Jun 2006
    Postów
    141

    Domyślnie

    No troche zmienilem Doszedlem nawet do tego ze dzielenie trzeba dodac. Zostalo mi tylko wypisywanie liczby. Obecnie mi dodaje bo mam +

    Kod:
    program systemy_liczbowe;
    
    var
    	Rodzaj : String;
    	Liczba, Liczba2, dzielenie, dzielenie2 : ShortInt;
    begin
        Liczba2 := 0;
     	write ('W jakim systemie jest liczba?');
    	write ('A: W systemie 10');
    	write ('B: W systemie 2');
    	readln (Rodzaj);
    	
    	if Rodzaj = 'A' then
            begin
    		write ('Podaj liczbe: ');
            readln (Liczba);
           	dzielenie := Liczba mod 2;
            dzielenie2 := Liczba div 2;
            while dzielenie2 <> 0 do
                begin
    	  if dzielenie = 1 then
                    begin
                    Liczba3 := 1;
    	  Liczba2 := 1+Liczba2;
                    Liczba := Liczba div 2;
                    dzielenie := Liczba mod 2;
                    dzielenie2 := Liczba div 2;
                    end
    			else
                    begin
                    Liczba2 := 0+Liczba2;
                    Liczba := Liczba div 2;
                    dzielenie := Liczba mod 2;
                    dzielenie2 := Liczba div 2;
                    end;
            end;
      		writeln (Liczba2);
            readln;
            end
    	else write ('A to juz nie laska wcisnac?');
          readln ();
    	
    end.
    Chcialem zastosowac "Concat" ale wywala blad. Jest do tego jakas alternatywa?

Podobne wątki

  1. Free Pascal - poczatki...
    By lokid in forum Delphi/Pascal/Lisp
    Odpowiedzi: 7
    Autor: 02-16-2010, 09:38
  2. turbo pascal-zadanie
    By Justyna21 in forum Delphi/Pascal/Lisp
    Odpowiedzi: 18
    Autor: 07-26-2009, 17:44
  3. Odpowiedzi: 4
    Autor: 11-20-2007, 10:52
  4. zadnia z informatyki --> pascal
    By slawek14 in forum Delphi/Pascal/Lisp
    Odpowiedzi: 6
    Autor: 04-13-2007, 19:13
  5. Pascal prostokąt
    By kosiarz in forum Delphi/Pascal/Lisp
    Odpowiedzi: 3
    Autor: 03-04-2007, 02:30

Zasady Postowania

  • 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
  •  
Subskrybuj

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52