Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Konstantin_M
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 3
1

Заменить все элементы массива, которые меньше среднего арифметического значения всех элементов

28.11.2013, 19:52. Просмотров 966. Ответов 3
Метки нет (Все метки)

Помогите, пожалуйста, правильно написать программу. Я написал код, но он не запускается.

Задание.В данном массиве целых чисел заменить все элементы, которые меньше среднего арифметического значения всех элементов массива, на -1, и те, которые больше среднего арифметического значения всех элементов массива, на 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
Var
Mass: array of integer;
i:= integer;
S:= integer;
j: integer;
begin S:=0;
Writeln (‘Введите размерность массива’);
Readln (length(mass));
For i:=0 to length (mass) do
begin
Writeln (‘Введите’, mass[i], ‘элементмассива’);
Readln (mass[i]);
End;
For j:=0 to length (mass) do begin
S:= mass(j) + S;
If j>= length (mass) do
S:= S/j;
End;
For i:=0 to length (mass) do begin
If mass(i)>S then begin
Mass[i]:= 1 else
Mass[i]:=-1; end;
Writeln (mass[i]);
End;
End.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 19:52
Ответы с готовыми решениями:

Найти сумму всех элементов массива целых чисел, которые меньше среднего арифметического элементов массива.
Найти сумму всех элементов массива целых чисел, которые меньше среднего...

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

В данном линейном массиве действительных чисел найти количество элементов, которые меньше среднего арифметического всех элементов этого массива
помогите!!!!!!! В данном линейном массиве действительных чисел найти...

Заменить все элементы массива меньше среднего значения
Элементы массива - целые числа в пределах от 2 до 15. Заменить все элементы...

Элементы, меньшие среднего арифметического всех элементов массива нужно заменить нулём.
Составить программу, которая преобразует массивы А(10) и В(12) следующим...

3
Fakeoke
314 / 314 / 201
Регистрация: 28.07.2011
Сообщений: 1,849
28.11.2013, 21:34 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
uses crt;
const nmax=100;
var
mass: array [1..nmax] of integer;
i: integer;
S: integer;
j: integer;
n: integer;
sr: real;
begin 
S:=0;
Writeln ('Введите размер массива, не больше ',nmax);
Readln (n);
 
For i:=1 to n do
begin
Write ('Введите', i, ' элемент массива: ');
Readln (mass[i]);
End;
 
writeln('Получившийся массив : ');
For i:=1 to n do 
begin
write(mass[i],' ');
S:= mass[i] + S;
end;
 
sr:=s/n;
 
For i:=1 to n do 
begin
If mass[i]>sr then 
Mass[i]:= 1 
else
Mass[i]:=-1; 
Writeln (mass[i]);
End;
readln;
End.
1
Konstantin_M
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 3
30.11.2013, 00:01  [ТС] 3
Fakeoke, спасибо Вам огромное) Вы мне очень помогли)
0
markiza-inc
480 / 194 / 89
Регистрация: 21.10.2012
Сообщений: 450
30.11.2013, 02:13 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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

Цитата Сообщение от Fakeoke Посмотреть сообщение
If mass[i]>sr then
Mass[i]:= 1
else
Mass[i]:=-1;
Дело в том, что "-1" должна появляться только там, где элемент меньше среднего.

А если редкая, но возможная ситуация, что элемент равен среднему, тогда по условию ничего делать не надо!
А в проге: вместо этого элемента будет записана "-1".

Добавлено через 1 час 47 минут
Полагаю, так будет ближе к условию задачи:

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
uses crt;
const nmax=100;
var
     mass       : array [1..nmax] of integer;
     i, S, j, n : integer;
     sr: real;
begin
  S:=0;clrscr;                                                                            
repeat
  Write('Введите размер массива, не больше ',nmax,' = ');
  Readln (n);
until (n>0) and (n<=nmax);
 
For i:=1 to n do
 begin
  Write ('Введите ', i, ' элемент массива: ');
  Readln (mass[i]);
 End;
 
writeln('Исходный массив : ');
For i:=1 to n do
 begin
  write(mass[i],' ');
  S:= mass[i] + S;
end;writeln;
sr:=s/n;
 
writeln('Получившийся массив : ');
For i:=1 to n do
 begin
 If mass[i]>sr then
    Mass[i]:= 1
               else
    if mass[i]<sr then
       Mass[i]:=-1;
 Write(mass[i],' ');
 End;writeln;
readln;
End.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2013, 02:13

Найти максимальный МАХ из тех элементов А, которые меньше среднего арифметического С всех элементов А
1.Массив А(20) заполнить целыми случайными числами из диапазона от 1 до 100....

Найдите количество четных элементов массива, которые меньше среднего арифметического
Дан массив 5*3 из целых чисел заполненный случайными числами из интервала ....

Из массива удалить элементы, имеющие значение меньше среднего арифметического четных элементов массива
Здравствуйте ! Помогите пожалуйста Функции и процедуры Из массива удалить...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru