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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2012, 18:14   #1
mad_ded
Пользователь
 
Регистрация: 05.01.2012
Сообщений: 28
Восклицание туча задач по массивам требуется помощ

1) определите кол-во четных и нечетных (по значению) элементов массива
2) вычислите среднее арифметическое значение элементов массива кратных 3-ем
3) выведите на экран элементы массива значение которых не превосходит их номер
4) посчитать кол-во пар рядомстоящих элементов массива одинаковых по значению

пример (тут ошибка)
program three;
uses crt;
var p: array[1..100] of integer;
a, b, n, i, s, kol:integer;
begin
randomize;
clrscr;
write('кол-во элементов: ');
readln(n);
write('границы диапазона: ');
readln(a,b);
for i:=1 to n do
begin
p[i]:=random(b-a+1)+a;
write(p[i],' ');
end;
writeln;
s:=0;
for i:=1 to n do
s:=s+p[i];
writeln('сумма',s);
end.
mad_ded вне форума Ответить с цитированием
Старый 28.02.2012, 20:44   #2
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

1)
Код:
for i:=1 to n do begin
   if p[i] mod 2 = 0 then inc(chet);
   if p[i] mod 2 <> 0 then inc(nechet);
  end;
  writeln(chet);
  writeln(nechet);
2)
Код:
 sum:=0;
    for i:=1 to n do begin
     if p[i] mod 3 = 0 then begin
     sum:=sum+p[i];
     inc(k);
     sred:=sum/k;
    end;
   end;
writeln(sred);
3)
Код:
 for i:=1 to n do begin
   if p[i]<=i then write(p[i],' ');
  end;
4)
Код:
for i:=1 to n-1 do begin
    if P[i]*P[i+1]>0 then inc(k);
   end;
Сейчас ещё проверю, писал на глаз.
Люблю на ты.Я человек простой

Последний раз редактировалось Leshii; 28.02.2012 в 20:49.
Leshii вне форума Ответить с цитированием
Старый 28.02.2012, 21:16   #3
mad_ded
Пользователь
 
Регистрация: 05.01.2012
Сообщений: 28
По умолчанию

спс все сверил)) ток последнее не понимаю(( что такое inc? и вообще словами что это?
mad_ded вне форума Ответить с цитированием
Старый 28.02.2012, 21:23   #4
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию

Процедура Inc увеличивает, порядковую переменную в данном случае на 1
как-то так

Последний раз редактировалось Arhangel7; 28.02.2012 в 21:29.
Arhangel7 вне форума Ответить с цитированием
Старый 28.02.2012, 21:36   #5
mad_ded
Пользователь
 
Регистрация: 05.01.2012
Сообщений: 28
По умолчанию

последняя всеже не пашет чет(( когда одна пара выводит 9
mad_ded вне форума Ответить с цитированием
Старый 28.02.2012, 21:59   #6
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию

Код:
for i:=1 to n-1 do begin
if P[i]*P[i+1]>0 then inc(k);//значение массива умножаем на следующее значение
//сравниваем больше ли 0
//вот и ошибка
//надо сравнивать значения друг с другом
end;
Код:
if P[i]=P[i+1] then inc(k)
как-то так
Arhangel7 вне форума Ответить с цитированием
Старый 28.02.2012, 22:18   #7
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Код:
if P[i]=P[i+1] then inc(k)
Ок! Допустим массив такой
1,2,2,2,3
Откуда видно что первая пара у нас 22, но потом ещё стоит двойка! Вопрос: Та двойка что по середине может ли входить сразу в две пары?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 28.02.2012, 22:22   #8
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию

Цитата:
4) посчитать кол-во пар рядомстоящих элементов массива одинаковых по значению
мой ответ - ДА, вторая и третья цифры - пара рядомстоящих элементов, третья и четвертая цифры - пара рядомстоящих элементов
или я чегото не понял?


если же, найденная пара цифр учитываться не может в дальнейшем сравнении, то нужно дописать if I < n - 1 then inc(i);
Код:
if P[i]=P[i+1] then begin inc(k);  if I < n - 1 then inc(i);end;
как-то так

Последний раз редактировалось Arhangel7; 28.02.2012 в 22:32.
Arhangel7 вне форума Ответить с цитированием
Старый 28.02.2012, 22:33   #9
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

На мой взгляд пара = 2 чего-то
Допустим последовательность
1 2 3 4 5 6 7 8 9 0
Сколько пар?
5 судя по всему
последовательность
1 2 3 4 5
сколько пар?
2 и +1 элемент
Исходя из этого, (ИМХО) в последовательности
1 2 2 2 5 пар будет 1 так как двойка по середине входит в пару с первой, и соответственно не может одновременно входить в пару с третьей
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 28.02.2012, 22:52   #10
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию

Цитата:
пара рядом стоящих элементов
я понял это так, два элемента находящихся друг рядом с другом, следовательно
каждый раз, для сравнения берутся два числа стоящих рядом, независимо от того, сравнивались они или нет. Вот так я понял задание, ежели я его понял не верно, (что я не исключаю) то код
Код:
 if P[i]=P[i+1] then begin inc(k);  if I < n - 1 then inc(i);end;
, правильное решение, как - то так
как-то так
Arhangel7 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуется решение задач за деньги. zadachi Фриланс 15 12.10.2012 17:15
"Недопонятый" масив записей,требуется помощ! Freezy Паскаль, Turbo Pascal, PascalABC.NET 11 17.01.2011 20:06
Помощ решения задач в C++ Inkognito999 Помощь студентам 1 14.01.2011 22:11
Требуется помощь по двумерным массивам в C++ builder 2006. Vergil Помощь студентам 21 12.11.2009 18:29
требуется помощ по графу Freez Паскаль, Turbo Pascal, PascalABC.NET 0 09.04.2009 18:53