2 / 2 / 2
Регистрация: 27.10.2012
Сообщений: 110
1

Вывести названия наиболее дорогих игрушек

11.05.2013, 11:30. Показов 3455. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан файл f, содержащий сведения об игрушках: указывается название игрушки (например, кукла, кубики, мяч, конструктор и т.д.), ее стоимость в копейках и возрастные границы детей, для которых игрушка предназначена (например, для детей от двух до пяти лет). Получить следующие сведения:
названия наиболее дорогих игрушек (цена которых отличается от цены самой дорогой игрушки не более чем на 1 руб.);
само создание файла сделал. а как дальше не могу догнать .Помогите пожалуйста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Type Igr = record {Запись, описывающая игрушку}
   title : string[20]; {Название}
   cena: word; {Стоимость}
   year : word; {Возраст}
 end;
 cat = file of igr; {тип - каталог игрушек}
 Var
   f : cat;
   Assortim : Igr;
   fnm, aut : string;
   y : word;
   i,n:integer;
 Begin
   writeln ('Vvedite imia faila: ');
   readln (fnm); {Получаем имя файла для создания }
   assign (f, fnm); {связываем файл с именем на носителе}
   rewrite (f); {открываем файл для записи (создаём новый)}
   write('vvedite kol. zapisey: '); readln(n);
   for i:=1 to n do
     begin
   {ввод данных}
       writeln ('Название:');
       readln (Assortim.title);
       writeln ('Цена:');
       readln (Assortim.cena);
       writeln ('Возраст:');
       readln (Assortim.year);
       write (f, Assortim); {пишем структуру в файл}
    end;
   close (f); {закрываем файл, чтобы сохранить изменения }
   reset (f); {открываем файл для чтения }
   while not eof (f) do {читаем пока не конец файла}
     begin
       read (f, Assortim); {считываем очередную запись}
       if (Assortim.cena<=4) and (Assortim.year>=5) then {если она удовлетворяет условиям}
         writeln (Assortim.title) {выводим название игрушки}
      end;
   close (f); {закрываем файл}
 end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2013, 11:30
Ответы с готовыми решениями:

Получить список наиболее дорогих игрушек
Помогите пожалуйста решить задачу) Сведения об игрушках,хранящихся на складе детского...

Вывести название самых дорогих игрушек
Сформирована переменная Assortim, содержащая сведения об игрушках: указано стоимость игрушки её...

Вывести названия игрушек, которые подходят детям N лет, и стоимость которых не превышает M.
Создать файл f с информацией про игрушки: название, стоимость, возрастные рамки детей, для которых...

Получить названия игрушек для детей от 4 до 10 лет
народ помогите плз. решите задание- 2 фото-в 1 фото дано само задание (там их несколько-мне нужно...

4
74 / 50 / 29
Регистрация: 30.08.2012
Сообщений: 143
11.05.2013, 18:15 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Вроде исправил:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
type igr=record {Запись, описывающая игрушку}
  title:string[20]; {Название}
  cena:word; {Стоимость}
  year:word; {Возраст}
 end;
cat = file of igr; {тип - каталог игрушек}
var f:cat;
 Assortim:Igr;
 fnm,aut:string;
 y:word;
 i,n,mxcena:integer;
begin
 write('Имя файла: '); readln(fnm); {Получаем имя файла для создания }
 assign(f,fnm); {связываем файл с именем на носителе}
 rewrite(f); {открываем файл для записи (создаём новый)}
 write('Кол-во записей: '); readln(n);
 for i:=1 to n do begin
  write('Название: '); readln(Assortim.title);
  write('Цена: '); readln(Assortim.cena);
  write('Возраст: '); readln(Assortim.year);
  if Assortim.cena>mxcena then mxcena:=Assortim.cena;
  write(f,Assortim); {пишем структуру в файл}
 end;
 close(f); {закрываем файл, чтобы сохранить изменения }
 reset(f); {открываем файл для чтения }
 while not eof(f) do begin
  read(f,Assortim); {считываем очередную запись}
  if Assortim.cena>=mxcena-100 then writeln(Assortim.title);
 end;
 close(f);
end.
1
2 / 2 / 2
Регистрация: 27.10.2012
Сообщений: 110
11.05.2013, 19:45  [ТС] 3
maksim32, Спасибо что подали идею, но вот как сделать что бы именно разница была в 1 рубль то)
а так помойму он все будет просто выводить.
0
74 / 50 / 29
Регистрация: 30.08.2012
Сообщений: 143
11.05.2013, 21:54 4
Ну, так разница равна рублю, т.к. я нахожу в цикле ввода записей максимальную цену - mxcena. А во время считывания записей из файла я вывожу те названия игрушек, которые меньше рубля, а так как цена измеряется в копейках, то я от максиума отнимаю 100:
Цитата Сообщение от maksim32 Посмотреть сообщение
Pascal
1
if Assortim.cena>=mxcena-100 then writeln(Assortim.title);

Разве не верно?
1
2 / 2 / 2
Регистрация: 27.10.2012
Сообщений: 110
12.05.2013, 06:04  [ТС] 5
maksim32, Логично =) . Спасибо.
0
12.05.2013, 06:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2013, 06:04
Помогаю со студенческими работами здесь

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

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

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

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru