Страница 1 из 2

Задача на Pascal'e. Про файлы...

Добавлено: 22 мар 2008, 22:43
Impulsive
Задача на Файлы
#4
type цена=record руб:0..maxint;
коп:0..99 end;
прейскурант=file of цена;
Описать процедуру min(П,Ц), присваивающую параметру Ц наименьшую цену из непустого прейскуранта П.

В общем как открыть, закрыть файл; и связать тестовой документ с паскалем знаю.
А вот как написать то, чтоб он в этом текстовом документе нашел самую маленькую цену и вывел на экран эту цену и название тавара Незнаю!! Помогите кто может! Код написать :) Благадарю....

Re: Задача на Pascal'e. Про файлы...

Добавлено: 23 мар 2008, 12:01
MOTOCoder
Это задача на типизированные, а не на текстовые файлы.
Вообще нужно читать последовательно все элементы файла и применять к ним стандартный алгоритм поиска минимального элемента.

Re: Задача на Pascal'e. Про файлы...

Добавлено: 23 мар 2008, 17:51
Serge_Bliznykov
СОРРИ ЗА ОФФТОП!
MOTOCoder, не, что я вижу? Вы впервые не приводите полное решение? ;-))Концепция изменилась, или просто устали?..

Impulsive, полностью согласен с MOTOCoder, поищите хотя бы тут на форуме или погуглите на тему record
Надеюсь, как найти в последовательности минимальный элемент за один проход вопросов нет?!
2) похоже, тип record недоописан. я не вижу названия товара!
tips: (при очередном запоминании минимального элемента дополнительно сохраняйте имя товара, и, если надо выводить, номер товара..)

Re: Задача на Pascal'e. Про файлы...

Добавлено: 23 мар 2008, 18:08
MOTOCoder
Serge_Bliznykov писал(а):СОРРИ ЗА ОФФТОП!
MOTOCoder, не, что я вижу? Вы впервые не приводите полное решение? ;-))Концепция изменилась, или просто устали?..
Концепция изменилась, доканали некоторые (не будем показывать пальцем :) ).
Да и к тому же, тут действительно все просто.

Re: Задача на Pascal'e. Про файлы...

Добавлено: 23 мар 2008, 20:23
Impulsive

Код: Выделить всё

uses crt;   
const n=10;   
type cena=record       //собственно запись   
          tovar:string[20];//добавил товар, а то непонятно цена чего   
          rub:0..maxint;   
          kop:0..99;   
          stoim:real;   //добавил стоимость, чтобы узнать, что дешевле   
          end;   
     preis=array[1..n]of cena; //массив записей, собств. прейскурант   
var pr :p reis;   
    i,k:integer;   
    min:real;   
    f:file of cena;  //типизированный файл для хранения информации   
procedure MINCENA(k:integer;pr :p reis; var min:real); //процедура   
var i:integer;   
begin   
for i:=1 to k do   
   begin   
    pr[i].stoim:=pr[i].rub+pr[i].kop/100; //находим стоимость   
  end;   
min:=pr[1].stoim;   
for i:=2 to k do   
if pr[i].stoim<min then   
    begin   
      min:=pr[i].stoim;  //ищем минимум   
     end;   
end;   
begin    //начало программы   
clrscr;   
for i:=1 to n do   
    begin   
      write('tovar:');readln(pr[i].tovar);//вводим данные в прейскурант   
      write('rubli:');readln(pr[i].rub);   
      write('kopeiki:');readln(pr[i].kop);   
    end;   
assign(f,'Preis.txt');//создаем файл для хранения информации   
rewrite(f);      //открываем файл для записи   
for i:=1 to n do   
    begin   
      write(f,pr[i]);  //вводим в него тнформацию   
    end;   
close(f);         //сохраняем файл   
reset(f);         //открываем его для чтения   
k:=0;   
while not eof(f) do   
   begin   
     k:=k+1;   
     read(f,pr[k]);  //считываем данные из файла в массив   
   end;   
close(f);           //закрываем файл   
MINCENA(n,pr,min);  //находим минимум   
writeln;   
write('Min cena=',min:5:2);   
readln   
end.
Можно ее переделать без процедуры??? :D :D :D

Re: Задача на Pascal'e. Про файлы...

Добавлено: 23 мар 2008, 20:39
MOTOCoder
Я бы вообще сделал по-другому - не записывал бы данные в массив а обработал бы сразу.
Чтобы переделать это без процедуры, нужно добавить а var переменные

Код: Выделить всё

k:integer;pr :p reis; var min:real
потом вместо MINCENA(n,pr,min); //находим минимум
присвоить переменным значения параметров процедуры и далее ввести весь код этой процедуры.

Re: Задача на Pascal'e. Про файлы...

Добавлено: 23 мар 2008, 20:47
Serge_Bliznykov
Impulsive, извините, за резкость! Вот странный Вы всё же человек!
Ну раз Вам на другом форуме Puporev[b/] написал код.
То почему Вы там же (его) не попросите помочь?...
К чему эти метания с форума на форум?..
Иил думаете, мы тут решим, что это Вы сами написали?! ;-)

Re: Задача на Pascal'e. Про файлы...

Добавлено: 23 мар 2008, 21:09
Impulsive
Ну незнаю... Я не пишу - что сам написал. (если прошу переделать - уже подразумеваеться, что не сам делал)

Re: Задача на Pascal'e. Про файлы...

Добавлено: 23 мар 2008, 21:28
Serge_Bliznykov
ну, переделать всегда легче, чем сделать...
а вот как это будет соотносится с тем, что у вас задание - именно сделать процедуру?
&quot писал(а):Описать процедуру min(П,Ц), присваивающую параметру Ц наименьшую цену из непустого прейскуранта П.

Re: Задача на Pascal'e. Про файлы...

Добавлено: 23 мар 2008, 21:31
Serge_Bliznykov
всё, что в процедуре от begin до end
переносите в то место, откуда процедура вызывается... убираете procedure MINCENA
всё.