Страница 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.
Можно ее переделать без процедуры???

Re: Задача на Pascal'e. Про файлы...
Добавлено: 23 мар 2008, 20:39
MOTOCoder
Я бы вообще сделал по-другому - не записывал бы данные в массив а обработал бы сразу.
Чтобы переделать это без процедуры, нужно добавить а
var переменные
потом вместо 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
ну, переделать всегда легче, чем сделать...
а вот как это будет соотносится с тем, что у вас задание - именно сделать процедуру?
" писал(а):Описать процедуру min(П,Ц), присваивающую параметру Ц наименьшую цену из непустого прейскуранта П.
Re: Задача на Pascal'e. Про файлы...
Добавлено: 23 мар 2008, 21:31
Serge_Bliznykov
всё, что в процедуре от begin до end
переносите в то место, откуда процедура вызывается... убираете procedure MINCENA
всё.