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

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

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

 
 Ответить  Открыть новую тему 
> Блок схема, Нужна Ваша помощь
Кибер Чёрт
сообщение 29.06.2006 15:19
Сообщение #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 
 К началу страницы 
+ Ответить 
volvo
сообщение 29.06.2006 15:58
Сообщение #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;
Да и с другими процедурами/функциями аналогично.
 К началу страницы 
+ Ответить 
Кибер Чёрт
сообщение 29.06.2006 20:10
Сообщение #3





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

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


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


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

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

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


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


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





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

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


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


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

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

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


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


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


Гуру
*****

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

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



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


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





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

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


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


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


Гость






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

A := 2 * B;

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


Гость






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

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

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

 



- Текстовая версия 12.08.2025 5:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"