2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Turbo pascal.Нахождение среднего арифметического в массиве
Сообщение09.12.2012, 11:01 
Аватара пользователя


08/12/12
1
Моя задача:Дан массив С(N).Найти среднее арифметическое положительных элементов с четными индексами.
программу вроди бы понимаю как написать,но что-то не Выходит.пока еще новичок и не очень понимаю.КАК ПРАВИЛЬНО?Укажите на ошибки или помогите исправить что-бы заработала правильно. :facepalm:

Код:
uses crt;
var C:array[1..100] of real;
    i,k,n:real;
    S:real;
begin
clrscr;
write('Vvedite kol-vo elementov:');readln(n);
write('vvedite znachenie:');
readln(c[i]);
k:=0; s:=0;
for i:=1 to n do
begin
if (i) mod 2=0 and (c[i]>0) then begin
s:=s+c[i];inc(k);
end;
writeln('Srednee arifmetichescoe= ',s/k);
end;

readkey;
end.


спасибо

 Профиль  
                  
 
 Re: Turbo pascal.Нахождение среднего арифметического в массиве
Сообщение09.12.2012, 16:34 
Заслуженный участник


27/04/09
28128
Чтобы ввести массив, вам надо ввести его элементы по очереди в цикле, а не так как сейчас.

Переменная i должна быть только порядкового типа (например, Integer), т. к. ей индексируется массив b, а ещё она счётчик цикла for — вещественные типы в этих местах использовать нельзя.

-- Вс дек 09, 2012 19:34:32 --

И не забывайте о правильных отступах.

 Профиль  
                  
 
 Re: Turbo pascal.Нахождение среднего арифметического в массиве
Сообщение17.12.2012, 16:14 


17/12/12
6
uses crt;
var C:array[1..100] of real;
i,k,n:real;//во-первых, как уже было сказано, переменные, служащие счетчиками в циклах должны
//быть целочисленного типа, в вашем случае byte или integer
S:real;
begin
clrscr;
write('Vvedite kol-vo elementov:');readln(n);v//во-вторых, зачем вам вводить количество элементов?
write('vvedite znachenie:'); //у вас же обыкновенный статический массив и его размер
//вам известен, т.к. задаётся при объявлении
readln(c[i]);//ну и в третьих, инициализировать массив нужно в цикле
k:=0; s:=0;
for i:=1 to n do
begin
if (i) mod 2=0 and (c[i]>0) then begin
s:=s+c[i];inc(k);
end;
writeln('Srednee arifmetichescoe= ',s/k);
end;
readkey;
end.

 Профиль  
                  
 
 Re: Turbo pascal.Нахождение среднего арифметического в массиве
Сообщение17.12.2012, 16:26 
Аватара пользователя


27/01/09
814
Уфа
Количество элементов нужно для того чтобы иметь возможность оперировать массивами (векторами) длинной от 1 до 100. Не будете же вы каждый раз вводить именно 100 элементов. :)

 Профиль  
                  
 
 Re: Turbo pascal.Нахождение среднего арифметического в массиве
Сообщение17.12.2012, 16:31 


17/12/12
6
вот рабочий код. может пригодится.
код: [ скачать ] [ спрятать ]
Используется синтаксис Delphi
uses crt;
const n = 100;
var C:array[1..n] of real;
    s:real;
    i,k:byte;
begin
clrscr;
for i := 1 to n do
begin
     writeln('vvedite znachenie:', i : 4);
     readln(c[i]);
end;
k:=0;
s:=0;
i := 0;
repeat
begin
     i+=2;
     if c[i] = 0
     then
     begin
          s+= c[i];
          inc(k);
     end;
end;
until i <= n;
s := s/k;
writeln('sr. arifmet. ravno', s : 5);
readkey;
end.  


-- 17.12.2012, 17:33 --

Chifu в сообщении #659733 писал(а):
Количество элементов нужно для того чтобы иметь возможность оперировать массивами (векторами) длинной от 1 до 100. Не будете же вы каждый раз вводить именно 100 элементов. :)


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

удачи!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group