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

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

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

 
 Ответить  Открыть новую тему 
> Процедура
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






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


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

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

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


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


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


Новичок
*

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

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


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


Новичок
*

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

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


Похожего много нашел, но ничего толкового, даже про страны были так же как и у меня, но там не тот поиск совсем задействуется что нужен мне. Мнеб хотя бы теоритически сказать а дальше сам попробую
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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. Набирал прямо здесь, без компилятора - код просто для того, чтобы показать идею !!!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


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

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

 





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