Guitar Guy 0 Zgłoś post Napisano Październik 23, 2008 Ma może ktoś na składzie 2 takie funkcje w Turbo Pascalu? Jedna ma sprawdzać czy liczba ze zmiennej np. "liczba" jest pierwsza a druga czy jest palindromem. Pozdro. Udostępnij ten post Link to postu Udostępnij na innych stronach
marczak 0 Zgłoś post Napisano Październik 23, 2008 A to ma byc w 1 programie, czy 2 oddzielne ?? Udostępnij ten post Link to postu Udostępnij na innych stronach
Guitar Guy 0 Zgłoś post Napisano Październik 23, 2008 2 oddzielne funkcje, albo jedna która sprawdza od razu czy liczba jest pierwsza i czy jest palindromem Udostępnij ten post Link to postu Udostępnij na innych stronach
netu 0 Zgłoś post Napisano Październik 23, 2008 z tego co wiem liczba nie moze byc palindromem no chyba ze chodzi ci czy jest to np 121, jesli chodzi o pierwsze if liczba/1 than if liczba/liczba than writeln('liczba jest pierwsza') else writeln('liczba nie jest pierwsza') to możesz dac w petle i masz a o palindrom musisz dodac pole zmiennej a:=lengt(wyraz) for a downto 1 do b:=b+wyraz[a] if wyraz=b than writeln('jest palindromem') else write('nie jest palindromem') 5 sek ale domyslam sie ze 1 klasa technikum informatycznego i powiedz czy o to chodzilo Udostępnij ten post Link to postu Udostępnij na innych stronach
Guitar Guy 0 Zgłoś post Napisano Październik 23, 2008 Nie technikum:) Gimnazjum, zadanie dodatkowe:P Tak dokładniej to chodzi o to że mam liczby z przedziału np. od 1 do 500 i program musi napisać liczby pierwsze będące palindromami. Chyba taki powinien być algorytm: Funkcja która sprawdza czy liczba jest pierwszaFunkcja która sprawdza czy liczba jest palindromem pętla razy 499{ liczba = 1 jeśli liczba jest pierwsza pierwsza { jeśli jest palindromem { napisz wartość zmiennej liczba } } liczba := liczba+1 } Z Pascalem mam do czynienia pierwszy raz Myślałem że aż tak nie różni się do php Udostępnij ten post Link to postu Udostępnij na innych stronach
netu 0 Zgłoś post Napisano Październik 23, 2008 program holahola; uses crt; var a,b,c,i:integer; begin clrscr; for i=1 to 500 do begin if i/1 than if 1/1 than writeln('liczba jest pierwsza'); else writeln(i,'liczba nie jest pierwsza'); a:=lengt(i); for a downto 1 do b:=b+i[a]; if i:=b than writeln(i,'jest palindromem'); else write('nie jest palindromem'); end; readln; end. powinno bzc ok jak cos debuger w borlandzue zglosi ci błąd ale to skumasz o co chodzi bo wszystko jasno przedstawia Udostępnij ten post Link to postu Udostępnij na innych stronach
Guitar Guy 0 Zgłoś post Napisano Październik 23, 2008 Thx, już sprawdzam Zapomniałem że nie można edytować... :/ OK, działa, ale nie do końca o to chodziło. On ma wypisywać tylko liczby, nic więcej, najlepiej jedna pod drugą, nic więcej. Czy mógłbyś poprawić mi ten kod, proszę ? Udostępnij ten post Link to postu Udostępnij na innych stronach
p 3 Zgłoś post Napisano Październik 24, 2008 z tego co wiem liczba nie moze byc palindromemTo źle wiesz... if liczba/1 than if liczba/liczba than writeln('liczba jest pierwsza')Wiesz w ogóle co to liczba pierwsza?Poza tym nie ma takiego słowa kluczowego jak than. No i and też jest czasem przydatne... a:=lengt(wyraz) for a downto 1 do b:=b+wyraz[a] if wyraz=b than writeln('jest palindromem') Już bardzo dawno z Pascala nie korzystałem, ale jestem przekonany, że to także jest źle. 5 sek ale domyslam sie ze 1 klasa technikum informatycznego Widocznie jeszcze o pare sekund za mało... powinno bzc ok jak cos debuger w borlandzue zglosi ci błąd ale to skumasz o co chodzi bo wszystko jasno przedstawiaNie, nie powinno. Jeżeli nie wiesz jak komuś pomóc to nie 'pomagaj'... Udostępnij ten post Link to postu Udostępnij na innych stronach
netu 0 Zgłoś post Napisano Październik 24, 2008 p pisałem to z 30 sek nie chciało mi sie myśleć nad AND a i literowki mozna poprawic debugerem nie czepiaj sie takich pierdolek Udostępnij ten post Link to postu Udostępnij na innych stronach
p 3 Zgłoś post Napisano Październik 24, 2008 p pisałem to z 30 sek nie chciało mi sie myśleć nad AND a i literowki mozna poprawic debugerem nie czepiaj sie takich pierdolek Przecież nie czepiam się przez than i and. Całość jest beznadziejna i nie robi tego co ma robić... Udostępnij ten post Link to postu Udostępnij na innych stronach
Guitar Guy 0 Zgłoś post Napisano Październik 24, 2008 Dobra Już sam napisałem, zrobiłem sobie przyśpieszony kurs Pascala W razie jakiś błędów proszę mnie poprawić. Oto kod: program zadanie;uses crt; function pierwsza(liczba):word; var licznik : integer; pierwsza : boolean; begin Readln (liczba); pierwsza := true; For licznik := liczba-1 downto 2 do If liczba mod licznik = 0 then pierwsza := false; If pierwsza then pierwsza := true; Readln; end. function palindrom(liczba : String): Boolean;; var i : Integer; Ok : Boolean; begin i := 1; Ok := True; while (i <= Length(liczba) div 2) and Ok do begin Ok := liczba = liczba[Length(liczba)-i+1]; Inc(i); end; Palin := Ok; end; REPEAT var liczba=1; If pierwsza AND palindrom then writeln(liczba); liczba:=liczba+1; UNTIL liczba=1000; end. Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Październik 25, 2008 Dobra Już sam napisałem, zrobiłem sobie przyśpieszony kurs Pascala W razie jakiś błędów proszę mnie poprawić. W funkcji od liczby pierwszej w przypadku w przypadku gdy liczba jest podzielna bez reszty czyli po If liczba mod licznik = 0 then pierwsza := false; możesz spokojnie już opuścić pętlę, bo bez sensu sprawdzać dla kolejnych liczb i szkoda czasu. Udostępnij ten post Link to postu Udostępnij na innych stronach
Guitar Guy 0 Zgłoś post Napisano Październik 25, 2008 Już sobie poradziłem, dzięki za pomoc... Jak by ktoś chciał to tu jest kod: program zadanie;users crt; var liczba: integer; sliczba:string; function lpierwsza(n:word):boolean; var licznik : integer; pierwsza : boolean; begin lpierwsza := true; For licznik := n-1 downto 2 do begin If n mod licznik = 0 then lpierwsza := false; end; end; function palindrom(liczba:String):Boolean; var I : Integer; begin I := Length(liczba) div 2; palindrom := True; while I > 0 do begin Dec(I); if liczba[i+1] <> liczba[Length(liczba) - I] then begin palindrom := False; Exit; end; end; end; begin liczba:=10; REPEAT str(liczba,sliczba); If lpierwsza(liczba) AND palindrom(sliczba) then writeln(liczba); liczba:=liczba+1; UNTIL liczba=1001; readln; end. Udostępnij ten post Link to postu Udostępnij na innych stronach