Помощь - Поиск - Пользователи - Календарь
Полная версия: Массив
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
TeRmInWeB
В массиве Т(25) сделать все четные числа отрицательными, а для не четных подсчитать количество и сумму! как? и чего с этим делать непойму(!
Артемий
Покажи что пробовал.
TeRmInWeB
в том то и дело я незнаю как его написать надо свой массив создать а как? незнаю
мисс_граффити
ну например так (заполняется случайными числами):
var T: array [1..25] of integer;
i: integer;
begin
randomize;
for i:=1 to 25 do
T[i]:=random(10);
end.

Тёмный Эльф
Цитата(TeRmInWeB)
В массиве Т(25) сделать все четные числа отрицательными

Узнать четное ли число можно с помощью операции mod (взятие остатка от деления). И если возвращаемое значение 0, значит, число четное. После этого просто делаем это число отрицательным.
for i:=1 to 25 do
begin
if ((massiv[i] mod 2) = 0) then
a[i]:=-a[i];
end;
andriano
Вообще-то в Паскале специально для проверки на четность существует функция Odd. Можно, конечно, то же самое делать посредством арифметических (как предложено в предыдущем посте) или логических (MyOdd := boolean(MyNumber and 1);), но для наглядности кода применение специально для этого предназначенных функций выглядит явно предпочтительнее.
TeRmInWeB
Спасибо огромнейшее я попробую) не правдо спс что ответили)
Зюзюка
Если все объеденить выше сказанное получится чтото типа этого =)
Код
program m;
const n=25;
var mas: array [1..n] of integer;
i,sum,kol: integer;
begin
randomize;
for i:=1 to n do begin
  mas[i]:=random(10);
end;
sum:=0;
kol:=0;
for i:=1 to n do begin write(mas[i],' '); end;
readln;
for i:=1 to n do
     begin
        if ((mas[i] mod 2) = 0) then begin mas[i]:=-mas[i]; end
else begin sum:=sum+mas[i]; kol:=kol+1;
end;
    end;
for i:=1 to n do begin write(mas[i],' ');
end;
readln;
writeln(sum);
writeln(kol);
readln;
end.
TeRmInWeB
Блин народ супер уже начал писать обязательно попробую все предложенное)))
volvo
Зюзюка, а вот теперь запусти свою программу. Мне интересно, сколько времени тебе понадобится, чтобы понять, что собственно происходит, и ПОЧЕМУ получается не то, что задумано, а то, что на экране smile.gif
Зюзюка
Незнаю, т.к у меян даже паскале нету smile.gif smile.gif smile.gif
TeRmInWeB
Я написал комплит вроде работает ошибок нет но сама прога неработает нажимаю ран а нечего не происходит? может правдо я чегот не дописал там
Client
RadKey или Readln в конце поставил?
Зюзюка
Так как объединял 2 несвоих кода конечно же были ошибки из за того что в середине программы стоял end. =). Исправил
TeRmInWeB
сейчас погодите исправлю а то чегот 2 раза переписал а прога-зараза нереагирует)

Добавлено через 18 мин.
короче прога заработала )! так появились надписи Т.П ver 7.1 и чисел куча и я допустим ввожу там -6 она мне выдаёт числа -474 -874378 -455 -94884 и вконце -6)) вроде норм) а?) главно что работает прогресс есть)
TeRmInWeB
народ а как сделать чтоб массив не автоматом задавался а вручную? чего прописать надо?
Тёмный Эльф
Цитата(TeRmInWeB @ 23.12.2007 13:48) *

народ а как сделать чтоб массив не автоматом задавался а вручную? чего прописать надо?

Например вместо
randomize;
for i:=1 to n do begin
mas[i]:=random(10);
end;

написать
for i:=1 to n do 
begin
read(mas[i]);
end;
TeRmInWeB
спс сейчас напишу

Добавлено через 4 мин.
отлично работает)))

Добавлено через 3 мин.
единственное то что каждый раз как я её запускаю всё что я там раньше решал она сохраняет мнеб нужно чтоб она каждый запуск в чистом окне делала без предыдущих записей...
Тёмный Эльф
Цитата
мне нужно чтоб она каждый запуск в чистом окне делала без предыдущих записей...

для это надо так:
USES CRT; (перед var)
в начале программы сразу после begin можно: clrscr
compiler
Цитата
отлично работает)))
исправил ошибку Зюзюки или комипилируется и хорошо? smile.gif
подсказка: сделай отступы и увидь блоки
Цитата
единственное то что каждый раз как я её запускаю всё что я там раньше решал она сохраняет мнеб нужно чтоб она каждый запуск в чистом окне делала без предыдущих записей...
Процедура ClrScr, из модуля Crt тебе в помощь!
TeRmInWeB
Тёмный Эльф спасиб сейчас напишу) а то уже места нету всё пространство паскаль занял)
TeRmInWeB
блин я и uses crt и clrscr попробовал а ошибка почему то? я во всех бегинах попробовал.
Client
Покажи полностью код, чтоб увидели (мы не телепаты smile.gif )
TeRmInWeB
program m;
const n=25;
var mas: array [1..n] of integer;
i,sum,kol: integer;
begin
randomize;
for i:=1 to n do
begin
read (mas[i]);
end;
sum:=0;
kol:=0;
for i:=1 to n do begin write(mas[i],' '); end;
readln;
for i:=1 to n do
begin
if ((mas[i] mod 2) = 0) then begin mas[i]:=-mas[i]; end
else begin sum:=sum+mas[i]; kol:=kol+1;
end;
end;
for i:=1 to n do begin write(mas[i],' ');
end;
readln;
writeln(sum);
writeln(kol);
readln;
end.

Добавлено через 9 мин.
вот там я пробовал uses crt но ошибки выдаёт.
Client
program m;
uses crt;
. . .
begin
clrscr;
. . .
А так не пробовал??
TeRmInWeB
сейчас попробую)


Добавлено через 10 мин.
Зашибись СУУУпер все 100% работает спс всем кто помагал!!!!!!!!!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.