Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 11.10.2011, 23:50   #1 (permalink)
Ириночка
Новичок
 
Регистрация: 11.10.2011
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите решить. Паскаль

18. В одномерном массиве, состоящем из n вещественных элементов, вычислить минимальный элемент и поменять его с последним
Замечание:
Ириночка, у нас рассовывывание сообщений по чужим темам, равно как и клонирование топиков, НЕ ДОПУСКАЕТСЯ.
Дубликат удален.

Модератор.
Ириночка вне форума   Ответить с цитированием

Старый 11.10.2011, 23:50
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Вот топики, которые схожи с вашей темой

Помогите решить мою проблему
Помогите, пожалуйста, решить задачу. Паскаль
Помогите решить лабораторную
Помогите решить задачу)

Старый 12.10.2011, 01:36   #2 (permalink)
DDS
Member
 
Регистрация: 15.02.2009
Сообщений: 695
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 523
По умолчанию

Код:
program t1;
 const n=5;
 var a: array [1..n] of real;
 i,k:integer;
 t,min:real; 
 begin
   randomize;
   for i:=1 to n do
        a[i]:=random(100)+1;
   writeln;
   for i:=1 to n do
        write(a[i]:5:2,'  ');
   min:=a[1];
   k:=1;
   for i:=1 to n do
       if (a[i]<=min) then begin
                             min:=a[i];
                             k:=i;
                           end;
   t:=a[n];
   a[n]:=a[k];
   a[k]:=t;
   writeln;
   for i:=1 to n do
        write(a[i]:5:2,'  ');
 end.
DDS вне форума   Ответить с цитированием
Старый 12.10.2011, 08:11   #3 (permalink)
Rossomaxa
Лесник
 
Аватар для Rossomaxa
 
Регистрация: 11.10.2011
Сообщений: 338
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 771
По умолчанию

Вообще конечно такие простые задачки нужно уметь делать самому дамочка...
Цитата:
const
n = 10;//размерность массива
m = 120;//максимально возможное значение в массиве
var
a: array[1..n] of integer;
i: integer;
minX: array[1..2] of integer;
begin
minX[1]:=m;
for i:=1 to n do a[i]:=random(m);//заполняем масив случайно

writeln('исходные элементы массива:');
for i:=1 to n do write(a[i]:5);
writeln();

//Ищим минимальный
for i:=1 to n do
begin
if a[i]<minX[1] then
begin
minX[2]:=i;
minX[1]:=a[i]
end;
end;

//Меняем местами с последним
a[minX[2]]:=a[n];
a[n]:=minX[1];

writeln('Преобразованный массив:');
for i:=1 to n do write(a[i]:5);
end.
Rossomaxa вне форума   Ответить с цитированием
Старый 12.10.2011, 10:35   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Rossomaxa Посмотреть сообщение
Вообще конечно такие простые задачки нужно уметь делать самому дамочка...
Во-первых, попрошу повежливее, а то такая формулировка, будучи, безусловно, правильной по сути, выходит на грань хамства, что у нас не допускается.
Во-вторых, уж если Вы решили помочь и написать программу, то большая просьба - делать это внимательно и без ошибок. Либо не делать вовсе. Потому что если Вы выкладываете неряшливо написанную программу, то от этого страдает репутация нашего форума, что лично мне, например, отнюдь не безразлично.
Претензии к Вашему коду:
1. В условии задачи говорится о массиве вещественных элементов - на каком таком основании Вы объявляете целочисленный массив? Потому что так удобнее и приятнее? Не пойдёт.
2. Если Вы используете псевдослучайные числа, то необходимо командой Randomize инициализировать генератор. Без этого программа хоть и будет выполняться, но некорректно.
3. Если предусмотрен экранный вывод, то в конце очень желательно поставить оператор Readln; - это остановит выполнение программы и позволит рассмотреть результат.
С учетом вышеизложенного:
Код:
const
 n = 10; //размерность массива
var
 a: array[1..n] of real;
 i,i_min: integer;
 min:real;
begin
 Randomize;
 for i:=1 to n do
  a[i]:=random*100; //заполняем масив случайно
 min:=a[1];
 i_min:=1;

 writeln('исходные элементы массива:');
 for i:=1 to n do
  write(a[i]:8:3);
 writeln;

 //Ищем минимальный
 for i:=2 to n do
  if a[i]<min then
   begin
    i_min:=i;
    min:=a[i]
   end;

//Меняем местами с последним
 a[i_min]:=a[n];
 a[n]:=min;

 writeln('Преобразованный массив:');
 for i:=1 to n do
  write(a[i]:8:3);

 readln;
end.
P.S. А росомаха пишется с одним "с". Но это так, к слову.
Vladimir_S вне форума   Ответить с цитированием
Старый 12.10.2011, 11:06   #5 (permalink)
Rossomaxa
Лесник
 
Аватар для Rossomaxa
 
Регистрация: 11.10.2011
Сообщений: 338
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 771
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Во-первых, попрошу повежливее, а то такая формулировка, будучи, безусловно, правильной по сути, выходит на грань хамства, что у нас не допускается.
Не хотел никого обидеть, на мой взгляд вполне уместная фраза

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Во-вторых, уж если Вы решили помочь и написать программу, то большая просьба - делать это внимательно и без ошибок. Либо не делать вовсе. Потому что если Вы выкладываете неряшливо написанную программу, то от этого страдает репутация нашего форума, что лично мне, например, отнюдь не безразлично.
1. В условии задачи говорится о массиве вещественных элементов - на каком таком основании Вы объявляете целочисленный массив? Потому что так удобнее и приятнее? Не пойдёт.
Каюсь, невнимательно прочитал задание, но сути это не меняет.
Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
2. Если Вы используете псевдослучайные числа, то необходимо командой Randomize инициализировать генератор. Без этого программа хоть и будет выполняться, но некорректно.
Согласен такой генератор будет качественнее, но в задаче не было условий на заполнение массива - это ,можно сказать инициатива, поэтому реализовал самый простой вариант, чтобы не перегружать пример лишним кодом. к тому же качество рандома в данном случае некритично.
Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
3. Если предусмотрен экранный вывод, то в конце очень желательно поставить оператор Readln; - это остановит выполнение программы и позволит рассмотреть результат.
Признаю, на паскале не писал с института и это вылетело из головы
Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
P.S. А росомаха пишется с одним "с". Но это так, к слову.
В таком случае следовало бы написать wolverine или rosomaha... В приведенном же мною слове корнем является "Ross"
Rossomaxa вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 12.10.2011, 11:19   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Rossomaxa Посмотреть сообщение
В таком случае следовало бы написать wolverine или rosomaha... В приведенном же мною слове корнем является "Ross"
Название: offtopic.gif
Просмотров: 167

Размер: 925 байт О! Тогда - дело другое. Как там у Зощенко - "что пардон, то пардон!". Видимо, имеется в виду российский вариант гойевской Махи? Кстати, это я сегодня видел - иду на работу, а навстречу - баба лет 40, пьяная, растрепанная, на плечи небрежно наброшена драная накидка, под ней - абсолютно ничего. Сразу как-то Гойя вспомнился.
Vladimir_S вне форума   Ответить с цитированием
Старый 12.10.2011, 13:32   #7 (permalink)
Rossomaxa
Лесник
 
Аватар для Rossomaxa
 
Регистрация: 11.10.2011
Сообщений: 338
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 771
По умолчанию

off topic: Нет, с "Махой" это не связано.
Rossomaxa вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 20:43.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.