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

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

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

 
 Ответить  Открыть новую тему 
> Разбитие на процедуры(СРОЧНО), Заплачу если мне помогут
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

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


У меня проблема, есть готовая программа но ее надо разбить на процедуры,программа рабочая.
Моя ася 5515795 заплачу 50р smile.gif
Сдавать послезавтра !
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

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


{ Задание - если имеются нулевые и отрицательные элементы}
{ то отсортировать элементы стоящие между}
{ первым отрицательным и последним нулевым }
{ в порядке возрастания . Если нет нулевых или отрицательных}
{ не сортировать }

{Надо разбить на процедуры :}
{1)Ввод массива }
{2)Вывод массива }
{3)Обработка массива : }
{-Анализ (состоит из поиска нулевого и отрицательного элемента а так } {же флаг }
{Который передает управление дальше или на конец программы) }
{-Выбор элементов для сортировки }
{-Сортировка }
{-Возврат отсортированного массива в начальный }

Program zamuta;
var
i,max,k,x1,x2,n,m,p,n3,tmp,j,z:integer;
a:array [1..100] of integer;
b:array [1..100] of integer;
f1,f2:text;
IncreaseFlag:Boolean;

begin
assign(f1,'in.txt'); {начинаем делать}
assign(f2,'out.txt');
reset(f1);
n:=0;
i:=1;
while not EoF(f1) do {чтение файла}
begin
n:=n+1;
read(f1,a[i]); {перегоняется в массив а(и) }
i:=i+1;
end;
close(f1);

for i:=1 to n do {поиск последнего нулевого}
begin
if a[i]=0 then
m:=i;
x1:=1 {присваиваем ему букву м и х1=1}
end;

for i:=n downto 1 do {поиск первого отрицательного}
begin
if a[i]<0 then
p:=i;
x2:=1 {присваеваем ему букву п и х2=1}
end;

k:=0; {выбор элементов для сортировки}
for i:=p+1 to m-1 do
begin
k:=k+1;
b[k]:=a[i]; {перегоняем в массив б(к) }
end;
n3:=m-p; {считаем колличество чисел в массиве}
{дальше должна идти проверка если}
{ х1 и х2 оба равны единице то флаг принимает true}
{ и мутим дальше,если хотя бы одно ноль - идем на конец файла}


z:=k; {сортировка по возрастанию}
for k:=1 to k do
for j:=1 to z-1 do
if B[j]>B[j+1] then
begin
tmp:=B[j];
B[j]:=B[j+1];
B[j+1]:=tmp;
end;

k:=0 ; {возврат отсортированнного в общий массив а(и) }
for i:=p+1 to m do
begin
k:=k+1;
a[i]:=b[k];
end;

Assign(f2,'out.txt'); {записываем все полученное в файл}
Rewrite(f2);
for i:=1 to n do
Write(f2,A[i]:4);
Close(f2);
end.

Сообщение отредактировано: warning777 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


А в чем трудность ? это 5-10 минут делов, ты дольше ответа будешь тута ждать, так как это тупо механическая работа =).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

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


Очень нужна помощь !

Добавлено через 2 мин.
Я просто не понимаю как это делается
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

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

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


Варнинг, отредактируй, поставь в теги паскалевские, и сделай редактирование текста, что бы легче читать мона было, тогда я тебе помогу =)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

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


Так ? Плиз хелп smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

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

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


ПОСТАВЬ в паскалевские теги свой код программы, и отредактируй нормально. Я не собираюсь тута пол часа сидеть и пытаться разобрать твой код, мне же не чего не видно, что под чем стоит. Каким ендом какой цикл закрывается и т.д. ! Вот когда сделаешь, тогда я тебе помогу

З.ы. И еще сделай пожалуйста вот так если тебя конечно не затруднит. Это что бы видно было где мне процедуры делать =)


{Здесь сделать процедуру}
.... // какой то код
{здесь конец процедуры}



Сообщение отредактировано: sintanial -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

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


Я НЕ знаю что значит поставить в теги паскалевские !!!
Разбил и отредактировал, если не так,напиши как надо,я правда не знаю
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

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

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


Когда отвечаешь на пост то вверху есть такая надпись CODE, а там рядом с ней стрелочка. Жмякай на стрелочку, ищи паскаль/делфи, и ставь два тега. Один это начало {code=pas} дальше пишешь код программы тута и потом закрываешь тегом {/code}. ТОлько замени {} на []

Сообщение отредактировано: sintanial -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

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



{ Задание - если имеются нулевые и отрицательные элементы}
{ то отсортировать элементы стоящие между}
{ первым отрицательным и последним нулевым }
{ в порядке возрастания . Если нет нулевых или отрицательных}
{ не сортировать }

{Надо разбить на процедуры :}
{1)Ввод массива }
{2)Вывод массива }
{3)Обработка массива : дальше идут ПОДПРОЦЕДУРЫ }
{-Анализ (состоит из поиска нулевого и отрицательного элемента а так } {же флаг }
{Который передает управление дальше или на конец программы) }
{-Выбор элементов для сортировки }
{-Сортировка }
{-Возврат отсортированного массива в начальный }

Дело в том что надо сделать именно процедурами,функции не нужны sad.gif

Program zamuta;
var
i,max,k,x1,x2,n,m,p,n3,tmp,j,z:integer;
a:array [1..100] of integer;
b:array [1..100] of integer;
f1,f2:text;
IncreaseFlag:Boolean;

{Процедура чтения файла}
begin
assign(f1,'in.txt'); {начинаем делать}
assign(f2,'out.txt');
reset(f1);
n:=0;
i:=1;
while not EoF(f1) do {чтение файла}
begin
n:=n+1;
read(f1,a[i]); {перегоняется в массив а(и) }
i:=i+1;
end;
close(f1);
{Закончилась}

{Процедура ОБРАБОТКА}

{Процедура анализ}
for i:=1 to n do {поиск последнего нулевого}
begin
if a[i]=0 then
m:=i;
x1:=1 {присваиваем ему букву м и х1=1}
end;

for i:=n downto 1 do {поиск первого отрицательного}
begin
if a[i]<0 then
p:=i;
x2:=1 {присваеваем ему букву п и х2=1}
end;
{Закончилась}

{Процедура выбор элементов для сортировки}
k:=0; {выбор элементов для сортировки}
for i:=p+1 to m-1 do
begin
k:=k+1;
b[k]:=a[i]; {перегоняем в массив б(к) }
end;
n3:=m-p; {считаем колличество чисел в массиве}
{дальше должна идти проверка если}
{ х1 и х2 оба равны единице то флаг принимает true}
{ и мутим дальше,если хотя бы одно ноль - идем на конец файла}
{Закончилась}


{Процедура сортировка}
z:=k; {сортировка по возрастанию}
for k:=1 to k do
for j:=1 to z-1 do
if B[j]>B[j+1] then
begin
tmp:=B[j];
B[j]:=B[j+1];
B[j+1]:=tmp;
end;
{Закончилась}


{Процедура возврат отсортированного}
k:=0 ; {возврат отсортированнного в общий массив а(и) }
for i:=p+1 to m do
begin
k:=k+1;
a[i]:=b[k];
end;
{Закончилось}

{Закончилась общая процедура ОБРАБОТКА}

{Процедура Вывод}
Assign(f2,'out.txt'); {записываем все полученное в файл}
Rewrite(f2);
for i:=1 to n do
Write(f2,A[i]:4);
Close(f2);
end.
{Закончилась}



Сообщение отредактировано: warning777 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Пионер
**

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

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


Ураааа, хоть это получилось =). Щас сделаю все что в моих силах =) . По хорошему процедуры нужно уметь делать самому =)

Добавлено через 11 мин.
Варнинг, покажи где именно нужно делать процедуры. Те комментарии можешь удалить =), лучше поставь коменты где надо делать процедуры. Потому что там не везде нужны процедуры, в некоторых случаях нужны функции

Добавлено через 13 мин.
Слухай а у тя прога вообще правельно пашет ?


z:=k; {сортировка по возрастанию}
for k:=1 to k do
for j:=1 to z-1 do



Как это так ? сначало k:=1 а потом делаем цикл до k. Он все время вроде будет выполняться один раз. Если я ошибаюсь то поправь =) !
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

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


САм в шоке smile.gif
но даже если я меняю k на 10 (тестю и у меня 10 элементов для сортировки получается,все работает)
три раза проверил,пашет smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Пионер
**

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

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


Ну правельно. У тебя ведь там два цикла. Первый вот там де ошибка выполняется один раз если я не ошибаюсь, а второй уже выполняет столько раз сколько тебе нуна !

З.ы. Ща заканчиваю =)

Добавлено через 10 мин.
То что я выделил красным, у мя вопрос. ЗАЧЕМ ТЕБЕ ЭТО ? =)
 
{1}
Procedure File_Massiv(var f1:text; var a:array [1..100] of integer);
var n,i:integer;
begin
reset(f1);
n:=0;
i:=1;
while not EoF(f1) do {чтение файла}
begin
n:=n+1;
read(f1,a[i]); {перегоняется в массив а(и) }
i:=i+1;
end;
close(f1);
end;
{/1}
{2}
procedure poisk_0(const a:array [1..100] of integer, var M;integer; const n:integer;);
var x1,I:integer;
begin
for i:=1 to n do {поиск последнего нулевого}
begin
if a[i]=0 then
m:=i;
x1:=1 {присваиваем ему букву м и х1=1}
end;
end;
{/2}
{}
Procedure poisk_otr(const a:array [1..100] of integer; var p:integer; const n:integer);
var i,x1:integer;
begin
for i:=n downto 1 do {поиск первого отрицательного}
begin
if a[i]<0 then
p:=i;
x2:=1 {присваиваем ему букву п и х2=1}
end;
end;
{3}
procedure Vibor(const a:array [1..100] of integer; var b:array [1..100] of integer, const p,m:integer);
var k,i:integer;
begin
k:=0; {выбор элементов для сортировки}
for i:=p+1 to m-1 do
begin
k:=k+1;
b[k]:=a[i]; {перегоняем в массив б(к) }
end;
n3:=m-p;
end;
{/3}
{4}
procedure Sort(var b:array [1..100] of integer; const k:integer);
var z,tmp,j:integer;
begin
z:=k; {сортировка по возрастанию}
for k:=1 to k do
for j:=1 to z-1 do
if B[j]>B[j+1] then
begin
tmp:=B[j];
B[j]:=B[j+1];
B[j+1]:=tmp;
end;
{/4}
{5}
procedure Vozvrat(Var a:array [1..100] of integer, const b:array [1..100] of integer; const m,p:ineteger;);
var i,k:integer;
begin;
k:=0 ; {возврат отсортированнного в общий массив а(и) }
for i:=p+1 to m do
begin
k:=k+1;
a[i]:=b[k];
end;
end;
{/5}
{}
procedure zap(var f2:text; const a:array [1..100] of integer; const n:integer;);
var i:integer;
begin

Assign(f2,'out.txt'); {записываем все полученное в файл}
Rewrite(f2);
for i:=1 to n do
Write(f2,A[i]:4);
Close(f2);
end.
{Закончилась}



Добавлено через 2 мин.
Основную программу думаю ты сам сделаешь. И еще , так как я писал тута, и уже час ночи( сам понимаешь), то ошибак там не мало =) . Де то end; пропустил в процедуре, де то не описал переменную, де то точку забыл. Подредактируй =)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

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


Спасибо !!! Спасибо !
Попробую доделать smile.gif
У меня четыре часа ночи)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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