0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 30
1

Комбинированная задача (Записи, строки,массивы)

09.05.2009, 12:20. Показов 1999. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот такая задачка для мну это сверх сложности для программистов этого форума это орешек который раскусят быстро.
Составьте прай-лист магазина "Спортивные товары", включающий в себя наименование товара, страну производителя, его цену, материал из которого изготовлен, размер, рекомендации для использования. Информацию о каждом виде товара оформите в программе в виде записи. Совокупность записей обьеддините в массив. Составьте программу которая обеспечивает ввод полученной информации распечатку ее в виде таблицы. Ввыведите на экран меню, а затем информацию о товаре в зависимости от запроса покупателя.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.05.2009, 12:20
Ответы с готовыми решениями:

Строки, массивы, записи, файлы.
1.Дано целое число 31<N<127 , вывести символ с кодом равным N. 2.Вычислить и запомнить в массиве...

Строки,процедуры,записи,массивы 1,2 мерные
Здравствуйте помогите решить следующие задачи.Очень срочно нужно!!! 1)Дан текст . Подсчитать...

записи и массивы
отличия массивов и записей

Массивы и записи
1. Массивы: 50. Даны массив А из n элементов и число K. Переставить элементы массива А так, чтобы...

16
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
09.05.2009, 13:39 2
Слушай, полистай форум, минимум штук 5 этих задач с прайсами и таблицами найдешь, надо же наконец-то и самому делом заняться. Халява, она расслабляет и до добра не доводит. Не хочешь сам, лень, плати денежку и тебе все напишут.
0
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 30
15.05.2009, 13:37  [ТС] 3
Это ну я разобрался как сделать записи и как сделать таблицу вот мой код:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Program Prise;
uses crt;
const n=3;
type
Shop=record {тип записи-магазин}
     Naim:string[20];{Нименование товара}
     Strana:string[20];{страна производитель}
     cena:word;{цена}
     Mat:string[20];{материал}
     razmer:word; {размер}
     Info:string; {Рекомендации для использования}
     end;
var z:array [1..n] of Shop;{масив записей о товаре}
    f:file of Shop;{типизированный файл, компонетами являются записи}
    i:integer;{счетчик циклов}
begin
clrscr;
assign(f,'c:\1.txt');{связываем переменную с файлом на диске}
rewrite(f);{открываем его для записи}
writeln('Введите данные:');
for i:=1 to n do
 begin
  writeln('Товар ',i);
    write(' Наименование: ');readln(z[i].Naim);
       write(' Страна производитель: ');readln(z[i].Strana);
         write(' Цена: ');readln(z[i].cena);
            write(' Материал изготовления: ');readln(z[i].Mat);
               write(' Размер: ');readln(z[i].razmer);
                write(' Рекомендации для использование: ');readln(z[i].info);
  write(f,z[i]);{заносим запись в файл}
 end;
  clrscr;
  reset(f);{открываем файл для чтения}
writeln('Список товаров:');
writeln('----------------------------------------------------------------------------');
writeln('|  Наименование  | Цена | Страна | Материал  | Размер |     Рекомендации    |');
writeln('----------------------------------------------------------------------------');
for i:=1 to n do
 begin
  read(f,z[i]);{читаем запись}
    begin{выводим в таблицу}
    gotoXY(1,whereY);write('| ',z[i].Naim);
    gotoXY(18,whereY);write('| ',z[i].cena);
    gotoXY(25,whereY);write('| ',z[i].Strana);
    gotoXY(34,whereY);write('| ',z[i].Mat);
    gotoXY(46,whereY);write('| ',z[i].razmer);
    gotoXY(55,whereY);write('| ',z[i].info);
    writeln;
  end;
  end;
  Close(F);
  end.
Только я не знаю как сделать к этой базе меню, как вывести на печать, и как сделать запрос. Под скажите кто кодом
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.05.2009, 13:47 4
как вывести на печать,
А это что у Вас? Не вывод на печать?
Pascal
1
2
3
4
5
6
7
 gotoXY(1,whereY);write('| ',z[i].Naim);
    gotoXY(18,whereY);write('| ',z[i].cena);
    gotoXY(25,whereY);write('| ',z[i].Strana);
    gotoXY(34,whereY);write('| ',z[i].Mat);
    gotoXY(46,whereY);write('| ',z[i].razmer);
    gotoXY(55,whereY);write('| ',z[i].info);
    writeln;
0
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 30
15.05.2009, 13:49  [ТС] 5
Ну это наверно как бы на экран, а я так понимаю надо на принтер =(
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.05.2009, 13:50 6
Ну это наверно как бы на экран, а я так понимаю надо на принтер =(
Плохо понимаешь.
0
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 30
15.05.2009, 14:18  [ТС] 7
Значит на печать это на экран?
А нету команды в паскале вывести на принтер? =(
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.05.2009, 14:29 8
Вы бы сначала научились писать примитивные программы, а пом бы уже заморачивались с принтером.

Добавлено через 5 минут 4 секунды
Кстати файл-то зачем приплел?
0
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 30
15.05.2009, 14:32  [ТС] 9
оО а как БД держать в уме чтоль?
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.05.2009, 15:34 10
А почему в условии нет ничего про БД и про файлы?

Добавлено через 3 минуты 22 секунды
Если хранить в файле, то зачем тогда массив нужен?
0
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 30
16.05.2009, 12:05  [ТС] 11
Тогда я не фига не понел в задачке но смысл улавливаю оО
Что с менюшкой и с запросами?
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
16.05.2009, 14:48 12
Что с менюшкой и с запросами?
А что с ними случилось?
0
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 30
17.05.2009, 12:32  [ТС] 13
Да я просто не знаю как их написать вот и вс0 =(((
0
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 30
19.05.2009, 15:13  [ТС] 14
Спасибо Puporev за вбивание в меня ума=)
Только не знаю как сделать запросы на товары помоги плз на это мну не хватит!!!
Вот мой код с менюшкой
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Program Prise;
uses crt;
const n=3;
type
Shop=record {тип записи-магазин}
     Naim:string[20];{Нименование товара}
     Strana:string[20];{страна производитель}
     cena:word;{цена}
     Mat:string[20];{материал}
     razmer:word; {размер}
     Info:string; {Рекомендации для использования}
     end;
var z:array [1..n] of Shop;{масив записей о товаре}
    m,i:integer;{счетчик циклов}
label 0,1,2,3,4;
begin
0: writeln('|---------------------------------------------|');
writeln('|---Прайс-лист магазина "Спортивные товары"---|');
writeln('|---------------------------------------------|');
writeln('|1. Ввод данных в прай-лист                   |');
writeln('|2. Вывод на экран таблицы                    |');
writeln('|3. Запрос по товара                          |');
writeln('|4. Выход из прайс-листа                      |');
writeln('|-------------Введите номер меню--------------|');
Readln(m);
If m=1 then goto 1 else
If m=2 then goto 2 else
{if m=3 then goto 3 else}{Метка под меню запросов}
If m=4 then goto 4;
1: writeln('Введите данные:');
for i:=1 to n do
 begin
  writeln('Товар ',i);
    write(' Наименование: ');readln(z[i].Naim);
       write(' Страна производитель: ');readln(z[i].Strana);
         write(' Цена: ');readln(z[i].cena);
            write(' Материал изготовления: ');readln(z[i].Mat);
               write(' Размер: ');readln(z[i].razmer);
                write(' Рекомендации для использование: ');readln(z[i].info);
  end; goto 0;
2:
clrscr; writeln('Список товаров:');
writeln('----------------------------------------------------------------------------');
writeln('|  Наименование  | Цена | Страна | Материал  | Размер |     Рекомендации    |');
writeln('----------------------------------------------------------------------------');
for i:=1 to n do
 begin
    begin{выводим в таблицу}
    gotoXY(1,whereY);write('| ',z[i].Naim);
    gotoXY(18,whereY);write('| ',z[i].cena);
    gotoXY(25,whereY);write('| ',z[i].Strana);
    gotoXY(34,whereY);write('| ',z[i].Mat);
    gotoXY(46,whereY);write('| ',z[i].razmer);
    gotoXY(55,whereY);write('| ',z[i].info);
    writeln;
  end;
  end;
  goto 0;
  4: end.
Или помогите кто кодом запросов на этот прайс лист вставлю мб и сам и подкреплю метку.
Заранее спасибо!
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
19.05.2009, 15:45 15
Полностью смотреть некогда, только суть.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Вводишь переменную
 tov:string;
Запрашиваешь
write('Найти сведения о товаре: ');
readln(tov);
k:=0;
for i:=1 to n do
if z[i].naim=tov then
 begin
  k:=1;
  writeln(все что нужно вывести);
 end;
if k=0 then writeln('Такого товара нет!');
0
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 30
19.05.2009, 16:59  [ТС] 16
Во чо наваял:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
Program Prise;
uses crt;
const n=3;
type
Shop=record {тип записи-магазин}
     Naim:string[20];{Нименование товара}
     Strana:string[20];{страна производитель}
     cena:word;{цена}
     Mat:string[20];{материал}
     razmer:word; {размер}
     Info:string; {Рекомендации для использования}
     end;
var z:array [1..n] of Shop;{масив записей о товаре}
    m,i,zapr,k:integer;{счетчик циклов}
    znaim:string[20];{Нименование товара}
    zstrana:string[20];{страна производитель}
    zcena:word;{цена}
    zMat:string[20];{материал}
    zrazmer:word; {размер}
label 0,1,2,3,4,z1,z2,z3,z4,z5,z6;
begin
0:
writeln('-----------------------------------------------');
writeln('|---Прайс-лист магазина "Спортивные товары"---|');
writeln('|---------------------------------------------|');
writeln('|1. Ввод данных в прай-лист                   |');
writeln('|2. Вывод на экран таблицы                    |');
writeln('|3. Запрос по товарам                         |');
writeln('|4. Выход из прайс-листа                      |');
writeln('--------------Введите номер меню---------------');
Write('Ваш выбор меню:');Readln(m);
If m=1 then goto 1 else
If m=2 then goto 2 else
if m=3 then goto 3 else
If m=4 then goto 4;
1: writeln('Введите данные:');
for i:=1 to n do
 begin
  writeln('Товар ',i);
    write(' Наименование: ');readln(z[i].Naim);
       write(' Страна производитель: ');readln(z[i].Strana);
         write(' Цена: ');readln(z[i].cena);
            write(' Материал изготовления: ');readln(z[i].Mat);
               write(' Размер: ');readln(z[i].razmer);
                write(' Рекомендации для использование: ');readln(z[i].info);
  end; goto 0;
2:
clrscr; writeln('Список товаров:');
writeln('----------------------------------------------------------------------------');
writeln('|  Наименование  | Цена | Страна | Материал  | Размер |     Рекомендации    |');
writeln('----------------------------------------------------------------------------');
for i:=1 to n do
 begin
    begin{выводим в таблицу}
    gotoXY(1,whereY);write('| ',z[i].Naim);
    gotoXY(18,whereY);write('| ',z[i].cena);
    gotoXY(25,whereY);write('| ',z[i].Strana);
    gotoXY(34,whereY);write('| ',z[i].Mat);
    gotoXY(46,whereY);write('| ',z[i].razmer);
    gotoXY(55,whereY);write('| ',z[i].info);
    writeln;
  end;
  end;
  goto 0;
3: writeln('-----------------------------------------------');
   writeln('|-----Меню запросов по товарам Прайс-листа----|');
   writeln('|---------------------------------------------|');
   writeln('|1. Найти сведения о товаре по названию:      |');
   writeln('|2. Найти сведения о товаре по цене:          |');
   writeln('|3. Найти сведения о товаре по стране:        |');
   writeln('|4. Найти сведения о товаре по материалу:     |');
   writeln('|5. Найти сведения о товаре по размеру:       |');
   writeln('|6. Выйти в главное меню                      |');
   writeln('--------------Введите номер меню---------------');
   Write('Ваш выбор меню:');Readln(zapr);
If zapr=1 then goto z1 else
If zapr=2 then goto z2 else
if zapr=3 then goto z3 else
If zapr=4 then goto z4 else
If zapr=5 then goto z5 else
If zapr=6 then goto 0 ;
z1:
write('Найти сведения о товаре по названию: ');
readln(znaim);
k:=0;
writeln('----------------------------------------------------------------------------');
writeln('|  Наименование  | Цена | Страна | Материал  | Размер |     Рекомендации    |');
writeln('----------------------------------------------------------------------------');
for i:=1 to n do
if z[i].naim=znaim then
 begin
  k:=1;
   gotoXY(1,whereY);write('| ',z[i].Naim);
    gotoXY(18,whereY);write('| ',z[i].cena);
    gotoXY(25,whereY);write('| ',z[i].Strana);
    gotoXY(34,whereY);write('| ',z[i].Mat);
    gotoXY(46,whereY);write('| ',z[i].razmer);
    gotoXY(55,whereY);write('| ',z[i].info);
    writeln;
 end;
if k=0 then writeln('Такого товара нет!');
goto 3;
z2:
clrscr;
write('Найти сведения о товаре по цене: ');
Writeln('Введите точную цену');
readln(zcena);
k:=0;
writeln('----------------------------------------------------------------------------');
writeln('|  Наименование  | Цена | Страна | Материал  | Размер |     Рекомендации    |');
writeln('----------------------------------------------------------------------------');
for i:=1 to n do
if z[i].cena=zcena then
 begin
  k:=1;
   gotoXY(1,whereY);write('| ',z[i].Naim);
    gotoXY(18,whereY);write('| ',z[i].cena);
    gotoXY(25,whereY);write('| ',z[i].Strana);
    gotoXY(34,whereY);write('| ',z[i].Mat);
    gotoXY(46,whereY);write('| ',z[i].razmer);
    gotoXY(55,whereY);write('| ',z[i].info);
    writeln;
 end;
if k=0 then writeln('Такого товара нет!');
goto 3;
z3:
clrscr;
write('Найти сведения о товаре по стране изготовления: ');
readln(zstrana);
k:=0;
writeln('----------------------------------------------------------------------------');
writeln('|  Наименование  | Цена | Страна | Материал  | Размер |     Рекомендации    |');
writeln('----------------------------------------------------------------------------');
for i:=1 to n do
if z[i].strana=zstrana then
 begin
  k:=1;
   gotoXY(1,whereY);write('| ',z[i].Naim);
    gotoXY(18,whereY);write('| ',z[i].cena);
    gotoXY(25,whereY);write('| ',z[i].Strana);
    gotoXY(34,whereY);write('| ',z[i].Mat);
    gotoXY(46,whereY);write('| ',z[i].razmer);
    gotoXY(55,whereY);write('| ',z[i].info);
    writeln;
 end;
if k=0 then writeln('Такого товара нет!');
goto 3;
z4:
write('Найти сведения о товаре по материалу: ');
readln(zmat);
k:=0;
writeln('----------------------------------------------------------------------------');
writeln('|  Наименование  | Цена | Страна | Материал  | Размер |     Рекомендации    |');
writeln('----------------------------------------------------------------------------');
for i:=1 to n do
if z[i].mat=zmat then
 begin
  k:=1;
   gotoXY(1,whereY);write('| ',z[i].Naim);
    gotoXY(18,whereY);write('| ',z[i].cena);
    gotoXY(25,whereY);write('| ',z[i].Strana);
    gotoXY(34,whereY);write('| ',z[i].Mat);
    gotoXY(46,whereY);write('| ',z[i].razmer);
    gotoXY(55,whereY);write('| ',z[i].info);
    writeln;
 end;
if k=0 then writeln('Такого товара нет!');
goto 3;
z5:
write('Найти сведения о товаре по размеру: ');
readln(zrazmer);
k:=0;
writeln('----------------------------------------------------------------------------');
writeln('|  Наименование  | Цена | Страна | Материал  | Размер |     Рекомендации    |');
writeln('----------------------------------------------------------------------------');
for i:=1 to n do
if z[i].razmer=zrazmer then
 begin
    k:=1;
    gotoXY(1,whereY);write('| ',z[i].Naim);
    gotoXY(18,whereY);write('| ',z[i].cena);
    gotoXY(25,whereY);write('| ',z[i].Strana);
    gotoXY(34,whereY);write('| ',z[i].Mat);
    gotoXY(46,whereY);write('| ',z[i].razmer);
    gotoXY(55,whereY);write('| ',z[i].info);
    writeln;
 end;
if k=0 then writeln('Такого товара нет!');
goto 3;
 
  4: end.
меня мучает что запросы реагирую к регитсру записи,
и слишком много места занимают запросы мб как нить упростить!?
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
19.05.2009, 17:30 17
меня мучает что запросы реагируют к регитстру записи,
и слишком много места занимают запросы мб как нить упростить!?
По первой проблеме можно список товаров сохранить в массиве и в запросе вводить только индекс товара
write(Выберите товар 1-ффффф 2-ттттттт и т.д.);
readln(k);//число
поиск
if z[i].naim=s[k] then

По второй никуда не денешься, чем больше запросов тем больше кода.
0
19.05.2009, 17:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2009, 17:30
Помогаю со студенческими работами здесь

Структуры данных: массивы, строки, записи
Составьте программу, которая обеспечивает ввод данных, вывод данных, поиск по любому критерию....

Структуры данных:массивы,строки,записи.
Здравствуйте ув.программисты. Помогите пжл решить задачу Дана строка текста.Выяснить,каких...

Задача на массивы и строки
Написать программу, которая вводит с клавиатуры массив из N вещественных чисел, находит среди...

Задача на строки, мб двумерные массивы в Delphi
Дана строка-предложение. Зашифровать ее, поместив вначале все символы, расположенные на четных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru