Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Задачка на PASCAL

Ответить
Настройки темы
Задачка на PASCAL
Crazy Wolf


Сообщения: n/a

Профиль | Цитировать


Приветствую ALL

Недавно подкинули задачу на Паскале.. помогите решить плиз

С помощью ООП составить описание объектного типа TMatrix обеспечивающего размещение матрицы произвольного размера с вариантностью изменения числа строки  столюцов и вывода на экран подматрицы любого размера и всей матрицы

Я сам потихоньу изучаю Си и как это сделать на Си++ в принципе знаю... (я надеюсь) но как это сделать на Паскале?

Отправлено: 21:48, 09-01-2003

 

Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Crazy Wolf
Цитата:
но как это сделать на Паскале?
Точно так же.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 12:56, 10-01-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для XXXX Pro

Пользователь


Сообщения: 130
Благодарности: 0

Профиль | Сайт | Цитировать


Чтобы матрица была произвольного размера, память для нее надо выделять динамически, и адреса подсчитывать вручную. (Т.е. к смещению базового адреса прибавить (номер строки-1)*(число столбцов)*размер элемента+(номер столбца-1)*размер элемента)
Все остальное - примерно также, как и в C.

-------
Объединенный Открытый Проект OpenProj.Ru - сайт для Настоящих Компьютерщиков


Отправлено: 12:43, 12-01-2003 | #3

Crazy Wolf


Сообщения: n/a

Профиль | Цитировать


XXXX Pro
А попдробнее....как в Паскале с адресами работать.. если можно кусок любого кода для примера....

Отправлено: 17:16, 12-01-2003 | #4


Старожил


Сообщения: 163
Благодарности: 0

Профиль | Отправить PM | Цитировать


Если это учебная программа должна быть написана под ДОС, то мои соболезнования.
Сейчас языки срастаются потихоньку, дерут друг у друга самое ороше, а вот Паскаль 7.... там например выделение памяти через new совсем не так как в С работает.

В С как просто было

char *str = new char[20];
//не нужно стало
delete []str;

А в паскале так и не получилось динамически выделять память, (у меня конечно) он постоянно хотел знать сколько надо выделять и до маразма дошло  -  на каждый вариант свой тип данных вводить, под который он уже тогда память динамически выделял. Может и проще можно

-------
"Сколь бы сложной ни казалась проблема на первый взгляд, она, если правильно к ней подойти, окажется еще более сложной" - Пол Андерсон


Отправлено: 06:54, 14-01-2003 | #5

Crazy Wolf


Сообщения: n/a

Профиль | Цитировать


Ну тогда рискуя вызвать общий гнев попрошу привести кусок кода с использованием ООП в ПАСКАЛЕ....

Добавлено:

Т.е. я так понимаю что в Паскале нужно создать подобие класса в Си++.... как это делать?

Отправлено: 16:40, 14-01-2003 | #6


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


type
TElement = Integer;

TRow = class
 Items:array of TElement;
end;

TMatrix = class
 Rows:array of TRow;
end;

Вот примерно так.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 18:33, 14-01-2003 | #7


Старожил


Сообщения: 163
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я извиняюсь, конечно, это работать будет только в Delphi мне кажется, потому что границы массива не определены. (учитывая стиль T??????, тем более)
а под ДОС можно было *в функцию передавать массив без границ, только он его извлекать не хотел.
Crazy Wolf
А на чем писать надо, может "мой" досовский паскаль и не нужен?


[s]Исправлено: Crew, 8:14 15-01-2003[/s]

-------
"Сколь бы сложной ни казалась проблема на первый взгляд, она, если правильно к ней подойти, окажется еще более сложной" - Пол Андерсон


Отправлено: 08:12, 15-01-2003 | #8


Аватара для shurikan

Старожил


Сообщения: 240
Благодарности: 1

Профиль | Отправить PM | Цитировать


Crew
Цитата:
(учитывая стиль T??????, тем более)
Не факт, что это Delphi. Нормальное Поскакальное обьявление. Похоже на стандарт Delphi - да, но и только.

vasketsov
А это тягомотно. Можно проще, правда без функций-членов:
Crazy Wolf
(допустим, тебя попросили в данный момент создать матрицу 6x7)

Код: Выделить весь код
TMatrix = class
public:
 *V: Variant;
 *constructor Create(const Bounds: array of Integer);
end;

constructor TMatrix.Create(const Bounds: array of Integer);
begin
 *V := VarArrayCreate(Bounds, varInteger);
end;


Matrix: TMatrix;

begin
 *Matrix.Create([1,6,1,7]); {Первая пара нач. и конеч. индексы первого измерения,
 вторая пара - соотв для второго. Нумеруются от 1 до 6 и от 1 до 7}

 *Matrix.V[1,1] := 1; {и т.д.}
end.


[s]Исправлено: shurikan, 9:12 15-01-2003[/s]

Да! Это на Delphi



[s]Исправлено: shurikan, 9:17 15-01-2003[/s]

-------
UNIX, UNAS и др. Myself I'll like 'em


Отправлено: 09:09, 15-01-2003 | #9

Crazy Wolf


Сообщения: n/a

Профиль | Цитировать


Crew
Цитата:
А на чем писать надо, может "мой" досовский паскаль и не нужен?
Как я понял он то и нужен.... поэтому и затеял эту дискуссию... Просто не слышал что бы в обычном Паскале такие вещи вершить можно.....

Отправлено: 20:22, 15-01-2003 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Задачка на PASCAL

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Всё о TURBO PASCAL (обсуждение, помощь в написание программ, ошибки, Pascal ABC) Loading Программирование и базы данных 41 20-05-2015 15:28
Delphi - Задачка на Pascal'e !! stolyar Программирование и базы данных 4 21-11-2009 14:21
Задачка VuDZ Программирование и базы данных 4 02-04-2003 17:44
Задачка noname00.pas Программирование и базы данных 6 07-12-2001 11:43
Задачка... noname00.pas Программирование и базы данных 4 28-11-2001 03:17




 
Переход