IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Найти количество нечетных чисел
inomarka
сообщение 11.02.2007 18:23
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Женский

Репутация: -  0  +


Дан массив 25 случайных чисел от -40 до 40. Вывести а) количество нечетных б) количество положительных

Если честно, на то, чтобы напечатать массив, найти сумму, ср.арифметическое и т.п. , у мя мозгов еще кое-как хватает. А вот с количеством... Мы задач не решали похожих, и примера нет( Можете помочь найти кол-во?


 
Program mas100;
var
a: array [1..25] of real;
i: integer;
Ch:char;
Begin
Randomize;
i:=1;
While i<=25 do
begin
A[i]:=random(81);
A[i]:=A[i]-40;
write (A[i]:3:0, ' ');
i:=i+1;
end;
For i:=1 to 25 do
write (a[i]:3:0, ' ')
....

.

Еще проблема: мне должно выводиться 25 шт. чисел, а выводится намного больше. почему? я вроде все правильно сделала.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 12.02.2007 18:07
Сообщение #2


Гость






Цитата(TarasBer @ 11.02.2007 18:21)
Почему не
if not Odd(A) = 0 then 
?
Потому, что 1) вызов функции, причем 2) сразу непонятно ее назначение... Видишь, и в приведенной мной цитате присутствует ошибка, а при использовании MOD ошибку допустить сложнее...

Цитата(inomarka @ 12.02.2007 16:46)
А поподробней? Плизз.. Я туплю.. Что я спутала?
Смотри на комментарии:
program mas100;
var
a: array [1..25] of integer;
i, odds, positives: integer;
begin
Randomize;
i:=1;
While i<=25 do begin
A[i] := random(81)-40;
write (A[i], ' ');
i:=i+1;
end;

odds := 0; { <--- Это - число нечетных чисел... Обнулять ПЕРЕД циклом }
For i:=1 to 25 do begin
if Abs(A[i]) mod 2 = 1 then odds := odds + 1; { <--- Брать по модулю, mod не работает с отриц. числами}
end;
writeln ('chislo nechetnyh = ', odds); { <--- А распечатывать - после цикла }

positives := 0; { <--- Положительные }
For i:=1 to 25 do begin
if A[i] > 0 then positives := positives + 1;
end;
writeln ('chislo polozhitelnyh = ', positives); { <--- Аналогично ... }

End.
 К началу страницы 
+ Ответить 
TarasBer
сообщение 12.02.2007 18:56
Сообщение #3


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата

-Почему не if not (odd(A) = 0)
-Потому, что 1) вызов функции

Я думал, что это макрос... Даже если это и функция, то всё равно if ((A and 1) = 0) в моём паскале (TP7.1) почему-то вычисляется дольше, чем if (odd(a) = 0). И в любом случае строчка (mod 2) невыносимо режет глаз... И с отрицательными числами неправильно работает...


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
inomarka   Найти количество нечетных чисел   11.02.2007 18:23
volvo   Во-первых, не обязательно делать 2 строки там, где...   11.02.2007 18:33
TarasBer   [code=pas]if A[i] mod 2 = 0 then { значит, четное...   11.02.2007 19:21
inomarka   Только я все равно не знаю, как вычислить это само...   11.02.2007 19:56
Altair   Потому что odd есть в Паскале, а вот насчет осталь...   11.02.2007 19:30
мисс_граффити   хотя бы потому, что компилятор (TP) такое не проп...   11.02.2007 19:47
мисс_граффити   inc(x) или x:=x+1 :) как больше нравится во вт...   11.02.2007 20:03
inomarka   во втором случае ты забыла обнулить х и напутала ...   12.02.2007 17:46
volvo   Почему не [code=pas]if not Odd(A) = 0 then ?Потому...   12.02.2007 18:07
TarasBer   Я думал, что это макрос... Даже если это и функци...   12.02.2007 18:56
volvo   вообще НЕ работает... По крайней мере не должен......   12.02.2007 19:41
Zzzz...   У меня вот так получилось uses crt; var a:arra...   12.02.2007 20:09
inomarka   Спасибо всем огромное, :good: а особенно volvo, ...   12.02.2007 20:43
мисс_граффити   И с отрицательными числами неправильно работает.....   12.02.2007 22:11
volvo   Юля, var i: integer; begin i := -15; writeln(...   12.02.2007 23:26
мисс_граффити   -1. а что должен? 1? ведь остаток - это разница с ...   12.02.2007 23:48
TarasBer   -1. а что должен? 1? ведь остаток - это разница с...   12.02.2007 23:59
мисс_граффити   не знаю. действительно, разница с меньшим всегда ...   13.02.2007 0:12
TarasBer   не знаю. действительно, разница с меньшим всегда ...   13.02.2007 0:16


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 17:56
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"