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

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

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

 
 Ответить  Открыть новую тему 
> Работа с информацией сложной структуры, Помогите решить задачу
сообщение
Сообщение #1


Гость






Составить программу, помогающую сообщать сведения о местах на авиарейсы из Моск-вы в Ленинград на календарный месяц (30 дней). В памяти хранится информация о мес-тах на рейс на заданное число в виде матрицы, в которой номер строки – ряд, номер столбца – номер места в ряду (всего 25 рядов, по шесть мест в ряду). Элемент матрицы может иметь следующие значения: 0 — место свободно, 1 — место продано, 2 — место забронировано. Считать, что в день имеется один рейс. По требованию сообщать сле-дующую информацию:
о свободных местах на заданное число;
о проданных местах на заданное число;
о количестве свободных мест на весь месяц;
о брони на заданное число.


Подкиньте пару идей...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Hammer
Цитата
Подкиньте пару идей...

Идей насчет чего? Все же уже придумано, осталось только реализовать, но это уже не идеи, а исходники... :D
И потом: "Количество свободных дней на весь месяц" подразумевает, что есть возможность просматривать данные на месяц вперед. Данные об одном рейсе хранятся в виде матрицы - это прекрасно, но как они связаны между собой? Массив матриц? Список?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Ну помогите тогда реализовать... :D
Такая формулировка меня тоже смущает, наверно в памяти хранится вся информация на весь месяц.

Как сформировать 30 матриц и загнать их в файл?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

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

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


Код

for I:=1 to 30 do
 begin
   for J:=1 to N do
     for K:=1 to M do
       begin
         readln(A[J,K]);
       end;
   write(F,A);
 end;

вроде бы так...
F - файл типа A.
A - вводимая матрица NxM.


--------------------
Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






LLIRIKS
А ведь массив может быть не только двумерным... rolleyes.gif
Код

const
 days = 31;
 rows = 25; {число рядов в салоне}
 cols = 6; {число кресел в ряду}
type
 infotype = array[1 .. days, 1 .. rows, 1 .. cols] of byte;
var
 info: infotype;
 f: file of infotype;
begin
  ... {заполнение массива info}
 write(f, info); {и запись сразу всего массива}
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






я имел ввиду 30 разных матриц
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


Цитата(Guest @ 19.12.04 15:04)
я имел ввиду 30 разных матриц

фишка вот в чем:
вводишь 1-ю (I:=1) матрицу под именем A, скидываешь в файл F (при этом указатель переходит на следующую позицию), потом вводишь 2-ю (I:=2) матрицу под тем же именем A (старая обновляется - но это не страшно, ведь она уже записана в файле ;) ), скидываешь 2-ю матрицу в файл (указатель двигается дальше) и т.д. до 30-й матрицы (I:=30)...


--------------------
Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Код

program pr2;
type infotype=array [1..26,1..6] of integer;
var
info: file of infotype;
f:string;
a:infotype;
i,j,k:integer;
begin
writeln ('Введите имя файла ');
readln(f);
Assign(info,f);
Rewrite(info);
randomize;
for k:=1 to 30 do
begin
for i:=1 to 25 do
for j:=1 to 6 do
begin
a[i,j]:=random(3);
end;
write(info,a);
end;
close (info);
readln;
end.



Че здесь не так? Объясните пожалуйста


И как потом считать эти матрицы из файла, чтобы с ними можно было проводить дальнейшие действия, описанные в условии?

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Бывалый
***

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

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


Кстати меня всегда удивляет, почему вопрос "объясните пожалуйста" задают на форуме, а не у препода на лекции... unsure.gif


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

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

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


Цитата(Guest @ 19.12.04 17:09)
Че здесь не так? Объясните пожалуйста

А какую ошибку выдает?
в каком месте?


--------------------
Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Ошибки не выдает, но в файл записывает какие-то квадратики... или так и должно быть?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


так и должно быть - файл то не текстовый.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

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

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


для того чтобы считать данные из файла:
Код

for I:=1 to 30 do
 begin
   read(F,S);
   for J:=1 to 26 do
     for K:=1 to 6 do
       writeln(S[J,K]);
 end;

попробуй так, вроде должно пойти...


--------------------
Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






А как тогда сделать так, чтобы при считывании, каждой матрице присваивался бы свой номер (1-30 дней)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Гость






Объясните хотя бы сам алгоритм решения задачи, а то у меня ничего не получается...
Я делаю так: генерирую случайным образом 30 матриц и заношу их в файл, далее надо их как-то считать и присвоитть каждой матрице свой порядковый номер (типа a1 a2 a3...), чтобы можно было по требованию пользователя выдать какие-то данные на определенное число.
Помогите sad.gif , а то завтра последний срок сдачи!
Заранее спасибо!
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 23.12.2024 19:23
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name