Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача с одномерным массивом

Автор: -Ник- 13.11.2007 22:21

!help.gif Переставить минимальный элемент и элемент, равный числу, введенному с клавиатуры. Вывести на экран минимальный элемент и массив до и после изменений. Часные случаи: если несколько минимальных элементов или несколько элементов, равных введенному числу с клавиатуры.

Автор: -Ник-:!help: 15.11.2007 22:15

!help.gif shok.gif ПОМОГИТЕ ПОЖАЛУЙСТА РЕШИТЬ! mega_chok.gif !help.gif

Автор: -Ник- 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 минимальный элемент
Еще вопросы?
Странно ты ее изменил blink.gif
хотя бы где она выводит "введите элемент массива" 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