Skocz do zawartości


Programy z pascala pilne


18 odpowiedzi w tym temacie

#1 Voteck

    Nowy na forum

  • Użytkownicy
  • 6 Postów:

Napisano czw, 13 gru 2007 - 20:23

Mam maly problem mianowicie mam do napisania 3 programy ale nie wiem jak.
oto one:
1. Napisz program, który odwróci kolejność wyrazów w zdaniu.
2. Napisz program, który policzy ilość wystąpień kazdej z liter w zdaniu.
3. Napisz program, który pozwoli znależć wszystkie wystąpienia danego
ciągu w innym ciągu.
Pierwszy program robilem ale zobaczylem ze nie chodzi o zamiane liter lecz wyrazow... pomocy !!!!

#2 Force

    Nowy na forum

  • Super użytkownicy
  • 1138 Postów:

Napisano czw, 13 gru 2007 - 20:41

W czym problem? wczytujesz sobie po kolei znaki, patrzysz o spacja, no to do dodatkowej zmiennej Res dodajesz z przodu słowo i spację Res := slow+' '+Res;

#3 Voteck

    Nowy na forum

  • Użytkownicy
  • 6 Postów:

Napisano czw, 13 gru 2007 - 20:51

Cytat

W czym problem? wczytujesz sobie po kolei znaki, patrzysz o spacja, no to do dodatkowej zmiennej Res dodajesz z przodu słowo i spację Res := slow+' '+Res;


A moglbys mi to napisac od begin ..... end ???? PLZ!

#4 Force

    Nowy na forum

  • Super użytkownicy
  • 1138 Postów:

Napisano czw, 13 gru 2007 - 21:11

W psedudo kodzie:P od begina do enda robi Toster za 100 złotych, a Filuu za 50 tongue.gif
delphi

function Revers(s : string):string;
begin // Zrob sam sekcje var
  temp := ''
  Res := ''
  petla od 1 do długość s rób
   jeśli s to znak to dodaj z tyłu tempa
  jeśli nie
   to Res:= temp+ ' '+Res;
       temp := '';
  Result := Res;

end;
 

 


#5 Voteck

    Nowy na forum

  • Użytkownicy
  • 6 Postów:

Napisano czw, 13 gru 2007 - 21:19

Cytat

W psedudo kodzie:P od begina do enda robi Toster za 100 złotych, a Filuu za 50 tongue.gif
delphi

function Revers(s : string):string;
begin // Zrob sam sekcje var
  temp := ''
  Res := ''
  petla od 1 do długość s rób
   jeśli s to znak to dodaj z tyłu tempa
  jeśli nie
   to Res:= temp+ ' '+Res;
       temp := '';
  Result := Res;

end;
 

 



Ekhm ?? Dodaj tepa z tyłu ??

#6 Voteck

    Nowy na forum

  • Użytkownicy
  • 6 Postów:

Napisano czw, 13 gru 2007 - 21:21

Jak widac nie polapie sie po tobie sad.gif Mozesz napisac mi program caly ?? bylbym bardzo wdzieczny pozatym kupie ci ten toster:P

#7 Toster

    Archon

  • Moderatorzy
  • 1885 Postów:
  • Gadu-Gadu:posiadam

Napisano czw, 13 gru 2007 - 21:33

raczej Tego Tostera....

#8 kompustelnik

    Pomocna dłoń

  • Super użytkownicy
  • 202 Postów:
  • Gadu-Gadu:736483

Napisano czw, 13 gru 2007 - 21:51

Heh. Za darmo? Może Brainer się skusi... sam nie wiem. Takie prośby są chyba z deka nie na miejscu.

Pozdrawiam! wink.gif

#9 Brainer

    Pomocny lamer

  • Super użytkownicy
  • 568 Postów:
  • Gadu-Gadu:8325300

Napisano pią, 14 gru 2007 - 07:00

Tutaj jest cały kodzik napisany w Delphi, ale wystarczy usunąć przełącznik kompilacji i powinien odpalić się w FPC. To rozwiązanie zadania pierwszego:
CODEprogram Project1;

{$APPTYPE CONSOLE}

{ .: GetSpaceText :. }
function GetSpaceText(Src: String; Index: Integer; Delim_Char: Char): String;
var
I, J, Count: Integer;
S: String;
begin
Result := '';
S := Src;
I := 0;
Count := 1;

while (I <= (Index -2)) do
begin
J := Pos(Delim_Char, S);
if (J = 0) then
break;
Delete(S, 1, J);
Inc(I);
end;

for I := 1 to Length(Src) do
if (Src[I] = Delim_Char) then
Inc(Count);
if (Index > Count) then
exit;
J := Pos(Delim_Char, S);
if (J = 0) then
begin
J := Length(S);
Result := Copy(S, 1, J);
end else
Result := Copy(S, 1, J);
end;

function ReverseString(const S: String): String;
var
M, gF: String;
I: Integer;
begin
gF := S + ' ';
M := '';
for I := Length(gF) downto 1 do
M := M + GetSpaceText(gF, I, ' ');
Result := M;
end;

var
S: String;
begin
writeln('Podaj zdanie do odwrocenia');
readln(S);
S := ReverseString(S);

writeln('Zdanie po odwroceniu: ', S);
readln;
end.

Mam nadzieję, że pomogłem. smile.gif

#10 Force

    Nowy na forum

  • Super użytkownicy
  • 1138 Postów:

Napisano pią, 14 gru 2007 - 12:47

W Pacalu, nie Delphi tongue.gif Toster nie przejmuj się nie miałem na myśli agd:P

#11 Brainer

    Pomocny lamer

  • Super użytkownicy
  • 568 Postów:
  • Gadu-Gadu:8325300

Napisano pią, 14 gru 2007 - 13:46

Cytat

W Pacalu, nie Delphi tongue.gif

To raczej zadziała w FPC. tongue.gif

#12 Nvm

    Ekspert

  • Super użytkownicy
  • 407 Postów:
  • Gadu-Gadu:6149795

Napisano pią, 14 gru 2007 - 14:06

@OT

Cytat

pozatym kupie ci ten toster:P


laugh.gif laugh.gif laugh.gif laugh.gif - wybaczcie, że zachowuję się jak dziecko ale po prostu po przeczytaniu tej wiadomości nie potrafię się opanować biggrin.gif

@Topic
Przecież pseudo kod Force'a jest dość jasny...

#13 Voteck

    Nowy na forum

  • Użytkownicy
  • 6 Postów:

Napisano pią, 14 gru 2007 - 18:46

heh dzieki za wszystko i sorry toster tongue.gif Mam jeszcze jedno pytanie.. mianowicie jak policzyc ilosc jakiegos znaku ktory wsytepuje z zdaniu ??

#14 5corpio

    Guru

  • Super użytkownicy
  • 874 Postów:

Napisano pią, 14 gru 2007 - 18:51

W pętli przejść przez wszystkie znaki i zwykłym if-em inkrementować wartość jakiegoś licznika ?

#15 Force

    Nowy na forum

  • Super użytkownicy
  • 1138 Postów:

Napisano pią, 14 gru 2007 - 18:59

To chyba jest książkowy przykład, że ma się stringa i tablice, idzie po stringu, a w tablicy pod indeksem odpowiadającym kodowi znaku zwiększa się liczbę

#16 kompustelnik

    Pomocna dłoń

  • Super użytkownicy
  • 202 Postów:
  • Gadu-Gadu:736483

Napisano pią, 14 gru 2007 - 19:10

delphi


For i:= 1 to Length(Tekst) do
 if Tekst[i] = 'a' then
  Inc(iloscA);
 

 


Pozdrawiam! wink.gif

#17 Brainer

    Pomocny lamer

  • Super użytkownicy
  • 568 Postów:
  • Gadu-Gadu:8325300

Napisano pią, 14 gru 2007 - 19:13

Cytat

delphi


For i:= 1 to Length(Tekst) do
 if Tekst[i] = 'a' then
  Inc(iloscA);
 

 


Pozdrawiam! wink.gif

Twój pomysł jest nie za dobry. smile.gif Bo w takim razie do każdej z liter musiałbyś mieć osobną zmienną (czyli ok. 32 zmienne - nie wiem ile jest liter! laugh.gif). Najlepsze rozwiązanie zasugerował Force - trzeba stworzyć tablicę i w niej trzymać ilość znaków. smile.gif

#18 kompustelnik

    Pomocna dłoń

  • Super użytkownicy
  • 202 Postów:
  • Gadu-Gadu:736483

Napisano pią, 14 gru 2007 - 19:27

A no racja smile.gif
Nie czytałem tego co wyżej biggrin.gif

Chciał to ma xD. Niech wybiera laugh.gif

Pozdrawiam! wink.gif

#19 Force

    Nowy na forum

  • Super użytkownicy
  • 1138 Postów:

Napisano pią, 14 gru 2007 - 20:10

Cytat

3. Napisz program, który pozwoli znależć wszystkie wystąpienia danego
ciągu w innym ciągu.

to mi się podoba, poszukaj o KMP w internecie, liniowy algorytm wyszukiwania wzorca w innym tekście O(n+m)