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

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

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

> Задача на поиск ключа в файле и дальнейшую мини-сортировку, Немного не пашет, точнее не меняет местами в сортировках Help
-Олег-
сообщение 1.04.2006 10:28
Сообщение #1


Гость






В общем вот решил я такую задачку, которая: просит нас ввести ключ, потом ищет этот ключ в массиве(которой задавался рандомом), далее просит выбрать сортировку этого массива. 1 Сортировка заключается в том, чтобы то введенное число(то бишь ключ) поменять с первым местами,а вторая поменять ключ с предыдущим, и у меня не пашут обе,народ гляньте в процедуру чего там не так, а то я запарился...
program laba1;
const
N=20;
var
M:array[1..N+1] of integer;
y1,y2,y3,x,x1,x2,z,i,kluch,rez:integer;
ch:char;

function search(kluch:integer):integer;
begin
M[N+1]:=kluch;
i:=1;
while M[i]<>kluch do i:=i+1;
if i=N+1 then search:=0
else search:=i
end;

procedure Vivod;
begin
for i:=1 to N do write(M[i],' ');
writeln(' ');
end;

procedure Algoritm(al:byte);
var
temp,item:integer;
begin
case al of
1:
begin
Temp:=M[item];
for i:=Item downto 2 do M[I]:=M[I-1];
M[1]:=Temp;
end;
2:
begin
if Item<>1 then
begin
Temp:=M[Item];
M[Item]:=M[item-1];
M[Item-1]:=Temp;
end;
end;
end;
end;

begin
Randomize;
for i:=1 to N do M[i]:=random(100);
writeln('Massiv:');
Vivod;
rez:=0;
while rez=0 do
begin
writeln('Vvedite kluch poiska');
readln(kluch);
z:=search(kluch);
while z=0 do begin
writeln('Kluch v massive ne nayden, poprubuyte vvesti ewe raz');
writeln('Vvedite kluch poiska');
readln(kluch);
z:=search(kluch);
end;
begin
ch:=' ';
writeln('Esli vi xotite vipolnit sortirovku metodom puzirka, to nazmite 1,'+
' a esli metodom priamogo dostupa-2');
while (ch<>'1') and (ch<>'2') do Readln(ch);
case ch of
'1':algoritm(1);
'2':algoritm(2);
end;
end;
Writeln('Rezultat:');
Vivod;
ch:=' ';
Writeln('Xotite ewe? (y/n)');
while (ch<>'y') and (ch<>'n') do readln(ch);
case ch of
'n':exit;
'y':rez:=0;
end;
end;
end.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Гость
сообщение 1.04.2006 14:19
Сообщение #2


Гость






Чето не пойму, где айтем передается в процедуру algorithm и если не трудно напиши куда мне это в мою прогу вставить.
 К началу страницы 
+ Ответить 
volvo
сообщение 1.04.2006 14:29
Сообщение #3


Гость






Цитата(Гость @ 1.04.2006 13:19) *
Чето не пойму, где айтем передается в процедуру algorithm

Что по-твоему такое ВТОРОЙ параметр для процедуры algorithm?
case ch of
'1':Algorithm(1,result); { <--- Здесь }
'2':algorithm(2,result); { <--- и здесь? }
end;

А вот что:
procedure Algorithm(Alg:byte;Item:integer);
{ первый параметр - способ сортировки, второй - значение Item }
...


А по-поводу куда это вставить... Ну, так это же твоя программа. Ты спросил, где ошибка, я тебе сказал. Решать, как исправлять - тебе...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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