IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> прога по записям, помгите...
сообщение
Сообщение #1


Гость






Вот сама задача:
1. Описать запись с именем Price, содержащую следующие поля:
название товара;
название магазина, в котором продаётся товар;
стоимость товара в рублях;
2. Написать программу, выполняющую следующие действия:
ввод данных с клавиатуры в массив, состоящий из восьми элеметов типа Price; записи должны быть
размещены в алфавитном порядке по названию товаров;
вывод на экран информации о товаре, название которого введено с клавиатуры; если такого товара нет,
вывести соответствующее сообщение;
запись массива в файл под заданным с клавиатуры именем.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Цитата
воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!

Причем уже много-много раз. yes2.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






program priceRecord;
uses crt;

const
N = 8;
type Price = record
title:string;
vendor:string;
priceRU:real;
end;
var
priceFile : file of Price;
choise, sc, i, k:integer;
exit, error, infoReady, searching, found:boolean;
priceArray: array[1..N] of Price;
searchTitle, filepath:string;
aux: Price;

procedure new_info_input;
begin
for i:=1 to N do begin
with priceArray[i] do begin
write('Enter the title of goods: ');
readln(title);
write('Specify the vendor: ');
readln(vendor);
write('Enter the price in RU: ');
readln(priceRU);
end;
end;
for i:=2 to N do begin
for k:=i-1 downto 1 do begin
if priceArray[k+1].title < priceArray[k].title then begin
aux := priceArray[k];
priceArray[k] := priceArray[k+1];
priceArray[k+1] := aux;
end
else break;
end;
end;
end;

procedure save_to_file(filepath:string);
begin
assign(priceFile, filepath);
rewrite(priceFile);
for i:=1 to N do
write(priceFile, priceArray[i]);
close(priceFile);
end;

procedure search_once;
begin
found := false;
write('Specify the title of goods you want to search for: ');
readln(searchTitle);
for i:=1 to N do begin
if priceArray[i].title = searchTitle then begin
writeln('Additional info found:');
write('Title: ');
writeln(searchTitle);
write('Vendor: ');
writeln(priceArray[i].vendor);
write('Price in RU: ');
writeln(priceArray[i].priceRU);
found := true;
break;
end;
end;
if found = false then writeln('404 - Not Found');
write('Would you like to search once again? 1 - Yes. 2 - Exit: ');
readln(sc);
if sc = 2 then searching := false;
end;

begin
exit := false;
infoReady := false;
clrscr;
while not exit do begin
writeln('1. Enter new information');
writeln('2. Search for specific goods');
writeln('3. Save info to file');
writeln('4. Exit');
write('Make your choise: ');
readln(choise);
case choise of
1: begin
new_info_input;
infoReady := true;
end;
2: begin
searching := true;

if not infoReady then writeln('Please enter the information first.')
else while searching do
search_once;
end;
3: begin
if not infoReady then writeln('Please enter the information first.')
else begin
write('Specify full filepath: ');
readln(filepath);
save_to_file(filepath);
writeln('Save successful.');
end;
end;
4: begin
exit := true;
end;
5: for i:=1 to N do begin
writeln(priceArray[i].title);
end;
end
end;
end.



Прога то есть, но вот что то она работает не очень...проблема с выводом цены и записью в файл. + Как я понимаю неправльно выполнены процедуры: например procedure new_info_input... вроде как в процедуре должна осуществляться передача пааметров по значению, адресу и т. д. а у меня такого нету, следовательно в программе присутствуют глобальные переменные.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Напиши конкретно, что она должна делать ( по замыслу), но не делает, и что делает вместо этого. Попробуй упростить ситуацию, минимизировать ввод. Если ты чувствуешь, что ошибка в некоторм конкретном месте, попробуй сделать мини-вариант программы, в котором только это место (или почти только). Выложи это здесь, если все же не сможешь разобраться.
Успехов!


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата
запись массива в файл под заданным с клавиатуры именем.


Файл создаёт, но если его открыть, то массивом в нём и не ппахнет
И ещё, когда вводишш цену товара, а потом вызываешь информацию о нем, то если цена была допустим 20 рублей, то он пишет: 2.000000+0.1Е
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Цитата(-slava- @ 7.10.2007 16:49) *

Файл создаёт, но если его открыть, то массивом в нём и не ппахнет
И ещё, когда вводишш цену товара, а потом вызываешь информацию о нем, то если цена была допустим 20 рублей, то он пишет: 2.000000+0.1Е

1. Открываешь - чем? Блокнотом? Или из паскаля?
2. Все правильно smile.gif Просто надо сделать так: вместо write(a) написать, например, write(a:5:2)


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 30.09.2020 7:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name