Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> замена элементов массива. 
V
    Опции темы
Tiglon
Дата 4.12.2011, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 1.12.2011

Репутация: нет
Всего: нет



образовать и вывести одномерный массив. первый положительный элемент поменять местами с максимальным. сделано на паскале.
проблема в том что при выводе получаю в массиве два одинаковых значения.


Код

uses Crt;
var a:array[1..12] of real;
    k : integer; pd,max,e,d,q : real;
begin
   clrscr;
   max:=0;

   pd:=0;
   e:=0;
   for k:=1 to 12 do
   begin
   a[k]:=7*abs(k)+(((2*k+0.2)*cos(4*k)/sin(4*k))/((k+3)*(0.3*k+4)));
   writeln('a(',k,')=', a[k]:4:2);
   if max<a[k] then max:=a[k]; d:=max;
   end;
    for k:=1 to 12 do
   begin             while e=0 do begin
   a[k]:=7*abs(k)+(((2*k+0.2)*cos(4*k)/sin(4*k))/((k+3)*(0.3*k+4)));
   if a[k]>=0 then e:=1; pd:=a[k];  q:=pd;
   end;                   end;
   writeln;
   writeln('--------------');
   writeln;
   for k:=1 to 12 do
   begin
   a[k]:=7*abs(k)+(((2*k+0.2)*cos(4*k)/sin(4*k))/((k+3)*(0.3*k+4)));
   if a[k]=pd then a[k]:=d;
   if a[k]=max then a[k]:=q;
  writeln('a(',k,')=', a[k]:4:2);
   end;
   writeln('max=', max:4:2);
   writeln('pd=', pd:4:2);

   readln;
end.



PM MAIL   Вверх
14SatanA88
Дата 5.12.2011, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: нет
Всего: 5



Tiglon, я не знаю, что вы понаделали...
вот вам рабочий код

Код

program P1;

uses crt;

var a: array[1..12] of real;
    i, imax, ipol: integer; max, temp: real;
begin

  clrscr;

// создаем массив псевдослучайных чисел (заполнить его достаточно один раз)
  randomize;
  for i:=1 to 12 do
    a[i]:=(random(99)-random(99))+(1/random(99)); // так мы получим числа разных знаков и с дробной частью

// вывод массива на экран
  for i:=1 to 12 do
    writeln(a[i]:7:2);
  writeln;

// находим максимальный элемент и его индекс
  max:=-100; // заведомо маленькое число
  imax:=1;
  for i:=1 to 12 do
    if a[i]>max then
    begin
      max:=a[i];
      imax:=i;
    end;
  writeln('max element = ',max:7:2,' i imeet index = ',imax);

// находим первый положительный элемент, а точнее его индекс
  ipol:=1;
  for i:=1 to 12 do
    if a[i]>0 then
    begin
      ipol:=i;
      break; // нашли, прервали цикл
    end;
  writeln('pervij polozitelnij element imeet index = ',ipol);

// замена через промежуточную переменную temp
  temp:=a[imax];
  a[imax]:=a[ipol];
  a[ipol]:=temp;

// вывод массива напоследок
  for i:=1 to 12 do
    writeln(a[i]:7:2);
  writeln;

  readln;
end.

PM MAIL ICQ   Вверх
Tiglon
Дата 5.12.2011, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 1.12.2011

Репутация: нет
Всего: нет



14SatanA88,  а что у меня не ясно то ?

Добавлено через 2 минуты и 28 секунд
14SatanA88, и спасибо за код.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.2613 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.