Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2014, 15:53   #1
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию Делфи 7. Дан массив A размера N. Найти минимальный элемент из его элементов с четными номерами: A2, A4, A6, ...

Дан массив A размера N. Найти минимальный элемент из его элементов с четными номерами: A2, A4, A6, ... .
Нужна помощь в написании программы.
nadyaH вне форума Ответить с цитированием
Старый 17.03.2014, 19:19   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Ичё?
Код:
for i:=o to n do
bеgin
if (i mоd 2 = 0) and (a[i] < min) thеn ...
end
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 17.03.2014, 20:49   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
nadyaH
А можешь показать ввод массива?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.03.2014, 10:36   #4
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

Код:
type  {+}
  TArray = array[1..100] of Integer;
function ArrayToString(a: TArray; N: integer): string;
var
  i: integer;
begin
  result := '';
  for i:=1 to N-1 do
    result := result  + IntToStr(a[i])+',';
  result := result  + IntToStr(a[i]);
end;

function Chet(a: TArray; N: integer; var min : integer): string;
var
  i: integer;
begin
  result := '';
  Min:=A[2];
for i:= 2 to N do
   if A[2*i]<Min then Min:=A[2*i];
   result := IntToStr(Min);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i,N: integer;
x: TArray;

begin
randomize;
N:=StrToInt(Edit1.Text);
 for i:=1 to N do
 x[i] := random(100);

RichEdit1.Lines.Clear;
RichEdit1.Lines.Append('массив: ' + ArrayToString(x,N));
RichEdit1.Lines.Append('ответ:'+Chet(x,N);
end;
end.
Вот что то написала, но где то ошибка.
nadyaH вне форума Ответить с цитированием
Старый 18.03.2014, 12:19   #5
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию Дан массив A размера N. Найти минимальный элемент из его элементов с четными номерами: A2, A4, A6, ... .

Код:
type  
  TArray = array[1..100] of Integer;
function ArrayToString(a: TArray; N: integer): string;
var
  i: integer;
begin
  result := '';
  for i:=1 to N-1 do
    result := result  + IntToStr(a[i])+',';
  result := result  + IntToStr(a[i]);
end;

function Chet(a: TArray; N: integer; var min : integer): string;
var
  i: integer;
begin
  result := '';
  Min:=A[2];
for i:= 2 to N do
   if A[2*i]<Min then Min:=A[2*i];
   result := IntToStr(Min);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i,N: integer;
x: TArray;

begin
randomize;
N:=StrToInt(Edit1.Text);
 for i:=1 to N do
 x[i] := random(100);

RichEdit1.Lines.Clear;
RichEdit1.Lines.Append('массив: ' + ArrayToString(x,N));
RichEdit1.Lines.Append('ответ:'+Chet(x,N);
end;
end.
Вот что то написала, но где то ошибка.
nadyaH вне форума Ответить с цитированием
Старый 18.03.2014, 12:33   #6
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

А что за ошибка?
Код:
for i:= 2 to N div 2 do
   if A[2*i]<Min then Min:=A[2*i];
И переменную min из function Chet можно не возвращать через var
Может и ещё что есть, смотрел "с разбега"
eoln вне форума Ответить с цитированием
Старый 18.03.2014, 12:57   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а так?
Код:
function Chet(a: TArray; N: integer): string;
var
  i, Min : integer;
begin
  result := '';
  Min := a[2];
  i := 2;
  while i<=N do begin
    if a[i]<Min then Min := a[i];
    i := i + 2;
  end;
  result := IntToStr(Min);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i,N: integer;
  x: TArray;

begin
  randomize;
  N:=StrToInt(Edit1.Text);
  for i:=1 to N do
      x[i] := random(100);

  RichEdit1.Lines.Clear;
  RichEdit1.Lines.Append('массив: ' + ArrayToString(x,N));
  RichEdit1.Lines.Append('Минимальное значение : '+ Chet(x,N));
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.03.2014, 13:27   #8
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

Код:
function Chet(a: TArray; N: integer): string;
var
  i,min: integer;
begin
  result := '';
  Min:=A[2];
for i:= 2 to N do
   if A[2*i]<Min then Min:=A[2*i];
   result := IntToStr(Min);
end;
Ответ выводит правильно.
Но если кол-во чисел в массиве 2 ,3, то ответ выдаёт 0.
А при кол-ве чисел 1 программа выдаёт ошибку.

Последний раз редактировалось nadyaH; 18.03.2014 в 13:30.
nadyaH вне форума Ответить с цитированием
Старый 18.03.2014, 13:36   #9
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Ну так
Код:
  Min:=A[2];
Естественно, что с 1 элементом будет печалька. Надо обрабатывать такие моменты, например проверять число элементов массива.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 18.03.2014, 13:42   #10
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

Изменила так
Код:
function Chet(a: TArray; N: integer): string;
var
  i,min: integer;
begin
  result := '';
  Min:=A[2];
If N=0 then
result:='Их нету';
If (N=2)or(N=3) then
Begin
Result:= IntToStr(Min);
End
else
begin
for i:= 2 to N do
   if A[2*i]<Min then Min:=A[2*i];
   result := IntToStr(Min);
end;
end;
То при 1 в этой строке:
Код:
result := result  + IntToStr(a[i]);
возникает ошибка.

Последний раз редактировалось nadyaH; 18.03.2014 в 13:51.
nadyaH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дан массив А размера N. Найти минимальный элемент из элементов с четными номерами (Dev C++) Dushka00 Помощь студентам 11 25.02.2014 21:14
Дан целочисленный массив размера N. Определить максимальное количество его одинаковых элементов. cheburashkaRF PHP 10 03.02.2014 12:35
Ввести массив с клавиатуры. В полученном массиве найти минимальный элемент. Вывести его на экран ok57 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 17.05.2013 05:07
найти сумму ее элементов c четными номерами столбцов rinoolik Помощь студентам 1 04.05.2013 13:01
Дан массив. Найти минимальный элемент массива среди положительных чисел NataliaKovaleova Паскаль, Turbo Pascal, PascalABC.NET 1 04.10.2012 14:28