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

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

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

> Одномерные массив, Формирование 2 массивов
itGarD
сообщение 13.05.2007 15:34
Сообщение #1





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

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


Задача
Дан массив целых чисел. Сформировать 2 новых массива.
Первый содержит все числа, которые больше среднего арифметического исходного массива и стоят на четных позициях,а второй - все числа, которые меньше среднего арифметического исходного массива и стоят на нечетных позициях.
Вот что получилось, но получилось не совсем то что нужно.
Код

uses crt;
const
n=10;
type a=array[1..n] of integer;
var
mas, mas1, mas2: a;
f,k,i,m,g: integer;
l:real;
begin
clrscr;
  randomize;
   for i:=1 to n do
     begin
       mas[i]:=random(30);
       write(' ',mas[i]);
     end;
   for i:=1 to n do
     begin
       k:=k+mas[i];
       l:=k/n;
     end;
     writeln(' Summa: ',l:1:1);

     for i:=1 to n do
       if i mod 2=0 then
         for f:=1 to n do
           begin
             if mas[i]>l then
               mas1[f]:=mas[i];
           end;
       for f:=1 to n do begin
         write(' ',mas1[f]);
       end;

     for i:=1 to n do
       if i mod 2<>0 then
         for g:=1 to n do
           begin
             if mas[i]<l then
               mas2[g]:=mas[i];
           end;
       for f:=1 to n do begin
         write(' ',mas2[g]);
       end;

readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 13.05.2007 15:40
Сообщение #2


Гость






Первый массив заполняешь вот так:
     m := 0;
for i:=1 to n do
if (mas[i] > L) and (i mod 2 = 0) then begin
m := m + 1; mas1[m] := mas[i];
end;
for i:=1 to m do begin
write(' ',mas1[i]);
end;

, второй - по аналогии (подставь нужные условия)...
 К началу страницы 
+ Ответить 
compiler
сообщение 13.05.2007 16:02
Сообщение #3


Человек
*****

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

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


Цитата(volvo @ 13.05.2007 15:40) *
Первый массив заполняешь вот так: for i:=1 to n do
volvo, а можно ли тут использовать while i<n do ... inc(i,2); ... end; , ведь тогда мы не проверяем лишнии элементы..

у меня получилось так(с одним массивом) Прикрепленный файл  del5.pas ( 483 байт ) Кол-во скачиваний: 283
...

Сообщение отредактировано: compiler - 13.05.2007 16:03


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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