1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Дано файл Assort , содержащий свединья об игрушках: указывается название игрушки, ее стоимость в рублях и возрастные границы(например, игрушка может предназаначатся для детей от двух до пяти лет) Определить: б.) Стоимость самого дорогого конструктора
тут вообще то удобней бы было использовать БД а не файл, хотя мы этого ещё не учили. & предположения такие(мысли в слух):
так я вижу структуру:
*************************************** *********** * ID * Название игрушки * Цена р * Возраст. категория * *************************************** *********** * 1 * Конструктор Lego * 100 * 2-5 * ......................................................................................... и т.д
предпологаю сделать так (если так возможно):
загнать всё это в двухмерный массив(или в одномерный но с record'дами) и как то записать в файл... потом считывать с файла и в цыкле по "Цене" вывести на Дисплей самый догогой продукт!
по дргуму пока ни вижу(глаза закрыты ещё)
---- обясните как это сделать или как по другому поступить ?
Сообщение отредактировано: Димас -
--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
ну хоть убей не могу разобратся в чужом коде по ссылке volvo
непойму как происходит процедура считывания с файла... а что бы понять как оно считывается надо знать как оно туда записывается..
общем так написал эту задачу для начала без файла:
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;
{------------цыкл для того что бы узнать наибольшую цену------------------} for i:=1 to n do Begin if (price < info[i].price) then Begin price:=info[i].price; max:=i; end; end;
Тогда, если ты хочешь делать примерно такой файл, как описал в первом посте - то тебе пригодится вот эта тема: Заполнение полей записи из файла
Использовать то, что там написано - так: читаешь строку из файла, разбиваешь на составляющие (строки/числа), и заносишь данные в СВОЮ структуру... Для твоего случая это может выглядеть примерно так:
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;
Посидел я пасатрел и понял что для меня это будет сложно...
решил написать по своему....
Итак написал две проги. Первая - записывает в типизированый файл данные, вторая считывает эти данные и считает наибольшую цену...
вот исходник первой проги:
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;
{-----------Цыкл для вывода с массива уже введенных данных-----------------} 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;
{-----------Цыкл для вывода с массива данных которые были прочитаны из файла-----------------} 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);
-------------------------------------------------------------------------------------------------------------------------------------- Но меня интересует такой вопрос :
Почему структура файла такова????(как на скриншоте который я выложил ниже)
Что это за система...м?
Сообщение отредактировано: Димас -
--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
Добавлено через 5 мин. Но я примерно догадался.. При записи record в текст. файл так будет всегда..Это тебе не text! и при считывании record будет все это хватать! Надеюсь понятно?