Версия для печати темы
Форум «Всё о Паскале» _ Задачи _ Задача с одномерным массивом
Автор: -Ник- 13.11.2007 22:21
Переставить минимальный элемент и элемент, равный числу, введенному с клавиатуры. Вывести на экран минимальный элемент и массив до и после изменений. Часные случаи: если несколько минимальных элементов или несколько элементов, равных введенному числу с клавиатуры.
Автор: -Ник- 15.11.2007 22:16
Вот полный текст задания:
Организовать ручное заполнение целочисленного одномерного массива В. Переставить минимальный элемент массива (предполагая, что такой элемент единственный) и элемент, равный числу, введённому с клавиатуры (предполагая, что такой элемент единственный). Вывести на экран минимальный элемент массива, а также сам массив В до и после изменения.
Предусмотреть исключительные ситуации, а именно: если исходный массив будет содержать несколько минимальных элементов или несколько элементов, равных числу, введённому с клавиатуры, то соответствующее сообщение должно быть выведено на экран и перестановка элементов при этом осуществляться не должна.
Автор: мисс_граффити 15.11.2007 23:29
Показывай, что пробовал делать.
Автор: alter 15.11.2007 23:36
Можно как файл с расширением .pas?
Добавлено через 14 мин.
Ну как? Получается?
Прикрепленные файлы
PRAKTIKA.PAS ( 836 байт )
Кол-во скачиваний: 235
Автор: alter 16.11.2007 0:47
HELP ME, PLEASE!!!
Автор: Client 16.11.2007 1:03
не знаешь как найти минимальный элемент? или не можешь понять в чем проблема в твоем коде?
Автор: alter 16.11.2007 1:16
Цитата(Client @ 15.11.2007 21:03)
не знаешь как найти минимальный элемент? или не можешь понять в чем проблема в твоем коде?
Минимальный знаю как найти.не могу понять в чем проблема в коде и сделать часные случаи.((((
Автор: Client 16.11.2007 1:54
Код
uses crt;
var
a:array[1..50] of integer;
n,i,k,c,kk,mk:integer;
begin
clrscr;
c:=0;
kk:=0;
mk:=1;
writeln(' Vvedite n ');
read(n);
writeln(' Vvedite ',n,'- elementov: ');
for i:= 1 to n do
read(a[i]);
writeln(' ishodniy massiv: ');
for i:=1 to n do
write(' ',a[i]);
writeln(' vvedite K ');
read(k);
c:=a[1];
for i:=1 to n do
begin
if a[i]<c then
begin
c:=a[i];
mk:=1;
end;
if a[i]=c then
inc(mk);
if a[i]=k then
inc(kk)
end;
if (mk>2) or (kk>1) then
begin
writeln(' neskolko chisel');
readkey;
halt
end;
for i:= 1 to n do
begin
if a[i]=k then
a[i]:=c
else
if a[i]=c then
a[i]:=k;
end;
for i:=1 to n do
write(' ',a[i]);
writeln(' min= ',c);
readkey
end.
Вот, будут вопросы - отвечу
Автор: alter 16.11.2007 3:01
Цитата(Client @ 15.11.2007 21:54)
Код
uses crt;
var
a:array[1..50] of integer;
n,i,k,c,kk,mk:integer;
begin
clrscr;
c:=0;
kk:=0;
mk:=1;
writeln(' Vvedite n ');
read(n);
writeln(' Vvedite ',n,'- elementov: ');
for i:= 1 to n do
read(a[i]);
writeln(' ishodniy massiv: ');
for i:=1 to n do
write(' ',a[i]);
writeln(' vvedite K ');
read(k);
c:=a[1];
for i:=1 to n do
begin
if a[i]<c then
begin
c:=a[i];
mk:=1;
end;
if a[i]=c then
inc(mk);
if a[i]=k then
inc(kk)
end;
if (mk>2) or (kk>1) then
begin
writeln(' neskolko chisel');
readkey;
halt
end;
for i:= 1 to n do
begin
if a[i]=k then
a[i]:=c
else
if a[i]=c then
a[i]:=k;
end;
for i:=1 to n do
write(' ',a[i]);
writeln(' min= ',c);
readkey
end.
Вот, будут вопросы - отвечу
СПС, но если чесно программа не работает вообще. Она не меняет никакие элементы и всегда выводит сообщение neskolko chisel'. Если можеш, то отладь её.
Автор: Boss 16.11.2007 3:15
Зачем???
Цитата
сообщение должно быть выведено на экран и перестановка элементов при этом осуществляться не должна.
А если хочешь изменить, то просто убери
halt после writeln(' neskolko chisel');
Автор: Client 16.11.2007 10:35
Надо же, а у меня все работает. Хотелось бы узнать почему?
Эскизы прикрепленных изображений
Автор: alter 16.11.2007 11:21
Цитата(Client @ 16.11.2007 6:35)
Надо же, а у меня все работает. Хотелось бы узнать почему?
Чо за переменная KK,KM,C?
Автор: volvo 16.11.2007 14:20
alter, Ты программу МЕНЯЛ? (я вижу, что менял, она у тебя русифицированная, а исходная - на транслите). Какие теперь претензии? Значит, что-то не так "изменил". Либо пользуйся той программой, что тебе дали, либо выкладывай свой "шедевр"...
Автор: Client 16.11.2007 22:12
KK это количество встречающихся К
MK количество встречающихся минимальных элементов
C минимальный элемент
Еще вопросы?
Странно ты ее изменил
хотя бы где она выводит "введите элемент массива" n раз
зачем?
Автор: alter 18.11.2007 15:42
Скоро выложу мой почти доделанный шедевр
Добавлено через 3 мин.
Цитата(volvo @ 16.11.2007 10:20)
alter, Ты программу МЕНЯЛ? (я вижу, что менял, она у тебя русифицированная, а исходная - на транслите). Какие теперь претензии? Значит, что-то не так "изменил". Либо пользуйся той программой, что тебе дали, либо выкладывай свой "шедевр"...
йа только сообщения поменял...
Автор: alter 18.11.2007 16:37
Это то, что йа сделал. Помогите с частными случаями только плз!
Прикрепленные файлы
LAB6.PAS ( 1.88 килобайт )
Кол-во скачиваний: 249
Автор: volvo 18.11.2007 16:42
Чтобы опять получилось так, как с моей программой? Ты благополучно ее проигнорировал, и опять просишь решить то же самое?
Автор: alter 18.11.2007 17:04
Цитата(volvo @ 18.11.2007 12:42)
Чтобы опять получилось так, как с моей программой? Ты благополучно ее проигнорировал, и опять просишь решить то же самое?
Йа ее не игнорировал. Она просто написана более сложно чем эта. Вот я уже сам справился!
Автор: alter 19.11.2007 21:01
Вот моя прога!
Прикрепленные файлы
LAB6.PAS ( 3.81 килобайт )
Кол-во скачиваний: 247