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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2010, 12:48   #1
Takada_sony
Пользователь
 
Регистрация: 16.03.2010
Сообщений: 19
По умолчанию Одномерные массивы

Помогите пожалуйста:
Дан массив размерностью [1..20]. Найти среднее арифметическое положительных чисел и количество отрицательных.
Нужно сделать для случайных чисел и для ввода с клавиатуры и как я поняла там нужно делать с "case".

Последний раз редактировалось Takada_sony; 25.03.2010 в 12:51.
Takada_sony вне форума Ответить с цитированием
Старый 25.03.2010, 13:04   #2
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Код:
pol:=0;
otr:=0;
spol:=0;
sotr:=0;
for i:=1 to n do
begin
flag:=false;
if a[i]>0 then flag:=true;
case flag of
1:
pol:=pol+a[i];
spol:=spol+1;
0:
otr:=otr+a[i];
sotr:=sotr+1;
end;
end;
srpol:=pol/spol;
srotr:=otr/sotr;

Последний раз редактировалось danekne; 25.03.2010 в 13:07.
danekne вне форума Ответить с цитированием
Старый 25.03.2010, 13:39   #3
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

danekne Коряво, ошибки в синтаксисе и не совсем по заданию.
если поправить, то где-то так:
Код:
pol:=0;
otr:=0;
spol:=0;
for i:=1 to n do
if a[i]>0 then 
 begin
 pol:=pol+a[i];
 spol:=spol+1;
 end else if a[1]<0 then otr:=otr+1;
srpol:=pol/spol;
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Старый 25.03.2010, 13:42   #4
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Просили через case - сделал через case) Хотя как этоо сделано я бы назвал через другое место... Тоже из четырех буков
danekne вне форума Ответить с цитированием
Старый 25.03.2010, 14:14   #5
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Обратите внимание на фразу:
Цитата:
как я поняла там нужно делать с "case".
В условии задачи об case ничего не говорится. Тем более, у вас, этот оператор написан с ошибками. Попробуйте откомпилировать то, что вы написали
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Старый 25.03.2010, 14:16   #6
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Был бы паскаль попробовал. А если человек не может найти синтаксические ошибки - пусть во фриланс идет. Я сделал, как просил человек)
danekne вне форума Ответить с цитированием
Старый 25.03.2010, 16:46   #7
Takada_sony
Пользователь
 
Регистрация: 16.03.2010
Сообщений: 19
По умолчанию

Спасибо огромное за помощь, только делфи выдает много ошибок... я делаю в консоле.
И на счет "case"... мне просто сказали, что алгоритм должен содержать данный оператор ветвления.
И почему он написан с ошибками?
Вложения
Тип файла: rar Ножкова Людмила.rar (2.2 Кб, 9 просмотров)

Последний раз редактировалось Takada_sony; 25.03.2010 в 16:56.
Takada_sony вне форума Ответить с цитированием
Старый 25.03.2010, 17:14   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А так:
Код:
const n=5;

var i,otr,spol,pol:integer; srpol:double;
   a:array[1..n] of integer;
begin
  pol:=0;
otr:=0;
spol:=0;
for i:=1 to n do begin
a[i]:=random(-10);
if a[i]>0 then
 begin
 pol:=pol+a[i];
 spol:=spol+1;
 end else if a[1]<0 then otr:=otr+1;
end;
srpol:=pol/spol;
writeln(srpol);readln;
end.
А вот насчет CASE так тут я например не представляю..
впрочим

Код:
const n=5;

var i,otr,spol,pol:integer; srpol:double;
   a:array[1..n] of integer;
begin
  pol:=0;
otr:=0;
spol:=0;
for i:=1 to n do begin
a[i]:=5-random(10);
case a[i] of
 1..5:begin
  pol:=pol+a[i];
  spol:=spol+1;
 end;
 -5..0: otr:=otr+1;
 end;
end;
srpol:=pol/spol;
writeln(srpol);readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.03.2010, 17:50   #9
Takada_sony
Пользователь
 
Регистрация: 16.03.2010
Сообщений: 19
По умолчанию

а можно чем-нибудь заменить otr,spol,pol, srpol?
просто мы их еще не проходили, могут возникнуть вопросы
Takada_sony вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
одномерные массивы Кнопка Общие вопросы C/C++ 2 17.12.2009 09:56
Одномерные массивы osichev Помощь студентам 0 02.06.2009 19:31
Одномерные Массивы ТРОЯН=) Помощь студентам 4 03.02.2009 00:11