sinilotomasz Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 Muszę napisać ten program tylko nie wiem jak bo to dopiero mój początek z delphi prosze o pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 A jaki delphi? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sinilotomasz Opublikowano 8 Marca 2008 Autor Udostępnij Opublikowano 8 Marca 2008 A jaki delphi? delphi7 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 I interesują Cię tylko litery z alfabetu... znaczy może dokładniej, polskie litery też? I czy liczby też? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mike_p Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 Proste. 1) Wczytaj plik do jakiegoś Memo. 2) Zrób tablicę Integerów od a do z 3) Zrób procedurę jadącą forem przez wszystkie znaki Memo i podnoszącą o 1 konkretny element tablicy Możesz też np. zrobić tablicę 0..255 i liczyć ew. wszystkie znaki. A tak w ogóle to konsolowo czy okienkowo? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sinilotomasz Opublikowano 8 Marca 2008 Autor Udostępnij Opublikowano 8 Marca 2008 tylko litery z alfabetu bez polskich Proste. 1) Wczytaj plik do jakiegoś Memo. 2) Daj jakiegoś Edita czy coś, gdzie wpisujesz literę 3) Zrób tablicę Integerów od a do z 3) Zrób procedurę jadącą forem przez wszystkie znaki Memo i podnoszącą o 1 konkretny element tablicy Możesz też np. zrobić tablicę 0..255 i liczyć ew. wszystkie znaki. A tak w ogóle to konsolowo czy okienkowo? okienkowo Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mike_p Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 var counts: array[65..90] of integer; Procedura na naciśnięciu przycisku. Memo to pole z tekstem, Memo1 to pole z wynikami szukania. procedure TForm1.Button1Click(Sender: TObject); var i:integer; s:integer; begin for i:=0 to length(Memo.Text)-1 do begin s:=Ord(Memo.Text[i]); if((s>96)and(s<123)) then s:=s-32; if((s>64)and(s<91)) then counts[s]:=counts[s]+1; end; for i:=65 to 90 do if(counts[i]>0) then begin Memo1.Text:=Memo1.Text+Chr(i)+' : '+IntToStr(counts[i]); Memo1.Lines.Add(''); end; end; FormCreate: procedure TForm1.FormCreate(Sender: TObject); var i:integer; begin for i:=65 to 90 do counts[i]:=0; end; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sinilotomasz Opublikowano 8 Marca 2008 Autor Udostępnij Opublikowano 8 Marca 2008 a jak to będzię konsolowo Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mike_p Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 Tak samo, tylko wczytujesz plik do stringa :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sinilotomasz Opublikowano 8 Marca 2008 Autor Udostępnij Opublikowano 8 Marca 2008 a jak to napisać bez procedury; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mike_p Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 Jak to bez procedury? :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sinilotomasz Opublikowano 8 Marca 2008 Autor Udostępnij Opublikowano 8 Marca 2008 nauczyćiel mi kazał napisać to bez procedury i miały być użyte tablice Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mike_p Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 Może bez osobnej procedury albo konsolowo, bo nie wiem jak inaczej :o Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sinilotomasz Opublikowano 8 Marca 2008 Autor Udostępnij Opublikowano 8 Marca 2008 chyba to miało byc konsolowo Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mike_p Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 Kurde, poszperaj w necie jak wygląda aplikacja konsolowa w Delphi i poszukaj jak wczytywać pliki. Nie mam teraz czasu tego pisać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sinilotomasz Opublikowano 8 Marca 2008 Autor Udostępnij Opublikowano 8 Marca 2008 Prubowałem to zrobić tak ale mi coś nie wychodzi program licz; {$APPTYPE CONSOLE} uses SysUtils; function zliczaj_litery(litera:char):integer; var Litery:array [65..122] of integer; i:integer; plik:Text; nazwa_pliku:String; Znak:Char; linia : string; licznik:integer; begin linia:=0; Writeln('Podaj nazwe pliku, ktory chcesz otworzyc (pamietaj o rozszerzeniu!)'); Readln(nazwa_pliku); Assign(plik,nazwa_pliku); Reset(plik); while not EOF(plik) do begin read(plik,linia); // kopiowanie każdej linii dokumentu do zmiennej linia For i:=1 to length(linia) do // badanie każdego znaku w linii if (litery)=znak then inc(licznik) // jeśli znaleziono licznik zwiększamy close(plik); end. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mike_p Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 Coś takiego: program licz; {$APPTYPE CONSOLE} uses SysUtils; var Litery:array [65..90] of integer; i,s:integer; plik:Text; nazwa_pliku,text:String; Znak:Char; linia : string; licznik:integer; begin Writeln('Podaj nazwe pliku, ktory chcesz otworzyc (pamietaj o rozszerzeniu!)'); Readln(nazwa_pliku); Assign(plik,nazwa_pliku); Reset(plik); while not EOF(plik) do begin read(plik,linia); text:=text+linia; end; close(plik); for i:=0 to length(text)-1 do begin s:=Ord(text[i]); if((s>96)and(s<123)) then s:=s-32; if((s>64)and(s<91)) then litery[s]:=litery[s]+1; end; for i:=65 to 90 do if(litery[i]>0) then begin WriteLn(Chr(i),' : ',counts[i]); end; end. ? Nie sprawdzałem czy działa :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sinilotomasz Opublikowano 8 Marca 2008 Autor Udostępnij Opublikowano 8 Marca 2008 wyskakuje błąd przy counts Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mike_p Opublikowano 8 Marca 2008 Udostępnij Opublikowano 8 Marca 2008 Bo zapomniałem zmienić counts na litery :P Weź przeczytałbyś chociaż a nie chamsko przekopiował... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się