kaburagi
Nowy
Dołączył: 13 Gru 2011
Posty: 1
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysł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: ;
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: ;
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: ;
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: ;
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
Z góry dziękuję.
Post został pochwalony 0 razy
|
|