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

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

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

 
 Ответить  Открыть новую тему 
> Одномерный массив
Richard
сообщение 7.05.2007 13:11
Сообщение #1


Новичок
*

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

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


Ещё раз обращаюсь к просьбе решить вот это небольшое задание:
В одномерном массиве, состоящем из n целых элементов, вычислить:
1)количество положительных элементов массива:
2)сумму элементов массива, расположенных после последнего элемента равного нулю.
Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающихся от максимального более чем на 20%, а потом все остальные.
Вот код на первые два задания

program mass;
uses crt;
var a: array [1..100] of integer;
i, j, k, n, s: integer;
begin
clrscr;
writeln ('Input number of elements');
readln (n);
k:=0;
for i:=1 to n do
begin
readln (a[i]);
if a[i]>0 then k:=k+1;
if a[i]=0 then j:=i;
end;
s:=0;
for i:=j to n do
s:=s+a[i];
writeln ('Numper of positive elements ',k);
writeln ('Summ ',s:5);
readln;
end.

Но вот как преобразовать не знаю.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Артемий
сообщение 7.05.2007 14:31
Сообщение #2


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

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


Продолжи:
var d:array [1..100] of integer;
m,x,c:byte = 1;
...
For i:=1 to n do begin
if (100-((a[i] div max)*100)<=20) or (a[i]=max) then begin
d[c]:=a[i];
a[i]:=0;
inc©;
end; end;



for i:=(n-(c-1))+1 to n do begin
a[i]:=d[m];
inc(m);
end;


Сообщение отредактировано: Артемий - 7.05.2007 15:11
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Артемий
сообщение 7.05.2007 14:58
Сообщение #3


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

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


Max сам находи. blum.gif (делал без паскаля,не бей за недочеты!)только перед заполнением массива а в b очисти массив а от нулей!

Сообщение отредактировано: Артемий - 7.05.2007 15:28


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

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

 



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