Четверг, 09.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

одномерный массив
uropb992Дата: Вторник, 29.12.2009, 03:42 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 5
Репутация: 0
Замечания: 0%
Статус: Offline
Нужно вычислить:
1) максимальный отрицательный элемент массива
2) сумму элементов массива после последнего отрицательного элемента
Изменить порядок следования элементов так, чтобы вначале стояли положительные элементы, а затем отрицательные.
Ух..с массивами никак не разберусь((( помогите люди добрые!)
 
FirefrominsideДата: Вторник, 29.12.2009, 07:18 | Сообщение # 2
Уже "свой"
Группа: Модераторы
Сообщений: 85
Репутация: 0
Замечания: 0%
Статус: Offline
1.Пусть b-та самая наменьшая перемнная
А длинна масива задана?
Если да,то
Code

b:=a[1];
while(i<>n)
  begin
   if a[i]<b then
     b:=a[i];
   i:=i+1;
end;
Writeln('Наименьший эл-нт= ',b);

2.А вот тут очень легко,если знать как идти)
Мы пойдём не с начала массива к концу, а с конца к нaчалу,попути суммируя все эл-ты,пока не встретим отрицательное))

Code

s:=0;
  for i:=n downto 1
   begin
   if (a[i]>0) then
     s:=s+a[i];
   if(a[i]<0) then break;
end;
writeln('сумма= ',s );  

3.найди в любом учебнике по паскалю сортировку(хоть пузырьком)


Большая просьба выкладывать хоть какой-то код Вашей программы.
Это поможет найти общий язык между Вами и нами! =)
И не забываем благодарить за помощь=)
Нужна помощь с задача С++? тебе сюда bc-for-all.ucoz.ru
 
uropb992Дата: Понедельник, 11.01.2010, 05:20 | Сообщение # 3
Новичок
Группа: Пользователи
Сообщений: 5
Репутация: 0
Замечания: 0%
Статус: Offline
uses crt;
const n=15;
var a:array[1..50] of integer;
i,j,k:byte;
x:integer;
s,b:real;
begin
clrscr;
randomize;
For i:=1 to n do begin;
a[i]:=random(100)-50;
writeln(a[i]);
end;
writeln;
For i:=1 to n do
if a[i]<0 then b:=a[i];
For i:=1 to n do
if a[i]<0 then
begin
if a[i]>b then
b:=a[i];
end;
writeln(b);
for i:=n downto 1 do
begin
if (a[i]<0) then
s:=s+a[i];
if(a[i]>0) then break;
end;
writeln;
for i:=1 to n do
if a[i]>0 then
begin
k:=k+1;
x:=a[i];
for j:=i downto k+1 do
a[j]:=a[j-1];
a[k]:=x;
end;
Writeln('Наименьший эл-нт= ',b);
writeln('сумма= ',s );
writeln('coptirovka:');
for i:=1 to n do
write(a[i]:3);
end.

Добавлено (10.01.2010, 22:20)
---------------------------------------------
не правильно вычиляется сумма(((

 
FirefrominsideДата: Пятница, 22.01.2010, 20:03 | Сообщение # 4
Уже "свой"
Группа: Модераторы
Сообщений: 85
Репутация: 0
Замечания: 0%
Статус: Offline
у тебя массив из 15 эл-тов, а ты создаешь массив на 50 циклов...

Большая просьба выкладывать хоть какой-то код Вашей программы.
Это поможет найти общий язык между Вами и нами! =)
И не забываем благодарить за помощь=)
Нужна помощь с задача С++? тебе сюда bc-for-all.ucoz.ru
 
FirefrominsideДата: Пятница, 22.01.2010, 20:10 | Сообщение # 5
Уже "свой"
Группа: Модераторы
Сообщений: 85
Репутация: 0
Замечания: 0%
Статус: Offline
возможно ошибка в том,что ты не обнулил в начале счетчик суммы...
По идеи паскаль должен обнулять сам,но у меня бывали такие случаи,когда переменной присваивалось какое-то рандомное число,по-этому вставь вот эту строку...а еще возможно,что строка "f(a[i]>0) then break; " не нужна или даже ошибочна....
Поробуй два вида замены.
Первый:
Code

s:=0;
for i:=n downto 1 do  
  begin  
   if (a[i]<0) then  
   s:=s+a[i];  
   if(a[i]>0) then break;  
end;  
writeln;

Второй
Code

s:=0;
for i:=n downto 1 do  
   if (a[i]<0) then  
   s:=s+a[i];  


Большая просьба выкладывать хоть какой-то код Вашей программы.
Это поможет найти общий язык между Вами и нами! =)
И не забываем благодарить за помощь=)
Нужна помощь с задача С++? тебе сюда bc-for-all.ucoz.ru
 
FirefrominsideДата: Пятница, 22.01.2010, 20:11 | Сообщение # 6
Уже "свой"
Группа: Модераторы
Сообщений: 85
Репутация: 0
Замечания: 0%
Статус: Offline
И отпишись,что верно было!

Большая просьба выкладывать хоть какой-то код Вашей программы.
Это поможет найти общий язык между Вами и нами! =)
И не забываем благодарить за помощь=)
Нужна помощь с задача С++? тебе сюда bc-for-all.ucoz.ru
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;