1 / 1 / 0
Регистрация: 26.04.2014
Сообщений: 121
1

Вычислить значения 38 элементов одномерного массива D в заданном интервале

16.06.2014, 20:09. Показов 2539. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вычислить значения 38 элементов одномерного массива D в интервале (-9,7) с использованием генератора случайных чисел.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2014, 20:09
Ответы с готовыми решениями:

Вычислить значения 30 элементов одномерного массива в заданном интервале
1. Вычислить значения 30 элементов одномерного целочисленного массива H в интервале (-10, 10) с...

Вычислить значения 39 элементов одномерного целочисленного массива V в заданном интервале
помогите пожалуйста,очень надо! 1. Вычислить значения 39 элементов одномерного целочисленного...

Вычислить значения 36 элементов одномерного целочисленного массива Т в заданном интервале
Здравствуйте! Нужно срочно решить задачи: I.Дана задача состоящая из 4 частей: 1)Вычислить...

Вычислить значения 32 элементов одномерного целочисленого массива W в интервале (-7,8)
вычислить значения 32 элементов одномерного целочисленого массива W в интервале (-7,8)с...

14
6 / 6 / 10
Регистрация: 13.06.2014
Сообщений: 30
16.06.2014, 22:57 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var
D:array[1..38] of integer;
i:integer;
begin
randomize;
for i:=1 to 38 do
D[i]:=random(16)-9;
for i:=1 to 19 do
write(D[i],' ');
writeln;
for i:=19 to 38 do
write(D[i],' ');
end.
Добавлено через 3 минуты
ошибся чуть чуть
D[i]:=random(17)-9;
0
1 / 1 / 0
Регистрация: 26.04.2014
Сообщений: 121
19.06.2014, 14:24  [ТС] 3
а почему в ходе программы меняется интервал от 19 до 38?
0
1 / 1 / 0
Регистрация: 26.04.2014
Сообщений: 121
19.06.2014, 14:27  [ТС] 4
Вычислить значения 38 элементов одномерного массива D в интервале (-9,7) с использованием генератора случайных чисел.
0
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
19.06.2014, 14:39 5
Цитата Сообщение от ZaRinKa97 Посмотреть сообщение
Вычислить значения 38 элементов одномерного массива
"вычислить" - это в смысле - "заполнить"?!
Тогда я бы так написал:
Pascal
1
2
3
4
5
6
7
8
9
10
var
D:array[1..38] of integer;
i:integer;
begin
  randomize;
  for i:=1 to 38 do begin
     D[i]:= -9 + random(17);  { [ -9 .. 7 ] }
     Write(D[i], ' ');
  end;
end.
0
6 / 6 / 10
Регистрация: 13.06.2014
Сообщений: 30
19.06.2014, 21:17 6
Интервал я на выводе менял чтобы на экране нагляднее помещалось. 38 значений как то в 2 строчки легче просматривать чем 1 длинной. Ну это мое мнение)

Добавлено через 7 минут
Sergio Leone, какой смысл писать такой же код как у меня, только с по-другому организованным выводом на экран? ах да еще вместо random(17)-9 -9+random(17).
0
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
19.06.2014, 23:36 7
Цитата Сообщение от Maxim_ Посмотреть сообщение
Sergio Leone, какой смысл писать такой же код как у меня,
Вы, наверное, не обратили внимание, что я вместо 3-х ваших (причём с ошибкой) циклов написал всего один цикл.
А так, да, никакой разницы!
0
1 / 1 / 0
Регистрация: 26.04.2014
Сообщений: 121
20.06.2014, 01:33  [ТС] 8
это получается, что в задаче просит чтобы выводились просто такие цифры, которые в интервале (-9;7)?))
0
6 / 6 / 10
Регистрация: 13.06.2014
Сообщений: 30
20.06.2014, 02:09 9
Ну получается да, создать массив и заполнить его рандомно -9:7.. Хотя я таких формулировок заданий не встречал)
0
1646 / 1075 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
20.06.2014, 11:04 10
Pascal
1
For i:=1 to 38 do D[i]:=Random(17)-9;
0
1 / 1 / 0
Регистрация: 26.04.2014
Сообщений: 121
23.06.2014, 23:14  [ТС] 11
Вот условие задачи, и код, но что-то неправильно там..помогите пожалуйста исправить ошибки
1)Вычислить значения 38 элементов одномерного массива D в интервале (-9,7) с использованием генератора случайных чисел.
2)вычислить среднегармоническое значение ненулевых элементов первой трети массива.
3)определить наименьший по абсолютному величине среди четных по номеру элементов первой четверти массива.
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
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
98
99
program zarina;
uses crt;
const
a=7;
b=-9;
n=38;
var D:array[1..38] of integer;
i,k,summa,count:integer;
sred:real;
x:integer;
max,otr,omax,imax,j,max_m,ba,min:integer;
ka,burn,ji:integer;
begin
clrscr;
writeln('Эта программа использует оператор выбора CASE’ );
writeln('Введите цифру( 1,2,3 или 4), каждая цифра соответствует той части задания по условию');
read(x);
case x of
1:
begin
randomize;
for i:=1 to n do
D[i]:=round((b-a+1)*random(38)/38+a);
writeln(' часть 1');
writeln('ввод 38 элементов одномерного целочисленного массива D в интервале (-9,7)');
writeln;
for i:=1 to n do
write(D[i]:4);
writeln;
end;
 
2:
begin
begin
count:=0;
summa:=0;
for i:=1 to (n div 3) do
if D[i] mod 2<>0 then summa:=summa+D[i];
for i:=1 to (n div 3) do
begin
if D[i] mod 2<>0 then inc(count);
end;
begin
sred:=summa/count;
end;
writeln;
writeln(' часть 2 ');
writeln('сумма всех ненулевых чисел первой трети массива : ',summa);
writeln('количество всех ненулевых чисел первой трети массива : ',count);
writeln('среднегармоническое значение ненулевых элементов первой трети массива : ', sred:3:2);
end;
end;
 
3:
begin
begin
min:=-10000;
otr:=0;
writeln;
for i:=3*n div 1 to n do
if ((D[i]<0) and (min<D[i])) then
begin
min:=D[i];
otr:=i;
end;
writeln;
writeln(' часть 3 ');
writeln(' индекс наименьшего по абсолютной величине среди четных по номеру элементов в первой четверти массива= ', otr);
writeln('это число= ', min);
end;
end;
 
4:
begin
begin
for i:=1 to n do
if i mod 3=0 then
begin
ka:=i;
 
for ji:=i+1 to n do
if ji mod 3=0 then
if abs(D[ji]) < abs(D[ka]) then ka:=ji;
burn:=D[i];
D[i]:=D[ka];
D[ka]:=burn;
end;
writeln;
writeln(' часть 4 ');
writeln('упорядоченный ненулевые элементы последней трети массива по возрастанию абсолютных значений : ');
for i:=1 to n do
begin
write(D[i]:4);
end;
end;
end;
end;
readkey;
end.
Добавлено через 44 минуты
помогите пожлуйстааааа...там первая часть правильная, 2 , 3, и 4 проверить надооо
0
Модератор
9950 / 5307 / 3326
Регистрация: 17.08.2012
Сообщений: 16,198
24.06.2014, 00:24 12
Цитата Сообщение от ZaRinKa97 Посмотреть сообщение
...CASE’
Так, навскидку. Кавычка не такая (вместо ' напечатано ’ ). Синтаксис подрихтуйте для начала.

И ещё.

 Комментарий модератора 
Рекомендую Вам ознакомиться с правилами форума.

Дублирование тем запрещено. Для того, чтобы поднять актуальность существующей темы, достаточно написать в тему новое сообщение.

Будете плодить дубли (один и тот же вопрос в разных темах одного раздела) или увлекаться кросспостингом (один и тот же вопрос в разных разделах), я с Вами нехорошо поступлю.


И ещё. Вам, видно, уже рекомендовали почитать, ну так я ещё раз порекомендую: Как запостить тему, чтобы не получить ответ.
0
1 / 1 / 0
Регистрация: 26.04.2014
Сообщений: 121
24.06.2014, 16:19  [ТС] 13
простите пожалуйстапомогитееее а?
0
Модератор
9950 / 5307 / 3326
Регистрация: 17.08.2012
Сообщений: 16,198
25.06.2014, 04:35 14
Лучший ответ Сообщение было отмечено ZaRinKa97 как решение

Решение

Не по теме:

Цитата Сообщение от ZaRinKa97 Посмотреть сообщение
помогитееее а
Лично меня такое просто раздражает. И ещё я безжалостный. Но добрый.

Оператор case неуклюже применили: может быть выполнен только вариант 1, остальные - нет, потому что массив ещё не сформирован.

И Ваша программа не вполне соответствует заданию: находится среднеарифметическое значение чётных элементов первой трети массива, а не среднегармоническое значение ненулевых элементов первой трети массива, как планировалось.

Куча лишних переменных, алгоритмические и синтаксические ошибки.

И ещё. 38 не делится нацело ни на 4, ни на 3. А вот 36 делится и на 3, и на 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
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
98
99
100
101
const n = 36;
var d: array [1..38] of integer;
    i, j, k, count, min, burn: integer;
    sred: real;
    x: string;
    f: boolean;
begin
  writeln('Эта программа использует оператор выбора CASE.');
  f := false;
  repeat
    writeln('1 - формирование ', n, ' элементов одномерного');
    writeln('    целочисленного массива в интервале (-9,7);');
    writeln('2 - вычисление среднегармонического значения');
    writeln('    ненулевых элементов первой трети массива;');
    writeln('3 - определение наименьшего по абсолютной величине среди');
    writeln('    чётных по номеру элементов первой четверти массива;');
    writeln('4 - упорядочение ненулевые элементов последней трети массива');
    writeln('    по возрастанию абсолютных значений;');
    writeln('5 - печать массива;');
    writeln('6 - выход из программы.');
    write('Введите цифру: ');
    readln(x);
    if length(x) = 0 then x := '0';
    if (x[1] in ['2'..'5']) and not(f)
      then writeln('Массив ещё не сформирован, выберите ''1''.')
      else case x[1] of
       '1': begin
              randomize;
              f := true;
              writeln('Сформированный массив:');
              for i:=1 to n do
                begin
                  d[i] := -9 + random(17);
                  write(d[i]:4)
                end;
              writeln
            end;
       '2': begin
              count := 0;
              sred := 0;
              for i := 1 to (n div 3) do if d[i] <> 0
                then begin
                  sred := sred + 1 / d[i];
                  inc(count)
                end;
              writeln('Количество ненулевых чисел первой трети массива: ', count);
              if count = 0
                then begin
                  writeln('Ненулевых чисел в первой трети массива нет, среднегармоническое');
                  writeln('значение ненулевых элементов вычислить невозможно.')
                end
                else begin
                  sred := count / sred;
                  writeln('Среднегармоническое значение ненулевых');
                  writeln('элементов первой трети массива: ', sred)
                end
            end;
       '3': begin
              min := 1;
              writeln;
              for i := 1 to n div 4 do if abs(d[i]) < abs(d[min]) then min := i;
              writeln('Индекс наименьшего по абсолютной величине среди четных');
              writeln('по номеру элементов в первой четверти массива: ', min);
              writeln('Значение этого элемента: ', d[min])
            end;
       '4': begin
              k := (n div 3) * 2 + 1;
              while (d[k] = 0) and (k < n) do inc(k);
              if k = n
                then begin
                  writeln('Последняя треть массива содержит менее');
                  writeln('двух ненулевых значений, упорядочение невозможно.')
                end
                else begin
                  for i := k to n - 1 do
                    for j := i + 1 to n do if (d[j] <> 0) and (d[i] <> 0) and (abs(d[j]) < abs(d[i]))
                      then begin
                        burn := d[i];
                        d[i] := d[j];
                        d[j] := burn
                      end;
                  writeln('Массив с упорядоченными ненулевыми элементами последней');
                  writeln('трети массива по возрастанию абсолютных значений:');
                  for i:=1 to n do write(d[i]:4);
                  writeln
                end;
            end;
       '5': begin
              writeln('Массив:');
              for i:=1 to n do write(d[i]:4);
              writeln
            end
       else if x[1] <> '6' then writeln('Ошибка. Повторите ввод.')
      end;
    if x[1] <> '6'
      then begin
        write('Для продолжения нажмите <Enter>');
        readln
      end
  until x[1] = '6'
end.
1
1 / 1 / 0
Регистрация: 26.04.2014
Сообщений: 121
25.06.2014, 12:25  [ТС] 15
спасибо вам большоееееРодина вас не забудет
0
25.06.2014, 12:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2014, 12:25
Помогаю со студенческими работами здесь

Вычислить произведение элементов массива, которые находятся в заданном интервале
Задан массив целых чисел a и два целых числа с и d; вычислить произведение элементов массива a ,...

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

Вычислить значения функции y=5x2-2x+1 на заданном интервале
2.Составьте программу вычисления значений функций:y=5x2-2x+1 на отрезке с шагом b=2; На Pascal

Вычислить значения выражения для аргумента, изменяющегося в заданном интервале
Не могу понять как действовать? с Чего начать? Вычислить y=\begin{cases}...


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

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

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