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

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

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

 
 Ответить  Открыть новую тему 
> Процедура
rekrut
сообщение 4.04.2007 21:40
Сообщение #1


Новичок
*

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

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


Дана запись, потом вводятся компоненты и записываются в файл, надо сделать процедуру которая открывает файл и находит страну производителя, продукции которой больше всего в магазине:



Unit MODUL;
Interface
type magazin=record
     name,cont:string; {название товара и страна производитель (cont)}
     price:integer;   {цена товара}
     wyear:integer; {гарантия (лет)}
     End;{magazin}
     Procedure con;
Var
    f:file of magazin;
    frm:magazin;
Implementation
Procedure con;   {нахождение страны, товаров из которой больше всего}
Var i,max:integer;
Begin
     Assign(f,'D:\db.dat');
     reset(f);
      max:=1;
     for i:=1 to filesize(f) do
         read(f,frm);
         begin
              if max<frm.kod then max:=frm.kod;
         end;
     reset(f);
     for i:=1 to filesize(f) do
     begin
          read(f,frm);
          if frm.kod>=max then writeln('товара больше всего из ',frm.cont,');
     end;
     close(f);
end;
End. {Unit}



В самой процедуре не знаю как сделать поиск или как определить что товара больше всего из тако то страны . Помогите пожалста!!!

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


Гость






Сначала попробуй сделать поиск по форуму... Задание решалось практически слово в слово...
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 4.04.2007 21:43
Сообщение #3


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


...а совсем сначала переименуй тему.
заголовок должен быть информативным.
и вообще, почитай правила - нет желания делать замечания в каждой теме.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
rekrut
сообщение 4.04.2007 21:47
Сообщение #4


Новичок
*

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

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


базара нема ща поищу, а тему чето не пойму как переименовать ) ща тоже попробую
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
rekrut
сообщение 4.04.2007 23:30
Сообщение #5


Новичок
*

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

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


Похожего много нашел, но ничего толкового, даже про страны были так же как и у меня, но там не тот поиск совсем задействуется что нужен мне. Мнеб хотя бы теоритически сказать а дальше сам попробую
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.04.2007 23:44
Сообщение #6


Гость






function find_country: string;
var
  country_count: array[1 .. 100] of record
    country: string[20];
    count: integer;
  end;
  counter: integer;
  f: file of magazin;
  R: magazin;
  found: boolean;

begin
  counter := 0;
  assign(f, 'db.dat'); reset(f); { <--- Никаких проверок нет - добавишь сам }

  while not eof(f) do begin
    read(f, R);
    found := false;
    for i := 1 to counter do
      if country_count[i].country = R.cont then begin
        inc(country_count[i].count); found := true; break;
      end;

    // Не было найдено такой страны - добавляем ее в массив
    if not found then begin
      inc(counter);
      with country_count[counter] do begin
        country := R.cont; count := 1;
      end;
    end;

  end;
  close(f);

  // Ну, а теперь просто пройди по всему массиву country_count, найди
  // название страны, соответствующее максимальному значению поля count,
  // и верни его как результат функции
end;


Как видишь, я немного ограничил длину названия страны - до 20 символов, чтобы не забирать из стека слишком много места...

P.S. Набирал прямо здесь, без компилятора - код просто для того, чтобы показать идею !!!
 К началу страницы 
+ Ответить 
rekrut
сообщение 4.04.2007 23:54
Сообщение #7


Новичок
*

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

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


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

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

 

- Текстовая версия 24.07.2025 23:38
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"