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

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

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

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


Гость






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


Гость






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... вроде как в процедуре должна осуществляться передача пааметров по значению, адресу и т. д. а у меня такого нету, следовательно в программе присутствуют глобальные переменные.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





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