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

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

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

> Массив записей, не понимаю чо хотят
Ученик
сообщение 13.01.2009 21:47
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Мужской

Репутация: -  0  +


Условие
пусть даны 2 массива М1 и М2. М1 - инвентарный массив(сколько изделий, каких видов хранятся на складе). Вид продукции задаётся её порядковым номером. М2 - вспомогательный массив(на сколько уменьшилось или увеличилось количество изделий по некоторым видам продукции). Вспомогательный массив может содержать несколько сведений по продукции одного вида или не содержать такого сообщения. Обновить инвентарный массив на основе вспомогательного.
1. не пойму как это должно выглядеть
type vid=record
izdelie1:integer;
izdelie2:integer;
izdelie3:integer;
end;
var produkcia:array[1..10] of vid;

??? чото я не догоняю
2. "Вспомогательный массив может содержать несколько сведений по продукции одного вида"
как это сделать?
последняя лаба)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Ученик
сообщение 13.01.2009 23:30
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Мужской

Репутация: -  0  +


косолапо получилось
const
n=2;
m=3;
type
Item = record
tip:integer;
kolvo:integer;
end;
var
i,j:integer;
sklad:array[1..n] of item;
upd:array[1..m] of Item;
begin
writeln('sklad',' ',n,' tip - kolvo');
for i:=1 to n do readln(sklad[i].tip,sklad[i].kolvo);
for i:=1 to n do writeln('ITEM',sklad[i].tip,' - ',sklad[i].kolvo);
writeln('update',' ',m,' tip - kolvo');
for i:=1 to m do readln(upd[i].tip,upd[i].kolvo);
for i:=1 to m do writeln('ITEM',upd[i].tip,' - ',upd[i].kolvo);

for i:=1 to n do
for j:=1 to m do if upd[j].tip=sklad[i].tip then sklad[i].kolvo:=sklad[i].kolvo+upd[j].kolvo;

writeln('updated sklad');
for i:=1 to n do writeln('ITEM',sklad[i].tip,' - ',sklad[i].kolvo);
readln;
end.

подскажите как упростить/чо неправильно
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 14.01.2009 4:08
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Ученик @ 13.01.2009 23:30) *
подскажите как упростить/чо неправильно

Есть одно замечание, но оно спорное..
Что, если в массиве Upd встретился новый товар, который еще не присутствует в массиве Sklad? По логике вещей, нужно добавить его в массив.
Если с этим согласиться, то массив Sklad не должен ьыть заполнен до отказа, а число n должно означать, сколько элементов в нем реально используется.

Еще, чисто для удобства отладки и использования, лучше считывать оба массива из файлов.

Добавлено через 4 мин.
Еще, будет удобно использвать оператор with:
for i:=1 to n do with Sklad[i] do
for j:=1 to m do if upd[j].tip=tip then kolvo:=kolvo+upd[j].kolvo;



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



- Текстовая версия 20.07.2025 2:37
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"