Pokaż wyniki 1 do 5 z 5

Temat: Pascal z 10 na 2

  1. 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

    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. Domyślnie

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

  4. #4

    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. 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, 08:38
  2. turbo pascal-zadanie
    By Justyna21 in forum Delphi/Pascal/Lisp
    Odpowiedzi: 18
    Autor: 07-26-2009, 16:44
  3. Odpowiedzi: 4
    Autor: 11-20-2007, 09:52
  4. zadnia z informatyki --> pascal
    By slawek14 in forum Delphi/Pascal/Lisp
    Odpowiedzi: 6
    Autor: 04-13-2007, 18:13
  5. Pascal prostokąt
    By kosiarz in forum Delphi/Pascal/Lisp
    Odpowiedzi: 3
    Autor: 03-04-2007, 01: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