Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2010, 20:03   #1
Mosya
 
Регистрация: 20.01.2010
Сообщений: 8
По умолчанию Поиск на Паскале

Написала программу на Паскале "Информация о вкладчиках банка" с менюшкой, не хватает только поиска по фамилии, не помню как это делается. Помогите!!!)
Код:
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('?Јэ?ї *?эятўр*Rчяў¬? (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.
Mosya вне форума Ответить с цитированием
Старый 25.05.2010, 22:58   #2
Mosya
 
Регистрация: 20.01.2010
Сообщений: 8
По умолчанию

кто-нибудь отзовитесь!
Mosya вне форума Ответить с цитированием
Старый 28.05.2010, 20:06   #3
Mosya
 
Регистрация: 20.01.2010
Сообщений: 8
По умолчанию

Помогите мне с Паскалем!!!
Mosya вне форума Ответить с цитированием
Старый 24.10.2010, 00:47   #4
Mosya
 
Регистрация: 20.01.2010
Сообщений: 8
По умолчанию

мне все еще нужен поиск
Mosya вне форума Ответить с цитированием
Старый 24.10.2010, 01:18   #5
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Проходитесь по списку записей и ищите нужную фамилию!
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 24.10.2010, 03:38   #6
Mosya
 
Регистрация: 20.01.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от XeruH Посмотреть сообщение
Проходитесь по списку записей и ищите нужную фамилию!
Ну а если серьезно....можешь написать процедуру поиска для даной програмки?
Mosya вне форума Ответить с цитированием
Старый 24.10.2010, 10:20   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Ну а если серьезно....можешь написать процедуру поиска для даной програмки?
да куда уж серьёзнее!
запросите нужную фамилию (которую надо найти)
дальше, как совершенно справедливо было сказано выше, проходите в цикле по всем записям, и, если фамилия совпадает, выводите найденную запись. всё.
примерно так:
Код:
{============================================================}
procedure Search();
var i:integer;
  FamSearch:string;
begin
  window(1,1,70,60);
  clrscr;
  WriteLn;
  Write('Введите фамилию для поиска: ');
  Readln(FamSearch);
  window(1,1,70,60);
  clrscr;
  textcolor(white);
  for i:=1 to k do 
     if b[i].fam = FamSearch then begin
         vivodnogo(i);
         readln;
     end;
end;
а вообще код написан не очень аккуратно. Много неиспользуемых переменных, нельзя увидеть список (только по одному).

Кроме того, вы явно взяли чужую работу, где работа была со списком студентов (учащихся) и использовали эту работу, переделав под себя. Но кое-что забыли. Зачем у Вас в записи о вкладчике массив оценок?!!

а ещё, вы явно не понимаете, что такое параметры процедуры/функции и что такое глобальные переменные! Иначе Вы бы не передавали в процедуру параметры, которые там не используются!

и ещё, рекомендую описание полей записи fam,name,work,street заменить на строчки фиксированной длины. Это позволит, при необходимости, сохранять записи в типизированный файл (ну и читать их оттуда, разумеется):
Код:
type
trec=record
             fam,name,work:string[30];
             kv,house:integer;
             street:string[50];
             mark:array[1..9] of integer;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
привет всем! помогите пожалуйста решить две задачи на паскале. я в паскале полный ноль. Пищенок Саша Паскаль, Turbo Pascal, PascalABC.NET 5 20.01.2009 13:46
Поиск StartMis Общие вопросы Delphi 5 26.08.2008 13:48
Поиск Volkogriz Общие вопросы Delphi 5 22.04.2008 10:59
Поиск Vital_k Паскаль, Turbo Pascal, PascalABC.NET 4 22.02.2008 13:01
поиск Lonix Общие вопросы Delphi 2 04.04.2007 01:59