Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи на заказ _ помогите с блок схемой

Автор: eddisco 13.05.2007 0:54

вот файл.
буду очень признателен за помощь


Прикрепленные файлы
Прикрепленный файл  SPISKI.PAS ( 1.88 килобайт ) Кол-во скачиваний: 221

Автор: мисс_граффити 13.05.2007 1:10

Посмотри, пожалуйста, п.1 и п.2 правил, которые расположены на верху страницы. И исправь!

Автор: eddisco 13.05.2007 12:56

Все тексты программ должны помещаться в теги

 ... 
.
а как это сделать?

Автор: eddisco 13.05.2007 23:12

Цитата(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; {ожидаем нажатия клавиши}
.
вот так получилось


Автор: мисс_граффити 14.05.2007 1:04

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

Автор: eddisco 14.05.2007 1:54

я в паскале ваще 0.скачивал прогу-она только для процедур-фунцкий рисует.дайте ссылку на ту,которая на всю прогу сделает

Автор: мисс_граффити 14.05.2007 3:00

так и надо по отдельности рисовать...

Автор: Гость 14.05.2007 11:53

мож кто за деньги построит?

Автор: klem4 14.05.2007 13:06

Цитата
мож кто за деньги построит?


Перенести тему в "Задачи на заказ" ?

Автор: Гость 14.05.2007 14:10

перенесите

Автор: klem4 14.05.2007 15:27

сделано ... назначай цену и сроки.

Автор: eddisco 14.05.2007 15:44

учитывая что мемть программы которые строят схемы то 2 дня и 50р на счёт мобильного телефона или через мобильный кошелёк