Szukanie całych słów po dowolnych ciągu znaków

 
Napisz nowy temat   Odpowiedz do tematu    Forum Wszystko o Turbo Pascalu Strona Główna -> Problemy
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
kaburagi
Nowy



Dołączył: 13 Gru 2011
Posty: 1
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Wto 19:03, 13 Gru 2011    Temat postu: Szukanie całych słów po dowolnych ciągu znaków

Witam!
Mam mały problem ze zrobieniem programu, który ma wyszukiwać imiona i nazwisko po wybranym ciągu znaków. Mamy docelowo 5 osób. Z klawiatury podajemy imię, nazwisko i wiek z przedziału.

Zrobiłem program, który wyszukuje osoby po pierwszych literach, ale nie mogę rozkminić jak zrobić by szukało danego ciągu w całym słowie.

To jest program, który zrobiłem:

Cytat:
program tablica_2;
uses crt;
type
lista=record
imie:string [30];
nazwisko:string [30];
wiek:integer;
end;
var tab:array[1..5] of lista;
szukane,slowo:string;
znak,nic:char;
i,j,licznik,dlugosc,dol,gora,zamiana:integer;

Begin
Repeat
clrscr;
writeln('[d] Dodawanie');
writeln('[i] Wyszukiwanie po imieniu');
writeln('[n] Wyszukiwanie po nazwisku');
writeln('[w] Wyszukiwanie po wieku');
writeln('[p] Podglad');
writeln('[Esc] Koniec programu');
znak:=upcase(readkey);
Case znak of
'D':Begin
clrscr;
licznik:=licznik+1;
i:=i+1;
write('Podaj imie: ');readln(tab[i].imie);
write('Podaj nazwisko: ');readln(tab[i].nazwisko);
write('Podaj wiek: ');readln(tab[i].wiek);
end;
'P':Begin
clrscr;
For i:=1 to licznik do
WITH tab[i] do
writeln(imie:20,nazwisko:20,wiek:Cool;
end;
'I':Begin
clrscr;
write('Podaj pierwsze litery imienia: ');readln(szukane);
dlugosc:=ord(szukane[0]);
For i:=1 to licznik do
Begin
For j:=1 to dlugosc do
Begin
znak:=tab[i].imie[j];
slowo:=slowo+znak;
end;
IF slowo=szukane then
WITH tab[i] do
writeln(imie:20,nazwisko:20,wiek:Cool;
slowo:='';
end;
end;
'N':Begin
clrscr;
write('Podaj pierwsze litery nazwiska: ');readln(szukane);
dlugosc:=ord(szukane[0]);
For i:=1 to licznik do
Begin
For j:=1 to dlugosc do
slowo:=slowo+tab[i].nazwisko[j];
IF slowo=szukane then
WITH tab[i] do
writeln(imie,nazwisko:20,wiek:Cool;
slowo:='';
end;
end;
'W':Begin
clrscr;
write('Przedzial dolny: ');readln(dol);
write('Przedzial gorny: ');readln(gora);
IF gora<dol then
Begin
zamiana:=dol;
dol:=gora;
gora:=zamiana;
end;
For i:=1 to licznik do
Begin
j:=tab[i].wiek;
IF (j>=dol) and (j<=gora) then
WITH tab[i] do
writeln(imie,nazwisko:20,wiek:Cool;
end;
end;
#27:halt end;
writeln('Nacisnij [ENTER] aby wrocic do menu');
readln;
until false;
end.


Jeżeli wiecie jak to zrobić, to proszę o podesłanie kodu w odpowiedzi Smile
Z góry dziękuję.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Wszystko o Turbo Pascalu Strona Główna -> Problemy Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


Bluetab template design by FF8Jake of FFD
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group
Regulamin