• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Поиск на Паскале

  • Автор темы Guest
  • Дата начала
G

Guest

Написала программу на Паскале "Информация о вкладчиках банка" с менюшкой, не хватает только поиска по фамилии, не помню как это делается. Помогите!!!)
Код:
program  menyu;
uses crt;
type
trec=record
fam,name,work:string;
kv,house:integer;
street:string;
mark:array[1..9] of integer;

end;
tmas=array[1..7]of trec;
tmas1=array[1..8]of string;
const form:tmas1=('=============================================',
'|Фамилия___________|________________________|',
'|Имя_______________|________________________|',
'|Адрес_______улица_|________________________|',
'|____________дом___|________________________|',
'|____________кв.___|________________________|',
'|Место_работы______|________________________|',
'=============================================');
var
m:trec;
ch,cha1:char;
s,s1,n,p,x,y,i,gd,gm,k:integer;
a:array[1..7]of string;
b,r:tmas;
{========================================================}
procedure Vivform;
var v,d:integer;
begin
clrscr;
for v:=1 to 8 do
writeln(form[v]);
end;
{============================================================}
Procedure Vvod(s:integer;var b:tmas);
var i,x1,y1:integer;
ss:string;
begin
k:=0;
window(1,1,70,60);
clrscr;
textcolor(green);
repeat
k:=k+1;
vivform;
with b[k] do begin
gotoxy(23,2);
readln(fam);
gotoxy(23,3);
readln(name);
gotoxy(23,4);
readln(street);
gotoxy(23,5);
readln(house);
gotoxy(23,6);
readln(kv);
gotoxy(23,7);
readln(work);
gotoxy(2,9);
writeln('Ввести еще информация о вкладчиках? (d\n)');
readln(ss);
end;
{k:=k+1;
s:=s+1;}
until ss<>'d';
end;
{============================================================}
procedure Vivodnogo(k:integer);
begin
clrscr;
vivform;

with b[k] do begin
gotoxy(23,2);
writeln(fam);
gotoxy(23,3);
writeln(name);
gotoxy(23,4);
writeln(street);
gotoxy(23,5);
writeln(house);
gotoxy(23,6);
writeln(kv);
gotoxy(23,7);
writeln(work);
end;
end;
{============================================================}
procedure Print(ss,ff:integer;b:tmas);
var i,x1,y1,l:integer;
i1:string;
begin
{vivform; }
window(1,1,70,60);
clrscr;
textcolor(white);
for l:=1 to k do begin
vivodnogo(l);
readln;
end;
end;
{==================================================================}
procedure Editor;
var h,code:integer;
ss,m:string;
begin
clrscr;
for h:=1 to k do begin
clrscr;
vivodnogo(h);
writeln;
writeln('Внести изменения об этом пользователе? (d/n);');
readln(m);
if m='n' then continue;
with b[h] do begin
gotoxy(23,2);
readln(ss);
if ss<>'' then fam:=ss;
gotoxy(23,3);
readln(ss);
if ss<>'' then name:=ss;
gotoxy(23,4);
readln(ss);
if ss<>'' then street:=ss;
gotoxy(23,5);
readln(ss);
if ss<>'' then work:=ss;
gotoxy(23,6);
readln(ss);
if ss<>'' then val(ss,house,code);
gotoxy(23,7);
readln(ss);
if ss<>'' then val(ss,kv,code);
end;
end;
end;
{==================================================================}
{Procedure search;}
{============================================================}

procedure sortirovka;
var i,j:byte;t:boolean;
begin
for i:=1 to k-1 do
for j:=k downto i+1 do
begin
t:=b[j].fam<b[j-1].fam;
if t then begin
m:=b[j]; b[j]:=b[j-1];b[j-1]:=m;
end;
end;
end;
{========================================================================}
begin
clrscr;
k:=0;{KOL-VO vkladchikov}
repeat
a[1]:='1.Ввод';
a[2]:='2.Вывод';
a[3]:='3.Редактирование';
a[4]:='4.Поиск';
a[5]:='5.Выход';
a[6]:='6.Сортировка';
clrscr;
textcolor(white);
gotoxy(26,8);
writeln('ИНФОРМАЦИЯ О ВКЛАДЧИКАХ БАНКА');
x:=30;y:=10;{gotoxy(1,1);}
for i:=1 to 6 do begin
gotoxy(x,y);
writeln(a[i]);
y:=y+1;
end;
gotoxy(30,10);
textcolor(green);
writeln(a[1]);
n:=10;s1:=1;x:=30;
repeat
ch:=readkey;
s:=n;
if ord(ch)=0 then begin cha1:=readkey;
if ord(cha1)=72 then n:=s-1;
if ord(cha1)=80 then n:=s+1;
if n=9 then n:=15;
if n=16 then n:=10;
textcolor(6);
gotoxy(x,s);
s1:=s-9;
writeln(a[s1]);
textcolor(17);
gotoxy(x,n);
s1:=n-9;
writeln(a[s1]);
end;
until ord(ch)=13;
case s1 of
1:Vvod(1,b);
2:Print(1,k,b);
3:Editor;
{ 4:Search;  }
5:exit;
6:sortirovka;
end;
until s1=7;
readln;
end.
 
D

Dock1100

У вас есть масив, с вкладчиками, считываем фамилию с клавы и ищем в масиве
Код:
for i:=1 to длинаЯ_масива do
if масив[i].фамилия=нужная_фамилия then выводим инфу
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!