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

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

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

 
 Ответить  Открыть новую тему 
> задача с текстовым файлом *, с игрушками
сообщение
Сообщение #1


Пионер
**

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

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


вот ещё одну задачу никак осилить не могу wacko.gif

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


тут вообще то удобней бы было использовать БД а не файл, хотя мы этого ещё не учили.
&
предположения такие(мысли в слух):

так я вижу структуру:

*************************************** ***********
* ID * Название игрушки * Цена р * Возраст. категория *
*************************************** ***********
* 1 * Конструктор Lego * 100 * 2-5 *
......................................................................................... и т.д

предпологаю сделать так (если так возможно):

загнать всё это в двухмерный массив(или в одномерный но с record'дами) и как то записать в файл... потом считывать с файла и в цыкле по "Цене"
вывести на Дисплей самый догогой продукт!

по дргуму пока ни вижу(глаза закрыты ещё) blink.gif

----
обясните как это сделать или как по другому поступить ? smile.gif

Сообщение отредактировано: Димас -


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
обясните как это сделать
Поиск - выдает вот эту тему: Расчётная работа. Помогите

Посмотри, как сделано там...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


лады сейчас попытаюсь написать smile.gif

Сообщение отредактировано: Димас -


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Пионер
**

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

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


ну хоть убей не могу разобратся в чужом коде по ссылке volvo wacko.gif


непойму как происходит процедура считывания с файла...
а что бы понять как оно считывается надо знать как оно туда записывается..

общем так написал эту задачу для начала без файла:

Program z1280b;

uses crt;

const n = 2; {количесво}

{-----------Запись------------}
type
Assort = record
title: string[20];{название}
price: integer;{Цена}
age1,age2: integer;{Возраст}
end;
{-----------end----------------}

var
info: array[1 .. n] of Assort;
f:text;
i,price,max:integer;
Begin
ClrScr;


{Вместо этого занесения в масив, мне надо что бы оно считывало с файла и присвоивало, НО КАК ??? }
info[1].title:='traktor';
info[1].price:=50;
info[1].age1:=7;
info[1].age2:=12;
info[2].title:='Lego';
info[2].price:=77;
info[1].age1:=4;
info[1].age2:=7;



{-------------from file----------------}
{ assign(f,'data.txt'); {file}
reset(f); }
{----------------end-------------------}
{0}
price:=0;
max:=0;

{------------цыкл для того что бы узнать наибольшую цену------------------}
for i:=1 to n do
Begin
if (price < info[i].price)
then
Begin
price:=info[i].price;
max:=i;
end;
end;

{----------------end--------------}

writeln(info[max].title,' ',info[max].price);
readkey;
end.


Эх blink.gif


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


Гость






А ты до конца ту тему дочитал? Там же в последнем посте что написано?
Цитата
Как и обещал теперь прога читает файл с данными
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

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

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


Цитата(volvo)
А ты до конца ту тему дочитал? Там же в последнем посте что написано?


разумеется брал азимут на пост в той теме: Jahnerus 18.11.2004 17:15 Сообщение #7

но не разобрался:(


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Тогда, если ты хочешь делать примерно такой файл, как описал в первом посте - то тебе пригодится вот эта тема: Заполнение полей записи из файла

Использовать то, что там написано - так: читаешь строку из файла, разбиваешь на составляющие (строки/числа), и заносишь данные в СВОЮ структуру... Для твоего случая это может выглядеть примерно так:

i := 1;
while not eof(f) do begin
readln(f, s);
with info[i] do begin
title := get_str(s, 1); { название }
price := StrInt(get_str(s, 2)); { цена }
age1 := StrInt(get_str(s, 3));
age2 := StrInt(get_str(s, 4)); { возраст }
end;
inc(i);
end;


при структуре файла:
  1:Конструктор Lego    :100:  2:  5
2:Другой конструктор :150: 4: 7
и т.д.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Пионер
**

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

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


Посидел я пасатрел и понял что для меня это будет сложно...

решил написать по своему....

Итак написал две проги. Первая - записывает в типизированый файл данные, вторая считывает эти данные
и считает наибольшую цену...


вот исходник первой проги:

 
Program Z1280b;

uses crt;

const n = 5;

type
Assort = record
title : string; {Hазвание}
price : integer; {Цена}
age1,age2 : integer; {Возрастные границы}
end;

var
f: file of Assort;

mass:array[1..n] of Assort;

i:integer;

{---------------main program----------------}
Begin
Clrscr;
textcolor(4);
writeln(' ____________________________________________________________');
textcolor(7);
writeln('Програма для ввода данных в массив и запись в файл data.txt ');
textcolor(4);
writeln(' ____________________________________________________________');

textcolor(7);
{---Ввод данных в массив---}
for i:=1 to n do
begin
writeln('Введите название игрушки, для id=',i);
readln(mass[i].title);

writeln('Введите цену игрушки, для id=',i);
readln(mass[i].price);

writeln('Введите первую возрастную границу игрушки, для id=',i);
readln(mass[i].age1);

writeln('Введите вторую возрастную границу игрушки, для id=',i);
readln(mass[i].age2);
textcolor(4);
writeln(' ____________________________________________________________');
textcolor(7);
end;
{------------------------}

{________________Действия с файлом____________________}
assign(f,'data.txt');

rewrite(f);

{Цыкл записи с массива в типизированый файл}
for i:=1 to n do
begin
write(f,mass[i]);
end;

close(f);
{______________________________________________________}

{-----------Цыкл для вывода с массива уже введенных данных-----------------}
for i:=1 to n do
begin
writeln(mass[i].title,' ',mass[i].price,' ',mass[i].age1,'-',mass[i].age2);
textcolor(2);
writeln(' ____________________________________________________________');
textcolor(7);
end;
{------------------------}

writeln('press key');
readkey;
end.



а это вторая:
 
Program Z1280b;

uses crt;

const n = 5;

type
Assort = record
title : string; {Hазвание}
price : integer; {Цена}
age1,age2 : integer; {Возрастные границы}
end;

var
f: file of Assort;

mass:array[1..n] of Assort;

i,max,price:integer;

{---------------main program----------------}
Begin
Clrscr;
textcolor(4);
writeln(' ____________________________________________________________');
textcolor(7);
writeln('Програма для чтения данных из файла data.txt и вывод на дисплей:');
writeln('Название,цену,возрастные границы - Самой дорогой игрушки!');
textcolor(4);
writeln(' ____________________________________________________________');

textcolor(7);

{________________Действия с файлом____________________}
assign(f,'data.txt');

reset(f);

{Цыкл чтения из типизированого файла и занесения данных в массив}
for i:=1 to n do
begin
read(f,mass[i]);
end;

close(f);
{______________________________________________________}

{-----------Цыкл для вывода с массива данных которые были прочитаны из файла-----------------}
textcolor(2);
writeln('Ниже таблица отображения всех данных с файла:');
Writeln('*************************************************************************');
textcolor(7);
textcolor(4); writeln('id | Название | цена | Возрастыне границы |');
textcolor(2);
Writeln('*************************************************************************');
textcolor(7);
{------------------------цыкл для вывода на дисплей всех данных-----------------------------}
for i:=1 to n do
begin
writeln(' ',i,' | ',mass[i].title,' | ',mass[i].price,' | ',mass[i].age1,' - ',mass[i].age2,' |');
textcolor(2);
writeln('____________________________________________________________');
textcolor(7);
end;
{------------------------------------------------------------------------------}

{Цыкл для вичисления самой дорогой игрушки}
for i:=1 to n do
Begin
if (price < mass[i].price) then
Begin
price:=mass[i].price;
max:=i;
end;

end;
{-----------------------------------------}
textcolor(2);
writeln('Из них самый дорогой конструктор:');
textcolor(4);
writeln('-------------------------------------------------------------------------');
textcolor(7);

writeln(' ',max,' | ',mass[max].title,' | ',mass[max].price,' | ',mass[max].age1,' - ',mass[max].age2,' |');

textcolor(4);
writeln('-------------------------------------------------------------------------');

writeln('press key');
readkey;
end.



вот м всёsmile.gif

--------------------------------------------------------------------------------------------------------------------------------------
Но меня интересует такой вопрос blink.gif :

Почему структура файла такова????(как на скриншоте который я выложил ниже)
Изображение

Что это за система...м? mega_chok.gif

Сообщение отредактировано: Димас -


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Помощник капитана
****

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

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


Прости, но скриншот не работает..

Добавлено через 5 мин.
Но я примерно догадался.. smile.gif При записи record в текст. файл так будет всегда..Это тебе не text! smile.gif и при считывании record будет все это хватать! Надеюсь понятно? smile.gif blum.gif


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Пионер
**

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

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


Ссылку на скриншот поправил:)

Не ну я походу дела заметил что оно его как то не так сохранило в файл...

прото так для себя хотел узнать, как оно его в файл криптует?


ладно спасибо! yes2.gif


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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