Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2008, 12:18   #1
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию Программирование операций обработки одномерных массивов

С клавиатуры вводитя произвольный одномерный массив типа real (не более 10 элементов), после чего делается его контрольный вывод. Найти среднее арифметическое отрицательных элементов массива и разделить на него все элементы массива.

Program kz4;
Uses crt;
Var K:array[1..10] of real;
S:real;
J,M:integer;
Begin
Clrscr;
S:=0;
Write('BBedute 4uclo elementov macciva <=10: ');
Readln(m);
Begin
Write('K[',J,']=');
Readln(K[J]);
End;
Writeln('Kontrolnyi Byvod matricy: ');
Begin
Write (K[J]:4:2,'':3);
Writeln;
End;
begin
if (K[J]<0) and (K[J] mod 2<>0) then
S:=S+K[J];
end;
...

Вот тут что-то пытался сделать, не можете помочь что дальше сделать?
Дима82 вне форума Ответить с цитированием
Старый 11.05.2008, 12:24   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Это работает?

Код:
Uses crt;
Var K:array[1..10] of real;
S:real;
J,M:integer;
Begin
Clrscr;
S:=0;
Write('BBedute 4uclo elementov macciva <=10: ');
Readln(m);

For j := 1 To m Do // пропущенна эта строка.
Begin
Write('K[',J,']=');
Readln(K[J]);
End;
Writeln('Kontrolnyi Byvod matricy: ');

For j := 1 To m Do // пропущенна эта строка.
Begin
Write (K[J]:4:2,'':3);
Writeln;
End;

For j := 1 To m Do // пропущенна эта строка.
begin
if (K[J]<0) and (K[J] mod 2<>0) then
S:=S+K[J];
end;
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 11.05.2008, 12:40   #3
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию

Program kz4;
Uses crt;
Var K:array[1..10] of real;
S:real;
J,M,b,а:integer;
Begin
Clrscr;
S:=0;
Write('BBedute 4uclo elementov macciva <=10: ');
Readln(M);
For J:=1to m do
Begin
Write('K[',J,']=');
Readln(K[J]);
End;
Writeln('Kontrolnyi Byvod matricy: ');
For J:=1 to m do
Begin
Write (K[J]:4:2,'':3);
Writeln;
End;
For J:=1 to m do
begin
if (K[J]<0) and (K[J] mod 2<>0) then
S:=S+K[J];
S:=0;
repeat
readln(a);
S:=s+a;
B:=b+1;
until b=J;
S:=S/K[J];
Writeln('Srednee=',s:4:2,');
readln
end.

Ошибка выходит. Что делать?
Дима82 вне форума Ответить с цитированием
Старый 11.05.2008, 12:58   #4
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Составить отчёт об ошибке и запостить сюда.
Пункты отчёта:
0. Полное задание. Без изменений, как есть.
1. Полный исходный код. Помещённый в специальный тег CODE (кнопка #).
2. Название и полные текст ошибки.
3. Указать на какой строке появилась эта ошибка.
4. Дополнительные сведения на ваше усмотрение.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 11.05.2008, 13:05   #5
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию

0.С клавиатуры вводитя произвольный одномерный массив типа real (не более 10 элементов), после чего делается его контрольный вывод. Найти среднее арифметическое отрицательных элементов массива и разделить на него все элементы массива.

1.
Код:
Program kz4;
Uses crt;
Var K:array[1..10] of real;
S:real;
J,M,b,а:integer;
Begin
Clrscr;
S:=0;
Write('BBedute 4uclo elementov macciva <=10: ');
Readln(M);
For J:=1to m do
Begin
Write('K[',J,']=');
Readln(K[J]);
End;
Writeln('Kontrolnyi Byvod matricy: ');
For J:=1 to m do
Begin
Write (K[J]:4:2,'':3);
Writeln;
End;
For J:=1 to m do
begin
if (K[J]<0) and (K[J] mod 2<>0) then
S:=S+K[J];
S:=0;
repeat
readln(a);
S:=s+a;
B:=b+1;
until b=J;
S:=S/K[J];
Writeln('Srednee=',s:4:2,');
readln
end.
2. Ошибка 41-типы операндов не соответствуют оператору

3. На строке:
if (K[J]<0) and (K[J] mod 2<>0) then

4....

Последний раз редактировалось Дима82; 11.05.2008 в 13:25.
Дима82 вне форума Ответить с цитированием
Старый 11.05.2008, 13:27   #6
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Ошибки возникают на двух строчках:

if (K[J] < 0) and (K[J] mod 2 <> 0) then
Это часть компилятору не нравится. На самом деле ему ненравится то что (наверное) происходит работа с Real.
Вообще говоря для нахождения средн.ариф. это совершенно незачем.


Writeln('Srednee=' , s:4:2 ,' );
Это лишнее.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 11.05.2008, 13:37   #7
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию

А как это всё должно выглядить? Вроде всё получается, но не выходит сумма и деление.
Дима82 вне форума Ответить с цитированием
Старый 11.05.2008, 13:54   #8
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Код:
Var K : Array [1..10] of Real;
      i, M, B : Integer;
      Sum : Real;

Begin
Write('BBedute 4uclo elementov macciva <=10: ');
Readln(M);

For i := 1 To M do
  Begin
    Write('K[',i,']=');
    Readln(K[i]);
  End;

Writeln;
Writeln('Kontrolnyi Byvod matricy: ');

For i := 1 To M Do Write (K[i]:4:2, ' ');
Writeln;

Sum := 0; B := 0;
For i := 1 To M Do
  If K[i] < 0 Then
    Begin
      Sum := Sum + K[i];
      B := B + 1;
    End;

Writeln;
if B <> 0 Then Writeln(Sum/B:2:2) Else Writeln('Error');

Readln;
End.
Что ещё за сумма?
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 11.05.2008, 14:16   #9
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию

Среднее арифметическое найдено, а деление не выходит
Цитата:
разделить на него все элементы массива.
Дима82 вне форума Ответить с цитированием
Старый 11.05.2008, 14:20   #10
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Тоесть надо брать каждый элемент массива, поделить его на сре.арифм..... и куда его записать? Просто выводить на экран?
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с программированием операций обработки файлов(Pascal) Дима82 Помощь студентам 11 24.05.2008 18:02
Программирование операций обработки файлов Дима82 Фриланс 1 19.05.2008 13:57
Программирование операций обработки двумерных массивов Дима82 Помощь студентам 16 12.05.2008 21:33
Разработка программ обработки символьных массивов 3JIY4KA Помощь студентам 4 11.03.2008 23:22
как из двух отсортированных по возрастанию одномерных массивов сформировать третий Тоха Рыжов Общие вопросы C/C++ 1 07.10.2007 01:43