23.09.2019, 04:45 [+3 UTC]
в нашей команде: 3 841 чел. | участники онлайн: 5 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.77 (31.05.2019)
JS-v.1.34 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
12.09.2019, 08:17

Последний вопрос:
22.09.2019, 21:31
Всего: 150374

Последний ответ:
22.09.2019, 18:43
Всего: 259051

Последняя рассылка:
22.09.2019, 17:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
03.04.2019, 21:08 »
dar777
Это самое лучшее решение! [вопрос № 195092, ответ № 277765]
22.09.2009, 23:27 »
Хиноцкий Ярослав Владимирович
Очень благодарен Вам за столь понятный и разъяснительный ответ, замечательно, все четко и ясно! [вопрос № 172508, ответ № 254551]

РАЗДЕЛ • Pascal / Delphi / Lazarus

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 93
zdwork
Статус: 3-й класс
Рейтинг: 73
puporev
Статус: Профессионал
Рейтинг: 28

Перейти к консультации №:
 

Консультация онлайн # 70021
Раздел: • Pascal / Delphi / Lazarus
Автор вопроса: SHTEP
Отправлена: 08.01.2007, 18:23
Поступило ответов: 2

Плз помогите мне ещё раз!Мне надо решить до 21 00 ещё 3 программы!Заранее спс!
1)Работа со списками:
Вставить элемент e1 в односвязную очередь q, за каждым вхождением элемента e2
С весом w.
2)Построить график функции y=sin(10/x), Xmin=-5 Xmax=5;
Координаты графического окна(где будет размещён график): x1=0 y1=0 x2=400 y2=300!
3)По заданным значениям координат центра окружностей, радиуса R самой внутренней окружности и числа окружностей N нарисовать концентрические окружности и закрасить образуемые ими кольца разными цветами.

Состояние: Консультация закрыта

Ответ # 135364 от Фёдоров М. Ф.

Здравствуйте, SHTEP!
На счет графика. Проверь почту!
Фича с окружностями см. приложение

Приложение:


Консультировал: Фёдоров М. Ф.
Дата отправки: 08.01.2007, 18:41

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 135450 от Форсман Павел Вячеславович

Здравствуйте, SHTEP!
Надеюсь, что с окружностью и графиком Вам уже помогли.
Попробую помочь со списком.
Давайте сразу определимся, что нам нужно в данном случае, а именно - значение элемента e1, т. о. задача сведется к обычной процедуре вставки элемента в список, в противном случае, мы не сможем корректно построить ссылки, т. к. никтьо не гарантировал, что элемент с весом w будет единственным.
Итак, вот что получается (если я не совсем правильно понял задание - уточните, что-нибудь придумаем).

Program ListInsert; {Вставка элемента в список}
type
PList=^List; {Описание списка}
List=record
Weight:Word; {Вес}
Next:PList;{Ссылка на следующий элемент nil-элемента не будет}
end;
var
Head,E1:PList; {Голова списка, с которым будем работать}
T:Word;
Procedure AppendList(var Head:PList;T:Word); {Добавление элемента в список}
var
C:PList;
begin
if Head<>nil then {Если список непустой - ищем последний элемент}
begin
C:=Head;
while C^.Next<>nil do C:=C^.Next; {Навигация по списку}
New(C^.Next); {Создание нового элемента}
with C^.Next^ do {и работа с ним через with для сокращения записи}
begin
Weight:=T;
Next:=nil;
end;
end
else
begin {Пустой список? - инициализируем}
New(Head);
Head^.Next:=nil;
Head^.Weight:=T;
end;
end;
Procedure OutList(L:PList); {Вывод списка L не передаем параметр с var,}
{т. к. менять ничего не требуется, в любом случае будет выделено
4 байта а переменная на навигацию по списку (текущий элемент) не потребуется}
begin
while L<>nil do
begin
write(L^.Weight,#32);
L:=L^.Next;
end;
writeln;
end;
Procedure InsertElem(var Dest,Match:PList;w:Word); {Вставка элементов}
var
C,T:PList;
begin
if Head<>nil then {Оперировать с пустым списком нет смысла выход из процедуры}
begin
C:=Head;
while C<>nil do {Навигация по списку}
begin
if C^.Weight=w then {Нашли искомый}
begin
New(T); {Генерируем новый элемент}
T^.Next:=C^.Next; {Исправляем ссылки и вставляем его с список}
C^.Next:=T;
T^.Weight:=Match^.Weight;
C:=T^.Next;
end
else
C:=C^.Next; {Иначе просто переходим к следующему}
end;
end;
end;
Procedure DestroyList(var Head:PList); {После работы список необходимо}
var {разрушить}
C:PList;
begin
while Head<>nil do
begin
C:=Head;
Head:=Head^.Next;
Dispose(C);
end;
end;
begin {Использование процедур}
Head:=nil;
repeat
write('Введите значение текущего элемента (65535 для завершения):');
readln(T);
if T<>65535 then AppendList(Head,T);
until T=65535;
write('Введите значение e1:'); {Ввод значения для вставки}
New(E1); {можно просто переменную Word, но, следуя условию задачи формируем}
E1^.Next:=nil; {элемент E1 как элемент списка}
readln(E1^.Weight);
writeln('Исходный список:');
OutList(Head);
write('Введите вес. W=');
readln(T);
InsertElem(Head,E1,T);
writeln('Результат:');
OutList(Head);
DestroyList(Head);
readln;
end.

Если что - спрашивайте.
С наилучшими пожеланиями Павел Форсман.


Консультировал: Форсман Павел Вячеславович
Дата отправки: 09.01.2007, 03:26

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.15076 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.77 от 31.05.2019
Версия JS: 1.34 | Версия CSS: 3.35