Страница: 1 |
Вопрос: PASCAL нарисуйте блок-схему | Добавлено: 22.06.04 00:07 |
Автор вопроса: ![]() |
Нарисуйте мне блок схему к этому коду
{$r+} const maxterm=20; maxcon=10; maxdis=10; type st5=string[5]; st10=string[10]; st20=string[20]; con=record qc: byte; con: array [1..maxcon] of st10; end; dis=record qd: byte; dis: array [1..maxdis] of con; end; TermType= array [1..MaxTerm] of Dis; var i,j,k,l,m, sqty, qstat, n, qdig, msk: byte; s, s1: string; t, t1: text; i1: integer; terms, terms1: TermType; fl, erf: boolean; setb: set of byte; procedure trc(var s: string); var i: byte; begin i:=1; while i<=length(s) do if s[i]=' ' then delete(s, i, 1) else inc(i); for i:=1 to length(s) do s[i]:=upcase(s[i]); for i:=1 to length(s) do if s[i]='-' then s[i]:='^'; for i:=1 to length(s) do if s[i]='V' then s[i]:='|'; end; function getstr(var t: TermType; i: byte; test: boolean): string; var j,k: byte; s: string; begin s:=''; for j:=1 to t[i].qd do begin for k:=1 to t[i].dis[j].qc do if test then s:=s+t[i].dis[j].con[k]+'<*>' else s:=s+t[i].dis[j].con[k]+'*'; dec(s[0], 1+2*ord(test)); if test then s:=s+'<|>' else s:=s+' | '; end; dec(s[0], 3); getstr:=s; end; begin if paramcount<>2 then begin writeln('* NC * 30-Nov-93 Boolean Functions Minimizier'); writeln('Usage: Mini <InFile> <OutFile>'); halt(2); end; assign(t, paramstr(1)); reset(t); erf:=false; n:=0; qstat:=0; fl:=true; while not eof(t) and not erf do begin inc(n); readln(t, s); trc(s); fl:=s>''; if fl then begin inc(qstat); terms[qstat].qd:=0; while s>'' do begin inc(terms[qstat].qd); terms[qstat].dis[terms[qstat].qd].qc:=0; while (s>'') and fl do begin i:=pos('*', s); j:=pos('|', s); if ((i<j) and (i>0)) or (j=0) then l:=i else begin l:=j; fl:=false; end; inc(terms[qstat].dis[terms[qstat].qd].qc); k:=terms[qstat].dis[terms[qstat].qd].qc; if l>0 then begin s1:=copy(s, 1, l-1); delete(s, 1, l); end else begin s1:=s; s:=''; end; terms[qstat].dis[terms[qstat].qd].con[k]:=s1; end; fl:=true; end; end; end; close(t); if erf then halt(2); terms1:=terms; for i:=1 to qstat do {Sorting} for j:=1 to terms[i].qd do for k:=1 to terms[i].dis[j].qc-1 do for l:=k+1 to terms[i].dis[j].qc do if terms[i].dis[j].con[l]<terms[i].dis[j].con[k] then begin s:=terms[i].dis[j].con[l]; terms[i].dis[j].con[l]:=terms[i].dis[j].con[k]; terms[i].dis[j].con[k]:=s; end; for i:=1 to qstat do {Excluding of equal vars in each conjunction} for j:=1 to terms[i].qd do begin k:=1; while k<=terms[i].dis[j].qc-1 do begin l:=k+1; while l<=terms[i].dis[j].qc do if terms[i].dis[j].con[k]=terms[i].dis[j].con[l] then begin for m:=l+1 to terms[i].dis[j].qc do terms[i].dis[j].con[m-1]:=terms[i].dis[j].con[m]; dec(terms[i].dis[j].qc); end else inc(l); inc(k); end; end; for i:=1 to qstat do {Excluding of SubPart} begin j:=1; while j<=terms[i].qd-1 do begin k:=j+1; while k<=terms[i].qd do begin s:='*'; for l:=1 to terms[i].dis[j].qc do s:=s+terms[i].dis[j].con[l]+'*'; m:=0; for l:=1 to terms[i].dis[k].qc do if pos('*'+terms[i].dis[k].con[l]+'*', s)>0 then begin inc(m); delete(s, pos('*'+terms[i].dis[k].con[l]+'*', s)+1, length(terms[i].dis[k].con[l])+1); end; if (s='*') or (m=terms[i].dis[k].qc) then if s<>'*' then begin for l:=j+1 to terms[i].qd do terms[i].dis[l-1]:=terms[i].dis[l]; dec(terms[i].qd); k:=terms[i].qd+1; dec(j); end else begin for l:=k+1 to terms[i].qd do terms[i].dis[l-1]:=terms[i].dis[l]; dec(terms[i].qd); end else inc(k); end; inc(j); end; end; assign(t1, paramstr(2)); rewrite(t1); writeln(t1, 'Source:'); for i:=1 to qstat do writeln(t1, getstr(terms1, i, true)); writeln(t1); writeln(t1, 'Results:'); for i:=1 to qstat do begin s:=getstr(terms, i, false); repeat s1:=s; j:=1; while j<=terms[i].qd-1 do begin k:=j+1; while k<=terms[i].qd do begin if terms[i].dis[j].qc=terms[i].dis[k].qc then begin s:='*'; for l:=1 to terms[i].dis[j].qc do s:=s+terms[i].dis[j].con[l]+'*'; setb:=[]; m:=0; for l:=1 to terms[i].dis[k].qc do if pos('*'+terms[i].dis[k].con[l]+ '*', s)>0 then begin setb:=setb+[l]; inc(m); delete(s, pos('*'+terms[i].dis[k]. con[l]+'*', s)+1, length( terms[i].dis[k].con[l])+1); end; if terms[i].dis[j].qc-m=1 then begin l:=1; while l in setb do inc(l); s:=terms[i].dis[k].con[l]; if s[1]='^' then delete(s, 1, 1) else s:='^'+s; l:=1; while (l<=terms[i].dis[j].qc) and (s<>terms[i].dis[j].con[l]) do inc(l); if l<=terms[i].dis[j].qc then begin for m:=l+1 to terms[i].dis[j].qc do terms[i].dis[j].con[m-1]:=terms[i].dis[j].con[m]; dec(terms[i].dis[j].qc); for m:=k+1 to terms[i].qd do terms[i].dis[m-1]:=terms[i].dis[m]; dec(terms[i].qd); if terms[i].dis[j].qc=0 then for m:=j+1 to terms[i].qd do terms[i].dis[m-1]:=terms[i].dis[m]; k:=terms[i].qd; dec(j); end; end; end; inc(k); end; inc(j); end; s:=getstr(terms, i, false); until s1=s; writeln(t1, s); end; close(t1); writeln('Good Luck.'); end.
Рисовать можно где угодно, хоть в пейнте хоть в вёрде Зарание СПАСИБО!
|
Ответы | Всего ответов: 10 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 22.06.04 00:35 |
Хе, это рисовать часов 5... не меньше... |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 204447456 Вопросов: 28 Ответов: 664 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 22.06.04 01:24 |
Извращенец ![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 22.06.04 05:12 |
Напиши программу, которая рисует блок-схемы... Будет, имхо, быстрее. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #4 | Добавлено: 22.06.04 14:16 |
это не мне, другу одному, он пива обещал, я паскаль незнаю, вот думал тут кто-то знает. Я бы и пивом поделился, могу по почте выслать, токо доставка за ваш счёт, ок? ![]() 2 Sharp А хорошая идея, многим школьникам и те кто в институте такая вишка бы пригодилась, токо вот мне, ну всмысле ему это надо до среды. Чуть позже я займусь и напишу шоб сама рисовала схему. А кто поможет сейчас??? 2 sne Да ты что! как часов 5?! Это ты загнул, я подобный по размеру код на qbasice в школе за урок (45 мин) рисовал, ещё и время оставалось. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 22.06.04 21:18 |
я те сурьезно говорю, это долго не по детски!
я для прог на страничку рисовал часа по два, а тут такое... |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #6 | Добавлено: 23.06.04 00:41 |
ну ты шрифт ище мельче сделай, и на страничку вместишь ![]() |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 23.06.04 01:19 |
От паскакаля мозги программиста тупеют, и он перестает соображать. Как и все очень вредные вещи, он вызывает привыкание, в результате чего у пасквилянтов начинаются неконтролируемые галлюцинации на тему, что паскакаль - мощный, современный язык, пригодный для написания программ. Эффект затуманивания мозгов возникает очень быстро при применении паскакаля, поэтому для того, чтобы нарисовать блок-схему для текста, написанного на паскакале (программой это могут назвать только отравившиеся его ядовитыми испарениями) пасквилянт тратит порядка суток, независимо от сложности программы, ибо паскакаль уже через сутки настолько пропитывается галлюциогеном, что начинает понимать, что блок-схема любой программы - квадрат. Отравленные той же наркотой преподы обычно принимают такой ответ.
Привыкание к паскакалю происходит быстро, и пасквилянты, лишенные очередной дозы этого смертоносного языка, пытаются принимать любую гадость, хотя бы отдаленно напоминающую паскакаль, например delphi, kylix и тому подобные поделки подпольного концерна borland. Следует отметить, что паскакаль медленно разрушает психику и сознание несчастного, так, например, ему начинает казаться, что программы, сделанные под воздействием паскакаля, весят меньше и работают быстрее. Острую степень отравления паскакалем можно определить по нападкам на программистов. Отравленный паскакалем ищет программистов и начинает их ругать за неквалифицированность. Самым лучшим аргументов отравленного является "вы программируете на не-языке". После этого обычно мысли отравленного заплетаются и он засыпает. В 19 веке люди считали, что паскакаль можно использовать как лечебное средство против баз данных - другой страшной хвори, однако позже это заблуждение было развеяно такими лекарствами, как VB, PHP, Perl, Python etc Чего-то меня на лирику потянуло... |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #8 | Добавлено: 23.06.04 22:19 |
та лано тЕМА! ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 204447456 Вопросов: 28 Ответов: 664 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 25.06.04 02:41 |
Ну, настоящий прогаммист кроме паскаля должен знать ещё АСМ, БЕЙСИК и СИ. Наверное ещё и дедушку Фортрана.
А прогу для составления блок-схем лучше не писать, а лучше использовать язык программирования на Блок-схемах. Сам я его не видал, но один пацанчик, который в универе на компьютерщика учится, говорил что есть такой. |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 25.06.04 05:12 |
Знать, конечно, не лишне, но программировать н нем - увольте.
Чаще всего встает задача перевести код с языка высокого уровня на блок-схему, так что программа все-таки полезнее. |
Страница: 1 |
|