Задача !
|
|
ZimAN | Дата: Вторник, 13.05.2008, 01:46 | Сообщение # 1 |
Знакомый
Группа: Пользователи
Сообщений: 24
Статус: Offline
| Дан список случайных целых чисел. Переверните список, т.е. расставьте все числа в обратном порядке. помогите сделать эту задачку с помощью "Динамических структур данных" ... я начитался информации об Дин. стр. ,а ничего не понял... помогите ..
|
|
| |
Alexander | Дата: Вторник, 13.05.2008, 07:38 | Сообщение # 2 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Динамический массив подойдёт? . Code uses crt; type ByteArray=Array[1..1] of Byte; LPByteArray=^ByteArray; var Arr:LPByteArray; i,Size,temp:BYTE; begin ClrScr; Write('Vvedite kolichestvo chisel: '); ReadLn(Size); GetMem(Arr,Size); Randomize; for i:=1 to Size do begin Arr^[i]:=Random(256); Write(Arr^[i]:5); end; WriteLn; for i:=1 to Size shr 1 do begin temp:=Arr^[i]; Arr^[i]:=Arr^[Size-i+1]; Arr^[Size-i+1]:=temp; end; for i:=1 to Size do Write(Arr^[i]:5); FreeMem(Arr,Size); ReadKey; end. Только на подпрограммы надо разбить. Если нужен именно список, то всё сложнее... Короче сам смотри подойдёт или нет, если что, то пиши.
Скажем дружно- нафиг нужно!
Сообщение отредактировал Alexander - Вторник, 13.05.2008, 20:00 |
|
| |
ZimAN | Дата: Вторник, 13.05.2008, 18:51 | Сообщение # 3 |
Знакомый
Группа: Пользователи
Сообщений: 24
Статус: Offline
| Что-то этот массив не правильно считает. Вот что мне показало : Vvedite kolichestvo chisel: 10 136 177 116 114 194 76 69 150 37 183 183 37 150 69 76 76 69 150 37 183 а должно было: 136 177 116 114 194 76 69 150 37 183 183 37 150 69 76 194 114 116 177 136 ?
|
|
| |
Alexander | Дата: Вторник, 13.05.2008, 19:59 | Сообщение # 4 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| при обмене переменных опечатался, поправлено.
Скажем дружно- нафиг нужно!
|
|
| |
ZimAN | Дата: Вторник, 13.05.2008, 21:06 | Сообщение # 5 |
Знакомый
Группа: Пользователи
Сообщений: 24
Статус: Offline
| ОО.. спасибо, сейчас работает хорошо ... спрошу у препода, подойдет ли дин. массив.. Добавлено (13.05.2008, 14:06) --------------------------------------------- Препод сказал, что надо список делать..
|
|
| |
Alexander | Дата: Среда, 14.05.2008, 05:09 | Сообщение # 6 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Это муторнее.. Вот почитай про них, тут всё очень доходчиво:
Скажем дружно- нафиг нужно!
|
|
| |
ZimAN | Дата: Понедельник, 26.05.2008, 21:27 | Сообщение # 7 |
Знакомый
Группа: Пользователи
Сообщений: 24
Статус: Offline
| Извините Alexander, но в этих уроках я не понял какой класс надо брать для TListItem ? Code type TListItem = class Data : Integer; Next : TListItem; end; И никак не могу добиться того, чтобы хотя-бы вводился и выводился этот список... помогите...
|
|
| |
Alexander | Дата: Среда, 28.05.2008, 04:37 | Сообщение # 8 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Этот класс содержит инфу об одном элементе списка. На паскале в простейшем случае вполне пойдёт такая запись: Code type TListItem = record Data : Integer; Next : Pointer; end; Если список односвязный, то должна быть переменная, которая содержит адрес первого элемента списка, при наличии связи в обоих направлениях переменная будет отвечать за текущий элемент. В односвязном циклическом тоже за текущий. Где-то уже была тема про списки в которой я приводил примеры некоторых подпрограмм для списка.
Скажем дружно- нафиг нужно!
|
|
| |