Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 40000 рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2015, 23:30   #1
никита134245
Новичок
Джуниор
 
Регистрация: 24.12.2015
Сообщений: 2
По умолчанию Помогите найти ошибку пожалуйста

условие задачи : рандомно задается массив, для елементов, размещенных после последнего минимального выполнить сдвиг вправо на 2 позиции, а на свободные места вписать минимальый елемент
Код:
program lab9;
uses crt;
const n=10;
      cnt=2;
type mas=array[1..n]of integer;
var a:mas;
    i,j,k,min,c:integer;
begin
 randomize;
 for i:=1 to n do
 begin
  a[i]:=random(100)-50;
  write (a[i]:4);
 end;
 writeln;
 min:=a[1];
 for i:=1 to n do
  if a[1]>=a[i] then
   begin
    min:=a[i];
    c:=i;
   end;
 for j:=c to cnt do
  begin
   k:=a[n];
   for i:=1 downto 2 do
    a[i]:=a[i-1];
   a[1]:=k;
  end;
  for i:=1 to n do
  write(a[i]:4);
  readln;
end.
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 25.12.2015 в 09:42.
никита134245 вне форума Ответить с цитированием
Старый 25.12.2015, 15:46   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,850
По умолчанию

Так что ли? А что с двумя последними элементами в исходном массиве делать?
Код:
const n=10;
      cnt=2;
type mas=array[1..n]of integer;
var a:mas;
    i,j,k,min,c:integer;
begin
 randomize;
 for i:=1 to n do
 begin
  a[i]:=random(100)-50;
  write (a[i]:4);
 end;
 writeln;
 min:=a[1];
 for i:=2 to n do
  if min>=a[i] then
   begin
    min:=a[i];
    c:=i;
   end;
 for j:=1 to cnt do
   for i:=n downto c+2 do
    a[i]:=a[i-1];
  for i:=1 to n do
  write(a[i]:4);
  readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.narod.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 28.12.2015, 10:31   #3
никита134245
Новичок
Джуниор
 
Регистрация: 24.12.2015
Сообщений: 2
По умолчанию

Спасибо большое, в них записать минимальный
никита134245 вне форума Ответить с цитированием
Старый 28.12.2015, 12:53   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

интересно, куда делось ваше предыдущее сообщение на форуме?!...

ну да ладно, мне не трудно ещё раз тот же самый код выложить:
Код:
program lab9;
uses crt;
const n=10;
      cnt=2;
type mas=array[1..n]of integer;
var a:mas;
    i,j,k,min,c:integer;
begin
 randomize;
 for i:=1 to n do
 begin
  a[i]:=random(100)-50;
  write (a[i]:4);
 end;
 writeln;
 {поиск последнего минимального}
 c:=1;
 for i:=1 to n do
    if a[c]>=a[i] then c:=i;

 {сдвиг}
 for i:=n downto c+cnt+1 do
   a[i] := a[i-2];
   
 {присвоение минимального элементам на освободившихся местах}
 for i:=c+1 to c+cnt do
   if i<=n then
      a[i]:=a[c];

 {вывод полученного массива}
 for i:=1 to n do write(a[i]:4);
 readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку, пожалуйста! РоРоРоЛоЛоЛо C++ Builder 6 21.11.2013 21:07
Помогите пожалуйста найти ошибку (С\С++) Nina+ Помощь студентам 6 19.02.2009 22:30