Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2009, 16:38   #1
HITMAN 09
 
Регистрация: 23.04.2009
Сообщений: 5
По умолчанию Работа с файлами. Вывод в Граф режиме. Паскаль.

тема:
Работа с файлами.
1.Создать файл,содержаший сведения о заказах на товары.Структура записи:

Номер артикула
Колличество на складе
Требуемое колличество
Информация о заказчике

2.Удалить записи,номера артикула которых вводятся.
3.Напечатать те записи,в которых требуемое колличество превышает имеющее на складе.

Заранее спасибо!

все в паскале и в графическом режиме

Последний раз редактировалось Stilet; 23.04.2009 в 16:59.
HITMAN 09 вне форума Ответить с цитированием
Старый 23.04.2009, 17:01   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что не получается, работать с записями или выводить инфу на экран в графическом режиме?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.04.2009, 17:03   #3
HITMAN 09
 
Регистрация: 23.04.2009
Сообщений: 5
По умолчанию

я просто вообше не знаю как ето сделать))пытался но у меня не получается вечные ошибки

сможешь помочь?

Последний раз редактировалось Stilet; 23.04.2009 в 17:19.
HITMAN 09 вне форума Ответить с цитированием
Старый 23.04.2009, 17:19   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да но, я домой щаз ухожу, так что только завтра, если еще нужно будет.
Может кто-то тебе подскажет чего до завтра.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.04.2009, 17:30   #5
HITMAN 09
 
Регистрация: 23.04.2009
Сообщений: 5
По умолчанию

мне срочно сегодня надо)))
HITMAN 09 вне форума Ответить с цитированием
Старый 23.04.2009, 19:13   #6
HITMAN 09
 
Регистрация: 23.04.2009
Сообщений: 5
По умолчанию

Блин парни ну помогите пожалуйста вопрос жизни и смерти !завтра зачет
HITMAN 09 вне форума Ответить с цитированием
Старый 23.04.2009, 19:40   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну вот, что вышло.
Процедуры в двух вариантах (для текстового и графического режима).

Думаю, разберетесь.
Код:
uses crt,graph;
type
zakaz = record
nomer : integer;
naSklade : integer;
nado : integer;
infa : string;
end;

arr = array[1..100] of zakaz;

var
mas : arr;
f : file of zakaz;
i, n, k : integer;
d,m : smallint;  { для Turbo Pascal измените тип на integer }

procedure delEl(var mas : arr; var n : integer; k : integer);
var i : integer;
begin
dec(n);
for i:=k to n do
 mas[i] := mas[i+1];
end;
{--------------}
procedure print(mas : arr; n : integer; k : integer);
begin
 writeln('Element ',k);
 writeln('Nomer artikula: ',mas[k].nomer);
 writeln('Kolichestvo na sklade: ',mas[k].naSklade);
 writeln('Trebuetsya: ',mas[k].nado);
 writeln('Informaciya o zakazchike: ',mas[k].infa);
 writeln('-------------');
end;
{---------------}
procedure save(mas : arr; n : integer);
var i : integer;
begin
rewrite(f);
for i:=1 to n do
 write(f,mas[i]);
close(f);
writeln('Complete!');
readkey;
end;
{-------------------}
procedure prevysh(mas : arr; n : integer);
var i : integer;
begin
for i:=1 to n do
 if mas[i].naSklade<mas[i].nado then print(mas,n,i);
writeln;
writeln('Complete!');
readkey;
end;
{-----------------------}
procedure Menu;
var c : char;
i : integer;
begin
repeat
writeln('1 - Vyvod zakazov');
writeln('2 - Udalenie zakaza');
writeln('3 - Perezapisat fail');
writeln('4 - Vyvesti zakazy, gde trebuyut bolshe, chem est');
writeln('Esc - Vyhod');
writeln;
c := readkey;
case c of
 '1' : begin
       for i:=1 to n do
        print(mas,n,i);
       readkey;
       end;
 '2' : begin
       write('Vvedite nomer artikula: ');
       readln(k);
       delEl(mas,n,k);
       end;
 '3' : save(mas,n);
 '4' : prevysh(mas,n);
 end;

until c=#27;

end;
{-------------------------}

{ Процедуры в графическом варианте }
{------------------------}
procedure printGraph(mas : arr; n : integer; k : integer; num : integer);
var buf : string;
begin
 str(num,buf);
 OutTextXY(1,k*60+10,'Element '+buf);
 str(mas[num].nomer,buf);
 OutTextXY(1,k*60+20,'Nomer artikula: '+buf);
 str(mas[num].naSklade,buf);
 OutTextXY(1,k*60+30,'Kolichestvo na sklade: '+buf);
 str(mas[num].nado,buf);
 OutTextXY(1,k*60+40,'Trebuetsya: '+buf);
 OutTextXY(1,k*60+50,'Informaciya o zakazchike: '+mas[num].infa);
 OutTextXY(1,k*60+60,'-------------');
end;

{----------------------------}

procedure prevyshGraph(mas : arr; n : integer);
var i : integer;
a : integer;
begin
a := 1;
for i:=1 to n do
 if mas[i].naSklade<mas[i].nado then
  begin
  printGraph(mas,n,a,i);
  inc(a);
  end;

OutTextXY(1,a+1,'Complete!');
readkey;
end;
{-------------------------}
procedure MenuGraph;
var c : char;
i : integer;
begin
InitGraph(d,m,'');
repeat
clearDevice;
OutTextXY(1,0,'1 - Vyvod zakazov');
OutTextXY(1,10,'2 - Udalenie zakaza');
OutTextXY(1,20,'3 - Perezapisat fail');
OutTextXY(1,30,'4 - Vyvesti zakazy, gde trebuyut bolshe, chem est');
OutTextXY(1,40,'Esc - Vyhod');
OutTextXY(1,50,'');
c := readkey;
case c of
 '1' : begin
     for i:=1 to n do
      printGraph(mas,n,i,i);
     readkey;
     end;
 '2' : begin
     write('Vvedite nomer artikula: ');
     readln(k);
     delEl(mas,n,k);
     end;
 '3' : save(mas,n);
 '4' : prevyshGraph(mas,n);
 end;

until c=#27;
closeGraph;
end;
{-----------------------}
{=======================}


begin
clrscr;
{ открываем }
assign(f,'zakazy.dat');
{$I-}
reset(f);
{$I+}
if IOResult<>0 then
 begin
 { создаем }
 rewrite(f);
 write('Vvedite kolichestvo zapisej: ');
 readln(n);
 for i:=1 to n do
  begin
  writeln('Zakaz ',i);
  write('Nomer artikula: ');
  readln(mas[i].nomer);
  write('Kolichestvo na sklade: ');
  readln(mas[i].naSklade);
  write('Trebuetsya: ');
  readln(mas[i].nado);
  write('Informaciya o zakazchike: ');
  readln(mas[i].infa);
  writeln('---------------');
  end;
 writeln('Vvod zavershen');
 save(mas,n);
 end
else
 begin
 n := FileSize(f);
 for i:=1 to n do
  read(f,mas[i]);
 close(f);
 end;
{-----------}

clrscr;

MenuGraph;

end.
Если файла zakazy.dat не существует, то он создается и его надо заполнить.

Прикрепляю исходник+екзешник+тестовый файлик.
Вложения
Тип файла: rar GraphVyvod.rar (32.4 Кб, 9 просмотров)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.04.2009, 20:32   #8
HITMAN 09
 
Регистрация: 23.04.2009
Сообщений: 5
По умолчанию

мне нужно прогу перевести мне прогу из crt в graph
HITMAN 09 вне форума Ответить с цитированием
Старый 23.04.2009, 20:36   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
мне нужно прогу перевести мне прогу из crt в graph
Ничего не понял.
Вывод осуществляется в графическом режиме! Что вы еще хотите?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кракозябры в граф. режиме паскаля. soldm Паскаль, Turbo Pascal, PascalABC.NET 4 21.03.2009 01:04
переменная в граф. режиме. t13sto Паскаль, Turbo Pascal, PascalABC.NET 7 21.07.2008 14:25