Работа с информацией сложной структуры, Помогите решить задачу |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Работа с информацией сложной структуры, Помогите решить задачу |
Hammer |
Сообщение
#1
|
Гость |
Составить программу, помогающую сообщать сведения о местах на авиарейсы из Моск-вы в Ленинград на календарный месяц (30 дней). В памяти хранится информация о мес-тах на рейс на заданное число в виде матрицы, в которой номер строки – ряд, номер столбца – номер места в ряду (всего 25 рядов, по шесть мест в ряду). Элемент матрицы может иметь следующие значения: 0 — место свободно, 1 — место продано, 2 — место забронировано. Считать, что в день имеется один рейс. По требованию сообщать сле-дующую информацию:
о свободных местах на заданное число; о проданных местах на заданное число; о количестве свободных мест на весь месяц; о брони на заданное число. Подкиньте пару идей... |
volvo |
Сообщение
#2
|
Гость |
Hammer
Цитата Подкиньте пару идей... Идей насчет чего? Все же уже придумано, осталось только реализовать, но это уже не идеи, а исходники... :D И потом: "Количество свободных дней на весь месяц" подразумевает, что есть возможность просматривать данные на месяц вперед. Данные об одном рейсе хранятся в виде матрицы - это прекрасно, но как они связаны между собой? Массив матриц? Список? |
Hammer |
Сообщение
#3
|
Гость |
Ну помогите тогда реализовать... :D
Такая формулировка меня тоже смущает, наверно в памяти хранится вся информация на весь месяц. Как сформировать 30 матриц и загнать их в файл? |
LLIRIKS |
Сообщение
#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. -------------------- Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют... |
volvo |
Сообщение
#5
|
Гость |
LLIRIKS
А ведь массив может быть не только двумерным... Код 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 |
Сообщение
#6
|
Гость |
я имел ввиду 30 разных матриц
|
LLIRIKS |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
Цитата(Guest @ 19.12.04 15:04) я имел ввиду 30 разных матриц фишка вот в чем: вводишь 1-ю (I:=1) матрицу под именем A, скидываешь в файл F (при этом указатель переходит на следующую позицию), потом вводишь 2-ю (I:=2) матрицу под тем же именем A (старая обновляется - но это не страшно, ведь она уже записана в файле ;) ), скидываешь 2-ю матрицу в файл (указатель двигается дальше) и т.д. до 30-й матрицы (I:=30)... -------------------- Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют... |
Guest |
Сообщение
#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 - |
Digitalator |
Сообщение
#9
|
Бывалый Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: 1 |
Кстати меня всегда удивляет, почему вопрос "объясните пожалуйста" задают на форуме, а не у препода на лекции...
-------------------- |
LLIRIKS |
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
Цитата(Guest @ 19.12.04 17:09) Че здесь не так? Объясните пожалуйста А какую ошибку выдает? в каком месте? -------------------- Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют... |
Guest |
Сообщение
#11
|
Гость |
Ошибки не выдает, но в файл записывает какие-то квадратики... или так и должно быть?
|
APAL |
Сообщение
#12
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
так и должно быть - файл то не текстовый.
-------------------- |
LLIRIKS |
Сообщение
#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; попробуй так, вроде должно пойти... -------------------- Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют... |
Guest |
Сообщение
#14
|
Гость |
А как тогда сделать так, чтобы при считывании, каждой матрице присваивался бы свой номер (1-30 дней)
|
Guest |
Сообщение
#15
|
Гость |
Объясните хотя бы сам алгоритм решения задачи, а то у меня ничего не получается...
Я делаю так: генерирую случайным образом 30 матриц и заношу их в файл, далее надо их как-то считать и присвоитть каждой матрице свой порядковый номер (типа a1 a2 a3...), чтобы можно было по требованию пользователя выдать какие-то данные на определенное число. Помогите , а то завтра последний срок сдачи! Заранее спасибо! |
Текстовая версия | 23.12.2024 19:23 |