Помощь - Поиск - Пользователи - Календарь
Полная версия: Список стран (Турбо паскаль)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
South Fruit
Отдельной темой сделал smile.gif
Дан файл товар, который содержит сведения об экспортируемых товарах с указанным наименованием товара страна импорта товара и объемом постоянной партии. Составить список стран в которые экспортируются данные товары и указать общий объем его экспорта.
Вот такая задача, нужно до завтра человеку.

мисс_граффити
показывай попытки человека ее решить...
З.Ы. Список как динамическая структура или список - в смысле вывести столбиком на экран?
South Fruit
Нету рядом человека то unsure.gif там короче что то типа должны вевестисть все страны и общий объем этих стран, или по отдельности, воть blink.gif
Tan
Список как структура данных или просто на экране набор символов в виде списка ??? Ты не ответил на вопрос мисс_граффити.
South Fruit
Список как структура данных и вывод на экран.
Вывести на экран.
South Fruit
Ребят, помогите, а то у человека проблемы будут ... unsure.gif
мисс_граффити
а в чем, собственно, проблема?
прочитал запись из файла. посмотрел, нужный ли это товар. если да - партию прибавил к объему, страну добавил в список.
South Fruit
Я повторюсь что задача не для меня, мне ей некогда заниматься, меня попросили разместить я разместил и прощу помочь. Если кто то способен разместить (написать) код задачи, то девушка Екатерина будет вам безмерно благодарна.
мисс_граффити
good.gif
Цитата
Я повторюсь что задача не для меня, мне ей некогда заниматься

Ты, конечно, извини, но мне эта девушка Екатерина - никто. И если ей неохота заниматься своей задачей, ради чего я буду? Ни у Екатерины, ни у меня от этого знаний не прибавится. Только преподавателя обманем этими действиями.
South Fruit
У нее есть знание и задача, но не совсем правильная и ей нужна помощь, ну что у вас совсем души нет? unsure.gif
Вам же не сложно, а?
Айра
Если я правильно поняла задание, то вот:
uses wincrt;
type
StStrana = string[30];
StTovar = string[30];
StObyom = real;
zap = record
Strana: StStrana;
Tovar: StTovar;
Obyom: StObyom;
end;

var Tov: file of zap;
work: zap;
Name,st: string;
mas: array[1..10] of string;
End_Menu: boolean;
vid: byte;

procedure Name_File;
begin
Name:='Tovar';
end;

procedure AddRec;
begin
Writeln ('Ввод записи № ',FilePos(Tov)+1);
with work do
begin
Write('Введите название товара: ');
readln (Tovar);
Write('Введите страну экспортера: ');
readln (Strana);
Write('Введите объем поставок: ');
readln (Obyom);
Write(Tov,work);
end;
end;

procedure Creat_File;
var
i,kol: integer;
begin
Name_File;
Assign(Tov, name);
Rewrite(Tov);
Writeln ('Создание сведений о товаре');
Write ('Введите количество записей не большее 10: ');
Readln(kol);
for i:=1 to kol do
AddRec;
Writeln ('Создания сведений о товаре завершено');
Writeln ('Файл данных имеет ',FileSize(Tov),' записи');
Close(Tov);
end;

procedure OutputRec;
begin
Read(Tov, work);
with work do
begin
write('Запись № ',FilePos(Tov),' :');
Writeln('Страна: ',Strana,'| товар: ',Tovar,'| объем поставок: ',Obyom:6:4,'');
end;
end;

procedure OutputAllRec;
begin
Name_File;
Assign(Tov, Name);
{$I-}
Reset(Tov);
{$I+}
if Ioresult = 0 then
begin
Seek(Tov, 0);
writeln ('Вывод записей');
while (not Eof(Tov)) do
OutputRec;
end
else
writeln('Файла с именем '+Name+' на диске нет');
end;

procedure Poisk_Stran;
var mas: array[1..10] of string;
Tov: file of zap;
work: zap;
maska: StTovar;
Rez_Find: boolean;
CountRec,nom: integer;
sum: real;
begin
sum:=0;
nom:=1;
Name_File;
Assign(Tov, Name);
{$I-}
Reset(Tov);
{$I+}
if IOresult = 0 then
begin
Write('Введите интересующий товар: ');
readln(maska);
Rez_Find:=false;
CountRec:=0;
while (not Eof(Tov)) do
begin
read(Tov,work);
with work do
if (pos(maska, Tovar) <> 0) and (length(maska) = length(Tovar)) then
begin
mas[nom]:=Strana;
sum:=sum+obyom;
writeln (mas[nom]);
inc(nom);
end;
end;
writeln ('Общий объем поставок: ',sum:6:4,'');
Close(Tov);
end
else
writeln ('Файла с именем '+Name+' на диске нет');
end;


begin
ClrScr;
End_Menu:=false;
repeat
writeln('*** Экспорт товаров ***');
writeln('Выберите действие');
writeln('1 - создание нового файла');
writeln('2 - просмотр всех записей');
writeln('3 - создание списка экспортеров');
writeln('0 - завершение работы');
write('Ваш выбор: ');
readln(vid);
case vid of
1: Creat_File;
2: OutputAllRec;
3: Poisk_Stran;
0: End_Menu:=true;
end;
writeln('Для продолжения нажмите Enter');
readln;
ClrScr;
until End_Menu;
end.

Но
Цитата
У нее есть знание и задача, но не совсем правильная и ей нужна помощь

пусть эта девушка в следующий раз сама создает темы, задает вопросы и пытается делать программы... А раз у нее есть знания, то она сама сможет разобраться в вышеизложенной проге...


p.p.s. в поиске экспортеров добавила проверку товара еще и по длинне троки:
if (pos(maska, Tovar) <> 0) and (length(maska) = length(Tovar)) then

Теперь вроде должен выводить точно)))
мисс_граффити
Небольшие замечания:
  StObyom = string[10];

Почему строка? Объем продаж - это число... Вещественное, скорее всего. Зачем тебе заморочки с преобразованиями?

pos(maska, Tovar) <> 0

не стоит так делать...
ведь товары могут быть, например:
игрушка
игрушка1
игрушка2
большая_игрушка
и т.д.

внятного ответа про список как структуру данных я так и не услышала...
Айра
Цитата
Почему строка? Объем продаж - это число... Вещественное, скорее всего. Зачем тебе заморочки с преобразованиями?

Сначала делала нормально, но что-то не так ввела и компилятор возмущался. Сейчас все работает.
South Fruit
Цитата
пусть эта девушка в следующий раз сама создает темы, задает вопросы и пытается делать программы... А раз у нее есть знания, то она сама сможет разобраться в вышеизложенной проге...


Хорошо Айрочка, просто у нее сейчас проблемы с инетом.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.