Консультация № 188983
18.03.2016, 11:38
0.00 руб.
0 14 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Не могу составить программу на fri poscale. Составленная программа не работает. Помогите пожалуйста.

Задан вещественный массив А размерностью N. Заменить
элемент Ak (3 ≤ k ≤ N), среднее арифметическое K первых элемен-
тов массива.

Обсуждение

давно
Посетитель
399515
12
18.03.2016, 11:54
общий
Отправляю составленную программу.
Прикрепленные файлы:
d29cdcd26238eba2c08e5178d0a5d850.docx
давно
Старший Модератор
31795
6196
18.03.2016, 12:08
общий
Адресаты:
А Вы в WORD'е пишите код?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
399515
12
18.03.2016, 12:49
общий
Константин Николаевич. Я не понял Ваш вопрос.
давно
Старший Модератор
31795
6196
18.03.2016, 13:10
общий
Адресаты:
Вы загрузили на файлообменник файл с программой с разширеннием скачать (DOCX) » [11.2 кб]. Это одно из разширенний документов MS Office.
Вот я и спрашиваю Вас:в WORD'е пишите код?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
399515
12
18.03.2016, 13:12
общий
Нет.
давно
Старший Модератор
31795
6196
18.03.2016, 13:23
общий
Адресаты:
Цитата: ogm1
Нет.

Ну слава богу.


давайте уточнять.
Цитата: ogm1
Заменить элемент Ak (3 ≤ k ≤ N), среднее арифметическое K первых элементов массива.


На что заменяется Ак? На среднее арифметическое.
К вводится?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
399515
12
18.03.2016, 13:26
общий
Да, К вводятся.
давно
Старший Модератор
31795
6196
18.03.2016, 13:42
общий
это ответ
Здравствуйте, ogm1!

Смотрите код:
[code lang=pascal h=200]var
a,b:array[1..10]of real;
i,n,k:integer;
s:real;
begin
{вводим размер массива}
repeat
write('Enter N:');
readln(n)
until(1<=n)and(n<=10);
{вводим К}
repeat
write('Enter K:');
readln(k)
until(3<=k)and(k<=n);
{вводим массив}
for i:=1 to n do
begin
write('Enter a[',i,']:=');
readln(a[i])
end;
{контрольный вывод}
writeln('Massiv:');
for i:=1 to n do
write(a[i]:8:4);
writeln;
{среднее арифметическое}
s:=0;
for i:=1 to k do
s:=s + a[i];
a[k]:=s/k;
{выводим результат}
writeln('Result:');
for i:=1 to n do
write(a[i]:8:4);
end.[/code]
Я бы первым вводил К, т.к. при вводе N, к примеру 2, К выйдет за выбранные пределы.
Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
399515
12
22.03.2016, 05:48
общий
Программа дает синтаксическую ошибку. В строке (13.2) . Fotal Syntax error, "UNITEL" expected but "FOR" found.
давно
Посетитель
399515
12
22.03.2016, 06:54
общий
Вроде программа работает.Но результат помоему неправыльное. Не могу найти ошибку.Помогите пожалуйста.
Прикрепленные файлы:
0f7edc62537eb6a8e1da7eb9552a0d6f.docx
давно
Старший Модератор
31795
6196
22.03.2016, 09:34
общий
Адресаты:
1+9+2+8+3+7+4+6+5+10 = 55/10=5.5
В десятой позиции записано 5.5
Все правильно.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
399515
12
22.03.2016, 15:04
общий
Я задачу понял по другому. Например массив А задано 1,2,3,4,5,6,7,8,9,10 то заменяя на среднее арифметическое получаем массив В 1.5;2.;2.5;3;3.5;4;4.5;5;5.5.
давно
Старший Модератор
31795
6196
22.03.2016, 19:28
общий
Адресаты:
Цитата: ogm1
Заменить элемент Ak (3 ≤ k ≤ N) на среднее арифметическое K первых элементов массива.

Меняется только один элемент. Ваше задание звучало бы по другому: заменить элементы массива на среднее арифметическое впереди стоящих элементов.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
399515
12
24.03.2016, 05:39
общий
Спасибо большое за помощь.
Форма ответа