IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Блок схема, Нужна Ваша помощь
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Кибер Чёрт

Репутация: -  0  +


Народ помогите нужно срочно составить блок схему для следующей программы:

Программный код файла Р.РAS

 program P;
uses T,crt;
var
s,b:string;
m,r:integer;
begin
ClrScr;
writeln('Введите строку');
readln(s);
writeln('');
writeln('Какое действие будет выполняться со строкой');
writeln('1-количество лексем, со списком разделением');
writeln('2-выбор лексемы');
writeln('3-заменяем выбраную лексему');
writeln('4-проверяем подстраку в строке');
writeln('5-преобразуем строчку из строчной в пропесные(и наоборот)');
readln(m);
if m=1 then begin
r:=kol(s);
writeln('Количество лексем=',r); end;
if m=2 then
writeln(vibor(s));
if m=3 then
writeln(zamena(s));
if m=4 then
writeln(proverka(s));
if m=5 then
writeln(preobraz(s));
readln;
end.


Программный код файла T.TРU

unit T;
interface
uses crt;
function kol(s:string):string;
function vibor(s:string):string;
function zamena(s:string):string;
function proverka(s:string):integer;
function preobraz(s:string):string;
implementation
function kol(s:string):string;
var
l,n,i,y,r,m:integer;
a:array[1..30] of string[1];
begin
write('Сколько будет разделений:');
readln(n);
for i:=1 to n do begin
write(i,' Разделение:');
readln(a[i]);
end;
r:=0;
m:=1;
for i:=1 to n do
if s[1]=a[i] then m:=0;
if m=1 then r:=1;
for i:=2 to Length(s) do begin
if m=1 then begin
for y:=1 to n do
if s[i]=a[y] then m:=0; end else begin
if m=0 then begin
l:=0;
for y:=1 to n do
if s[i]=a[y] then l:=1;
if l=0 then begin r:=r+1; m:=1; end;
end;end;
end;
writeln('Количество лексем:',r);
end;
function vibor(s:string):string;
var
r,m,l,i,n:integer;
c:string;
begin
write('Какую лексему вы хотите выбрать? -');
readln(n);
r:=0;
m:=1;
c:='';
if s[1]=' ' then m:=0;
if m=1 then r:=1;
for i:=2 to Length(s) do begin
if m=1 then begin
if s[i]=' ' then m:=0; end;
if r=n then c:=c+s[i];
if m=0 then begin
l:=0;
if s[i]=' ' then l:=1;
if l=0 then begin r:=r+1; m:=1;
if r=n then c:=c+s[i]; end;
end;
end;
Delete(c,Length©,1);
vibor:=c;
end;
function zamena(s:string):string;
var
r,m,l,i,n:integer;
c:string;
begin
write('Какую лексему вы хотите заменить? -');
readln(n);
r:=0;
m:=1;
c:='';
if s[1]=' ' then m:=0;
if m=1 then r:=1;
if (r=n)and(m=1) then begin s[1]:=readkey; write(s[i]); end;
for i:=2 to Length(s) do begin
if m=1 then begin
if s[i]=' ' then m:=0; end;
if (r=n)and(m=1) then begin s[i]:=readkey; write(s[i]); end;
if m=0 then begin
l:=0;
if s[i]=' ' then l:=1;
if l=0 then begin r:=r+1; m:=1;
if r=n then s[i]:=readkey; write(s[i]); end;
end;
end;
writeln('');
zamena:=s;
end;
function proverka(s:string):integer;
var
i:integer;
s1:string;
begin
Write('Какую подстраку проверяем-');
readln(s1);
proverka:=pos(s1,s);
end;
function preobraz(s:string):string;
var
i:integer;
begin
for i:=1 to Length(s) do begin
if (ORD(s[i])<91)and(ORD(s[i])>64) then
s[i]:=chr(ord(s[i])+32) else
if (ORD(s[i])>96)and(ORD(s[i])<123) then
s[i]:=chr(ord(s[i])-32) else
if (ORD(s[i])<144)and(ORD(s[i])>127) then
s[i]:=chr(ord(s[i])+32) else
if (ORD(s[i])<160)and(ORD(s[i])>143) then
s[i]:=chr(ord(s[i])+80) else
if (ORD(s[i])<176)and(ORD(s[i])>159) then
s[i]:=chr(ord(s[i])-32) else
if (ORD(s[i])<240)and(ORD(s[i])>223) then
s[i]:=chr(ord(s[i])-80);
end;
preobraz:=s;
end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Кибер Чёрт, ты бы программу-то оптимизировал, глядишь она раза в 3 меньше станет. Может быть, удобнее будет блок-схему то чертить? Ну, например:
function preobraz(s:string):string;
var i:integer;
begin
for i:=1 to Length(s) do
if s[i] in [#65 .. #90, #128 .. #143] then s[i]:=chr(ord(s[i])+32) else
if s[i] in [#97 .. #122, #160 .. #175] then s[i]:=chr(ord(s[i])-32) else
if s[i] in [#144 .. #159] then s[i]:=chr(ord(s[i])+80) else
if s[i] in [#224 .. #239] then s[i]:=chr(ord(s[i])-80);
preobraz:=s;
end;
Да и с другими процедурами/функциями аналогично.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Кибер Чёрт

Репутация: -  0  +


Мне не нужно оптимизировать, мне нужно составить блок схему именно к этой программе smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


ну скачай программку для рисования блок-схем....


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Кибер Чёрт

Репутация: -  0  +


Хм…
Она что из программного кода сома блок схемы делает или она проста прямоугольники с ромбами рисует???
Если первое то кинь пожалуйста линк где её скачать или вышли мне её на почту.
Заранее спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


поищи по форуму. обсуждалось, и ссылки были.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +



Программа построения блок-схем, сама анализирует код.pas


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Кибер Чёрт

Репутация: -  0  +


Цитата(Bokul @ 30.06.2006 9:04) *


Спасибо, но эту программу я уже нашёл раньше на форуме. Р.РAS она нормально раскрыла а на T.TРU она повесилась.
Помогите пожалуйста из T.TРU блок-схему сделать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата
Р.РAS она нормально раскрыла а на T.TРU она повесилась.
Тебе еще раз объяснить, ПОЧЕМУ это произошло? Объясняю: сравни 2 фрагмента кода:

A := 2 * B;

A := B;
B := B + B;
A := A + B div 2;
Какой из них ТЕБЕ легче анализировать? Так почему же ты думаешь, что КОМУ-ТО (или чему-то) легче анализировать другой фрагмент? Что тебе надо делать, я уже сказал... Вся твоя программа должна занимать по-хорошему 30 строк... Ну, 35 может быть... А у тебя... wacko.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Помогите пожалуйста из T.TРU блок-схему сделать.

T.TРU это откомпилированный T.PAS. Для него и рисуй блок-схему
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 12:33
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name