Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 15
1

Поиск минимального нечетного элемента в заданном целочисленном массиве из 50 элементов

07.02.2012, 18:45. Показов 5223. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые форумчане!
Для вас не будет сложным решить 4 простейшие программки (они действительно простые просто я не силен в Pascal)!


1) Поиск минимального нечетного элемента в заданном целочисленном массиве из 50 элементов. Известно, что в массиве есть хотя бы один нечетный элемент.

2) Поиск среднего арифметического четных элементов в заданном массиве из 50 элементов. Известно, что в массиве есть хотя бы один четный элемент.

3) Поиск разности максимального и минимального нечетного элементов в заданном целочисленном массиве из 50 элементов. Известно, что в массиве есть и четные, и нечетные элементы.

4) Поиск второго после максимального по величине элемента в заданном целочисленном массиве из 50 различных элементов.

Если вас не затруднит то не используйте процедуры и функции, чтобы было проще разобраться.
Заранее большое человеческое спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2012, 18:45
Ответы с готовыми решениями:

Написать шаблон функции, выполняющей поиск минимального элемента в целочисленном массиве
Помогите пожалуйста с программой. Заранее огромное спасибо!!! Написать шаблон функции,...

В одномерном целочисленном массиве вычислить сумму элементов, расположенных после минимального элемента
Ребят помогите найти ошибку в коде ...Заранее спасибо!!! Тема:ОБРАБОТКА СТАТИЧЕСКИХ МАССИВОВ...

В заданном массиве найти среднее арифметическое элементов, расположенных до минимального элемента
23. В одномерном массиве А(10) вычислить среднее арифметическое элементов, расположенных до...

Рекурсивный поиск минимального нечетного элемента в массива
Описать рекурсивную функцию min(x,n) (где x - массив, n - размер) поиска минимального нечетного...

13
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
07.02.2012, 19:12 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

1)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
uses crt;
var i,min: integer;
    arr: array[1..51] of integer;
begin
 min:=1;
 for i:=1 to 51 do
  begin
   arr[i]:=random(100)-51;
   write(arr[i]:3);
  end;
 for i:=1 to 51 do
  if arr[i] mod 2<>0 then
   if arr[i]<arr[min] then
    min:=i;
 writeln;
 write('Минимальный нечетный элемент: ',arr[min]);
 end.
Добавлено через 8 минут
2)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;
var i,sum,j: integer;
    sredn: real;
    arr: array[1..51] of integer;
begin
 j:=0;
 sum:=0;
 for i:=1 to 51 do
  begin
   arr[i]:=random(100)-51;
   write(arr[i]:3);
  end;
 for i:=1 to 51 do
  if arr[i] mod 2=0 then
   begin
    sum:=sum+arr[i];
    inc(j);
   end;
   sredn:=sum/j;
 writeln;
 write('Средн. арифм. четны. элементов: ',trunc(sredn));
 end.
2
101 / 97 / 23
Регистрация: 11.01.2012
Сообщений: 868
07.02.2012, 19:15 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

3.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var
i,min,max:integer;
a:array[1..50] of integer;
 
begin
 
randomize;
for i:=1 to 50 do
begin
a[i]:=random(100);
write (a[i],' ');
end;
 
min:=a[1];
max:=a[1];
 
for i:=1 to 50 do
begin
if (a[i] mod 2 <> 0 ) and (a[i]<min) then min:=a[i];
if (a[i] mod 2 <> 0 ) and (a[i]>max) then max:=a[i];
 
end;
 
writeln;
writeln ('Max=',max);
writeln ('Min=',min);
writeln ('Raznica=',max-min);
 
readln;
 
end.
2
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 15
07.02.2012, 19:16  [ТС] 4
Отдуши спасибо!
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
07.02.2012, 19:24 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Раз уж сделал, то и 3-й выложу:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
uses crt;
var i,j,max,min: integer;
    arr: array[1..51] of integer;
begin
 min:=1;
 max:=1;
 for i:=1 to 51 do
  begin
   arr[i]:=random(100)-51;
   write(arr[i]:3);
  end;
 for i:=1 to 51 do
  if arr[i] mod 2<>0 then
   begin
    if arr[i]<arr[min] then
     min:=i;
    if arr[i]>arr[max] then
     max:=i;
   end;
 j:=max-min;
 writeln;
 write('Разность между ',arr[max],' и ',arr[min],' =',j);
 end.
2
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.02.2012, 19:43 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Merfi Посмотреть сообщение
4) Поиск второго после максимального по величине элемента в заданном целочисленном массиве из 50 различных элементов.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
program p;
const n=50;
type titem=integer;
       ta=array[1..n] of titem;
var a:ta;
procedure inputarray(var a:ta; c:char);
var i:integer;
begin
       for i:=1 to n do
           begin
                  write(c,'[',i,']=');
                  readln(a[i]);
           end;
end;
function seacrh (a:ta):titem;
var i:integer;
     m1,m2:integer;
begin
       m1:=1;
       for i:=2 to n do
       begin
              if a[i]>a[m1] then m1:=i;
       end;
       m2:=(m1 mod n)+1;
       for i:=1 to n do
       begin
              if i<>m1 then if a[i]>a[m2] then m2:=i;
       end;
       seacrh:=a[m2];
end;
begin
       input(a,'a');
       writeln(seacrh(a));
end.
1
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
07.02.2012, 19:51 7
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Если нужно без функций:
4)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
uses crt;
var i,j,k: integer;
    arr: array[1..60] of integer;
begin
 for i:=1 to 50 do
  begin
   arr[i]:=random(100)-51;
   write(arr[i]:3);
  end;
  if arr[1]>arr[2] then
   begin
    j:=arr[1];
    k:=arr[2];
   end
   else
    begin
     k:=arr[1];
     j:=arr[2];
    end;
  for i:=3 to 51 do
  if arr[i]>j then
   begin
    k:=j;
    j:=arr[i];
   end
   else
    if arr[i]>k then
     k:=arr[i];
 writeln;
 write('1-й элемент: ',j,', второй элемент: ',k);
 end.
1
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 15
07.02.2012, 20:00  [ТС] 8
Спасибо всем!

Но особую благодарность выражаю BumerangSP!
0
trainspotting
1086 / 486 / 384
Регистрация: 11.11.2010
Сообщений: 773
07.02.2012, 21:01 9
К сожалению, в решениях размещенных тут 1 и 3 задач присутствует логическая ошибка. За первый минимум принимается первый элемент массива, при этом проверки на его нечетность не делается, таким образом в результат может попасть по сути четное число, если оно первое в массиве и меньше любого нечетного элемента.(к примеру, в массиве с элементами 2,3,4,5,6 - минимальным окажется двойка).
Вот решение первой задачи(3 делается по аналогии) с учетом вышесказанного:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const
  nmax=100;
type
  Tarr=array[1..nmax] of integer;
var
  a:Tarr;
  i,n,min:integer;
  minset:boolean;
begin
  randomize;
  write('Razmer massiva, ne bolee ',nmax,': ');
  readln(n);
  writeln('Ishodniy massiv:');
  for i:=1 to n do
    begin
      a[i]:=random(5);
      write(a[i]:4);
    end;
  writeln;
  minset:=false;
  for i:=1 to n do
    if a[i] mod 2<>0 then
      if not minset then
        begin
          minset:=true;
          min:=a[i];
        end
      else if a[i]<min then
        min:=a[i];
  writeln('Min nechetniy element=',min);
end.
0
Mobile Software Engineer
Эксперт С++
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
07.02.2012, 21:33 10
Цитата Сообщение от BumerangSP Посмотреть сообщение
if arr[i] mod 2<>0 then
if arr[i]<arr[min] then
уже проще сделать через 1 условного оператора
Pascal
1
if (arr[i] mod 2<>0) and (arr[i]<arr[min]) then
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
07.02.2012, 21:36 11

Не по теме:

Вот такие интересности в своем коде стал замечать только сейчас:) Почему все раньше молчали? (Имею в виду хотя бы некоторых преподавателей).


Ev[G]eN, да, там ошибочка выходит. Все еще не могу отвыкнуть от того, когда давал этим переменным значения массива, а не индексов.
0
Mobile Software Engineer
Эксперт С++
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
07.02.2012, 21:38 12
Цитата Сообщение от BumerangSP Посмотреть сообщение
j:=max-min;
BumerangSP, нужна разность между элементами, а вы получаете между индексами

Добавлено через 43 секунды

Не по теме:

Цитата Сообщение от BumerangSP Посмотреть сообщение
Почему все раньше молчали
ну это же не ошибка, я просто "посоветовал"

0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
07.02.2012, 21:40 13
ну это же не ошибка, я просто "посоветовал"

Не по теме:

А, да это не Вам адресовано) Так, мысли вслух. Я конкретно про индексы уточнил в одном сообщении, чтобы флуд не разводить.

0
trainspotting
1086 / 486 / 384
Регистрация: 11.11.2010
Сообщений: 773
07.02.2012, 21:50 14
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
уже проще сделать через 1 условного оператора
Pascal
1
if (arr[i] mod 2<>0) and (arr[i]<arr[min]) then
отнюдь, как у меня сделано для того, чтобы не дублировать код во второй проверке условия, если по-вашему(кстати писал код так же сперва), придется дописывать (arr[i] mod 2<>0) еще раз. Так что мой окончательный вариант прозрачнее и логичнее, я думаю.
0
07.02.2012, 21:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2012, 21:50
Помогаю со студенческими работами здесь

Поиск минимального нечётного элемента строки матрицы
Написал программу для получения одномерного массива, состоящего из индексов минимальных нечётных...

В целочисленном массиве найти номер первого минимального элемента
В одномерном массиве, состоящем из n целых элементов, вычислить 1. Номер первого минимального...

В двумерном целочисленном массиве найти номер строки и столбца минимального элемента
помогите пожалуйста написать программу на прологе. задача: в двумерном целочисленном массиве...

Поиск максимального четного и нечетного элемента в массиве
Помогите, нужно Обменять в массиве максимальный четный элемент с максимальным нечетным . работаю в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru