С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 4
1

Одномерные массивы: поиск элементов с заданными свойствами

06.06.2012, 10:53. Показов 3393. Ответов 1
Метки нет (Все метки)

Исходный массив должен быть выведен на экран. Все преобразования производить с исходным массивом. После каждого преобразования на экране должно быть представлено название преобразования и преобразованный массив или значения указанных величин, или соответствующее сообщение.
1 Дан массив целых чисел, состоящий из 10 элементов. Заполнить его с клавиатуры. Найти:
− сумму элементов, имеющих нечетное значение;
− и вывести индексы тех элементов, значения которых больше заданного числа А.
− определить, есть ли в данном массиве положительные элементы, кратные k (k вводить с клавиатуры)
− заменить первый элемент, кратный 5, нулем.
− заменить элементы с нечетными номерами на квадрат их номера.
2 Дан массив целых чисел (n=15), заполненный случайным образом числами из промежутка [-20,50].
− удалить из него все элементы, в которых есть цифра 5.
− вставить число k после всех элементов, кратных своему номеру (k вводить с клавиатуры).
− поменять местами первый положительный и последний отрицательный элементы
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2012, 10:53
Ответы с готовыми решениями:

Одномерные массивы. Поиск элементов с заданными свойствами
Исходный массив должен быть выведен на экран. Все преобразования производить с исходным мссивом....

Одномерные массивы. Поиск элементов с заданными свойствами
Прошу, помогите. Исходный массив должен быть выведен на экран. Все преобразования производить с...

Массивы: поиск элементов с заданными свойствами, формирование
Даны сведения о грузах G(их масса 0...50т) 1)Определить число грузов с массой>10т и число...

Массивы и строки, 5 задач, поиск элементов с заданными свойствами
1. Найти максимум в каждой строке прямоугольной матрицы. 2. Найти минимум в каждом столбце...

1
Почетный модератор
64083 / 47492 / 32734
Регистрация: 18.05.2008
Сообщений: 115,182
06.06.2012, 12:22 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

1)

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
uses crt;
const n=10;
var m,m1:array[1..n] of integer;//2 массива, исходный и для изменений
    i,s,a,k:integer;
begin
clrscr;
writeln('Введите элементы массива, целые числа, не равные 0:');
for i:=1 to n do
 repeat
  write('m[',i,']=');
  readln(m[i]);//0 вводить не будем, он кратный 5 и менять на 0
 until m[i]<>0;
clrscr;
writeln('Исходный массив:');
s:=0;
for i:=1 to n do
 begin
  write(m[i],' ');
  if odd(m[i]) then s:=s+m[i];//пункт 1, сумма нечетных
 end;
writeln;
writeln('Сумма нечетных=',s);
//пункт 2, индексы больших А
write('Введите число для сравнения a=');
readln(a);
k:=0;
writeln('Индексы элементов, больших ',a);
for i:=1 to n do
if m[i]>a then
 begin
  k:=1;
  write(i,' ');
 end;
if k=0 then writeln('Таких элементов нет')
else writeln;
//пункт 3, есть ли кратные 3
write('Введите число для проверки кратности k=');
readln(k);
a:=0;
i:=1;
while(i<=n) and(a=0) do
if (m[i]>0)and(m[i] mod k=0) then a:=1
else i:=i+1;
if a=1 then writeln('Есть положительные элементы, кратные ',k)
else writeln('Нет положительных элементов, кратных ',k);
//пункт 4, замена первого, кратного 5
m1:=m;//запомним массив
a:=0;
i:=1;
while(i<=n)and(a=0) do
if m[i] mod 5=0 then a:=i
else i:=i+1;
if a=0 then writeln('Нет элементов, кратных 5')
else
 begin
  writeln('Первый элемент, кратный 5=',m1[a]);
  m1[a]:=0;
  writeln('Замена первого, кратного 5 на 0:');
  for i:=1 to n do
  write(m1[i],' ');
  writeln;
 end;
//пункт 5, замена элементов с нечетными номерами
m1:=m;//опять запомним исходный
writeln('Замена элементов с нечетными номерами на квадрат их номера:');
for i:=1 to n do
 begin
  if odd(i) then m1[i]:=i*i;
  write(m1[i],' ');
 end;
readln
end.
Добавлено через 38 минут
2)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
uses crt;
const n=15;
var m,m1:array[1..2*n] of integer;
    n1,i,j,a,k,p1,op:integer;
    f:boolean;
begin
clrscr;
randomize;
writeln('Исходный массив:');
for i:=1 to n do
 begin
  m[i]:=-20+random(71);
  write(m[i]:4);
 end;
writeln;
//пункт 1, удаление с цифрой 5
m1:=m;//запомним массив
n1:=n;//и его размер
i:=1;
while i<=n1 do
 begin
  f:=false;//считаем что нет цифры 5
  a:=m1[i];//запомним элемент
  while(a>0)and not f do//пока не 0 и нет 5
  if a mod 10=5 then f:=true//если есть, меняем флаг
  else a:=a div 10;//иначе сокращаем в 10 раз
  if f then//если есть
   begin
    if i=n1 then n1:=n1-n1//и последнее, обрезаем массив
    else//не последнее
     begin
      for j:=i to n1-1 do//сдвигаем конец массива на него
      m1[j]:=m1[j+1];
      n1:=n1-1;//обрезаем
     end
   end
  else i:=i+1;//если нет 5, пропускаем
 end;
writeln('Удаление элементов, в которых есть цифра 5:');
if n1=n then writeln('Нет элементов в которых есть цифра 5')
else if n1=0 then writeln('Все элементы удалены')//а вдруг?
else
 begin
  for i:=1 to n1 do
  write(m1[i]:4);
  writeln;
 end;
//пункт 2, вставка
write('Введите число для вставки k=');
readln(k);
m1:=m;//опять клонируем исходный массив
n1:=n;
i:=n1;//начнем с конца, чтобы не менялись индексы непроверенных элементов
while i>=1 do//пока не первый
if m1[i] mod i=0 then//если делится на номер
 begin
  n1:=n1+1;//увеличим размер
  for j:=n1 downto i+2 do//раздвинем массив вправо
  m1[j]:=m1[j-1];
  m1[i+1]:=k;//за данным элементом вставим к
  i:=i-1;//к следующему элемету
 end
else i:=i-1;//если не делится, пропускаем
writeln('Вставка числа ',k,' после элементов, кратных своему номеру:');
for i:=1 to n1 do
write(m1[i]:4);
writeln;
//пункт 3, обмен
writeln('Обмен первого положительного и последнего отрицательного:');
//ищем первый положительный
p1:=0;
i:=1;//с начала
while(i<=n) and(p1=0) do
if m[i]>0 then p1:=i//если попался, запомним номер
else i:=i+1;
if p1=0 then write('В массиве нет положительных элементов')
else
 begin
  //ищем последний отрицательный
  op:=0;
  i:=n;//с конца
  while(i>=1)and(op=0) do
  if m[i]<0 then op:=i
  else i:=i-1;
  if op=0 then write('В массиве нет отрицательных элементов')
  else
   begin
    writeln('Первый положительный=',m[p1],' последний отрицательный=',m[op]);
    k:=m[p1];
    m[p1]:=m[op];//обмениваем их местами
    m[op]:=k;
    for i:=1 to n do
    write(m[i]:4);
   end
 end;
readln
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2012, 12:22

Массив. Поиск элементов с заданными свойствами
В массиве хранятся элементы, соответствующие росту учеников класса. Найти: -средний рост учеников...

Массив: поиск элементов с заданными свойствами
Здравствуйте, нужна ваша помощь в пяти различных заданиях по турбо паскалю, буду премного...

Матрица: поиск элементов с заданными свойствами
Задана матрица А(n,m). Для выполнения действий над элементами матрицы в соответствии с данными,...

Массив. Поиск элементов с заданными свойствами, замена
Помогите пожалуйста Дан массив целых чисел, состоящий из 10 элементов. Заполнить его с...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru