Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2016, 15:15   #1
destra1j
Пользователь
 
Регистрация: 04.05.2016
Сообщений: 47
По умолчанию [pascalABC.NET] Тип данных record: Получить перечень средней стоимости товаров, название самого дорогого и самого дешевого товара

• перечень средней стоимости по каждому из товаров упорядоченный по его количеству;
• название самого дорогого и самого дешевого товара:
• перечень товаров, цена которых находится в диапазоне, указанного пользователем. это то что я должен выжать с этого кода
Код:
program pract;
type Production=record
 kod_tovara:string;
 nazva:string;
 firma:string;
 data_vig:integer;
 kilk:integer;
 cena:integer;
 end; 
var
Sklad :array [1..3] of Production;
i,n:integer;
begin
for I:=1 to 3 do 
   begin
   writeln ('введите сведения о товаре'); 
   
   writeln ('введите номер товара');
   readln (Sklad[i].kod_tovara); 
   writeln ('введите название'); 
   readln (Sklad[i].nazva); 
   writeln ('введите фирму'); 
   readln (Sklad[i].firma); 
   writeln ('введите дату производства'); 
   readln(Sklad[i].data_vig); 
   writeln ('введите введите количество'); 
   readln(Sklad[i].kilk); 
   writeln ('введите цену'); 
   readln (Sklad[i].cena);
   end;
 writeln ('ввод закончен');
 writeln;
 writeln('введите цену товара');
 readln(n);
 for I:=1 to 3 do 
      if Sklad[i].cena=n then 
         writeln( Sklad[i].kod3_tovara);
end.
цену я сделал но не могу понять как найти максимальное и минимальное значение
destra1j вне форума Ответить с цитированием
Старый 12.05.2016, 15:52   #2
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

поиск максимального элемента массива
Код:
const n=10;
var 
Max:integer;
mas: array[1..n] of integer;
..........
Max:=mas[1];
 for I:=2 to n do
  if mas[i] > max then  max:= mas[i];
для минимального знак нужно будет поменять
Код:
mas[i] < min
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 12.05.2016, 16:27   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
цену я сделал
не сделали. Вам же нужно
Цитата:
перечень товаров, цена которых находится в диапазоне, указанного пользователем
А Вы сделали поиск только тех товаров, цена которых указана (а не диапазон).


поиск самого дорогого и самого дешевого товара
Код:
var indexMin, indexMax : integer;
,......

    indexMin := 1; indexMax := 1;
    for i:=2 to n do begin
        if Sklad[i].Cena>Sklad[indexMax].cena then indexMax:=i;
        if Sklad[i].Cena<Sklad[indexMin].cena then indexMin:=i;
    end;
   WriteLn('Самый дешёвый товар - ',Sklad[indexMin].nazva,' с ценой = ',Sklad[indexMin].cena);
   WriteLn('Самый дорогой товар - ',Sklad[indexMax].nazva,' с ценой = ',Sklad[indexMax].cena);

p.s. чтобы каждый раз не заполнять массив данными, сделайте сохранение в типизированный файл и при открытии - считывайте оттуда.
Чтобы можно было забить хотя бы 20-30 единиц товара, а не жалкие 3 штуки, как у Вас...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.05.2016, 21:08   #4
destra1j
Пользователь
 
Регистрация: 04.05.2016
Сообщений: 47
По умолчанию

три штучки это я так для проверки поставил
destra1j вне форума Ответить с цитированием
Старый 12.05.2016, 21:13   #5
destra1j
Пользователь
 
Регистрация: 04.05.2016
Сообщений: 47
По умолчанию

на счет цены да протупил но диапазон это получается пользователь вводит два значения и все цены которые входят в этот диапазон выводятся на экран но как мне это реализовать в коде возможно запросит к примеру переменную k как начало диапазона а потом запросить переменную n как конец диапазона если так то можно сделать цыкл
Код:
for I:=n to k do
и в нем сделать вывод на єкран но как мне упорядчить по количеству?
destra1j вне форума Ответить с цитированием
Старый 12.05.2016, 23:17   #6
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от destra1j Посмотреть сообщение
Код:
for I:=n to k do
плохая идея
как то так нужно вам
Код:
for i:=1 to 3 do begin
 if (Sklad[i].cena<n) and (Sklad[i].cena>k) then 
   writeln( Sklad[i].kod3_tovara);
Цитата:
Сообщение от destra1j Посмотреть сообщение
как мне упорядчить по количеству?
сортировок целая туча в интернете выбирайте любой понравившийся алгоритм и в вперед
например пузырьковая
Терпение!Дежурный экстрасенс скоро свяжется с вами!

Последний раз редактировалось Dvoishnik; 12.05.2016 в 23:35.
Dvoishnik вне форума Ответить с цитированием
Старый 12.05.2016, 23:18   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

диапазон это просто:
Код:
 repeat 
   writeln('введите диапазон цен товара (от и до):');
   readln(n,m);
 until m>=n; 
 for I:=1 to 3 do 
      if (Sklad[i].cena>=n) and (Sklad[i].cena<=m) then 
         writeln( Sklad[i].kod3_tovara);
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка, содержащая текст. Найти длину самого короткого слова и самого длинного слова. KorsD Microsoft Office Excel 3 16.05.2015 04:22
MSSQL расчет средней стоимости материала ТипичныйСтудент Помощь студентам 27 01.07.2013 12:22
тип данных Записи (record) Minerva777 Паскаль, Turbo Pascal, PascalABC.NET 1 13.10.2012 17:23
как совместить вставку данных формы с копированием данных самого листа? serikov Microsoft Office Excel 0 11.10.2011 10:20
Pascal//определить длину самого короткого и самого длинного слова в строке ShnurOK Помощь студентам 2 16.12.2007 10:43