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

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

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

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


Гость






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


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


Гость






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

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


Гость






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

Как сформировать 30 матриц и загнать их в файл?
 К началу страницы 
+ Ответить 
LLIRIKS
сообщение 19.12.2004 14:36
Сообщение #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 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.12.2004 14:45
Сообщение #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.
 К началу страницы 
+ Ответить 
Guest
сообщение 19.12.2004 15:04
Сообщение #6


Гость






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


Новичок
*

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

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


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

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


--------------------
Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Guest
сообщение 19.12.2004 17:09
Сообщение #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 - 19.12.2004 17:32
 К началу страницы 
+ Ответить 
Digitalator
сообщение 19.12.2004 17:42
Сообщение #9


Бывалый
***

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

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


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


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


Новичок
*

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

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


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

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


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


Гость






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


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

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

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


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


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
LLIRIKS
сообщение 19.12.2004 18:14
Сообщение #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 
 К началу страницы 
+ Ответить 
Guest
сообщение 21.12.2004 10:54
Сообщение #14


Гость






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


Гость






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

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

 



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