Помощь - Поиск - Пользователи - Календарь
Полная версия: помогите с блок схемой
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи > Задачи на заказ
eddisco
вот файл.
буду очень признателен за помощь
мисс_граффити
Посмотри, пожалуйста, п.1 и п.2 правил, которые расположены на верху страницы. И исправь!
eddisco
Все тексты программ должны помещаться в теги
 ... 
.
а как это сделать?
eddisco
Цитата(eddisco @ 13.05.2007 9:56) *

uses Crt; {см. Описание выше}
const{см. Описание выше}
MaxNum=30; {количество элементов списка}
type{см. Описание выше}
pEl= ^Element; {создаём тип pEl – указатель на запись Element, т.е. наш список}
Element= record
i. Data:integer; {поле записи, содержит данные об элементе}
ii. Next:pEl; {указатель на сл. эл. списка}
iii. Prev:pEl {указатель на пред. эл. списка}
b. end; {конец записи}
var{см. Описание выше}
PX, PY : pEl; {элементы списка}
firstElem, curElem: pEl; {элементы списка}
i:integer; {циклическая переменная}
f:TEXT; {файловая переменная(!файл текстовый!)}
{***************************}
procedure AddElem(var CurElem:pEl; val:integer); {процедура добавляет в список новый элемент. CurElem – указатель на текущий элемент списка, val – значение нового элемента}
var{см. Описание выше}
tmpElem:pEl; {см. Описание выше}
begin{начало процедуры}
New(tmpElem); {создаём элемент списка}
tmpElem^.Data := val; {изменяем ему данные}
tmpElem^.Next := nil; {след. элемента нет}
tmpElem^.Prev := CurElem; {определяем предыдущий элемент}
CurElem^.Next := tmpElem; {говорим, что за текущим Эл. Списка идёт новый элемент}
CurElem := tmpElem; {говороим, что текущий эл. – это наш новосозданный элемент}
end; {конец процедуры}
{***************************}
procedure ChangePos(var firstElem,secondElem:pEl); {процедура смены позиции элементов}
var{см. Описание выше}
tmpElem:pEl; {см. Описание выше}
begin{начало процедуры}
New(tmpElem); {см. Описание выше}
{Далее меняю позицию, но не данные}
tmpElem^.Prev := secondElem^.Prev;
tmpElem^.Next := secondElem^.Next;

secondElem^.Prev := firstElem^.Prev;
secondElem^.Next := firstElem^.Next;

firstElem^.Prev := tmpElem^.Prev;
firstElem^.Next := tmpElem^.Next;
end; {конец процедуры}
{***************************}
begin{начало программы}
clrscr; {см. Описание выше}
Randomize; {подключаем генератор случайных чисел}
New(firstElem); {см. Описание выше}
New(curElem); {см. Описание выше}
firstElem^.Next := nil; {инициализация элемента списка}
firstElem^.Prev := nil; {инициализация элемента списка}
firstElem^.Data := random(100); {генерируем случайное число из диапазона от 0 до 100 }

curElem := firstElem; {текущий элемент – это первый элемент}
for i:=1 to MaxNum do{цикл от 1 до кол-ва элементов списка}
begin{начало цикла}
AddElem(curElem,random(100)); {добавляем новый элемент со случайным значением от 0 до 100}
if i = 1 then firstElem^.Next := curElem; {привязываем 2-й элемент к первому}
if i = 13 then{предполагаем, что элемент PY на позиции 13(хотя можем указать как хотим) }
begin
New(PY); {создаём элемент}
{далее делаем его текущим}
PY^.Prev := curElem^.Prev;
PY^.Next := curElem^.Next;
PY^.Data := curElem^.Data;
end;
if i = 20 then{предполагаем, что элемент PX на позиции 20(хотя можем указать как хотим) }
begin
New(PX); {создаём элемент}
{далее делаем его текущим}
PX^.Prev := curElem^.Prev;
PX^.Next := curElem^.Next;
PX^.Data := curElem^.Data;
end;
end; {конец цикла}

ChangePos(PX,PY); {меняем позиции элементов списка}
assign(f,'double_linked_list_8.txt'); {привязываем путь файла к переменной}
rewrite(f); {создаём файл или перезаписываем существующий}
writeln('FirstElement = ',firstElem^.Data); {выводим первый элемент}
curElem := firstElem; {делаем текущий элемент первым}
while (curElem <> nil) do{проход по списку}
begin{начало цикла}
writeln(f, curElem^.Data); {запись в файл элементов списка}
curElem := curElem^.Next; {двигаемся по списку}
end; {конец цикла}
close(f); {закрываем файл}
writeln('Press Enter'); {вывод сообщения}
readln; {ожидаем нажатия клавиши}
.
вот так получилось

мисс_граффити
Способов 2:
1. Поищи по форуму, выкладывали ссылку на программку, которая по коду сама рисует блок-схемы.
2. Начинаешь аккуратненько (хоть пооператорно) рисовать для каждой подпрограммы. Не знаешь, какой блок что значит?
eddisco
я в паскале ваще 0.скачивал прогу-она только для процедур-фунцкий рисует.дайте ссылку на ту,которая на всю прогу сделает
мисс_граффити
так и надо по отдельности рисовать...
Гость
мож кто за деньги построит?
klem4
Цитата
мож кто за деньги построит?


Перенести тему в "Задачи на заказ" ?
Гость
перенесите
klem4
сделано ... назначай цену и сроки.
eddisco
учитывая что мемть программы которые строят схемы то 2 дня и 50р на счёт мобильного телефона или через мобильный кошелёк
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.