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

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

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

> прога по записям, помгите...
slava
сообщение 2.10.2007 21:16
Сообщение #1


Гость






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


Гуру
*****

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

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


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

Причем уже много-много раз. yes2.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
slava
сообщение 3.10.2007 16:55
Сообщение #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... вроде как в процедуре должна осуществляться передача пааметров по значению, адресу и т. д. а у меня такого нету, следовательно в программе присутствуют глобальные переменные.
 К началу страницы 
+ Ответить 
Lapp
сообщение 5.10.2007 12:19
Сообщение #4


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

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

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


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


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


Гость






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


Файл создаёт, но если его открыть, то массивом в нём и не ппахнет
И ещё, когда вводишш цену товара, а потом вызываешь информацию о нем, то если цена была допустим 20 рублей, то он пишет: 2.000000+0.1Е
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 7.10.2007 17:40
Сообщение #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

 



- Текстовая версия 20.07.2025 14:20
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"