zixxus Napisano Kwiecień 18, 2013 Zgłoś Share Napisano Kwiecień 18, 2013 programik ma zliczyc nawiasy " ( ) " program licz_znaki; var liczba_sp, i, dlugosc: integer; liczba_sd, o, dlug: integer; tekst: string; procedure zliczaj(var licznik: integer); procedure zlicza(var liczni: integer); begin licznik:=licznik+1; liczni:=liczni+1; end; BEGIN liczba_sp:=0; liczba_sd:=0; writeln('wpisz tekst: '); readln(tekst); dlugosc:=length(tekst); for i:=dlugosc downto 1 do if tekst[i]='(' then zliczaj(liczba_sp); for o:=dlug downto 1 do if tekst[o]=')' then zlicza(liczba_sd); writeln('liczba () wynosi: ',liczba_sp, liczba_sd); readln; END. Link do komentarza Udostępnij na innych stronach More sharing options...
olesio Napisano Kwiecień 18, 2013 Zgłoś Share Napisano Kwiecień 18, 2013 No i w czym problem? Kod swój sformatowałeś w "popularnym" niestety "stylu" tak zwanym "z d...", czyli brak sensownego formatowania. Ale wyraźnie widać, że źle napisałeś procedury. Tak to nie może wyglądać. Poczytaj kursy z podstawami, jak sie deklaruje procedury i je definiuje, to będziesz wszystko wiedział. Poza tym najwygodniej było by zwracać ilośc nawiasów, jeżeli nie możesz tego robić jako normalną zmienną, to przez funkcje, a nie procedury. A i zmienna dlug nie jest zainicjowana. Pozdrawiam: olesio Link do komentarza Udostępnij na innych stronach More sharing options...
zixxus Napisano Kwiecień 18, 2013 Autor Zgłoś Share Napisano Kwiecień 18, 2013 to działa teraz chciałbym żeby zmiejszyło to swoją wielkość, na razie po skąplikowaniu wynosi ok. 60 000 B a chciałbym żeby wynosiło maksymalnie 50 000 B. Pomożecie troszke odchudzic ? program licz_znaki; var liczba_sp, i, dlugosc: integer; liczba_sd: integer; tekst: string; procedure zliczaj(var licznik: integer); begin licznik:=licznik+1; end; BEGIN liczba_sp:=0; liczba_sd:=0; writeln('wpisz tekst: '); readln(tekst); dlugosc:=length(tekst); for i:=dlugosc downto 1 do if tekst[i]='(' then zliczaj(liczba_sp); for i:=dlugosc downto 1 do if tekst[i]=')' then zliczaj(liczba_sd); {writeln('liczba () wynosi: ',liczba_sp, ' ',liczba_sd); } if (tekst[1]='(')and((liczba_sp + liczba_sd) mod 2=0) then writeln('tak') else writeln('nie'); readln; END. Link do komentarza Udostępnij na innych stronach More sharing options...
olesio Napisano Kwiecień 18, 2013 Zgłoś Share Napisano Kwiecień 18, 2013 Kompiluj pod Delphi 7 jako aplikacje konsolową, to będzie zajmowało i poniżej 10 kb nawet. A exek jeżeli nie jest 64 bitowy co w tym przypadku nie ma i tak sensu, ale zależy od kompilatora. Możesz spakować UPX'em albo innym pakerem do exeków. Pogooguj sobie na ten temat. Bo tego kodu i tak juz nie odchudzisz. Pozdrawiam: olesio Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.