IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> записи - структура (пару вопросов), пару вопросов
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: max

Репутация: -  0  +


Доброго времени суток. Очень требуется Ваша помощь.
Возникла маленькая проблема в данном коде, дело в том что я незнаю как поставить правильно запрос в данной процедуре (в основном коде я её выделил):


Код
procedure search;
  var j,men:integer;
   begin
              reset(meter);
    read(meter,i);
    close(meter);
              reset(t);
   j:=1;
   read(t,str);
   men:=str.cost;
    for j:=2 to i do begin
    read(t,str);
if men>deposit.cost then men:=str.client.cost;[B]<<<проблема тут(задание- см.ФОТО[/B]
    end;
   close(t);
             reset(t);
             for j:=1 to i do
    begin
    read(t,str);
     if min=str.cost then
      begin
      clrscr;
    writeln(j,' firm - ',str.firm);
    writeln('   cena- ',str.cost);
    writeln('   type - ',str.type);
    writeln('   money ');
    writeln('   deposit - ',str.client.deposit);
    writeln('   procent - ',str.client.proc);
    writeln('    ne vipl summa - ',str.client.npaid);
       TextColor(15);
       readln;
       end;
    end;
    TextColor(15);
    writeln(' press any key ');
    readln;
   end;


Изображение
Я думаю тут особо копатся в программе не надо, что бы понят как сделать правильно
Надеюсь на вашу помощь

ВЕСЬ КОД ПРОГРАММЫ:

Код
Program felkurs;    
uses crt,graph;
type
      person =record
      proc:byte;
      deposit:byte;
      npaid:integer;
   end;

     structure= record
     firm:string[25];
     cost:integer;
     type:string[25];
     client:person;
  end;
constructions = file of structure;
little = file of byte;
var i,v:byte;
       t:constructions;
       meter:little;
       str:structure;

procedure enter;

label 1,2,3,4,5,6,7;
begin
   clrscr;
   writeln('  enter type stroeniya');
   6:readln(str.type);
   if str.type='' then
    begin
    TextColor(9+111);
    writeln('  vi ne vveli type');
    writeln;
    TextColor(15);
    writeln('  poprobuyte vvesti snova');
    goto 6;
    end;
    writeln('  enter ',i,' cost');
    7:readln(str.cost);
    if str.cost='' then
    begin
    TextColor(9+111);
    writeln(' vi ne vveli cost');
    writeln;
    TextColor(15);
    writeln(' poprobuyte vvesti snova');
    goto 7;
    end;
   writeln('  vvedite firm');
   3:readln(str.firm);
   if str.firm ='' then
    begin
    TextColor(9+111);
    writeln(' vi ne vveli firm ');
    writeln;
    TextColor(15);
    writeln('  poprobuyte vvesti snova');
    goto 3;
    end;
   writeln('  vvedite client');
   1:writeln('  npaid');
   readln(str.client.npaid);
      if str.client.npaid >=32 then
       begin
       TextColor(9+111);
       writeln(' error of input  ');
       TextColor(15);
       goto 1;
       end;
   2:writeln('  deposit');
   readln(str.client.deposit);
   if str.client.deposit >=13 then
       begin
       TextColor(9+111);
       writeln(' error of input   ');
       TextColor(15);
       goto 2;
       end;
         writeln('    proc');
   readln(str.client.proc);
   writeln;
   TextColor(15);
   writeln('  press any key ');
   readln;
  end;

  procedure klient;
  begin
  i:=1;
   rewrite(meter);
   write(meter,i);
   close(meter);
             rewrite(t);
   enter;
   write(t,str);
   close(t);
   end;

            procedure addition;
  begin
   reset(meter);
   read(meter,i);
   close(meter);
   i:=i+1;
   rewrite(meter);
   write(meter,i);
   close(meter);
    reset(t);
   seek(t,filesize(t));
   enter;
   write(t,str);
   close(t);
   end;

   procedure output;
  var m,j,s:integer;
  begin
  s:=2;
            reset(meter);
  read(meter,i);
  close(meter);
            clrscr;
    for j:=1 to i do
begin
    reset(t);
    read(t,str);
    TextColor(2);
    writeln(j,' firm - ',str.firm);
    writeln('   cena- ',str.cost);
    writeln('   type - ',str.type);
    writeln('   money ');
    writeln('   deposit - ',str.client.deposit);
    writeln('   procent - ',str.client.proc);
    writeln('    ne vipl summa - ',str.client.npaid);
     if (j=s) and (s<i) then
       begin
       writeln;
       TextColor(15);
       writeln(' next');
       TextColor(15);
       readkey;
       s:=s+2;
       m:=i-j-2;
       clrscr;
    end;
end;
  writeln;
  TextColor(15);
   writeln('  press any key');
   readkey;
close(t);
end;



            [B]procedure search;
  var j,men:integer;
   begin
              reset(meter);
    read(meter,i);
    close(meter);
              reset(t);
   j:=1;
   read(t,str);
   men:=str.cost;
    for j:=2 to i do begin
    read(t,str);
      if men>deposit.cost then men:=str.client.cost;
    end;
   close(t);
             reset(t);
             for j:=1 to i do
    begin
    read(t,str);
     if min=str.cost then
      begin
      clrscr;
    writeln(j,' firm - ',str.firm);
    writeln('   cena- ',str.cost);
    writeln('   type - ',str.type);
    writeln('   money ');
    writeln('   deposit - ',str.client.deposit);
    writeln('   procent - ',str.client.proc);
    writeln('    ne vipl summa - ',str.client.npaid);
       TextColor(15);
       readln;
       end;
    end;
    TextColor(15);
    writeln(' press any key ');
    readln;
   end;[/B]

procedure searchname;
var client:string;
     j,k:integer;
     label 1;
  begin
            reset(meter);
  read(meter,i);
  close(meter);
  clrscr;
  TextColor(15);
  writeln('  enter client');
  TextColor(15);
  1: readln(client);
  if client='' then
    begin
    TextColor(9+111);
    writeln('  vi ne vveli client');
    writeln;
    TextColor(15);
    writeln('  vvedite snova');
    goto 1;
    end;
  reset(t);
   k:=0;
   for j:=1 to i do
   begin
    read(t,str);
    if client=str.firm then
     begin
     k:=k+1;
     TextColor(15);
    writeln(j,' firm - ',str.firm);
    writeln('   cena- ',str.cost);
    writeln('   type - ',str.type);
    writeln('   money ');
    writeln('   deposit - ',str.client.deposit);
    writeln('   procent - ',str.client.proc);
    writeln('    ne vipl summa - ',str.client.npaid);
     writeln('for continue press any key');
     readln;
     end;
     end;
    if k=0 then
    begin
    TextColor(15);
    writeln('  isn.t found');
    end;
    writeln;
    TextColor(13);
    writeln('  press any key');
    readln;
    end;

          begin

assign(t,'str.to');
assign(meter,'meter.to');
repeat
clrscr;
TextColor(15);
writeln('  choose variant');
TextColor(15);
writeln('  1-enter new structure');
writeln('  2-add structure');
writeln('  3-output all data');
writeln('  4-search clients deposit < str');
writeln('  5-search at name of client');
TextColor(15);
writeln('  6-quit');
readln(v);
case v of
1:receipt;
2:addition;
3:output;
4:search;
5:searchname;
end;
until v=6;
         end.




Сообщение отредактировано: felmor -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






У тебя не сказано, что надо искать какие-то минимумы. Достаточно:

reset(t);
while not eof(t) do begin
read(t, str);
if str.cost > str.client.deposit then begin
{ Здесь выводишь нужные данные, условие выполнено }
end;
end;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: max

Репутация: -  0  +


спасибо за поддержку
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.04.2024 23:09
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name