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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 24.04.2009, 19:16   #1
Samopal
Пользователь
 
Аватар для Samopal
 
Регистрация: 23.12.2008
Сообщений: 24
По умолчанию !SOS! - Пследний раз я прошу вашей помощи в этом семестре... честно!

Составте прайс-лист магазина "обувь", включающий в себя наименование товара, страну производителя, его цену, материал, размер, рекоменджации для использования. Информацию о каждом товаре оформить в программе в виде записи. Совокупность записей объедините в массив. Составте программу которая обеспечивает ввод полученой информации, распечатку её в виде таблицы. Выведите на экран меню, а затем информацию о товаре в зависимости от запроса покупателя.

Вот что я наваял:

Код:
program n_3;
uses crt;
const
	n = 25;
type
	TFootWear = record
		num: word;
		name: string;
		countru: string;
		price: string;
		material: string;
		size: byte;
		recomend: string;
	end;
	dateb = array [1..n] of TFootWear;
	TWearFile = file of TFootWear;
var
	f: TWearFile;
	m: dateb;
        i,s,v: integer;
        numb: word;
		
procedure input(y:dateb); {ввод  новго товара}
var
mas:TFootWear;
begin
write('Номер товара' );
readln(mas.num);
write('Наименование товара' );
readln(mas.name);
write('Страна производитель' );
readln(mas.countru);
write('Цена' );
readln(mas.price);
write('Материал' );
readln(mas.material);
write('Размер' );
readln(mas.size);
write('Рекомендации по использованию' );
readln(mas.recomend);
y[mas.num]:=mas;
end;
procedure output(mas:TFootWear); {Вывод на экран информации о определённом тарифе.}
begin
writeln('Номер товара:',mas.num);
writeln('Наименование товара:',mas.name);
writeln('Страна производитель:',mas.countru);
writeln('Цена:',mas.price);
writeln('Материал:',mas.material);
writeln('Размер:',mas.size);
writeln('Рекомендации по использованию:',mas.recomend);
readln;
end;
procedure prog_exit(var p_file: TWearFile; massiv: dateb); {...Процедура выхода из программы...}
begin
close(p_file);
rewrite(p_file);
for i:=1 to n do
begin
write(p_file, massiv[i]);
end;
close(p_file);
halt;
end;
begin
Assign (f,'base.dat');
reset(f);
s := 1;
while NOT eof(f) do begin
if s > n then begin
 writeln('Слишком много записей');
 break;
end;
read(f, m[s] );
inc(s);
end;

writeln('1. Ввод нового товара');
writeln('2. Удалениен товара');
writeln('3. Вывод на экран информацию о товаре');
writeln('4. Распечатка прайс-листа (в виде таблицы)');
writeln('5. Выход из программы');
write('Ваш выбор:' );
readln(v);
case v of
1: input(m);
2: begin
		write('Введите номер товара:' );
		readln(numb);
		output(m[numb]);
	 end;
{3:} {ТУТ МНЕ НУЖНО БОТВА ЧТОБЫ РАСПЕЧАТЫВАТЬ ВСЮ БАЗУ В ВИДЕ ТАБЛИЦЫ ЕЁ НАДО КАК ТО ОПИСАТЬ ((( }

4:prog_exit(f, m);
end;
end.
када хочешь новый товар создат траблает... пишет нечто такое: 202. Stack overflow error - Переполнение стэка на 23 строчке...

Код:
procedure input(y:dateb); {ввод  новго товара}
хз чё делать... хелп...
И ещё каму если не лень как можно сделать печать массива такого в виде таблицы?
www.mybrest.net
Samopal вне форума
Старый 25.04.2009, 14:30   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Пришлось слегка переделать программу, много неточностей и ошибок.
Код:
program n_3;
uses crt;
const
n = 1;
type
TFootWear = record
            name: string;
            countru: string;
            price: string;
            material: string;
            size: byte;
            recomend: string;
          	end;
dateb = array [1..n] of TFootWear;
procedure input(var y:dateb); {ввод  новго товара}
var i:byte;
begin
clrscr;
for i:=1 to n do
  begin
   writeln('Товар ',i);
   write('Наименование товара: ');readln(y[i].name);
   write('Страна производитель: ');readln(y[i].countru);
   write('Цена: ');readln(y[i].price);
   write('Материал: ');readln(y[i].material);
   write('Размер: ');readln(y[i].size);
   write('Рекомендации по использованию: ');readln(y[i].recomend);
  end;
clrscr;
end;
procedure output(nm:string;var mas:dateb); {Вывод на экран информации о определённом тарифе.}
var i,k:integer;
begin
clrscr;
k:=0;
for i:=1 to n do
if mas[i].name=nm then
  begin
   k:=1;
   writeln('Наименование товара:',mas[i].name);
   writeln('Страна производитель:',mas[i].countru);
   writeln('Цена:',mas[n].price);
   writeln('Материал:',mas[i].material);
   writeln('Размер:',mas[i].size);
   writeln('Рекомендации по использованию:',mas[i].recomend);
  end;
if k=0 then writeln('Такого товара нет!');
readln;
clrscr;
end;
procedure prais(var mas:dateb);
var i:integer;
begin
clrscr;
writeln('Прайс-лист:':40);
writeln('---------------------------------------------------------------------');
writeln('| Наименование |   Страна  | Цена | Материал | Размер | Рекомендации|');
writeln('---------------------------------------------------------------------');
for i:=1 to n do
   begin
    gotoXY(1,whereY);write('| ',mas[i].name);
    gotoXY(16,whereY);write('| ',mas[i].countru);
    gotoXY(28,whereY);write('| ',mas[i].price);
    gotoXY(35,whereY);write('| ',mas[i].material);
    gotoXY(46,whereY);write('|  ',mas[i].size);
    gotoXY(55,whereY);write('| ',mas[i].recomend);
    gotoXY(69,whereY);write('|');
    writeln;
  end;
writeln('---------------------------------------------------------------------');
readln;
clrscr;
end;
var
  m: dateb;
  i,v,w: integer;
  nam: string;
begin
clrscr;
w:=0;
while w<5 do
 begin
   writeln('1. Ввод нового товара');
  {writeln('2. Удалениен товара');}
  writeln('2. Вывод на экран информацию о товаре');
  writeln('3. Распечатка прайс-листа (в виде таблицы)');
  writeln('4. Выход из программы');
  write('Ваш выбор:' );
  readln(v);
  case v of
  1: input(m);
  2: begin
    	write('Введите наименование товара:' );
  		readln(nam);
  		output(nam,m);
  	 end;
  3:prais(m);
  4:exit;
  end;
 end;
readln
end.
puporev вне форума
Старый 29.04.2009, 01:03   #3
Samopal
Пользователь
 
Аватар для Samopal
 
Регистрация: 23.12.2008
Сообщений: 24
По умолчанию

всё вроде ок.. тока он тока 1 товар добавляет а потом его же и заменяет если ещё добавлять потом товар какойнить...
www.mybrest.net
Samopal вне форума
Старый 29.04.2009, 19:47   #4
Samopal
Пользователь
 
Аватар для Samopal
 
Регистрация: 23.12.2008
Сообщений: 24
По умолчанию

Народ посмотрите каму не лень плиз ато очень надо... ((
И если не впадлу можно с блок-схемой...
www.mybrest.net
Samopal вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск